summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2014-05-12 21:44:11 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2014-05-12 21:44:11 -0300
commitf8a4502cccb42f13cb1576e917c0aa418a42e904 (patch)
tree8b5b3ce5600e9eb03c78a55023c668a98c75cf8d
parent7bdd77c6c63164ec8773e883bff0df5ee1e1bb54 (diff)
downloadaskbot-f8a4502cccb42f13cb1576e917c0aa418a42e904.tar.gz
askbot-f8a4502cccb42f13cb1576e917c0aa418a42e904.tar.bz2
askbot-f8a4502cccb42f13cb1576e917c0aa418a42e904.zip
fixed a bug when question is posted with manually selected language
-rw-r--r--askbot/models/question.py7
-rw-r--r--askbot/models/tag.py8
-rw-r--r--askbot/models/user.py12
-rw-r--r--askbot/views/commands.py13
4 files changed, 28 insertions, 12 deletions
diff --git a/askbot/models/question.py b/askbot/models/question.py
index a7871a2d..c2df8b60 100644
--- a/askbot/models/question.py
+++ b/askbot/models/question.py
@@ -1310,7 +1310,7 @@ class Thread(models.Model):
def update_tags(
- self, tagnames = None, user = None, timestamp = None
+ self, tagnames=None, user=None, timestamp=None
):
"""
Updates Tag associations for a thread to match the given
@@ -1365,7 +1365,10 @@ class Thread(models.Model):
if added_tagnames:
#find reused tags
- reused_tags, new_tagnames = get_tags_by_names(added_tagnames)
+ reused_tags, new_tagnames = get_tags_by_names(
+ added_tagnames,
+ language_code=self.language_code
+ )
reused_tags.mark_undeleted()
added_tags = list(reused_tags)
diff --git a/askbot/models/tag.py b/askbot/models/tag.py
index 65678d29..b78f9ba1 100644
--- a/askbot/models/tag.py
+++ b/askbot/models/tag.py
@@ -15,13 +15,13 @@ def delete_tags(tags):
tag_ids = [tag.id for tag in tags]
Tag.objects.filter(id__in=tag_ids).delete()
-def get_tags_by_names(tag_names):
+def get_tags_by_names(tag_names, language_code=None):
"""returns query set of tags
and a set of tag names that were not found
"""
tags = Tag.objects.filter(
name__in=tag_names,
- language_code=get_language()
+ language_code=language_code
)
#if there are brand new tags, create them
#and finalize the added tag list
@@ -235,7 +235,9 @@ class TagManager(BaseQuerySetManager):
#load suggested tags
pre_suggested_tags = self.filter(
- name__in = tag_names, status = Tag.STATUS_SUGGESTED
+ name__in=tag_names,
+ status=Tag.STATUS_SUGGESTED,
+ language_code=language_code
)
#deal with suggested tags
diff --git a/askbot/models/user.py b/askbot/models/user.py
index bc8ec563..5501f30f 100644
--- a/askbot/models/user.py
+++ b/askbot/models/user.py
@@ -635,9 +635,13 @@ class Group(AuthGroup):
class BulkTagSubscriptionManager(BaseQuerySetManager):
def create(
- self, tag_names=None,
- user_list=None, group_list=None,
- tag_author=None, **kwargs
+ self,
+ tag_names=None,
+ user_list=None,
+ group_list=None,
+ tag_author=None,
+ language_code=None,
+ **kwargs
):
tag_names = tag_names or []
@@ -649,7 +653,7 @@ class BulkTagSubscriptionManager(BaseQuerySetManager):
if tag_names:
from askbot.models.tag import get_tags_by_names
- tags, new_tag_names = get_tags_by_names(tag_names)
+ tags, new_tag_names = get_tags_by_names(tag_names, language_code)
if new_tag_names:
assert(tag_author)
diff --git a/askbot/views/commands.py b/askbot/views/commands.py
index 947c08b9..52918ce8 100644
--- a/askbot/views/commands.py
+++ b/askbot/views/commands.py
@@ -740,12 +740,14 @@ def create_bulk_tag_subscription(request):
tag_names = form.cleaned_data['tags'].split(' ')
user_list = form.cleaned_data.get('users')
group_list = form.cleaned_data.get('groups')
+ lang = translation.get_language()
bulk_subscription = models.BulkTagSubscription.objects.create(
tag_names=tag_names,
tag_author=request.user,
user_list=user_list,
- group_list=group_list
+ group_list=group_list,
+ language_code=lang
)
return HttpResponseRedirect(reverse('list_bulk_tag_subscription'))
@@ -775,14 +777,19 @@ def edit_bulk_tag_subscription(request, pk):
group_ids = [user.id for user in form.cleaned_data['groups']]
bulk_subscription.groups.add(*group_ids)
- tags, new_tag_names = get_tags_by_names(form.cleaned_data['tags'].split(' '))
+ lang = translation.get_language()
+
+ tags, new_tag_names = get_tags_by_names(
+ form.cleaned_data['tags'].split(' '),
+ language_code=lang
+ )
tag_id_list = [tag.id for tag in tags]
for new_tag_name in new_tag_names:
new_tag = models.Tag.objects.create(
name=new_tag_name,
created_by=request.user,
- language_code=translation.get_language()
+ language_code=lang
)
tag_id_list.append(new_tag.id)