web/ldt/ldt_utils/views.py
changeset 60 a8ad7ebf5902
parent 42 71c93982463f
child 62 39b2dab4f939
--- 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