# HG changeset patch # User cavaliet # Date 1415109780 -3600 # Node ID 62e750c7ef85490f81dc84f768ba57a953b80d6a # Parent fe5e9fe9c29cc21de0ee744b6855b42f451fe4e9 demonstrateur page first step diff -r fe5e9fe9c29c -r 62e750c7ef85 src/spel/management/commands/generate_demonstrateur_data.py --- a/src/spel/management/commands/generate_demonstrateur_data.py Mon Nov 03 17:53:20 2014 +0100 +++ b/src/spel/management/commands/generate_demonstrateur_data.py Tue Nov 04 15:03:00 2014 +0100 @@ -80,7 +80,6 @@ reader = csv.reader(datafile) lines = list(reader) last_content_id = "" - last_content_title = "" count_content = 0 admin = User.objects.filter(is_superuser=True)[0] @@ -88,6 +87,13 @@ for line in lines: # Test content id and main annotation id + if line[0]!="": + content_title = unicode(line[1].decode('utf-8')) + prefix = "[demo] " + if line[0]=="Duo Brick et Maggy en introduction\n[7-1 à 9-5]": + prefix = "[demo1] " + elif line[0]=="51-13 à 56.15": + prefix = "[demo2] " content_id = line[1] pre_annot_id = line[2] pre_annot_tcin_hms = line[3] @@ -126,7 +132,6 @@ ps = ProjectJsonSerializer(ctt_source.front_project) print "project ldt_id = " + ctt_source.front_project.ldt_id project_source_data = ps.serialize_to_cinelab() - if annot_id != "" and project_source_data: count_content += 1 @@ -140,7 +145,7 @@ # tc_end = post_annot_tcout_ms # data to create new data - ctt_title = content_id + (u" 0" if count_content<10 else u" ") + unicode(count_content) + ctt_title = prefix + content_title + (u" 0" if count_content<10 else u" ") + unicode(count_content) media_src = "/data/demonstrateur/"+content_id+"/" + created_ctt_id + ".mp4" if hasattr(settings, "DEMONSTRATEUR_DOMAIN") and len(settings.DEMONSTRATEUR_DOMAIN)>0: media_src = settings.DEMONSTRATEUR_DOMAIN + media_src @@ -153,6 +158,7 @@ duration = created_ctt_dur) content.is_public = True update_stat_content(content) + content.tags.add("demo_theatre") # Get content front projet proj = content.front_project ps = ProjectJsonSerializer(proj) @@ -200,165 +206,6 @@ else: print "Nope" - - """ - # Continue - if do_import: - print("Parsing folder %s ..." % path) - for dirpath, dirnames, filenames in os.walk(path): - #print("Parsing walk %s, %s, %s" % (dirpath, dirnames, filenames)) - for filename in filenames: - if filename == "cinelab_iri.json": - ctt_id = os.path.basename(dirpath) - # dirname is like "acte-1-stuff-thing_1234" and we want "Acte 1 stuff thing" - content_title = ctt_id.split("_")[0].replace("-"," ").capitalize() - json_path = os.path.join(dirpath, filename) - print("Parsing json file %s ..." % json_path) - json_data = False - try: - file_data = open(json_path) - json_data = json.load(file_data) - file_data.close() - except: - print("Error while parsing json file.") - if json_data: - dur = int(json_data["medias"][0]["meta"]["duration"]) - # Save media and content - media, _ = Media.objects.get_or_create(src="/data/opera/"+ctt_id+"/720p.mp4", duration=dur) - media.is_public = True - content = Content.objects.create(iri_id=ctt_id, - iriurl=ctt_id+u"/"+ctt_id+u".iri", - media_obj=media, - title=content_title, - duration=dur, - content_creation_date = json_data["meta"]["dc:created"]) - content.is_public = True - content.tags.add("content_opera") - # Get content front projet - proj = content.front_project - username = proj.owner.username - now = datetime.utcnow().isoformat() - # Start data to send to api - proj_data = {} - proj_data["meta"] = {} - proj_data["meta"]["id"] = proj.ldt_id - proj_data["meta"]["dc:title"] = proj.title - proj_data["meta"]["dc:creator"] = username - proj_data["meta"]["dc:description"] = "description added" - proj_data["meta"]["dc:created"] = json_data["meta"]["dc:created"] - proj_data["meta"]["dc:modified"] = json_data["meta"]["dc:modified"] - proj_data["meta"]["dc:contributor"] = username - proj_data["medias"] = [] - proj_data["medias"].append({"id": content.iri_id}) - # The tags and annotations (main part) - proj_data["tags"] = [] - proj_data["annotations"] = [] - tags_id_label = {} - tags_label_id = {} - for a in json_data["annotations"]: - # "content": { "data": { "modalites_sceniques": "costumes,décors",... } } - # Opera management : - # tag "modalites_sceniques" becomes "opera_modalites_sceniques" - # tag "mesure" becomes "opera_mesure" - # tag "personnages" becomes "opera_personnages" - # tag "scene" becomes "opera_scene" - # tag "type_travail" becomes "opera_type_travail" - # tag "acte" becomes "opera_acte" - 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" and k!="titre": - if k=="acte" or k=="scene": - v = int(v) - k = "opera_" + k - v = unicode(v).split(",") - for val in v: - 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 - #logger.debug("CREATED") - #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] }) - elif k=="commentaire" or k=="description": - desc = v - elif k=="titre": - title = v - # Build annotation with needed fields - proj_data["annotations"].append({ - "content": { - "mimetype": "application/x-ldt-structured", - "description": desc, - # "img": { - # "src": "" - # }, - "title": title, - # "polemics": [ ], - }, - "begin": a["begin"], - "meta": { - # "dc:contributor": "admin", - "id-ref": a["type"], - "dc:created": now, - # "dc:modified": "2014-03-04T16:40:23.609971", - "dc:creator": username - }, - "end": a["end"], - "tags": annot_tags, - "color": "16763904", - "media": ctt_id, - "id": a["id"] - }) - - # The annotation-types - proj_data["annotation-types"] = [] - at_ids = [] - for at in json_data["annotation_types"]: - proj_data["annotation-types"].append({ - # dc:contributor: "admin", - "dc:creator": username, - "dc:title": at["id"], - "id": at["id"], - # dc:created: "2014-03-04T14:51:13.907674", - "dc:description": "" - # dc:modified: "2014-03-04T14:51:13.907674" - }) - at_ids.append({ "id-ref": at["id"] }) - # The list of annotation-types - list_id = generate_uuid() - proj_data["lists"] = [{ - "items": at_ids, - "meta": { - "dc:creator": username, - "id-ref": ctt_id, - "dc:title": "SPEL", - "dc:description": "" - }, - "id": list_id - }] - # The views for default display - proj_data["views"] = [{ - "id": generate_uuid(), - "contents": [ ctt_id ], - "annotation_types": [atid["id-ref"] for atid in at_ids] - }] - - serializr = CinelabSerializer() - serializr.validate_cinelab_json(proj_data) - ldt_xml = serializr.cinelab_to_ldt(proj_data) - proj.ldt = lxml.etree.tostring(ldt_xml, pretty_print=True) - #logger.debug(proj.ldt) - proj.save() - update_stat_content(content) - else: - print("Ignoring or not exist.") - """ # This is the end print("This is the end.") \ No newline at end of file diff -r fe5e9fe9c29c -r 62e750c7ef85 src/spel/templates/spel_base.html --- a/src/spel/templates/spel_base.html Mon Nov 03 17:53:20 2014 +0100 +++ b/src/spel/templates/spel_base.html Tue Nov 04 15:03:00 2014 +0100 @@ -32,6 +32,8 @@