1 from django.utils.translation import ugettext as _
 
   2 from forum.models.action import ActionProxy
 
   3 from forum.models import Page
 
   5 class NewPageAction(ActionProxy):
 
   8     def process_data(self, **data):
 
   9         title = data.pop('title')
 
  10         body = data.pop('content')
 
  12         page = Page(author=self.user, title=title, body=body, extra=data)
 
  16     def describe(self, viewer=None):
 
  17         return _("%(user)s created a new page titled %(page)s") % {
 
  18         'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
 
  19         'page': self.hyperlink(self.node.get_absolute_url(), self.node.title)
 
  22 class EditPageAction(ActionProxy):
 
  25     def process_data(self, **data):
 
  26         title = data.pop('title')
 
  27         body = data.pop('content')
 
  29         if (title != self.node.title) or (body != self.node.body):
 
  30             self.node.create_revision(self.user, title=title, body=body)
 
  32         self.node.extra = data
 
  35     def describe(self, viewer=None):
 
  36         return _("%(user)s edited the page titled %(page)s") % {
 
  37         'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
 
  38         'page': self.hyperlink(self.node.get_absolute_url(), self.node.title)
 
  41 class PublishAction(ActionProxy):
 
  44     def process_action(self):
 
  45         self.node.marked = True
 
  46         self.node.nstate.published = self
 
  49     def cancel_action(self):
 
  50         self.node.marked = False
 
  51         self.node.nstate.published = None
 
  54     def describe(self, viewer=None):
 
  55         return _("%(user)s published a new page titled %(page)s") % {
 
  56         'user': self.hyperlink(self.user.get_profile_url(), self.friendly_username(viewer, self.user)),
 
  57         'page': self.hyperlink(self.node.get_absolute_url(), self.node.title)