--- 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