# HG changeset patch # User verrierj # Date 1322646255 -3600 # Node ID 1105a5ed9f8fa09519af32f0e8dc7aa182eed7fa # Parent 14b59dcd2731bf7fa55a77577d9a279f08c72972# Parent d79097e98244a8f6611a950c95323517300eb4e4 Merge with d79097e98244a8f6611a950c95323517300eb4e4 diff -r 14b59dcd2731 -r 1105a5ed9f8f .DS_Store Binary file .DS_Store has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f .pydevproject --- a/.pydevproject Tue Nov 29 16:04:28 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ - - - - -python_platform -python 2.6 - -/platform/src/ldt -/platform/web - - -DJANGO_MANAGE_LOCATION -web/ldtplatform/manage.py - - diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/.DS_Store Binary file crea/.DS_Store has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/.DS_Store Binary file crea/inte-crea/.DS_Store has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/css/ldt-commun.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/css/ldt-commun.css Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,225 @@ +/* Browser-reset CSS */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +table { + border-collapse: separate; border-spacing: 0; +} + +th, td { + vertical-align: top; +} + +body { + font-family: Helvetica, Arial, sans-serif; color: #484848; background: url(../img/main_bg.png) repeat-x #f8f6f7; +} + +/* usual selectors */ + +a { + color: #484848; text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +b { + font-weight: 800; +} + +h1 { + font-family: "DIN-Light", Helvetica, Arial, sans-serif; font-size: 22px; +} + +h1 bold { + font-family: "DIN-Bold", Helvetica, Arial, sans-serif; +} + +h2 { + font-family: "DIN-Light", Helvetica, Arial, sans-serif; font-size: 21px; color: #0068c4; margin: 4px 2px; +} + +h3 { + font-size: 18px; color: #0068c4; +} + +h4 { + margin: 2px 0; font-size: 15px; +} + +h5 { + float: left; clear: left; font-weight: bold; margin: 2px 0; min-width: 70px; font-size: 13px; padding: 0; +} + +p { + margin: 2px 0; font-size: 13px; +} + +p, h2, h3, h4, h5 { + text-shadow: 1px 1px 1px #ffffff; +} + +/* Frequently-used classes */ + +.highlight { + background: #fff080; +} + +div.pad { + padding: 10px; +} + +ul.floatlist { + float: left; list-style: none; +} + +.floatlist li { + float: left; +} + +div.fl, li.fl, p.fl, img.fl { + float: left; +} + +div.fr, li.fr, p.fr, img.fr { + float: right; +} + +.clear { + clear: both; +} + +.li_h2 { + border-bottom: 1px solid #484848; margin: 5px 0; +} + +.li_media { + margin: 10px; +} + +.img_media { + background: #000000; border: 2px solid #ffffff; padding: 1px; +} + +.under, a.under { + text-decoration: underline; +} + +a.under:hover { + text-decoration: none; +} + +.blue, a.blue { + color: #0068c4; +} + +.pink, a.pink { + color: #ff3b77; +} + +.b, a.b { + font-weight: bold; +} + +.bigmargin { + margin: 10px 0; +} + +.bulle_annot, .bulle_people { + float: right; width: 18px; height: 10px; font-size: 9px; margin: 3px 0 0; padding: 1px 0 2px 10px; color: #ffffff; text-align: center; overflow: hidden; +} + +.bulle_annot { + background: url(../img/bulle_annot.png); +} + +.bulle_people { + background: url(../img/bulle_people.png); +} + +.font_16 { + font-size: 16px; +} + +.font_11 { + font-size: 11px; +} + +.btn { + border: 1px solid #c0c0c0; padding: 5px; font-size: 14px; font-weight: bold; +} + +.btn a { + color: #606060; +} + +/* General container */ + +#general_container { + width: 960px; margin: 0 auto; +} + +/* Barre de titre */ + +#title_bar { + font-family: "DIN-Light", Helvetica, Arial, sans-serif; height: 50px; font-size: 22px; margin: 0 0 1px 0; +} + +#title_bar a { + color: #ffffff; +} + +#title_bar li { + height: 38px; margin: 0; padding: 10px 20px 0; background: url(../img/sep_title.png) right no-repeat; +} + +li#li_h1 { + padding-left: 0; width: 210px; +} + +#form_search { + position: relative; width: 378px; margin: 2px 0; height: 20px; border: 1px solid #000000; background: url(../img/search_icon.png) left no-repeat #ffffff; +} + +#search_text { + position: absolute; top: 0; left: 25px; width: 250px; height: 20px; border: 0; padding: 0; +} + +#search_submit { + position: absolute; top: 0; right: 0; height: 16px; width: 100px; font-size: 12px; color: #ffffff; background: #0068c4; border: 0; margin: 2px; padding: 0; text-align: center; +} + +#annot_icon { + margin: 3px 10px 0 0; +} + + +/* Footer */ + +#footer { + float: right; list-style: none; border-top: 1px solid #484848; padding: 10px; width: 940px; /* 960 - padding */ +} + +#footer li { + font-size: 12px; float: right; padding: 5px 20px; border-right: 1px solid #484848; +} \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/css/ldt-groupe.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/css/ldt-groupe.css Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,39 @@ +/* Médias du groupe */ + +#medias_groupe { + width: 640px; margin: 5px 0; +} + +#medias_groupe .li_h2 { + width: 630px; margin-right: 10px; +} + +#medias_groupe .li_media { + width: 140px; +} + +/* Colonne droite */ + +#groupe_droite { + float: left; width: 310px; margin: 5px 0 5px 10px; +} + +#groupe_droite .li_h2 { + float: left; width: 310px; +} + +#embed_search { + background: url(../img/embed_search.png) 5px center no-repeat; padding-left: 40px; +} + +li.li_membre_groupe { + width: 150px; margin: 0 5px 3px 0; +} + +.li_membre_groupe .img_media { + float: left; margin-top: 2px; +} + +.li_membre_groupe p { + margin-left: 45px; +} \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/css/ldt-home.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/css/ldt-home.css Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,53 @@ +/* Derniers médias */ + +#derniers_medias { + width: 960px; margin: 5px 0; +} + +#derniers_medias .li_h2 { + width: 960px; +} + +#derniers_medias .li_media { + width: 300px; +} + +/* Plus annotés */ + +#plus_annotes { + width: 640px; margin: 5px 0; +} + +#plus_annotes .li_h2 { + width: 630px; margin-right: 10px; +} + +#plus_annotes .li_media { + width: 140px; +} + +/* Groupes actifs */ + +#groupes_actifs { + width: 320px; margin: 5px 0; +} + +#groupes_actifs .li_h2 { + width: 310px; margin-left: 10px; +} + +#groupes_actifs .li_media { + width: 300px; margin: 5px 10px; +} + +div.img_groupes_actifs { + float: left; position: relative; padding: 5px 10px 0 0; +} + +div.txt_groupes_actifs { + float: left; width: 230px; +} + +.lock_group { + background: url(../img/lock.png); width: 11px; height: 13px; position: absolute; left: 45px; top: 34px; +} \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/css/ldt-player.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/css/ldt-player.css Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,65 @@ +#player_col_g { + float: left; width: 550px; +} + +#top_media { + width: 550px; border-bottom: 1px solid #484848; +} + +#media_share { + float: right; margin-top: 5px; +} + +li.share_li { + padding: 5px 0 0 5px; height: 20px; +} + +#ann_fleche_cont { + width: 550px; height: 21px; overflow: hidden; position: relative; +} + +#ann_fleche { + width: 1100px; height: 21px; position: absolute; margin-left: -550px; +} + +#ann_fleche div { + float: left; width: 550px; height: 21px; +} + +#ann_fl_left { + background:url(../img/anarl.png); +} + +#ann_fl_right { + background:url(../img/anarr.png); +} + +#annotation_bas { + float: left; width: 550px; background: url(../img/annot_bg.png); margin: 0 0 25px; +} + +/* COLONNE DE DROITE */ + +#player_col_d { + float: left; width: 410px; +} + +#player_col_d .li_h2 { + width: 400px; margin-left: 10px; +} + +#annot_media { + width: 400px; margin: 5px 0 10px 10px; max-height: 400px; overflow: auto; +} + +#annot_media li { + padding: 5px 0; +} + +#annot_media li.selected { + background: url(../img/annot_bg.png); +} + +div.une_annot { + width: 280px; +} diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/css/ldt-recherche.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/css/ldt-recherche.css Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,126 @@ +#tbl_rech { + float: left; clear: both; +} + + +/* LISTE DES RÉSULTATS DE RECHERCHE */ + +#liste_resultats { + width: 640px; +} + +#li_haut_resultats { + width: 630px; padding: 5px 9px 5px 0; border-right: 1px solid #484848; +} + +#ul_haut_resultats { + width: 630px; border-bottom: 1px solid #484848; +} + +#title_resultats { + width: 250px; +} + +#title_resultats h2 { + font-size: 19px; +} + +#p_nb_resultats { + margin : 10px 0 0; +} + +#resultats_options { + font-family: "DIN-Light", Helvetica, Arial, sans-serif; float: right; padding: 0 20px; margin: 4px 0; font-size: 19px; background:url(../img/fl_bas.png) right 80% no-repeat; color: #0068c4; +} + +/* TITRE DU MÉDIA */ + +div.titre_result_media { + float: left; width: 630px; padding: 10px 9px 0 0; border-right: 1px solid #484848; +} + +.titre_result_media div { + float: left; border-color: #d0d0d0; border-width: 1px; border-style: solid none; height: 25px; +} + +.h3_result_media { + width: 240px; +} + +.h3_result_media h3 { + font-family: "DIN-Bold", Helvetica, Arial, sans-serif; font-weight: 800; margin: 2px 0 0 2px; +} + +div.duree_result_media { + width: 49px; border-right: 1px solid #d0d0d0; +} + +.duree_result_media p { + font-size: 11px; text-align: right; margin: 10px 2px 0 0; +} + +.graph_result_media { + width: 350px; height: 25px; +} + +/* LISTE DES SEGMENTS */ + +ul.list_segments { + width: 640px; +} + +li.li_segment { + width: 630px; padding: 3px 9px 3px 0; border-right: 1px solid #484848; +} + +li.li_segment.selected { + background: url(../img/preview_arrows.png) right center no-repeat #fbfafa; padding: 2px 10px 1px 0; border-width: 1px; border-color: #484848; border-style: solid none; +} + +div.left_segment { + float: left; width: 87px; height: 47px; padding: 5px; position: relative; +} + +.left_segment img { + border: 1px solid #f0f0f0; +} + +p.duree_segment { + position: absolute; margin: 0; right: 10px; bottom: 10px; color: #ffffff; font-size: 11px; +} + +div.color_zone { + float: left; width: 5px; height: 45px; margin: 1px 0; +} + +p.text_segment, h4.title_segment { + margin-left: 100px; +} + +li.plus_result { + width: 630px; padding: 0 9px 0 0; border-right: 1px solid #484848; +} + +.plus_result p { + width: 630px; margin: 0 0 10px; padding: 0 0 5px; text-align: right; border-bottom: 1px solid #d0d0d0; +} + +/* PAGINATION DES RESULTATS */ + +#result_pagination { + width: 630px; padding: 0 0 10px 10px; +} + +/* APERÇU À DROITE */ + +#result_preview { + width: 300px; height: 100%; border-right: 1px solid #484848; background: #fbfafa; vertical-align: top; padding: 38px 9px 0 10px; +} + +#preview_metadataplayer { + width: 300px; height: 200px; +} + +#tl_position { + width: 300px; margin: 10px 0; height: 16px; border-bottom: 1px solid #909090; +} \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/groupe.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/groupe.html Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,227 @@ + + + + + + Plateforme LDT : Groupe "Nom du Groupe" + + + + + +
+ + + + + + + + + + + +
+ + +
+

À propos du groupe

+
+

+ Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem … +

+ + + + +

 

+ + + +
+

Membres actifs (27)

+
+ + + +

+ Voir tous les membres

+ +
+ + + + +
+
+ + + \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/home.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/home.html Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,205 @@ + + + + + + Plateforme LDT : Home + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/.DS_Store Binary file crea/inte-crea/img/.DS_Store has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/anarl.png Binary file crea/inte-crea/img/anarl.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/anarr.png Binary file crea/inte-crea/img/anarr.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/annot_bg.png Binary file crea/inte-crea/img/annot_bg.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/annot_icon.png Binary file crea/inte-crea/img/annot_icon.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/bulle_annot.png Binary file crea/inte-crea/img/bulle_annot.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/bulle_people.png Binary file crea/inte-crea/img/bulle_people.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/embed_search.png Binary file crea/inte-crea/img/embed_search.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/fl_bas.png Binary file crea/inte-crea/img/fl_bas.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/lock.png Binary file crea/inte-crea/img/lock.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/main_bg.png Binary file crea/inte-crea/img/main_bg.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/placeholder.png Binary file crea/inte-crea/img/placeholder.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/placeholder_16_9.jpg Binary file crea/inte-crea/img/placeholder_16_9.jpg has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/placeholder_4_3.jpg Binary file crea/inte-crea/img/placeholder_4_3.jpg has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/placeholder_avatar.png Binary file crea/inte-crea/img/placeholder_avatar.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/placeholder_media_graph.png Binary file crea/inte-crea/img/placeholder_media_graph.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/plus.png Binary file crea/inte-crea/img/plus.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/pos_arrow.png Binary file crea/inte-crea/img/pos_arrow.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/preview_arrows.png Binary file crea/inte-crea/img/preview_arrows.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/search_icon.png Binary file crea/inte-crea/img/search_icon.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/img/sep_title.png Binary file crea/inte-crea/img/sep_title.png has changed diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/player.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/player.html Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,226 @@ + + + + + + Plateforme LDT : Player + + + + + +
+ + + + + + + +
+ + +
+
+
+
+
+
+
+

Titre d'annotation (00:12:12 - 00:14:03)

+

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam volu ptatem quia voluptas sit aspernatur aut?

+
Mots-clés
+

: lorem , ipsum , quia , dolor +

Groupes
+

: IRI , Ars Industrialis , RSLN +

+
+ +
+
+

Créer une annotation

+
+
+ + + + +
+ +
+

Toutes les annotations sur ce média

+
+ + +
+ + + + +
+
+ + + diff -r 14b59dcd2731 -r 1105a5ed9f8f crea/inte-crea/recherche.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crea/inte-crea/recherche.html Wed Nov 30 10:44:15 2011 +0100 @@ -0,0 +1,272 @@ + + + + + + Plateforme LDT : Résultats de Recherche + + + + + +
+ + + + + + + + + + + + + + +
+
    + + + +
  • +
      +
    • +

      Résultats de la recherche

      +
    • +
    • +

      250 000 résultats

      +
    • +
    • options
    • +
    +
  • + + + + + +
  • +
    +
    +

    L'Open Data, et moi, et moi

    +
    +
    +

    03:31:12

    +
    +
    + +
    +
    + + + +
      + +
    • +
      +
      + +

      00:15:14

      +
      +

      Lorem Ispum Dolor Sit Amet

      +

      Nemo enim ipsam voluptatem quia voluptas sit mot-clé aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. +

    • + +
    • +
      +
      + +

      00:15:14

      +
      +

      Lorem Ispum Dolor Sit Amet

      +

      Nemo enim ipsam voluptatem quia voluptas sit mot-clé aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. +

    • + +
    • +

      de résultats dans ce média (16)

      +
    • + +
    +
  • + + + + + +
  • +
    +
    +

    L'Open Data, et moi, et moi

    +
    +
    +

    03:31:12

    +
    +
    + +
    +
    + + + +
      + +
    • +
      +
      + +

      00:15:14

      +
      +

      Lorem Ispum Dolor Sit Amet

      +

      Nemo enim ipsam voluptatem quia voluptas sit mot-clé aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. +

    • + +
    • +
      +
      + +

      00:15:14

      +
      +

      Lorem Ispum Dolor Sit Amet

      +

      Nemo enim ipsam voluptatem quia voluptas sit mot-clé aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. +

    • + +
    • +

      de résultats dans ce média (16)

      +
    • + +
    +
  • + + + + + +
  • +
    +
    +

    L'Open Data, et moi, et moi

    +
    +
    +

    03:31:12

    +
    +
    + +
    +
    + + + +
      + +
    • +
      +
      + +

      00:15:14

      +
      +

      Lorem Ispum Dolor Sit Amet

      +

      Nemo enim ipsam voluptatem quia voluptas sit mot-clé aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. +

    • + +
    • +
      +
      + +

      00:15:14

      +
      +

      Lorem Ispum Dolor Sit Amet

      +

      Nemo enim ipsam voluptatem quia voluptas sit mot-clé aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. +

    • + +
    • +

      de résultats dans ce média (16)

      +
    • + +
    +
  • + + + + + +
  • +

    + 1 + . + 2 + . + 3 + . + 4 + . + 5 + . + 6 + . + 7 + . + Suivant +

    +
  • + +
+ + + +
+
+ +
+
+ +
+

Lorem Ipsum Dolor

+

De 00:02:11 à 00:02:11

+

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem …

+
Mots-clés
+

: lorem , ipsum , quia , dolor +

Groupes
+

: IRI , Ars Industrialis , RSLN +

+ + + + +
+
+ + + \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/api/ldt/handlers.py --- a/src/ldt/ldt/api/ldt/handlers.py Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/api/ldt/handlers.py Wed Nov 30 10:44:15 2011 +0100 @@ -29,10 +29,10 @@ If the submitted file is not valid or refers to a media that is not contained in the project, a 500 ("Bad Request") error will be returned. If the "type" field of an annotation matches an already existing cutting, it will be added to that cutting. Otherwise, a new cutting will be added (as well as a new ensemble if needed). New cuttings are added to the view - "View at the last recording" if it exists, or the the view "Init view" else. If none of those views exist, the server will + "View at the last recording" if it exists, or to the view "Init view" else. If none of those views exist, the server will not add the cutting to a view. Several annotations can be added at the same time if the submitted file contains multiple annotations. The server returns the file submitted if all annotations have been added successfully, and adds to this file - IDs of created annotations to the file. + IDs of created annotations to the file with a 200("OK") error code. If no content-type header is set, the file submitted must be a valid XML file and will replace entirely the ldt field of the project without any verifications. @@ -135,7 +135,7 @@ if not new_id: return rc.BAD_REQUEST a['id'] = new_id - + return request.data else: diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/ldt_utils/forms.py --- a/src/ldt/ldt/ldt_utils/forms.py Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/forms.py Wed Nov 30 10:44:15 2011 +0100 @@ -11,11 +11,10 @@ flatten = forms.BooleanField(required=False, initial=True) class LdtAddForm(forms.ModelForm): - title = forms.CharField() + title = forms.CharField(required=True) contents = forms.ModelMultipleChoiceField(Content.objects.all()) #@UndefinedVariable description = forms.CharField(widget=forms.Textarea, required=False) groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False) - # owner = forms.ModelChoiceField(Author.objects.all()) class Meta: model = Project @@ -41,8 +40,7 @@ class CopyProjectForm (forms.Form): title = forms.CharField() - group = forms.IntegerField() - + group = forms.IntegerField() class ContentForm(forms.ModelForm): #iri_id = forms.CharField(max_length=1024, widget=forms.HiddenInput, initial=generate_uuid) @@ -78,7 +76,8 @@ 'all' : ('admin/css/forms.css', 'admin/css/base.css', 'admin/css/widgets.css') } -class MediaForm(forms.ModelForm): +class MediaForm(forms.ModelForm): + media_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False) media_file = forms.FileField(required=False); src = forms.CharField(required=False, max_length=1024) diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/ldt_utils/middleware/userprofile.py --- a/src/ldt/ldt/ldt_utils/middleware/userprofile.py Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/middleware/userprofile.py Wed Nov 30 10:44:15 2011 +0100 @@ -1,15 +1,20 @@ from django.utils import translation +from django.conf import settings class LanguageMiddleware(object): def process_request(self, request): + if request.user.is_authenticated(): profile = request.user.get_profile() + request.user.is_regular = profile.is_regular language = profile.language - translation.activate(language) - request.LANGUAGE_CODE = translation.get_language() + else: + language = settings.LANGUAGE_CODE[:2] + request.user.is_regular = False - request.user.is_regular = profile.is_regular + translation.activate(language) + request.LANGUAGE_CODE = translation.get_language() \ No newline at end of file diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/ldt_utils/models.py --- a/src/ldt/ldt/ldt_utils/models.py Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/models.py Wed Nov 30 10:44:15 2011 +0100 @@ -9,7 +9,7 @@ from ldt.security.models import SafeModel from ldt.security.manager import SafeManager from utils import (create_ldt, copy_ldt, create_empty_iri, update_iri, - generate_uuid) + generate_uuid, clean_description) import lucene import lxml.etree import mimetypes @@ -418,6 +418,32 @@ return False def save(self): + if self.ldt: + doc = lxml.etree.fromstring(self.ldt) + new_contents = [] + contents = doc.xpath("/iri/medias/media") + for elem in contents: + id = elem.get("id") + new_contents.append(id) + + for c in self.contents.all(): + if not c.iri_id in new_contents: + self.contents.remove(c) + + contents_id = [c.id for c in self.contents.all()] + for c in new_contents: + if c not in contents_id: + content = Content.objects.get(iri_id=c) + self.contents.add(content) + + description = self.get_description(doc) + new_desc = clean_description(description) + + if new_desc: + desc_node = doc.xpath('/iri/project')[0] + desc_node.set('abstract', new_desc) + self.ldt = lxml.etree.tostring(doc, pretty_print=True) + super(Project, self).save() if self.state == 2: diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Wed Nov 30 10:44:15 2011 +0100 @@ -71,15 +71,16 @@ {% endblock %} {% block body %} -
- +
{% if ldt_id %}{% trans "Update your project" %}{% else %}{% trans "Create your project" %}{% endif %}
{% csrf_token %} {{form.title}} - {{ form.title.errors }} + {% for error in form.title.errors %} + {{ error }} + {% endfor %} {{form.description}} diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/ldt_utils/utils.py --- a/src/ldt/ldt/ldt_utils/utils.py Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/utils.py Wed Nov 30 10:44:15 2011 +0100 @@ -465,3 +465,20 @@ finally: f.close() +def clean_description(description): + """ Remove html tags added by flash if necessary """ + new_desc = u'' + begin_str = "KERNING=\"0\">" + + for chunk in description.split(" 0 and end > 0: + new_desc = new_desc + chunk[begin:end] + "
" + + if new_desc: + return new_desc + return None + + diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/views.py Wed Nov 30 10:44:15 2011 +0100 @@ -315,9 +315,8 @@ def search_listing(request): if not request.session.has_key('complete_results'): - msg = _("Please enter valid keywords.") - return render_to_response('ldt/ldt_utils/search_results.html', {'msg' : msg}, context_instance=RequestContext(request)) - + return HttpResponseRedirect(reverse('ldt.ldt_utils.views.published_project')) + complete_results = request.session.get('complete_results') search = request.session.get('search') field = request.session.get('field') @@ -385,8 +384,7 @@ ldtgen = LdtUtils() # generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None): doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList) - doc = set_forbidden_stream(doc, request.user) - + doc = set_forbidden_stream(doc, request.user) doc.write(resp, pretty_print=True) return resp @@ -451,7 +449,7 @@ def create_ldt_view(request): permission_formset = formset_factory(PermissionForm, extra=0) groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) - + redirect_to = '' if request.method == "POST" : form = LdtAddForm(request.POST) form_status = "none" @@ -463,12 +461,17 @@ if form.is_valid() and group_form.is_valid(): user = request.user - p = Project.create_project(title=form.cleaned_data['title'], user=user, contents=form.cleaned_data['contents'], + project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=form.cleaned_data['contents'], description=form.cleaned_data['description']) - assign_object_to_groups(p, group_form.cleaned_data) + assign_object_to_groups(project, group_form.cleaned_data) form_status = "saved" - contents = [] + is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); + if is_gecko : + redirect_to = reverse('index_project_full', args=[project.ldt_id]) + else: + return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) + else: form = LdtAddForm() contents = Content.safe_objects.all() #@UndefinedVariable @@ -483,7 +486,8 @@ form_status = "none" - return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'group_form': group_form, 'management_form': management_form, 'form_status':form_status, 'create_project_action':reverse(create_ldt_view), 'language_code' : settings.LANGUAGE_CODE[2:]}, context_instance=RequestContext(request)) + return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'group_form': group_form, 'management_form': management_form, 'form_status':form_status, + 'redirect_to': redirect_to, 'create_project_action':reverse(create_ldt_view), 'language_code' : settings.LANGUAGE_CODE[2:]}, context_instance=RequestContext(request)) def created_ldt(request): return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request)) @@ -536,7 +540,6 @@ if project_id and project_id != "_" : project = Project.safe_objects.get(ldt_id=project_id) #@UndefinedVariable ldtdoc = lxml.etree.fromstring(project.ldt.encode("utf-8")) - ldtdoc = set_forbidden_stream(ldtdoc, request.user) displays_node = ldtdoc.find("displays") if not displays_node: @@ -583,13 +586,12 @@ doc = ldtgen.generate_ldt(content_list, "segment : ", author=username, startSegment=start_segment) doc = set_forbidden_stream(doc, request.user) - doc.write(resp, pretty_print=('DEBUG' in dir(settings) and settings.DEBUG)) return resp -# ldtgen. - + +@login_required def index_project(request, id, full=False): urlStr = settings.WEB_URL + reverse("space_ldt_init", args=['ldt_project', id]) @@ -615,6 +617,17 @@ doc = ldtgen.generate_init([url], 'ldt.ldt_utils.views.' + method, None) + library = doc.xpath('/iri/files/library')[0] + for c in Content.objects.all(): + elem = lxml.etree.SubElement(library, 'file') + elem.set('src', c.iri_url()) + elem.set('video', c.videopath) + elem.set('title', c.title) + elem.set('author', '') + elem.set('category', '') + elem.set('pict', '') + elem.set('img', '') + resp = HttpResponse(mimetype="text/xml") resp['Cache-Control'] = 'no-cache, must-revalidate' resp['Pragma'] = 'no-cache' @@ -838,19 +851,23 @@ content = get_object_or_404(Content.safe_objects, iri_id=iri_id) contents = [ content, ] groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) + redirect_to = '' + form_status = "none" + if request.method == "POST" : group_form = permission_formset(request.POST) - management_form = None + management_form = None + form = AddProjectForm(request.POST) - form = AddProjectForm(request.POST) if form.is_valid() and group_form.is_valid(): user = request.user project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=contents, description=form.cleaned_data['description']) + form_status = "saved" # Modal window is not used with firefox is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); if is_gecko : - return HttpResponseRedirect(reverse('index_project_full', args=[project.ldt_id])) + redirect_to = reverse('index_project_full', args=[project.ldt_id]) else: return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) assign_object_to_groups(project, group_form.cleaned_data) @@ -865,7 +882,8 @@ group_form = zip(permission, groups) # Modal window is not used with firefox, so we ask to submit the form in _parent in firefox case. target_parent = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); - return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'contents':contents, 'groups' : groups, 'group_form': group_form, 'management_form': management_form, 'create_project_action':reverse("ldt.ldt_utils.views.create_project", args=[iri_id]), 'target_parent':target_parent}, context_instance=RequestContext(request)) + return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status': form_status, 'contents':contents, 'groups' : groups, 'group_form': group_form, + 'management_form': management_form, 'redirect_to': redirect_to, 'create_project_action':reverse("ldt.ldt_utils.views.create_project", args=[iri_id]), 'target_parent':target_parent}, context_instance=RequestContext(request)) @login_required def update_project(request, ldt_id): @@ -895,7 +913,7 @@ form = AddProjectForm() group_form = permission_formset() else: - form_status = 'saved' + form_status = 'none' form = AddProjectForm(request.POST) group_form = permission_formset(request.POST) @@ -912,6 +930,7 @@ project.save() assign_object_to_groups(project, group_form.cleaned_data) + form_status = "saved" else: form = AddProjectForm({'title':unicode(project.title), 'description':unicode(project.get_description())}) diff -r 14b59dcd2731 -r 1105a5ed9f8f src/ldt/ldt/static/ldt/js/projectscontents.js --- a/src/ldt/ldt/static/ldt/js/projectscontents.js Tue Nov 29 16:04:28 2011 +0100 +++ b/src/ldt/ldt/static/ldt/js/projectscontents.js Wed Nov 30 10:44:15 2011 +0100 @@ -1,4 +1,4 @@ - + $.fn.realVal = function() { var obj = $(this[0]); if(obj.val) { @@ -53,13 +53,13 @@ }); }); - $('.cellimgdiv img, .qtiplink, .grouplink, .publishedproject, .unpublishedproject').qtip({ + $('.cellimgdiv img, .publishedproject, .unpublishedproject').qtip({ style: { classes: 'ui-tooltip-dark ui-tooltip-rounded' } }); - $('.infostooltip').each( function () { + $('.projectinfos').each( function () { var desc = $(this).attr('data-desc'); if (desc == 'None') { desc = ''; @@ -115,7 +115,7 @@ data: "filename="+ $('#id_media-local_file_name',$.nmTop().store.iframe.contents()).val(), cache: false, success: function(data, status, request){ - alert("remove success"); + //alert("remove success"); } }); } @@ -176,7 +176,7 @@ filters: ['iframe'], sizes: { minW: 730, - minH: 480 + minH: 840 }, closeOnClick:false, callbacks: { @@ -192,7 +192,7 @@ }); nm.store.iframe.width(730); - nm.store.iframe.height(470); + nm.store.iframe.height(830); } } }); @@ -261,6 +261,9 @@ nm.store.iframe.width(frameW); nm.store.iframe.height(frameH); }, + close: function(nm) { + // We don't do anything here, we hack the callback directly from the close function. + }, afterClose: function(nm) { // Can't do that because searchprojectfilterurl is not defined in init_events_base params searchCallback($('#searchprojectsinput'), "#projectslistcontainer", searchprojectfilterurl, 0); @@ -329,7 +332,7 @@ filters: ['iframe'], sizes: { minW: '950', - minH: '740' + minH: '710' }, closeOnClick:false, callbacks: { @@ -346,7 +349,7 @@ }); nm.store.iframe.width(940); - nm.store.iframe.height(630); + nm.store.iframe.height(740); } } });