add edition for content
authorymh <ymh.work@gmail.com>
Tue, 21 Sep 2010 13:06:17 +0200
changeset 67 90fd14c649bb
parent 66 f71bdd7b11f4
child 68 81043d1cf3c0
add edition for content
web/franceculture/config.py.tmpl
web/franceculture/locale/fr/LC_MESSAGES/django.mo
web/franceculture/templates/franceculture/partial/contentslist.html
web/ldt/ldt_utils/admin.py
web/ldt/ldt_utils/models.py
web/ldt/ldt_utils/urls.py
web/ldt/ldt_utils/views.py
web/ldt/locale/en/LC_MESSAGES/django.mo
web/ldt/locale/fr/LC_MESSAGES/django.mo
web/static/css/workspace.css
web/static/js/projectscontents.js
--- a/web/franceculture/config.py.tmpl	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/franceculture/config.py.tmpl	Tue Sep 21 13:06:17 2010 +0200
@@ -69,3 +69,5 @@
 
 LDT_MAX_SEARCH_NUMBER = 50
 LDT_JSON_DEFAULT_INDENT = 2
+
+EMPTY_MEDIA_EXTERNALID = None
Binary file web/franceculture/locale/fr/LC_MESSAGES/django.mo has changed
--- a/web/franceculture/templates/franceculture/partial/contentslist.html	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/franceculture/templates/franceculture/partial/contentslist.html	Tue Sep 21 13:06:17 2010 +0200
@@ -10,7 +10,7 @@
 		<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}">
 		    <td class="cellimg"><div class="cellimgdiv"><img src="{{MEDIA_URL}}/img/document_add.gif" title="{% trans 'create project' %}" alt="{% trans 'create project' %}" href="{% url ldt.ldt_utils.views.create_project content.iri_id %}" class="ldt_link_create"/></div></td>
 		    <td class="cellimg"><div class="cellimgdiv"><img  alt="{% trans 'preview media'%}" title="{% trans 'preview media'%}" src="{{MEDIA_URL}}/img/control_play.gif" href="{% url ldt.ldt_utils.views.index content.iri_id %}" class="ldt_link"/></div></td>
-		    <td class="contenttitle">{{ content.title }}</td>
+		    <td class="contenttitle"><a class="contenttitlelink" href="{% url ldt.ldt_utils.views.write_content id=content.id %}">{{ content.title }}</a></td>
 		</tr>
 	{% endfor %}
 		</tbody>
--- a/web/ldt/ldt_utils/admin.py	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/ldt/ldt_utils/admin.py	Tue Sep 21 13:06:17 2010 +0200
@@ -78,4 +78,5 @@
 
 
 admin.site.register(Content, ContentAdmin)
+admin.site.register(Media)
 admin.site.register(Author)
--- a/web/ldt/ldt_utils/models.py	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/ldt/ldt_utils/models.py	Tue Sep 21 13:06:17 2010 +0200
@@ -47,13 +47,10 @@
 class Content(models.Model):
     iri_id = models.CharField(max_length=1024, unique=True, default=generate_uuid, verbose_name=_('content.iri_id'))
     iriurl = models.CharField(max_length=1024, verbose_name=_('content.iriurl'))
-#    src = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.src'))
-#    videopath = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.videopath'))
     creation_date = models.DateTimeField(auto_now_add=True, verbose_name=_('content.creation_date'))
     update_date = models.DateTimeField(auto_now=True, verbose_name=_('content.update_date'))
     title = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.title'))
     description = models.TextField(null=True, blank=True, verbose_name=_('content.description'))
-#    external_id = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('content.external_id'))
     authors = models.ManyToManyField(Author, blank=True, verbose_name=_('content.authors'))
     duration = models.IntegerField(null=True, blank=True, verbose_name=_('content.duration'))
     content_creation_date = models.DateTimeField(null=True, blank=True, verbose_name=_('content.content_creation_date'))
@@ -169,26 +166,26 @@
        
     src = property(**src())
 
-    def externalid(): #@NoSelf
+    def external_id(): #@NoSelf
         doc = """simulate externalid""" #@UnusedVariable
        
         def fget(self):
             if self.media_obj is None:
                 empty_media = self.__get_empty_media()
                 if empty_media:
-                    return empty_media.externalid
+                    return empty_media.external_id
                 else: 
                     return None
             else:
-                return self.media_obj.externalid
+                return self.media_obj.external_id
            
         def fset(self, value):
             if self.media_obj is not None:
-                self.media_obj.externalid = value
+                self.media_obj.external_id = value
                       
         return locals()
        
-    externalid = property(**externalid())
+    external_id = property(**external_id())
 
         
         
--- a/web/ldt/ldt_utils/urls.py	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/ldt/ldt_utils/urls.py	Tue Sep 21 13:06:17 2010 +0200
@@ -31,6 +31,7 @@
     urlpatterns += patterns('ldt.ldt_utils',
         url(r'^space/content/$', 'views.list_content'),
         url(r'^space/content/create/$', 'views.write_content'),
+        url(r'^space/content/update/(?P<id>\d+)$', 'views.write_content'),
         url(r'^space/ldt/$', 'views.list_ldt'),
         url(r'^space/ldt/indexproject/(?P<id>.*)$', 'views.indexProject'),
         url(r'^space/ldt/init/(?P<method>.*)/(?P<url>.+)$', 'views.init', name='space_ldt_init'),
--- a/web/ldt/ldt_utils/views.py	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/ldt/ldt_utils/views.py	Tue Sep 21 13:06:17 2010 +0200
@@ -369,14 +369,19 @@
     return render_to_response('ldt/ldt_utils/copy_ldt.html', {'form':form, 'project':project}, context_instance=RequestContext(request))
 
 
-def write_content_base(request):
+def write_content_base(request, id=None):
+
+    if id:
+        instance_content = Content.objects.get(id=id)
+        instance_media = instance_content.media_obj 
+    else:
+        instance_content = None
+        instance_media = None
     
-    logging.debug("write_content_base")
     form_status= 'none'        
     if request.method =="POST":
-        logging.debug("write_content_base : POST")
-        content_form = ContentForm(request.POST, prefix="content")
-        media_form = MediaForm(request.POST, request.FILES, prefix="media")
+        content_form = ContentForm(request.POST, prefix="content", instance=instance_content)
+        media_form = MediaForm(request.POST, request.FILES, prefix="media", instance= instance_media)
         media_valid = media_form.is_valid()
         content_valid = content_form.is_valid()
         if media_valid and content_valid :
@@ -483,15 +488,15 @@
             form_status = 'error'
     else:
         form_status = 'empty'
-        content_form = ContentForm(prefix="content")
-        media_form = MediaForm(prefix="media")
+        content_form = ContentForm(prefix="content", instance=instance_content)
+        media_form = MediaForm(prefix="media", instance=instance_media)
     
     return content_form, media_form, form_status
 
 
-def write_content(request):
+def write_content(request, id=None):
     
-    content_form, media_form, form_status = write_content_base(request)
+    content_form, media_form, form_status = write_content_base(request, id)
     
     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))
 
Binary file web/ldt/locale/en/LC_MESSAGES/django.mo has changed
Binary file web/ldt/locale/fr/LC_MESSAGES/django.mo has changed
--- a/web/static/css/workspace.css	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/static/css/workspace.css	Tue Sep 21 13:06:17 2010 +0200
@@ -99,12 +99,17 @@
 	padding: 1px 10px 1px 93px;
 }
 
-tbody .contenttitle {
+.contenttitle {
 	width: 411px;
 	padding: 4px 10px 4px 5px;
 }
 
-tbody .projecttitle {
+.contenttitlelink,.contenttitlelink:link,.contenttitlelink:hover,.contenttitlelink:visited {
+	text-decoration: none;
+	color: #4F5155;
+}
+
+.projecttitle {
 	width: 367px;
 	padding: 4px 10px 4px 5px;	
 }
--- a/web/static/js/projectscontents.js	Tue Sep 21 09:38:45 2010 +0200
+++ b/web/static/js/projectscontents.js	Tue Sep 21 13:06:17 2010 +0200
@@ -168,6 +168,28 @@
 		  	});
 		}
 	});
+	
+	$('.contenttitlelink').nyroModal({
+	    type: 'iframe',
+	    forceType: 'iframe',
+	    height:500, 
+	    width:765,
+	    bgColor: 'rgb(239, 239, 239)',
+	    padding: 5,
+	    titleFromIframe: false,
+	    endRemove: function(elts, settings) {
+	    	searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url)
+		},
+	  	endShowContent: function(elts, settings) {
+		  	$('#nyroModalIframe', elts.content).load(function() {
+			  	var form_status = $(this).contents().find("#content_form_status").val(); 
+			  	if(form_status == 'saved') {
+			  		$.nyroModalRemove();
+			  	}
+		  	});
+		}
+	});
+
 
 }