X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/22236fb67da2f27ceb35ad138f4d534a4fd08251..508b758ebf7d03317c1f1a14ba6006dd83eedd08:/forum/models/node.py?ds=sidebyside diff --git a/forum/models/node.py b/forum/models/node.py index 0ebcd21..bf82708 100644 --- a/forum/models/node.py +++ b/forum/models/node.py @@ -43,7 +43,12 @@ class NodeContent(models.Model): @property def headline(self): - return self.title + title = self.title + + # Replaces multiple spaces with single ones. + title = re.sub(' +',' ', title) + + return title def tagname_list(self): if self.tagnames: @@ -309,7 +314,15 @@ class Node(BaseModel, NodeContent): @property def summary(self): - return strip_tags(self.html)[:SUMMARY_LENGTH] + content = strip_tags(self.html)[:SUMMARY_LENGTH] + + # Remove multiple spaces. + content = re.sub(' +',' ', content) + + # Remove line breaks. We don't need them at all. + content = content.replace("\n", '') + + return content @models.permalink def get_revisions_url(self): @@ -369,10 +382,10 @@ class Node(BaseModel, NodeContent): return None else: if self._original_state['tagnames']: - old_tags = set(name for name in self._original_state['tagnames'].split(u' ')) + old_tags = set(self._original_state['tagnames'].split()) else: old_tags = set() - new_tags = set(name for name in self.tagnames.split(u' ') if name) + new_tags = set(self.tagnames.split()) return dict( current=list(new_tags), @@ -424,6 +437,10 @@ class Node(BaseModel, NodeContent): tag.save() def delete(self, *args, **kwargs): + for tag in self.tags.all(): + tag.add_to_usage_count(-1) + tag.save() + self.active_revision = None self.save() @@ -450,7 +467,8 @@ class Node(BaseModel, NodeContent): tags_changed = self._process_changes_in_tags() super(Node, self).save(*args, **kwargs) - if tags_changed: self.tags = list(Tag.objects.filter(name__in=self.tagname_list())) + if tags_changed: + self.tags = list(Tag.objects.filter(name__in=self.tagname_list())) class Meta: app_label = 'forum'