Merge
authorAnthony Ly <anthonyly.com@gmail.com>
Tue, 25 Jun 2013 10:46:42 +0200
changeset 165 b4377a741714
parent 164 0af17a6cce42 (current diff)
parent 163 3a7a605dc886 (diff)
child 166 1fb6cb226740
child 174 a1656f70f1c9
Merge
--- a/.hgtags	Tue Jun 25 10:46:21 2013 +0200
+++ b/.hgtags	Tue Jun 25 10:46:42 2013 +0200
@@ -10,3 +10,6 @@
 de72873a5ddb543fc851cd41342344ba9c396203 V00.01.05
 62e1c79caec237e194aa842aee81613833c059c4 V00.01.06
 e862bd9f92d316dfac53e7092b002e0c368bc721 V00.01.07
+cd94965a1a01544fbf543a4c92136f7e132d8748 V00.01.08
+dacce50303f556f66d53150ddc2275171643ab60 V00.01.09
+2b65085d0ed02e32a2eedf706fbaeacf472b871a V00.01.10
--- a/src/metadatacomposer/__init__.py	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/__init__.py	Tue Jun 25 10:46:42 2013 +0200
@@ -1,4 +1,4 @@
-VERSION = (0, 1, 7, "final", 0)
+VERSION = (0, 1, 10, "final", 0)
 
 
 def get_version():
--- a/src/metadatacomposer/static/metadatacomposer/css/style.css	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/static/metadatacomposer/css/style.css	Tue Jun 25 10:46:42 2013 +0200
@@ -146,3 +146,4 @@
     background: url(../img/loader.gif) center no-repeat;
     background-size: 25px 25px;
 }
+.user-login-logout{float:right; font-size:12px;}
--- a/src/metadatacomposer/static/metadatacomposer/css/styles_player.css	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/static/metadatacomposer/css/styles_player.css	Tue Jun 25 10:46:42 2013 +0200
@@ -628,7 +628,7 @@
 }
 
 .timeline {
-    background: #303030; height: 10px; position: relative; cursor: pointer;
+    background: #303030; height: 10px; position: relative; cursor: pointer; overflow: hidden;
 }
 
 .annotation-onscreen .timeline {
@@ -815,4 +815,12 @@
     background: #B8155F; display: none;
 }
 
+.media-duration, .media-position, .time-at-mouse {
+    text-align: right; color: #e0e0e0; line-height: 10px; font-size: 10px; position: absolute; right: 2px; top: 0;
+}
+
+.time-at-mouse {
+    color: #db8aaf; padding-right: 1px;
+}
+
 /* */
--- a/src/metadatacomposer/static/metadatacomposer/js/player.js	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/static/metadatacomposer/js/player.js	Tue Jun 25 10:46:42 2013 +0200
@@ -44,7 +44,9 @@
     function showAtMousePos(evt) {
         var pos = evt.pageX - $(".timeline").offset().left;
         $(".mouse-progress-indicator").css("left", pos);
-        return pos;
+        var t = new IriSP.Model.Time(pos * myMedia.duration / $(".timeline").width());
+        $(".time-at-mouse").text(t);
+        return t;
     }
     
     $(".timeline").mouseenter(function(e) {
@@ -54,7 +56,7 @@
         $(".mouse-progress-indicator").hide();
     }).mousemove(showAtMousePos)
     .click(function(e) {
-        myMedia.setCurrentTime( showAtMousePos(e) * myMedia.duration / $(".timeline").width());
+        myMedia.setCurrentTime( showAtMousePos(e) );
     });
     
     var tags = myProject.getTags().sortBy(function(t) {
@@ -522,8 +524,6 @@
                     case "html":
                         annotationDiv.find(".text-contents").html(text);
                         
-                        //annotationDiv.find(".text-contents [style]").attr("style","");
-
                         var ps = annotationDiv.find(".text-contents>p"),
                             groups = [],
                             last, group;
@@ -659,10 +659,14 @@
     $(window).resize(repositionElements);
     
     $(document).keydown(function(e) {
-        if (e.keyCode === 122) {
+        if (e.keyCode === 122) { // F11
             fullScreen();
             return false;
         }
+        if (e.keyCode === 32) { // Space
+            myMedia[myMedia.paused ? "play" : "pause"]();
+            return false;
+        }
     });
       
 });
--- a/src/metadatacomposer/templates/metadatacomposer_home.html	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/templates/metadatacomposer_home.html	Tue Jun 25 10:46:42 2013 +0200
@@ -37,6 +37,14 @@
                         <ul class="breadcrumb nav-bar">
                         <li><a href="{% url 'composer_project_list' branding=branding %}"><i class="icon-file"></i> Projets</a> <span class="divider">/</span></li>
                         <li><a href="{% url 'composer_resource_list' branding=branding %}"><i class="icon-folder-close-alt"></i>Ressources</a></li>
+                        <li class="user-login-logout">
+                        {% if user.is_authenticated %}
+			            <a href="{% url 'composer_project_list' branding=branding %}">{{user.username}}</a>
+			            |&nbsp;<a href="{% url 'ldt.user.views.logout_view' %}" title="{% trans "Log out" %}">{% trans "Log out" %}</a>
+			            {% else %}
+			            <a href="{% url 'auth_login' %}?next={% url 'composer_home' branding=branding %}">{% trans "Log in" %}</a>
+			            {% endif %}
+			            </li>
                         </ul>
                     </div>
                 </div>
--- a/src/metadatacomposer/templates/partial/metadatacomposer_partial_player.html	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/templates/partial/metadatacomposer_partial_player.html	Tue Jun 25 10:46:42 2013 +0200
@@ -21,9 +21,14 @@
             </div>
             <div class="timelines">
                 <div class="timeline">
-                    <div class="elapsed"></div>
+                    <div class="media-duration">00:00</div>
+                    <div class="elapsed">
+                        <div class="media-position">00:00</div>
+                    </div>
                     <div class="progress-indicator"></div>
-                    <div class="mouse-progress-indicator"></div>
+                    <div class="mouse-progress-indicator">
+                        <div class="time-at-mouse">00:00</div>
+                    </div>
                 </div>
                 <div class="chapters-bar">
                     <ul class="chapters-list"></ul>
--- a/src/metadatacomposer/templates/partial/resource_content_list.html	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/templates/partial/resource_content_list.html	Tue Jun 25 10:46:42 2013 +0200
@@ -23,7 +23,7 @@
                                         <td>
                                             <ul>
                                               {% for p in res.projects %}
-                                                <li><a href="">{{ p.title }}</a></li>
+                                                <li><a href="{% url 'composer_preview_player' branding=branding ldt_id=p.ldt_id %}">{{ p.title }}</a></li>
                                               {% endfor %}
                                             </ul>
                                         </td>
--- a/src/metadatacomposer/views.py	Tue Jun 25 10:46:21 2013 +0200
+++ b/src/metadatacomposer/views.py	Tue Jun 25 10:46:42 2013 +0200
@@ -51,7 +51,7 @@
     def get(self, request, branding="iri", **kwargs):
         self.branding = branding
         
-        projects = Project.safe_objects.filter(owner=request.user).order_by('-modification_date')[:6]
+        projects = Project.safe_objects.filter(owner=request.user).exclude(title__startswith='front').order_by('-modification_date')[:6]
         images = Image.objects.order_by('-modification_date')[:6]
         contents = Content.safe_objects.order_by('-update_date')[:6]
         
@@ -75,7 +75,7 @@
         self.branding = branding
         page = request.GET.get("page") or 1
         
-        projects = Project.safe_objects.prefetch_related("contents").order_by('-modification_date').filter(owner=request.user)
+        projects = Project.safe_objects.prefetch_related("contents").exclude(title__startswith='front').order_by('-modification_date').filter(owner=request.user)
         nb = getattr(settings, 'METADATACOMPOSER_ELEMENTS_PER_PAGE', 9)
         if page=="x":
             nb = projects.count()
@@ -496,7 +496,6 @@
     def get_template_names(self):
         return "metadatacomposer_preview_player.html"
     
-    @method_decorator(login_required)
     @method_decorator(never_cache)
     def dispatch(self, *args, **kwargs):
         return super(MetadataComposerPreviewPlayer, self).dispatch(*args, **kwargs)
@@ -556,12 +555,12 @@
                                          description='', 
                                          set_icon=False)
         # Set project state to "published" and save
-        project.state = 2
-        project.save()
         assign('view_project', u, project)
         assign('change_project', u, project)
+        project.publish()
         # Since the project is published by default, we assign permission for the everyone group
-        assign('ldt_utils.view_project', Group.objects.get(name=settings.PUBLIC_GROUP_NAME), project)
+        #assign('ldt_utils.view_project', Group.objects.get(name=settings.PUBLIC_GROUP_NAME), project)
+        #assign('view_project', Group.objects.get(name=settings.PUBLIC_GROUP_NAME), project)
 
         # Redirect to project edition in composer interface
         return redirect('composer_edit', branding=branding, ldt_id=project.ldt_id)