diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms.py | 10 | ||||
-rw-r--r-- | ishtar_common/models.py | 9 |
2 files changed, 13 insertions, 6 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 4bf9e4bd9..5ef65212e 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -669,8 +669,12 @@ class QAForm(CustomForm, ManageOldType): self.fields[k].rendered_value = getattr( self, "_get_" + k)(kwargs['data'][k]) elif hasattr(self.fields[k], "choices"): - self.fields[k].rendered_value = dict( - self.fields[k].choices)[int(kwargs['data'][k])] + values = [] + for v in kwargs['data'].getlist(k): + values.append( + dict(self.fields[k].choices)[int(v)]) + self.fields[k].rendered_value = mark_safe( + u" ; ".join(values)) if k not in self.REPLACE_FIELDS: self.fields[k].label = unicode(self.fields[k].label) + \ unicode(u" - append to existing") @@ -691,6 +695,8 @@ class QAForm(CustomForm, ManageOldType): else: value = field.related_model.objects.get(pk=value) if getattr(field, 'many_to_many', None): + if type(value) not in (list, tuple): + value = [value] for v in value: getattr(item, key).add(v) else: diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 0eb43e42b..a097951e0 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -653,9 +653,10 @@ class GeneralType(Cached, models.Model): if not cache_key: return cls._get_types(base_dct, instances, exclude=exclude, default=default) - vals = [v for v in cls._get_types( - base_dct, instances, exclude=exclude, - default=default)] + vals = [ + v for v in cls._get_types(base_dct, instances, exclude=exclude, + default=default) + ] cache.set(cache_key, vals, settings.CACHE_TIMEOUT) return vals @@ -669,7 +670,7 @@ class GeneralType(Cached, models.Model): if default: try: default = cls.objects.get(txt_idx=default) - yield(default.pk, _(unicode(default))) + yield (default.pk, _(unicode(default))) except cls.DoesNotExist: pass items = cls.objects.filter(**dct) |