summaryrefslogtreecommitdiffstats
path: root/askbot/models
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-11 13:44:46 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-11 13:44:46 -0400
commitf35224b630e096f1c6811548dcaaec2c9f368b06 (patch)
tree7e7a112ee38c889200a66d3651eb7ad3206e6838 /askbot/models
parentbb2a7cfe4046ec67f232e079820939ff01e9578b (diff)
downloadaskbot-f35224b630e096f1c6811548dcaaec2c9f368b06.tar.gz
askbot-f35224b630e096f1c6811548dcaaec2c9f368b06.tar.bz2
askbot-f35224b630e096f1c6811548dcaaec2c9f368b06.zip
allowed to created tags upon subscribing to them
Diffstat (limited to 'askbot/models')
-rw-r--r--askbot/models/__init__.py11
-rw-r--r--askbot/models/tag.py2
2 files changed, 12 insertions, 1 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 8dc81e47..49ce7fae 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -1370,6 +1370,17 @@ def user_mark_tags(
if tagnames is None:
tagnames = list()
+ #figure out which tags don't yet exist
+ existing_tagnames = Tag.objects.filter(
+ name__in=tagnames
+ ).values_list(
+ 'name', flat=True
+ )
+ non_existing_tagnames = set(tagnames) - set(existing_tagnames)
+ #create those tags, and if tags are moderated make them suggested
+ if (len(non_existing_tagnames) > 0):
+ Tag.objects.create_in_bulk(tag_names=tagnames, user=self)
+
#below we update normal tag selections
marked_ts = MarkedTag.objects.filter(
user = self,
diff --git a/askbot/models/tag.py b/askbot/models/tag.py
index 7b51e6db..455995e0 100644
--- a/askbot/models/tag.py
+++ b/askbot/models/tag.py
@@ -177,7 +177,7 @@ class TagManager(BaseQuerySetManager):
"""temporary function that filters out the group tags"""
return self.all()
- def create(self, name = None, created_by = None, **kwargs):
+ def create(self, name=None, created_by=None, **kwargs):
"""Creates a new tag"""
if created_by.can_create_tags() or is_preapproved_tag_name(name):
status = Tag.STATUS_ACCEPTED