X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/410bfa05ee36ed1d99356c443a5f3f6aa3ee9578..ddce82ce7b9c030a00fa700d11094ac4b24b6176:/forum/models/node.py diff --git a/forum/models/node.py b/forum/models/node.py index a7e122e..cf69233 100644 --- a/forum/models/node.py +++ b/forum/models/node.py @@ -1,4 +1,3 @@ -from forum.akismet import * from base import * from tag import Tag @@ -31,12 +30,13 @@ class NodeContent(models.Model): def tagname_list(self): if self.tagnames: - return [name for name in self.tagnames.split(u' ')] + t = [name.strip() for name in self.tagnames.split(u' ') if name] + return [name.strip() for name in self.tagnames.split(u' ') if name] else: return [] def tagname_meta_generator(self): - return u','.join([unicode(tag) for tag in self.tagname_list()]) + return u','.join([tag for tag in self.tagname_list()]) class Meta: abstract = True @@ -166,25 +166,32 @@ class Node(BaseModel, NodeContent): def summary(self): return strip_tags(self.html)[:300] - def update_last_activity(self, user): + @models.permalink + def get_revisions_url(self): + return ('revisions', (), {'id': self.id}) + + def update_last_activity(self, user, save=False): self.last_activity_by = user self.last_activity_at = datetime.datetime.now() if self.parent: - self.parent.update_last_activity(user) + self.parent.update_last_activity(user, save=True) + + if save: + self.save() def _create_revision(self, user, number, **kwargs): revision = NodeRevision(author=user, revision=number, node=self, **kwargs) revision.save() return revision - def create_revision(self, user, action=None, **kwargs): + def create_revision(self, user, **kwargs): number = self.revisions.aggregate(last=models.Max('revision'))['last'] + 1 revision = self._create_revision(user, number, **kwargs) - self.activate_revision(user, revision, action) + self.activate_revision(user, revision) return revision - def activate_revision(self, user, revision, action=None): + def activate_revision(self, user, revision): self.title = revision.title self.tagnames = revision.tagnames self.body = revision.body @@ -192,9 +199,6 @@ class Node(BaseModel, NodeContent): self.active_revision = revision self.update_last_activity(user) - if action: - self.last_edited = action - self.save() def get_tag_list_if_changed(self): @@ -251,19 +255,6 @@ class Node(BaseModel, NodeContent): super(Node, self).save(*args, **kwargs) if tags is not None: self.tags = tags - @staticmethod - def isSpam(comment, data): - api = Akismet() - - if not api.key: - return False - else: - if api.comment_check(comment, data): - return True - else: - return False - return data - class Meta: app_label = 'forum'