summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-01-03 17:49:29 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-01-03 17:49:29 -0300
commitc2e34e7e4de944f8e65dbeaa1d7f33be22792f8e (patch)
tree31f5dd36ab233a6d6cf088c63a1dfa38ff83909a
parent8fdedb34d6d6a0d3c3fde084eff7d55ece16e670 (diff)
downloadaskbot-c2e34e7e4de944f8e65dbeaa1d7f33be22792f8e.tar.gz
askbot-c2e34e7e4de944f8e65dbeaa1d7f33be22792f8e.tar.bz2
askbot-c2e34e7e4de944f8e65dbeaa1d7f33be22792f8e.zip
allowed disabling gravatar
-rw-r--r--askbot/conf/settings_wrapper.py1
-rw-r--r--askbot/conf/user_settings.py31
-rw-r--r--askbot/doc/source/changelog.rst1
-rw-r--r--askbot/models/__init__.py16
4 files changed, 46 insertions, 3 deletions
diff --git a/askbot/conf/settings_wrapper.py b/askbot/conf/settings_wrapper.py
index 9405ff09..78d16397 100644
--- a/askbot/conf/settings_wrapper.py
+++ b/askbot/conf/settings_wrapper.py
@@ -60,6 +60,7 @@ class ConfigSettings(object):
def update(self, key, value):
setting = config_get(self.__group_map[key], key)
setting.update(value)
+ #self.prime_cache()
def register(self, value):
"""registers the setting
diff --git a/askbot/conf/user_settings.py b/askbot/conf/user_settings.py
index 1fdfb42f..cec13083 100644
--- a/askbot/conf/user_settings.py
+++ b/askbot/conf/user_settings.py
@@ -4,6 +4,8 @@ User policy settings
from askbot.conf.settings_wrapper import settings
from askbot.conf.super_groups import LOGIN_USERS_COMMUNICATION
from askbot.deps import livesettings
+from django.conf import settings as django_settings
+from askbot.skins import utils as skin_utils
from django.utils.translation import ugettext as _
from askbot import const
@@ -51,6 +53,35 @@ settings.register(
)
settings.register(
+ livesettings.ImageValue(
+ USER_SETTINGS,
+ 'DEFAULT_AVATAR_URL',
+ description = _('Default avatar for users'),
+ help_text = _(
+ 'To change the avatar image, select new file, '
+ 'then submit this whole form.'
+ ),
+ upload_directory = django_settings.ASKBOT_FILE_UPLOAD_DIR,
+ upload_url = '/' + django_settings.ASKBOT_UPLOADED_FILES_URL,
+ default = '/images/nophoto.png',
+ url_resolver = skin_utils.get_media_url
+ )
+)
+
+settings.register(
+ livesettings.BooleanValue(
+ USER_SETTINGS,
+ 'ENABLE_GRAVATAR',
+ default = True,
+ description = _('Use automatic avatars from gravatar.com'),
+ help_text=_(
+ 'Check this option if you want to allow the use of gravatar.com for avatars. Please, note that this feature might take about 10 minutes to become 100% effective. You will have to enable uploaded avatars as well. For more information, please visit <a href="http://askbot.org/doc/optional-modules.html#uploaded-avatars">this page</a>.'
+ )
+ )
+)
+
+
+settings.register(
livesettings.StringValue(
USER_SETTINGS,
'GRAVATAR_TYPE',
diff --git a/askbot/doc/source/changelog.rst b/askbot/doc/source/changelog.rst
index 7ef46ffe..496ac21e 100644
--- a/askbot/doc/source/changelog.rst
+++ b/askbot/doc/source/changelog.rst
@@ -13,6 +13,7 @@ Development version (not released yet)
* made setting `ASKBOT_FILE_UPLOAD_DIR` work (Radim Řehůřek)
* added minimal length of question title ond body
text to live settings and allowed body-less questions (Radim Řehůřek, Evgeny)
+* allowed disabling use of gravatar site-wide (Rosandra Cuello Suñol)
0.7.36 (Dec 20, 2011)
---------------------
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 0ba2e4c7..f851d3f9 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -22,6 +22,7 @@ import askbot
from askbot import exceptions as askbot_exceptions
from askbot import const
from askbot.conf import settings as askbot_settings
+from askbot.skins import utils as skin_utils
from askbot.models.question import Question
from askbot.models.question import QuestionView, AnonymousQuestion
from askbot.models.question import FavoriteQuestion
@@ -121,6 +122,11 @@ def user_get_gravatar_url(self, size):
'size': size,
}
+def user_get_default_avatar_url(self, size):
+ """returns default avatar url
+ """
+ return skin_utils.get_media_url(askbot_settings.DEFAULT_AVATAR_URL)
+
def user_get_avatar_url(self, size):
"""returns avatar url - by default - gravatar,
but if application django-avatar is installed
@@ -129,10 +135,10 @@ def user_get_avatar_url(self, size):
if 'avatar' in django_settings.INSTALLED_APPS:
if self.avatar_type == 'n':
import avatar
- if avatar.settings.AVATAR_GRAVATAR_BACKUP:
+ if askbot_settings.ENABLE_GRAVATAR: #avatar.settings.AVATAR_GRAVATAR_BACKUP:
return self.get_gravatar_url(size)
else:
- return avatar.utils.get_default_avatar_url()
+ return self.get_default_avatar_url(size)
elif self.avatar_type == 'a':
kwargs = {'user_id': self.id, 'size': size}
try:
@@ -146,7 +152,10 @@ def user_get_avatar_url(self, size):
else:
return self.get_gravatar_url(size)
else:
- return self.get_gravatar_url(size)
+ if askbot_settings.ENABLE_GRAVATAR:
+ return self.get_gravatar_url(size)
+ else:
+ return self.get_default_avatar_url(size)
def user_update_avatar_type(self):
"""counts number of custom avatars
@@ -2115,6 +2124,7 @@ User.add_to_class(
)
User.add_to_class('get_absolute_url', user_get_absolute_url)
User.add_to_class('get_avatar_url', user_get_avatar_url)
+User.add_to_class('get_default_avatar_url', user_get_default_avatar_url)
User.add_to_class('get_gravatar_url', user_get_gravatar_url)
User.add_to_class('get_anonymous_name', user_get_anonymous_name)
User.add_to_class('update_avatar_type', user_update_avatar_type)