clean import and tag management
authorcavaliet
Tue, 11 Mar 2014 14:42:13 +0100
changeset 14 00a8a44543ab
parent 13 b425f929987d
child 15 acf4460a8074
clean import and tag management
src/spel/management/commands/loadspeldata.py
src/spel/static/spel/css/spel.css
src/spel/templates/partial/spel_annotations.html
src/spel/templates/partial/spel_chapters.html
src/spel/templatetags/spel_tags.py
--- a/src/spel/management/commands/loadspeldata.py	Mon Mar 10 18:26:42 2014 +0100
+++ b/src/spel/management/commands/loadspeldata.py	Tue Mar 11 14:42:13 2014 +0100
@@ -94,7 +94,7 @@
                                                          iriurl=ctt_id+u"/"+ctt_id+u".iri", 
                                                          media_obj=media, 
                                                          title=json_data["meta"]["dc:title"], 
-                                                         duration=json_data["medias"][0]["meta"]["duration"],
+                                                         duration=int(json_data["medias"][0]["meta"]["duration"]),
                                                          content_creation_date = json_data["meta"]["dc:created"])
                         content.is_public = True
                         # Get content front projet
@@ -120,16 +120,18 @@
                         tags_label_id = {}
                         for a in json_data["annotations"]:
                             # "content": {  "data": { "modalites_sceniques": "costumes,décors",... } }
-                            if type(a["content"]["data"]) == type(dict()):
+                            if "content" in a and "data" in a["content"] and type(a["content"]["data"]) == type(dict()):
                                 annot_tags = []
                                 desc = ""
+                                title = ""
                                 # Build tags
                                 for k,v in a["content"]["data"].iteritems():
-                                    if k!="commentaire" and k!="description":
+                                    if k!="commentaire" and k!="description" and k!="titre":
                                         v = v.split(",")
                                         for val in v:
-                                            tag_label = k + u": " + val.strip()
-                                            if val.strip()!="":
+                                            val = val.strip()
+                                            tag_label = k + u": " + val
+                                            if val!="":
                                                 if not tag_label in tags_label_id:
                                                     tags_label_id[tag_label] = generate_uuid()
                                                     tags_id_label[tags_label_id[tag_label]] = tag_label
@@ -137,8 +139,10 @@
                                                     #logger.debug(tags_label_id[tag_label] + " = " + tags_id_label[tags_label_id[tag_label]])
                                                     proj_data["tags"].append({"meta": { "dc:title": tag_label }, "id": tags_label_id[tag_label] })
                                                 annot_tags.append({"id-ref": tags_label_id[tag_label] })
-                                    else:
+                                    elif k=="commentaire" or k=="description":
                                         desc = v
+                                    elif k=="titre":
+                                        title = v
                                 # Build annotation with needed fields
                                 proj_data["annotations"].append({
                                     "content": {
@@ -147,7 +151,7 @@
 #                                         "img": {
 #                                             "src": ""
 #                                         },
-                                        "title": a["id"],
+                                        "title": title,
 #                                        "polemics": [ ],
                                     },
                                     "begin": a["begin"],
--- a/src/spel/static/spel/css/spel.css	Mon Mar 10 18:26:42 2014 +0100
+++ b/src/spel/static/spel/css/spel.css	Tue Mar 11 14:42:13 2014 +0100
@@ -49,4 +49,10 @@
   /*border-style: solid none;*/
   border-width: 1px 0;
   margin: 3px 0;
+}
+.searched-annot .list-inline {
+    margin-left: 0px;
+}
+.annot-tag{
+	background-color: #FFF;
 }
\ No newline at end of file
--- a/src/spel/templates/partial/spel_annotations.html	Mon Mar 10 18:26:42 2014 +0100
+++ b/src/spel/templates/partial/spel_annotations.html	Tue Mar 11 14:42:13 2014 +0100
@@ -4,13 +4,18 @@
 <p><span class="nb-annotations-found">{{ nb_annotations }}</span> annotation(s) trouvée(s) sur {{ nb_contents }} vidéo(s)</p>
 {% for res in results %}
   {% for s in res.list %}
-<div class="searched-annot" data-type-inter="{{ s.tags|get_tags:'type_inter' }}">
+  {% with s.tags|get_tags:"type_inter" as tag_list %}
+<div class="searched-annot" data-type-inter="{{ tag_list|join:', ' }}">
 <p>{{ res.content.title }} / {{ s.start_ts|str_duration }} - {{ s.start_ts|add:s.duration|str_duration }} / {{ s.cutting_id }}</p>
-<p>{{ s.tags|get_tags:"modscen_and_perso" }}</p>
+<p class="small">{{ s.tags|get_tags:"modscen_and_perso"|join:', ' }}</p>
 <hr/>
-<p>{{ s.tags|get_tags:"ref_text_2" }}</p>
-<p>{{ s.abstract }}</p>
-<p>{{ s.tags|get_tags:"type_inter" }}</p>
+<p>{{ s.tags|get_tags:"ref_text"|join:', ' }}</p>
+<p>{% if s.title != "" %}{{ s.title }}&nbsp;: {% endif %}{{ s.abstract }}</p>
+<ul class="list-inline">
+    {% for ttt in tag_list %}
+    <li class="annot-tag small">{{ ttt }}</li>
+    {% endfor %}
 </div>
+  {% endwith %}
   {% endfor %}
 {% endfor %}
--- a/src/spel/templates/partial/spel_chapters.html	Mon Mar 10 18:26:42 2014 +0100
+++ b/src/spel/templates/partial/spel_chapters.html	Tue Mar 11 14:42:13 2014 +0100
@@ -8,7 +8,7 @@
     </thead>
     <tbody>
   {% for s in segments %}
-    <tr><td>{{ s.cutting_id }}</td><td>{{ s.tags|get_tags:"ref_text_2" }}</td><td>{{ s.start_ts|str_duration }} - {{ s.start_ts|add:s.duration|str_duration }}</td>
+    <tr><td>{{ s.cutting_id }}</td><td>{{ s.tags|get_tags:"ref_text_2"|join:', ' }}</td><td>{{ s.start_ts|str_duration }} - {{ s.start_ts|add:s.duration|str_duration }}</td>
         <td>
           <button type="button" class="popinfo btn btn-xs btn-default" data-trigger="hover" data-container="body" data-toggle="popover" data-placement="auto" 
                   data-content="{{ s.tags|get_tags:'group'|safe }}"><span class="glyphicon glyphicon-plus-sign"></span></button>
--- a/src/spel/templatetags/spel_tags.py	Mon Mar 10 18:26:42 2014 +0100
+++ b/src/spel/templatetags/spel_tags.py	Tue Mar 11 14:42:13 2014 +0100
@@ -43,14 +43,13 @@
                 continue
             if t[:t.index(":")]=="modalites_sceniques" or t[:t.index(":")]=="personnages":
                 val.append(t[t.index(":")+2:])
-    elif arg in ["type_inter", "personnages"]:
+    elif arg in ["type_inter", "personnages", "ref_text"]:
         for t in a:
             try:
                 t.index(":")
             except:
                 continue
             if t[:t.index(":")]==arg:
-                tag_split = t.split(":")
                 val.append(t[t.index(":")+2:])
     elif arg=="group":
         key_vals = {}
@@ -68,9 +67,9 @@
         for k,v in key_vals.items():
             if output != "":
                 output += "<br/>"
-            output += "<b>" + k.capitalize() + "</b>" + ": " + ", ".join(v)
+            output += "<strong>" + k.capitalize() + "</strong>" + ": " + ", ".join(v)
         return output
              
-    return ", ".join(val)
+    return val
 get_tags.is_safe = True