diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-26 16:18:04 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-26 16:18:04 +0200 | 
| commit | de5b617a9b575911f09695028b5b650c53dcd6f6 (patch) | |
| tree | 62d76afbe9384df31c492b661da23a3d4d532ff6 /ishtar_common/wizards.py | |
| parent | 84e51699710888183ff2e771ef10c1eae654be93 (diff) | |
| download | Ishtar-de5b617a9b575911f09695028b5b650c53dcd6f6.tar.bz2 Ishtar-de5b617a9b575911f09695028b5b650c53dcd6f6.zip | |
Fix bad management of db errors on wizards (py3 dict)
Diffstat (limited to 'ishtar_common/wizards.py')
| -rw-r--r-- | ishtar_common/wizards.py | 17 | 
1 files changed, 13 insertions, 4 deletions
| diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 375004e67..f5f9d63dc 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -45,7 +45,8 @@ from django.utils.safestring import mark_safe  from ishtar_common import models  from ishtar_common.forms import CustomForm, reverse_lazy -from ishtar_common.utils import get_all_field_names, MultiValueDict +from ishtar_common.utils import get_all_field_names, MultiValueDict, \ +    put_session_message  logger = logging.getLogger(__name__) @@ -601,7 +602,7 @@ class Wizard(IshtarWizard):                  other_objs[dependant_item] = {}              other_objs[dependant_item][key] = dct.pop(k)          if obj: -            for k in dct: +            for k in list(dct.keys()):                  if k.startswith('pk'):                      continue                  if k not in get_all_field_names(obj.__class__): @@ -628,7 +629,11 @@ class Wizard(IshtarWizard):                  obj.full_clean()              except ValidationError as e:                  logger.warning(str(e)) -                return self.render(form_list[-1]) +                put_session_message( +                    self.request.session.session_key, +                    str(e), 'error' +                ) +                return self.render(list(form_list)[-1])              for dependant_item in other_objs:                  c_item = getattr(obj, dependant_item)                  if callable(c_item): @@ -705,7 +710,11 @@ class Wizard(IshtarWizard):                  obj.full_clean()              except ValidationError as e:                  logger.warning(str(e)) -                return self.render(form_list[-1]) +                put_session_message( +                    self.request.session.session_key, +                    str(e), 'error' +                ) +                return self.render(list(form_list)[-1])              if hasattr(obj, 'data'):                  obj.data = data              obj.save(**saved_args) | 
