From 3f75c4f8fab198c3cedb9fcbd97f0339942486f6 Mon Sep 17 00:00:00 2001 From: jordan Date: Wed, 23 Mar 2011 23:34:06 +0000 Subject: [PATCH] #OSQA-388, creating a separate action for the award points for an answer functionality. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@880 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum/actions/user.py | 37 +++++++++++++++++++++++++++++++++++++ forum/views/commands.py | 4 ++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/forum/actions/user.py b/forum/actions/user.py index 5b818c7..f9a9913 100644 --- a/forum/actions/user.py +++ b/forum/actions/user.py @@ -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) + + if self._value > 0: + self._affected.message_set.create( + message=_("Congratulations, you have been awarded an extra %s reputation points.") % self._value + + '
%s' % self.extra.get('message', _('Thank you'))) + else: + self._affected.message_set.create( + message=_("You gave %s reputation points.") % self._value + + '
%s' % self.extra.get('message', '')) + + 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") diff --git a/forum/views/commands.py b/forum/views/commands.py index f7d91ae..ae773bd 100644 --- a/forum/views/commands.py +++ b/forum/views/commands.py @@ -577,9 +577,9 @@ def award_points(request, user_id, answer_id): extra = dict(message=request.POST.get('message', ''), awarding_user=request.user.id, value=points) # We take points from the awarding user - BonusRepAction(user=request.user, extra=extra).save(data=dict(value=-points, affected=user)) + AwardPointsAction(user=request.user, extra=extra).save(data=dict(value=-points, affected=user)) # And give them to the awarded one - BonusRepAction(user=request.user, extra=extra).save(data=dict(value=points, affected=awarded_user)) + AwardPointsAction(user=request.user, extra=extra).save(data=dict(value=points, affected=awarded_user)) return { 'message' : _("You have awarded %s with %d points") % (awarded_user, points) } -- 2.39.5