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 | 7186a3adae39105729e31d0c7b594fcbcbdfd091 (patch) | |
tree | 62d76afbe9384df31c492b661da23a3d4d532ff6 /ishtar_common/wizards.py | |
parent | 271479c974a62d0c8cd2ba8f514ee935669bebcc (diff) | |
download | Ishtar-7186a3adae39105729e31d0c7b594fcbcbdfd091.tar.bz2 Ishtar-7186a3adae39105729e31d0c7b594fcbcbdfd091.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) |