diff -r 06d158b5d24b -r a8ad7ebf5902 web/ldt/ldt_utils/views.py --- a/web/ldt/ldt_utils/views.py Mon Sep 13 12:56:36 2010 +0200 +++ b/web/ldt/ldt_utils/views.py Wed Sep 15 15:07:08 2010 +0200 @@ -369,30 +369,42 @@ form_status= 'none' if request.method =="POST": - form = ContentForm(request.POST) - if form.is_valid(): - content, created = Content.objects.get_or_create(iri_id = form.cleaned_data['iri_id'], defaults = form.cleaned_data) + content_form = ContentForm(request.POST, prefix="content") + media_form = MediaForm(request.POST, prefix="media") + media_valid = media_form.is_valid() + content_valid = content_form.is_valid() + if media_valid and content_valid : + media, created = Media.objects.get_or_create(src=media_form.cleaned_data['src'], defaults=media_form.cleaned_data) if not created: - form = ContentForm(request.POST, instance=content) - form.save() - else: - content.save() + for attribute in ('external_id', 'external_permalink', 'external_publication_url', 'external_src_url', 'media_creation_date', 'videopath', 'duration', 'description', 'title'): + setattr(media, attribute, media_form.cleaned_data.get(attribute)) + media.save() + + content_defaults = {'media': media } + content_defaults.update(content_form.cleaned_data) + content, created = Content.objects.get_or_create(iri_id = content_form.cleaned_data['iri_id'], defaults = content_defaults) + if not created: + for attribute in ('iriurl', 'title', 'description', 'duration', 'content_creation_date', 'tags', 'media'): + setattr(content, attribute, content_defaults[attribute]) + content.save() form_status = 'saved' - form = ContentForm(instance=content) + media_form = MediaForm(instance=media, prefix="media") + content_form = ContentForm(instance=content, prefix="content") else: form_status = 'error' else: form_status = 'empty' - form = ContentForm() + content_form = ContentForm(prefix="content") + media_form = MediaForm(prefix="media") - return form, form_status + return content_form, media_form, form_status def write_content(request): - content_form, form_status = write_content_base(request) + content_form, media_form, form_status = write_content_base(request) - return render_to_response('ldt/ldt_utils/create_content.html', {'content_form': content_form, 'form_status': form_status,'create_content_action': reverse(write_content)}, context_instance=RequestContext(request)) + return render_to_response('ldt/ldt_utils/create_content.html', {'content_form': content_form, 'media_form': media_form,'form_status': form_status,'create_content_action': reverse(write_content)}, context_instance=RequestContext(request)) \ No newline at end of file