X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/617e60be3c7d2e0f17639f3487a721d4efdc02c0..3a1befca62834cd3c0b3aa3f6af974179ddfbea4:/forum/settings/users.py diff --git a/forum/settings/users.py b/forum/settings/users.py index 07f47b6..a108ebf 100644 --- a/forum/settings/users.py +++ b/forum/settings/users.py @@ -1,10 +1,21 @@ -from forms import CommaStringListWidget +from forms import CommaStringListWidget, StringListWidget from django.forms import CheckboxSelectMultiple +from django.forms.widgets import RadioSelect from base import Setting, SettingSet from django.utils.translation import ugettext as _ USERS_SET = SettingSet('users', _('Users settings'), _("General settings for the OSQA users."), 20) +ALLOW_NEGATIVE_REPUTATION = Setting('ALLOW_NEGATIVE_REPUTATION', True, USERS_SET, dict( +label = _("Allow negative reputation"), +help_text = _("Check if you want to allow negative user reputations in the community."), +required=False)) + +STORE_GREETING_IN_COOKIE = Setting('STORE_GREETING_IN_COOKIE', True, USERS_SET, dict( +label = _("Store greeting in cookie"), +help_text = _("If you check this the greeting will be stored in a cookie and the users won't be notified on logout."), +required=False)) + EDITABLE_SCREEN_NAME = Setting('EDITABLE_SCREEN_NAME', False, USERS_SET, dict( label = _("Editable screen name"), help_text = _("Allow users to alter their screen name."), @@ -21,9 +32,38 @@ label = _("Disabled usernames"), help_text = _("A comma separated list of disabled usernames (usernames not allowed during a new user registration)."), widget=CommaStringListWidget)) +TRUNCATE_LONG_USERNAMES = Setting('TRUNCATE_LONG_USERNAMES', True, USERS_SET, dict( +label=_("Truncate long usernames"), +help_text = _("The long usernames will be truncated.."), +required=False, +)) + +SHOW_USER_ACCEPT_RATE = Setting('SHOW_USER_ACCEPT_RATE', True, USERS_SET, dict( +label = _("Show user accept rate"), +help_text = _("If you check this the user accept rate will be displayed on the user posts."), +required=False)) + +FREEZE_ACCEPT_RATE_FOR = Setting('FREEZE_ACCEPT_RATE_FOR', +["admin",], +USERS_SET, dict( +label = _("Freeze accept rate"), +help_text = _("Freeze answers accept rate for the selected users."), +widget=StringListWidget)) + +TRUNCATE_USERNAMES_LONGER_THAN = Setting('TRUNCATE_USERNAMES_LONGER_THAN', 15, USERS_SET, dict( +label = _("Truncate usernames longer than"), +help_text = _("The usernames that are longer than this will be truncated and ... will be appended."))) + +SHOW_STATUS_DIAMONDS = Setting('SHOW_STATUS_DIAMONDS', True, USERS_SET, dict( +label=_("Show status diamonds"), +help_text = _("Show status \"diamonds\" next to moderators or superusers usernames."), +required=False, +)) + EMAIL_UNIQUE = Setting('EMAIL_UNIQUE', True, USERS_SET, dict( label = _("Force unique email"), -help_text = _("Should each user have an unique email."))) +help_text = _("Should each user have an unique email."), +required=False)) REQUIRE_EMAIL_VALIDATION_TO = Setting('REQUIRE_EMAIL_VALIDATION_TO', [], USERS_SET, dict( label = _("Require email validation to..."), @@ -33,6 +73,11 @@ choices=(("ask", _("ask questions")), ("answer", _("provide answers")), ("commen required=False, )) +DONT_NOTIFY_UNVALIDATED = Setting('DONT_NOTIFY_UNVALIDATED', True, USERS_SET, dict( +label = _("Don't notify to invalid emails"), +help_text = _("Do not notify users with unvalidated emails."), +required=False)) + HOLD_PENDING_POSTS_MINUTES = Setting('HOLD_PENDING_POSTS_MINUTES', 120, USERS_SET, dict( label=_("Hold pending posts for X minutes"), help_text=_("How much time in minutes a post should be kept in session until the user logs in or validates the email.") @@ -41,4 +86,33 @@ help_text=_("How much time in minutes a post should be kept in session until the WARN_PENDING_POSTS_MINUTES = Setting('WARN_PENDING_POSTS_MINUTES', 15, USERS_SET, dict( label=_("Warn about pending posts afer X minutes"), help_text=_("How much time in minutes a user that just logged in or validated his email should be warned about a pending post instead of publishing it automatically.") -)) \ No newline at end of file +)) + +GRAVATAR_RATING_CHOICES = ( + ('g', _('suitable for display on all websites with any audience type.')), + ('pg', _('may contain rude gestures, provocatively dressed individuals, the lesser swear words, or mild violence.')), + ('r', _('may contain such things as harsh profanity, intense violence, nudity, or hard drug use.')), + ('x', _('may contain hardcore sexual imagery or extremely disturbing violence.')), +) + +GRAVATAR_ALLOWED_RATING = Setting('GRAVATAR_ALLOWED_RATING', 'g', USERS_SET, dict( +label = _("Gravatar rating"), +help_text = _("Gravatar allows users to self-rate their images so that they can indicate if an image is appropriate for a certain audience."), +widget=RadioSelect, +choices=GRAVATAR_RATING_CHOICES, +required=False)) + +GRAVATAR_DEFAULT_CHOICES = ( + ('mm', _('(mystery-man) a simple, cartoon-style silhouetted outline of a person (does not vary by email hash)')), + ('identicon', _('a geometric pattern based on an email hash')), + ('monsterid', _('a generated "monster" with different colors, faces, etc')), + ('wavatar', _('generated faces with differing features and backgrounds')), +) + +GRAVATAR_DEFAULT_IMAGE = Setting('GRAVATAR_DEFAULT_IMAGE', 'identicon', USERS_SET, dict( +label = _("Gravatar default"), +help_text = _("Gravatar has a number of built in options which you can also use as defaults."), +widget=RadioSelect, +choices=GRAVATAR_DEFAULT_CHOICES, +required=False)) +