summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-03-07 21:29:55 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-03-07 21:29:55 +0100
commitc341b4c3952fe1cdb678fe878d82df49f8d83623 (patch)
tree1c3b1cf060abbd5cc0b0cceec4e178d778b46ad5 /chimere/views.py
parentddb223e236be65cc4959b735f0396284ca4719f9 (diff)
downloadChimère-c341b4c3952fe1cdb678fe878d82df49f8d83623.tar.bz2
Chimère-c341b4c3952fe1cdb678fe878d82df49f8d83623.zip
Work on multimedia file forms - create, modify and remove.
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/chimere/views.py b/chimere/views.py
index c76f5b8..0785998 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -121,10 +121,10 @@ def get_edit_page(redirect_url, item_cls, item_form):
if modified_item.count():
init_item = modified_item.all()[0]
+ init_multi = init_item.get_init_multi() if init_item else None
+ init_picture = init_item.get_init_picture() if init_item else None
# If the form has been submited
if request.method == 'POST':
- formset_multi = MultimediaFileFormSet()
- formset_picture = PictureFileFormSet()
inst = None
# allow to directly modify only if owner or superuser
if init_item and (request.user.is_superuser or \
@@ -133,8 +133,13 @@ def get_edit_page(redirect_url, item_cls, item_form):
inst = init_item
form = item_form(request.POST, request.FILES, instance=inst)
+ formset_multi = MultimediaFileFormSet(request.POST, request.FILES,
+ initial=init_multi, prefix='multimedia')
+ formset_picture = PictureFileFormSet(request.POST, request.FILES,
+ initial=init_picture, prefix='picture')
# All validation rules pass
- if form.is_valid():
+ if form.is_valid() and formset_multi.is_valid() and \
+ formset_picture.is_valid():
item = form.save()
# set the session key (to permit modifications)
item.submiter_session_key = request.session.session_key
@@ -152,6 +157,13 @@ def get_edit_page(redirect_url, item_cls, item_form):
if not item.status:
item.status = 'S'
item.save()
+
+ for f in formset_multi:
+ f.save(item)
+
+ for f in formset_picture:
+ f.save(item)
+
notifySubmission(item)
response_dct = get_base_response(area_name)
return redirect(redirect_url + '-item',
@@ -160,10 +172,10 @@ def get_edit_page(redirect_url, item_cls, item_form):
None
else:
form = item_form(instance=init_item)
- init_multi = init_item.get_init_multi() if init_item else None
- formset_multi = MultimediaFileFormSet(initial=init_multi)
- init_picture = init_item.get_init_picture() if init_item else None
- formset_picture = PictureFileFormSet(initial=init_picture)
+ formset_multi = MultimediaFileFormSet(initial=init_multi,
+ prefix='multimedia')
+ formset_picture = PictureFileFormSet(initial=init_picture,
+ prefix='picture')
return None, (item_id, init_item, response_dct, form, formset_multi,
formset_picture)
return func