summaryrefslogtreecommitdiff
path: root/ishtar_common/wizards.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/wizards.py')
-rw-r--r--ishtar_common/wizards.py32
1 files changed, 26 insertions, 6 deletions
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index e30d33711..c01ef5301 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -22,7 +22,7 @@ import datetime
from django.conf import settings
from django.contrib.formtools.wizard.storage import get_storage
from django.contrib.formtools.wizard.views import NamedUrlWizardView, \
- normalize_name
+ normalize_name
from django.core.exceptions import ObjectDoesNotExist
from django.core.files.images import ImageFile
from django.db.models.fields.files import FileField
@@ -34,6 +34,7 @@ from django.utils.datastructures import MultiValueDict as BaseMultiValueDict
from django.utils.translation import ugettext_lazy as _
import models
+
class MultiValueDict(BaseMultiValueDict):
def get(self, *args, **kwargs):
v = super(MultiValueDict, self).getlist(*args, **kwargs)
@@ -45,6 +46,7 @@ class MultiValueDict(BaseMultiValueDict):
v = super(MultiValueDict, self).get(*args, **kwargs)
return v
+
class Wizard(NamedUrlWizardView):
model = None
label = ''
@@ -614,13 +616,18 @@ class Wizard(NamedUrlWizardView):
request = self.request
storage = self.storage
test = storage.prefix in request.session \
- and 'step_data' in request.session[storage.prefix] \
- and form_key in request.session[storage.prefix]['step_data']
+ and 'step_data' in request.session[storage.prefix] \
+ and form_key in request.session[storage.prefix]['step_data']
if not key or not test:
return test
+ if multi:
+ # only check if the first field is available
+ key = key.startswith(form_key) and key or \
+ form_key + '-0-' + key
+ if key in request.session[storage.prefix]['step_data'][form_key]:
+ return True
key = key.startswith(form_key) and key or \
- not multi and form_key + '-' + key or \
- form_key + '-0-' + key #only check if the first field is available
+ form_key + '-' + key
return key in request.session[storage.prefix]['step_data'][form_key]
@classmethod
@@ -646,7 +653,9 @@ class Wizard(NamedUrlWizardView):
def session_get_value(self, form_key, key, multi=False):
"""Get the value of a specific form"""
+ print(form_key, key, multi)
if not self.session_has_key(form_key, key, multi):
+ print('OUT!')
return
request = self.request
storage = self.storage
@@ -786,6 +795,7 @@ class Wizard(NamedUrlWizardView):
initial.append(vals)
return initial
+
class SearchWizard(NamedUrlWizardView):
model = None
label = ''
@@ -816,6 +826,7 @@ class SearchWizard(NamedUrlWizardView):
'wizard_label':self.label})
return context
+
class DeletionWizard(Wizard):
def __init__(self, *args, **kwargs):
if (not hasattr(self, 'fields') or not self.fields) and \
@@ -865,6 +876,7 @@ class DeletionWizard(Wizard):
return render_to_response('ishtar/wizard/wizard_delete_done.html', {},
context_instance=RequestContext(self.request))
+
class ClosingWizard(Wizard):
# "close" an item
# to be define in the overloaded class
@@ -915,24 +927,30 @@ class ClosingWizard(Wizard):
return render_to_response('ishtar/wizard/wizard_closing_done.html', {},
context_instance=RequestContext(self.request))
+
class PersonWizard(Wizard):
model = models.Person
+
class PersonModifWizard(PersonWizard):
modification = True
+
class PersonDeletionWizard(DeletionWizard):
model = models.Person
fields = model.TABLE_COLS
wizard_templates = {
'final-person_deletion':'ishtar/wizard/wizard_person_deletion.html'}
+
class OrganizationWizard(Wizard):
model = models.Organization
+
class OrganizationModifWizard(OrganizationWizard):
modification = True
+
class OrganizationDeletionWizard(DeletionWizard):
model = models.Organization
fields = model.TABLE_COLS
@@ -940,6 +958,7 @@ class OrganizationDeletionWizard(DeletionWizard):
'final-organization_deletion':\
'ishtar/wizard/wizard_organization_deletion.html'}
+
class AccountWizard(Wizard):
model = models.Person
def get_formated_datas(self, forms):
@@ -1023,6 +1042,7 @@ class AccountWizard(Wizard):
form.is_hidden = False
return form
+
class SourceWizard(Wizard):
model = None
def get_extra_model(self, dct, form_list):