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