correct translation +some bug on update
authorymh <ymh.work@gmail.com>
Thu, 23 Sep 2010 13:45:21 +0200
changeset 71 fc1210bbb854
parent 69 fed56345e904
child 72 d672f33a3a67
correct translation +some bug on update
web/franceculture/locale/fr/LC_MESSAGES/django.mo
web/franceculture/locale/fr/LC_MESSAGES/django.po
web/franceculture/templates/franceculture/partial/contentslist.html
web/franceculture/templates/ldt/ldt_utils/create_content.html
web/franceculture/views.py
web/ldt/ldt_utils/models.py
web/ldt/ldt_utils/urls.py
web/ldt/ldt_utils/utils.py
web/ldt/ldt_utils/views.py
web/ldt/locale/en/LC_MESSAGES/django.mo
web/ldt/locale/en/LC_MESSAGES/django.po
web/ldt/locale/fr/LC_MESSAGES/django.mo
web/ldt/locale/fr/LC_MESSAGES/django.po
web/static/css/workspace.css
web/static/js/projectscontents.js
Binary file web/franceculture/locale/fr/LC_MESSAGES/django.mo has changed
--- a/web/franceculture/locale/fr/LC_MESSAGES/django.po	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/franceculture/locale/fr/LC_MESSAGES/django.po	Thu Sep 23 13:45:21 2010 +0200
@@ -30,11 +30,11 @@
 
 #: templates/base.html:46
 msgid "indexation projects"
-msgstr "Créer un projet"
+msgstr "Projets d'indexation"
 
 #: templates/base.html:47
 msgid "accounts"
-msgstr "Créer un compte"
+msgstr "Liste des comptes"
 
 #: templates/base.html:48
 msgid "Profiles"
@@ -86,7 +86,7 @@
 #: templates/franceculture/partial/contentslist.html:21
 #: templates/ldt/ldt_utils/create_content.html:61
 msgid "Create content"
-msgstr "Créer un compte"
+msgstr "Créer un Contenu"
 
 #: templates/franceculture/partial/projectslist.html:14
 msgid "Project published, click to unpublish"
@@ -109,7 +109,6 @@
 msgstr "Ouvrir le lecteur augmenté"
 
 #: templates/franceculture/partial/projectslist.html:31
-#, fuzzy
 msgid "Create project"
 msgstr "Créer un projet"
 
@@ -134,7 +133,6 @@
 
 
 #: templates/ldt/ldt_utils/create_ldt.html:23
-#, fuzzy
 msgid "Create your project"
 msgstr "Créer un projet"
 
--- a/web/franceculture/templates/franceculture/partial/contentslist.html	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/franceculture/templates/franceculture/partial/contentslist.html	Thu Sep 23 13:45:21 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"><a class="contenttitlelink" href="{% url ldt.ldt_utils.views.write_content id=content.id %}">{{ content.title }}</a></td>
+		    <td class="contenttitle"><a class="contenttitlelink" href="{% url ldt.ldt_utils.views.write_content iri_id=content.iri_id %}">{{ content.title }}</a></td>
 		</tr>
 	{% endfor %}
 		</tbody>
--- a/web/franceculture/templates/ldt/ldt_utils/create_content.html	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/franceculture/templates/ldt/ldt_utils/create_content.html	Thu Sep 23 13:45:21 2010 +0200
@@ -74,6 +74,8 @@
 		<div>{{ content_form.videopath.errors }}{{ content_form.videopath.label_tag }}{{content_form.videopath}}</div>
 		<div>{{ content_form.title.errors }}{{ content_form.title.label_tag }}{{content_form.title}}</div>
 		<div>{{ content_form.description.errors }}{{ content_form.description.label_tag }}{{content_form.description}}</div>
+		<div>{{ media_form.external_id.errors }}{{ media_form.external_id.label_tag }}{{media_form.external_id}}</div>
+		<div>{{ media_form.external_publication_url.errors }}{{ media_form.external_publication_url.label_tag }}{{media_form.external_publication_url}}</div>
 	</div>
 	<div id="contentright" class="span-9 last" >
 		<div>{{ content_form.external_id.errors }}{{ content_form.external_id.label_tag }}{{content_form.external_id}}</div>
--- a/web/franceculture/views.py	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/franceculture/views.py	Thu Sep 23 13:45:21 2010 +0200
@@ -49,6 +49,8 @@
 
 @login_required
 def contentsfilter(request, filter):
+    if filter == "_":
+        filter = ""
     if filter:
         content_list = Content.objects.filter(title__icontains=filter)
     else:
--- a/web/ldt/ldt_utils/models.py	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/ldt/ldt_utils/models.py	Thu Sep 23 13:45:21 2010 +0200
@@ -34,6 +34,26 @@
     title = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('title'))
     src = models.CharField(max_length=1024, unique=True, verbose_name=_('media.src'))
     
+    def stream_src():
+        
+        def fget(self):
+            res_src = self.src.rstrip()
+            if self.videopath and self.videopath.startswith("rtmp://"):
+                extension = res_src.split(".")[-1]
+                res_src = {
+                    'flv': lambda s: s,
+                    'mp3': lambda s: "%s:%s" %("mp3",res_src[:-4]),
+                    'mp4': lambda s: "%s:%s" %("mp4",res_src[:-4]),
+                    'f4v': lambda s: "%s:%s" %("mp4",res_src[:-4]),
+                }.get(extension, lambda s:s)(res_src)
+            return res_src
+    stream_src = property(**stream_src())    
+    
+    def save(self, *args, **kwargs):
+        super(Media, self).save(*args, **kwargs)
+        for content in self.content_set.all():
+            content.sync_iri_file()
+    
     def __unicode__(self):
         strings = []
         if self.title:
@@ -44,6 +64,7 @@
             strings.append(unicode(self.external_id))
         return "|".join(strings)
 
+
 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'))
@@ -71,9 +92,7 @@
         writer.deleteDocuments(lucene.Term("iri_id", self.iri_id))
         writer.commit()
         
-    #TODO: better manage the change in .iri name and error scenario (save in temp file + rename
-    def save(self, *args, **kwargs):
-        
+    def sync_iri_file(self):
         # create iri file if needed
         created = False
         try:
@@ -95,6 +114,11 @@
                     os.remove(iri_file_path)
             raise e
         
+        
+    #TODO: better manage the change in .iri name and error scenario (save in temp file + rename
+    def save(self, *args, **kwargs):
+        
+        self.sync_iri_file()        
         # update it 
         super(Content, self).save(*args, **kwargs)
     
@@ -122,6 +146,15 @@
             return None
             
     
+    def stream_src():
+        
+        def fget(self):
+            if self.media_obj is not None:
+                return self.media_obj.stream_src
+            else:
+                return None
+    stream_src = property(**stream_src())
+    
     def videopath(): #@NoSelf
         doc = """simulate videopath""" #@UnusedVariable
        
--- a/web/ldt/ldt_utils/urls.py	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/ldt/ldt_utils/urls.py	Thu Sep 23 13:45:21 2010 +0200
@@ -31,7 +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/content/update/(?P<iri_id>[\w-]+)$', '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/utils.py	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/ldt/ldt_utils/utils.py	Thu Sep 23 13:45:21 2010 +0200
@@ -315,7 +315,7 @@
     writer.startElement(u"medias")
 
     writer.startElement(u"media", attributes={u'id':u'video'})
-    writer.simpleElement(u'video', attributes={u'src':unicode(content.src),u'id':unicode(content.iri_id),u'dur':unicode(content.duration),u'begin':u'0'})
+    writer.simpleElement(u'video', attributes={u'src':unicode(content.stream_src),u'id':unicode(content.iri_id),u'dur':unicode(content.duration),u'begin':u'0'})
     writer.endElement(u"media")
 
     writer.startElement(u"media", attributes={u'id':u'tool'})
@@ -361,7 +361,7 @@
     
     if len(res) > 0:
         video_node = res[0]
-        video_node.set(u'src', unicode(content.src))
+        video_node.set(u'src', unicode(content.stream_src))
         video_node.set(u'dur', unicode(content.duration))
         video_node.set(u'id', unicode(content.iri_id))
     # update video
--- a/web/ldt/ldt_utils/views.py	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/ldt/ldt_utils/views.py	Thu Sep 23 13:45:21 2010 +0200
@@ -369,12 +369,14 @@
     return render_to_response('ldt/ldt_utils/copy_ldt.html', {'form':form, 'project':project}, context_instance=RequestContext(request))
 
 
-def write_content_base(request, id=None):
+def write_content_base(request, iri_id=None):
 
-    if id:
-        instance_content = Content.objects.get(id=id)
-        instance_media = instance_content.media_obj 
+    if iri_id:        
+        instance_content = Content.objects.get(iri_id=iri_id)
+        instance_media = instance_content.media_obj
+        logging.debug("write_content_base : valid form: for instance : media -> " + repr(instance_media) + " content : for instance : " + repr(instance_content) ) 
     else:
+        logging.debug("No iri_id")
         instance_content = None
         instance_media = None
     
@@ -384,6 +386,9 @@
         media_form = MediaForm(request.POST, request.FILES, prefix="media", instance= instance_media)
         media_valid = media_form.is_valid()
         content_valid = content_form.is_valid()
+        
+        logging.debug("write_content_base : valid form: for instance : " + repr(instance_media) + " -> media " + str(media_valid) +" content : for instance : " + repr(instance_content) + " : " + str(content_valid))
+        
         if media_valid and content_valid :
             
             # see if media must be created
@@ -392,8 +397,6 @@
 
             media_input_type = content_form.cleaned_data["media_input_type"]
             
-            logging.debug("write_content_base : POST media_input_type:" + media_input_type)
-            
             if media_input_type == "none":
                 media = None
             elif media_input_type == "link":
@@ -488,17 +491,28 @@
             form_status = 'error'
     else:
         form_status = 'empty'
-        content_form = ContentForm(prefix="content", instance=instance_content)
+        initial = { 'media_input_type':"link"}
+        
+        content_form = ContentForm(prefix="content", instance=instance_content, initial = initial )
         media_form = MediaForm(prefix="media", instance=instance_media)
+        
+        if instance_content is not None:
+            content_form.media_input_type = "link"
     
     return content_form, media_form, form_status
 
 
-def write_content(request, id=None):
+def write_content(request, iri_id=None):
+    
+    logging.debug("write_content : " + str(iri_id) )
+    content_form, media_form, form_status = write_content_base(request, iri_id)
     
-    content_form, media_form, form_status = write_content_base(request, id)
+    if iri_id:
+        create_content_action =  reverse(write_content, kwargs={'iri_id':iri_id})
+    else:
+        create_content_action =  reverse(write_content)
     
-    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))
+    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': create_content_action}, context_instance=RequestContext(request))
 
 
     
\ No newline at end of file
Binary file web/ldt/locale/en/LC_MESSAGES/django.mo has changed
--- a/web/ldt/locale/en/LC_MESSAGES/django.po	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/ldt/locale/en/LC_MESSAGES/django.po	Thu Sep 23 13:45:21 2010 +0200
@@ -29,9 +29,8 @@
 msgstr ""
 
 #: ldt_utils/forms.py:44
-#, fuzzy
 msgid "content.media_input_type"
-msgstr "Documentation"
+msgstr "Media source type"
 
 #: ldt_utils/forms.py:44
 msgid "file_upload"
@@ -85,7 +84,7 @@
 #: ldt_utils/models.py:31
 #, fuzzy
 msgid "media.duration"
-msgstr "Documentation"
+msgstr "duration"
 
 #: ldt_utils/models.py:32
 msgid "media.creator"
@@ -127,18 +126,16 @@
 msgstr ""
 
 #: ldt_utils/models.py:55
-#, fuzzy
 msgid "content.description"
-msgstr "Login"
+msgstr "description"
 
 #: ldt_utils/models.py:57
 msgid "content.authors"
-msgstr ""
+msgstr "authors"
 
 #: ldt_utils/models.py:58
-#, fuzzy
 msgid "content.duration"
-msgstr "Documentation"
+msgstr "duration"
 
 #: ldt_utils/models.py:209
 msgid "created by"
@@ -173,20 +170,18 @@
 
 #: ldt_utils/templates/ldt/ldt_utils/content_list.html:59
 msgid "Contents"
-msgstr ""
+msgstr "Contents"
 
 #: ldt_utils/templates/ldt/ldt_utils/content_list.html:63
-#, fuzzy
 msgid "Create new content"
-msgstr "Create new project"
+msgstr "Create new content"
 
 #: ldt_utils/templates/ldt/ldt_utils/content_list.html:66
 msgid "Content"
-msgstr ""
+msgstr "Content"
 
 #: ldt_utils/templates/ldt/ldt_utils/content_list.html:70
 #: ldt_utils/templates/ldt/ldt_utils/content_list.html:77
-#, fuzzy
 msgid "create project"
 msgstr "Create new project"
 
@@ -204,9 +199,8 @@
 msgstr "Copy"
 
 #: ldt_utils/templates/ldt/ldt_utils/create_content.html:22
-#, fuzzy
 msgid "Create content"
-msgstr "create account"
+msgstr "Create content"
 
 #: ldt_utils/templates/ldt/ldt_utils/create_ldt.html:11
 msgid "Create your project"
Binary file web/ldt/locale/fr/LC_MESSAGES/django.mo has changed
--- a/web/ldt/locale/fr/LC_MESSAGES/django.po	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/ldt/locale/fr/LC_MESSAGES/django.po	Thu Sep 23 13:45:21 2010 +0200
@@ -30,7 +30,7 @@
 
 #: ldt_utils/forms.py:44
 msgid "content.media_input_type"
-msgstr "Documentation"
+msgstr "Source du média"
 
 #: ldt_utils/forms.py:44
 msgid "file_upload"
--- a/web/static/css/workspace.css	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/static/css/workspace.css	Thu Sep 23 13:45:21 2010 +0200
@@ -45,7 +45,7 @@
 }
 
 .searchclear {
- 	/*visibility: hidden;*/
+ 	display: none;
 	float: right;
 }
 
@@ -155,6 +155,7 @@
 .searchajaxloader {
 	display: none;
 	float: right;
+	z-index: +1;
 }
 
 a.content_link_create:link, a.content_link_create:visited,
--- a/web/static/js/projectscontents.js	Tue Sep 21 13:07:04 2010 +0200
+++ b/web/static/js/projectscontents.js	Thu Sep 23 13:45:21 2010 +0200
@@ -130,6 +130,10 @@
 	target.attr('timer',setTimeout(function() {
 		target.next(".searchajaxloader").show();
 		target.nextAll(".searchclear").hide();
+		var realVal = target.realVal();
+		if(realVal.length == 0) {
+			realVal = "_";
+		}
 		url = url.replace('__FILTER__',escape(target.realVal()));
 		$(container_selector).load(url, null, function() {
 			target.next(".searchajaxloader").hide();
@@ -225,7 +229,7 @@
 	             box.toggleClass("searchfieldinput");
 	         }
 	     });
-	     
+	     	     
 	});
 
 	$.each(input_list_init, function(index, value) {
@@ -240,7 +244,6 @@
 		box.addClass("searchfieldinput");
 		box.blur();
 		box.keyup();
-		$(e.target).hide();
 	});
 	
 	$('.searchclear').each(function(i) {