prepare 0.8.3; minor fixes

This commit is contained in:
Artur Barseghyan 2016-10-18 03:20:41 +02:00
parent 8a9f53b434
commit f3ef3f0fac
4 changed files with 56 additions and 3 deletions

View file

@ -15,6 +15,12 @@ are used for versioning (schema follows below):
0.3.4 to 0.4).
- All backwards incompatible changes are mentioned in this document.
0.8.3
-----
2016-10-18
- Minor fixes.
0.8.2
-----
2016-10-18

View file

@ -138,7 +138,7 @@ for locale_dir in locale_dirs:
for f
in os.listdir(locale_dir)]
version = '0.8.2'
version = '0.8.3'
install_requires = [
'Pillow>=2.0.0',

View file

@ -1,6 +1,6 @@
__title__ = 'django-fobi'
__version__ = '0.8.2'
__build__ = 0x000059
__version__ = '0.8.3'
__build__ = 0x00005a
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2014-2016 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'

View file

@ -6,6 +6,8 @@ import logging
import simplejson as json
from collections import OrderedDict
from django.db import models, IntegrityError
from django.contrib import messages
from django.contrib.auth.decorators import login_required, permission_required
@ -1413,6 +1415,7 @@ class FormWizardView(DynamicSessionWizardView):
.select_related('form_entry')
]
form_list = []
form_entry_mapping = {}
wizard_form_element_entries = []
for creation_counter, form_entry in enumerate(form_entries):
# Using frozen queryset to minimize query usage
@ -1427,6 +1430,7 @@ class FormWizardView(DynamicSessionWizardView):
form_list.append(
(form_entry.slug, form_cls)
)
form_entry_mapping[form_entry.slug] = form_entry
if 0 == len(form_list):
raise Http404(
@ -1439,8 +1443,51 @@ class FormWizardView(DynamicSessionWizardView):
'template_name': theme.view_form_wizard_entry_template,
'form_wizard_entry': form_wizard_entry,
'wizard_form_element_entries': wizard_form_element_entries,
'form_entry_mapping': form_entry_mapping,
}
def render_done(self, form, **kwargs):
"""Render done.
This method gets called when all forms passed. The method should also
re-validate all steps to prevent manipulation. If any form fails to
validate, `render_revalidation_failure` should get called.
If everything is fine call `done`.
"""
final_forms = OrderedDict()
# walk through the form list and try to validate the data again.
for form_key in self.get_form_list():
form_obj = self.get_form(
step=form_key,
data=self.storage.get_step_data(form_key),
files=self.storage.get_step_files(form_key)
)
if not form_obj.is_valid():
return self.render_revalidation_failure(form_key,
form_obj,
**kwargs)
# Fire plugin processors
form_entry = self.form_entry_mapping[form_key]
form_obj = submit_plugin_form_data(
form_entry=form_entry,
request=self.request,
form=form_obj
)
final_forms[form_key] = form_obj
# render the done view and reset the wizard before returning the
# response. This is needed to prevent from rendering done with the
# same data twice.
done_response = self.done(final_forms.values(),
form_dict=final_forms,
**kwargs)
self.storage.reset()
return done_response
def done(self, form_list, **kwargs):
"""Done."""
try: