diff options
author | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-06-26 19:38:40 (GMT) |
---|---|---|
committer | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-06-26 20:48:44 (GMT) |
commit | 34a0ae4ae48d6df490eeb581a7f072545b3595d5 (patch) | |
tree | 7e3d122543006c25274296368d547546ad9001e7 | |
parent | e1462211a01709594bb5bed6ffa758380c72ec9a (diff) |
BugFix: wrong validation in dependence creation
-rw-r--r-- | webapp/polls/models.py | 35 | ||||
-rw-r--r-- | webapp/polls/views.py | 6 |
2 files changed, 28 insertions, 13 deletions
diff --git a/webapp/polls/models.py b/webapp/polls/models.py index b264b08..ba8f9a5 100644 --- a/webapp/polls/models.py +++ b/webapp/polls/models.py @@ -675,15 +675,23 @@ class Field(AbstractObject, ComponentStructure): self.widget_type = widget_type - def __get_field_offset(self, structure): - field_count = 0 - offset = 0 + def get_field_offset(self, structure): + inc_count = 0 + + stop = False for group in structure.groups: for field in group.fields: - offset = field_count + int(field.order) if field.name == self.name: - return offset - field_count = len(group.fields) + stop = True + break + else: + inc_count += 1 + + if stop: + break + + offset = inc_count + return offset def show_dependence(self): @@ -727,7 +735,7 @@ class Field(AbstractObject, ComponentStructure): self.dependence.get('values', {})) if len(options) and has_dependence: prev_options = [] - field_offset = self.__get_field_offset(temporary_structure) + field_offset = self.get_field_offset(temporary_structure) for i in range(0, field_offset): prev_options.extend(options.get(str(i), [])) prev_options_ids = [opt.id for opt in prev_options] @@ -740,7 +748,11 @@ class Field(AbstractObject, ComponentStructure): # TODO: Replace ('OR', 'AND', '') for CONSTANT valid_value = value and value not in ('OR', 'AND', '') if valid_value and value not in prev_options_ids: - msg.append(str(value)) + try: + msg.append(str(value)) + except: + msg.append( + "'%s'" % value.encode('ascii', 'ignore')) if len(msg): self.errors += [ @@ -928,13 +940,10 @@ class Structure(AbstractObject, ComponentStructure): def get_enumerate_options(self, order=None): options = {} - field_count = 0 - order = 0 for group in self.groups: for field in group.fields: - order = field_count + int(field.order) - options.update({"%s" % order: field.options}) - field_count = len(group.fields) + field_offset = field.get_field_offset(self) + options.update({"%s" % field_offset: field.options}) return options diff --git a/webapp/polls/views.py b/webapp/polls/views.py index 10ed773..0e62bcd 100644 --- a/webapp/polls/views.py +++ b/webapp/polls/views.py @@ -255,6 +255,12 @@ class StructureFormView(TemplateView): else: structure.save_image_options(tmp=True) context.update({'errors': structure.errors}) + messages.add_message( + self.request, + messages.ERROR, + u'Hubo errores de validaciĆ³n, ' + 'para guardar asegurese de corregirlos.' + ) context.update({'structure': structure}) return self.render_to_response(context) |