X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/c6c168511f18d8984901b2c828a47310a2d54d64..a559e282f1834ca0b100c3ae9e65ea99a0b3aa06:/forum/actions/user.py?ds=sidebyside diff --git a/forum/actions/user.py b/forum/actions/user.py index 5b818c7..15ad5ee 100644 --- a/forum/actions/user.py +++ b/forum/actions/user.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext as _ +from django.utils.translation import ungettext, ugettext as _ from django.db.models import F from forum.models.action import ActionProxy from forum.models import Award, Badge, ValidationHash, User @@ -88,6 +88,43 @@ class BonusRepAction(ActionProxy): except Exception, e: return '' +class AwardPointsAction(ActionProxy): + verb = _("gave reputation points") + + def process_data(self, value, affected): + self._value = value + self._affected = affected + + + def repute_users(self): + self.repute(self._affected, self._value) + self.repute(self.user, -self._value) + + + self._affected.message_set.create( + message=_("Congratulations, you have been awarded an extra %(points)s reputation %(points_label)s on this answer.") % { + 'points': self._value, + 'points_label': ungettext('point', 'points', self._value), + 'answer_url': self.node.get_absolute_url() + }) + + def describe(self, viewer=None): + value = self.extra.get('value', _('unknown')) + + try: + if int(value) > 0: + return _("%(user)s awarded an extra %(value)s reputation points to %(users)s") % { + 'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)), + 'value': value, 'users':self.affected_links(viewer), + } + else: + return _("%(user)s penalised %(users)s in %(value)s reputation points") % { + 'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)), + 'value': value, 'users':self.affected_links(viewer), + } + except Exception, e: + return '' + class AwardAction(ActionProxy): verb = _("was awarded")