summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-03-09 02:44:53 -0500
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-03-09 02:44:53 -0500
commit747b8ba514511523f12c551d3c2492586767cd4d (patch)
treedbcbfcc263db199bcc1bb8acde3a84be44a20290
parent4ec71727db6210e020ba783febbdc7e20a769115 (diff)
downloadaskbot-747b8ba514511523f12c551d3c2492586767cd4d.tar.gz
askbot-747b8ba514511523f12c551d3c2492586767cd4d.tar.bz2
askbot-747b8ba514511523f12c551d3c2492586767cd4d.zip
made tags on the questions save in the same order as entered
-rw-r--r--askbot/forms.py18
-rw-r--r--askbot/skins/default/media/js/utils.js11
2 files changed, 22 insertions, 7 deletions
diff --git a/askbot/forms.py b/askbot/forms.py
index d2369c69..223574c6 100644
--- a/askbot/forms.py
+++ b/askbot/forms.py
@@ -170,23 +170,29 @@ class TagNamesField(forms.CharField):
entered_tags.append(tag)
#normalize character case of tags
+ cleaned_entered_tags = list()
if askbot_settings.FORCE_LOWERCASE_TAGS:
- entered_tags = set([name.lower() for name in entered_tags])
+ #a simpler way to handle tags - just lowercase thew all
+ for name in entered_tags:
+ lowercased_name = name.lower()
+ if lowercased_name not in cleaned_entered_tags:
+ cleaned_entered_tags.append(lowercased_name)
else:
#make names of tags in the input to agree with the database
- cleaned_entered_tags = set()
for entered_tag in entered_tags:
try:
#looks like we have to load tags one-by one
+ #because we need tag name cases to be the same
+ #as those stored in the database
stored_tag = models.Tag.objects.get(
name__iexact = entered_tag
)
- cleaned_entered_tags.add(stored_tag.name)
+ if stored_tag.name not in cleaned_entered_tags:
+ cleaned_entered_tags.append(stored_tag.name)
except models.Tag.DoesNotExist:
- cleaned_entered_tags.add(entered_tag)
- entered_tags = list(cleaned_entered_tags)
+ cleaned_entered_tags.append(entered_tag)
- return u' '.join(entered_tags)
+ return u' '.join(cleaned_entered_tags)
class WikiField(forms.BooleanField):
def __init__(self, *args, **kwargs):
diff --git a/askbot/skins/default/media/js/utils.js b/askbot/skins/default/media/js/utils.js
index 2d59abd2..2b95113a 100644
--- a/askbot/skins/default/media/js/utils.js
+++ b/askbot/skins/default/media/js/utils.js
@@ -8,7 +8,16 @@ var copyAltToTitle = function(sel){
};
var getUniqueWords = function(value){
- return $.unique($.trim(value).split(/\s+/));
+ var words = $.trim(value).split(/\s+/);
+ var uniques = new Object();
+ var out = new Array();
+ $.each(words, function(idx, item){
+ if (!(item in uniques)){
+ uniques[item] = 1;
+ out.push(item);
+ };
+ });
+ return out;
};
var showMessage = function(element, msg, where) {