X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/3f75c4f8fab198c3cedb9fcbd97f0339942486f6..a67c564e9a6b8779bd6f0ce694b56eaabb337dcb:/forum/actions/user.py?ds=inline diff --git a/forum/actions/user.py b/forum/actions/user.py index f9a9913..5a6aba5 100644 --- a/forum/actions/user.py +++ b/forum/actions/user.py @@ -1,11 +1,14 @@ -from django.utils.translation import ugettext as _ +from django.utils.translation import ungettext, ugettext as _ +from django.core.urlresolvers import reverse from django.db.models import F from forum.models.action import ActionProxy from forum.models import Award, Badge, ValidationHash, User -from forum import settings +from forum import settings, REQUEST_HOLDER from forum.settings import APP_SHORT_NAME from forum.utils.mail import send_template_email +from django.contrib import messages + class UserJoinsAction(ActionProxy): verb = _("joined") @@ -23,6 +26,15 @@ class UserJoinsAction(ActionProxy): 'app_name': APP_SHORT_NAME, } +class UserLoginAction(ActionProxy): + verb = _("logged in") + + def describe(self, viewer=None): + return _("%(user)s %(have_has)s logged in") % { + 'user' : self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)), + 'have_has': self.viewer_or_user_verb(viewer, self.user, _('have'), _('has')), + } + class EmailValidationAction(ActionProxy): verb = _("validated e-mail") @@ -37,7 +49,7 @@ class EmailValidationAction(ActionProxy): return _("%(user)s %(have_has)s validated the e-mail %(email)s") % { 'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)), 'have_has': self.viewer_or_user_verb(viewer, self.user, _('have'), _('has')), - 'email' : self.user.email + 'email' : self.user.email if viewer.is_superuser or viewer.is_staff or viewer == self.user else "" } class EditProfileAction(ActionProxy): @@ -66,8 +78,7 @@ class BonusRepAction(ActionProxy): 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 have been penalized in %s reputation points.") % self._value + + messages.info(REQUEST_HOLDER.request, _("You have penalized %s in %s reputation points.") % (self._affected, self._value) + '
%s' % self.extra.get('message', '')) def describe(self, viewer=None): @@ -98,15 +109,14 @@ class AwardPointsAction(ActionProxy): def repute_users(self): self.repute(self._affected, self._value) + self.repute(self.user, -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', '')) + 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')) @@ -154,9 +164,10 @@ class AwardAction(ActionProxy): self.user.save() self.user.message_set.create(message=_( - """Congratulations, you have received a badge '%(badge_name)s'. Check out your profile.""" - ) % - dict(badge_name=award.badge.name, profile_url=self.user.get_profile_url())) + """Congratulations, you have received a badge '%(badge_name)s'. Find out who has it, too.""" + ) % dict( + badge_name=award.badge.name, + badge_url=award.badge.get_absolute_url())) def cancel_action(self): award = self.award @@ -182,6 +193,35 @@ class AwardAction(ActionProxy): 'badge_name': self.award.badge.name, } + +class ReportAction(ActionProxy): + verb = _("suspended") + + def process_data(self, **kwargs): + self.extra = kwargs + # message here? + + + def process_action(self): + + all_superusers = User.objects.filter(is_superuser=True) + + + send_template_email(all_superusers, "notifications/user_reported.html", { + 'reported': self.extra['reported'], + 'user':self.user, + 'message': self.extra['publicmsg'] + } + ) + + def describe(self, viewer=None): + + return _("%(user)s reported %(reported) : %(msg)s") % { + 'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)), + 'reporter': self.extra.get('reported').username, + 'msg': self.extra.get('publicmsg', _('N/A')) + } + class SuspendAction(ActionProxy): verb = _("suspended")