From: qw3rty Date: Mon, 14 Jun 2010 14:37:29 +0000 (+0000) Subject: issue - 316 X-Git-Tag: live~714 X-Git-Url: https://git.openstreetmap.org./osqa.git/commitdiff_plain/b25b1df19ea98a93e2c175b265e15d625ad1bc65 issue - 316 repeating tags are not considered when we test for the minimum and maximum number of tags. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@418 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- diff --git a/forum/forms/qanda.py b/forum/forms/qanda.py index b4b55ce..f38a382 100644 --- a/forum/forms/qanda.py +++ b/forum/forms/qanda.py @@ -78,14 +78,16 @@ class TagNamesField(forms.CharField): data = value.strip().lower() split_re = re.compile(r'[ ,]+') - list = split_re.split(data) + list = {} + for tag in split_re.split(data): + list[tag] = tag if len(list) > settings.FORM_MAX_NUMBER_OF_TAGS or len(list) < settings.FORM_MIN_NUMBER_OF_TAGS: raise forms.ValidationError(_('please use between %(min)s and %(max)s tags') % { 'min': settings.FORM_MIN_NUMBER_OF_TAGS, 'max': settings.FORM_MAX_NUMBER_OF_TAGS}) list_temp = [] tagname_re = re.compile(r'^[\w+\.-]+$', re.UNICODE) - for tag in list: + for key,tag in list: if len(tag) > settings.FORM_MAX_LENGTH_OF_TAG or len(tag) < settings.FORM_MIN_LENGTH_OF_TAG: raise forms.ValidationError(_('please use between %(min)s and %(max)s characters in you tags') % { 'min': settings.FORM_MIN_LENGTH_OF_TAG, 'max': settings.FORM_MAX_LENGTH_OF_TAG}) if not tagname_re.match(tag):