diff options
Diffstat (limited to 'ishtar_common/wizards.py')
| -rw-r--r-- | ishtar_common/wizards.py | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 6e5216c6a..ad16ce0e1 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -127,6 +127,8 @@ class Wizard(NamedUrlWizardView):      wizard_templates = {}      filter_owns = {}      current_obj_slug = '' +    current_object_key = 'pk' +    ignore_init_steps = []      file_storage = default_storage      saved_args = {}  # argument to pass on object save @@ -200,6 +202,10 @@ class Wizard(NamedUrlWizardView):              templates = [self.wizard_confirm] + templates          return templates +    def get_ignore_init_steps(self): +        return ['{}-{}'.format(step, self.url_name) for step in +                self.ignore_init_steps] +      def get_context_data(self, form, **kwargs):          """Add previous, next and current steps to manage the wizard path"""          context = super(Wizard, self).get_context_data(form) @@ -254,7 +260,8 @@ class Wizard(NamedUrlWizardView):                              for key in v:                                  form_key = next_step + prefix + key                                  prefixed_values[form_key] = v[key] -                    if not prefixed_values: +                    if not prefixed_values and \ +                            next_step not in self.get_ignore_init_steps():                          # simulate a non empty data for form that might be                          # valid when empty                          prefixed_values['__non_empty_data'] = '' @@ -481,6 +488,9 @@ class Wizard(NamedUrlWizardView):              for k in dct:                  if k.startswith('pk'):                      continue +                if k not in obj.__class__._meta.get_all_field_names(): +                    print(k, obj.__class__._meta.get_all_field_names()) +                    continue                  # False set to None for images and files                  if not k.endswith('_id') and (                     isinstance(obj.__class__._meta.get_field(k), FileField) or @@ -914,7 +924,7 @@ class Wizard(NamedUrlWizardView):          current_obj = None          main_form_key = 'selec-' + self.url_name          try: -            idx = self.session_get_value(main_form_key, 'pk') +            idx = self.session_get_value(main_form_key, self.current_object_key)              idx = int(idx)              current_obj = self.model.objects.get(pk=idx)          except(TypeError, ValueError, ObjectDoesNotExist): | 
