diff options
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 |
commit | c341b4c3952fe1cdb678fe878d82df49f8d83623 (patch) | |
tree | 1c3b1cf060abbd5cc0b0cceec4e178d778b46ad5 /chimere/views.py | |
parent | ddb223e236be65cc4959b735f0396284ca4719f9 (diff) | |
download | Chimè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.py | 26 |
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 |