diff --git a/aircox/locale/fr/LC_MESSAGES/django.mo b/aircox/locale/fr/LC_MESSAGES/django.mo index 87b1fbc..bea7402 100644 Binary files a/aircox/locale/fr/LC_MESSAGES/django.mo and b/aircox/locale/fr/LC_MESSAGES/django.mo differ diff --git a/aircox/locale/fr/LC_MESSAGES/django.po b/aircox/locale/fr/LC_MESSAGES/django.po index 54c2e25..f3016db 100755 --- a/aircox/locale/fr/LC_MESSAGES/django.po +++ b/aircox/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-08 22:44+0100\n" +"POT-Creation-Date: 2017-05-17 20:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,47 +18,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: aircox/admin.py:82 aircox/models.py:727 +#: admin.py:82 models.py:728 msgid "Schedule" msgstr "Horaire" -#: aircox/admin.py:111 aircox/models.py:497 +#: admin.py:111 models.py:490 msgid "end" msgstr "fin" -#: aircox/admin.py:152 +#: admin.py:153 msgid "Program" msgstr "Programme" -#: aircox/admin.py:156 +#: admin.py:157 msgid "Day" msgstr "Jour" -#: aircox/admin.py:160 +#: admin.py:161 msgid "Rerun" msgstr "Rediffusion" -#: aircox/models.py:105 +#: models.py:84 msgid "name" msgstr "nom" -#: aircox/models.py:137 +#: models.py:116 msgid "title" msgstr "titre" -#: aircox/models.py:141 +#: models.py:120 msgid "artist" msgstr "artiste" -#: aircox/models.py:145 +#: models.py:124 msgid "tags" msgstr "tags" -#: aircox/models.py:149 +#: models.py:128 msgid "information" msgstr "information" -#: aircox/models.py:152 +#: models.py:131 msgid "" "additional informations about this track, such as the version, if is it a " "remix, features, etc." @@ -66,258 +66,280 @@ msgstr "" "informations additionnelles à propos de ce morceau, telles que la version, " "s'ils'agit d'un remix, les fonctionnalités, etc" -#: aircox/models.py:157 +#: models.py:136 msgid "position in the playlist" msgstr "position dans la playlist" -#: aircox/models.py:160 +#: models.py:139 msgid "in seconds" msgstr "en secondes" -#: aircox/models.py:162 +#: models.py:141 msgid "position in the playlist is expressed in seconds" msgstr "position dans la playlist exprimée en secondes" -#: aircox/models.py:169 aircox/templates/aircox/controllers/stats.html:56 +#: models.py:148 templates/aircox/controllers/stats.html:59 msgid "Track" msgstr "Morceau" -#: aircox/models.py:170 +#: models.py:149 msgid "Tracks" msgstr "Morceaux" -#: aircox/models.py:186 +#: models.py:165 msgid "path" msgstr "chemin" -#: aircox/models.py:187 +#: models.py:166 msgid "path to the working directory" msgstr "chemin vers le repertoire courant" -#: aircox/models.py:379 aircox/models.py:1132 aircox/models.py:1217 +#: models.py:171 +#, fuzzy +#| msgid "station" +msgid "default station" +msgstr "station" + +#: models.py:173 +msgid "if checked, this station is used as the main one" +msgstr "" + +#: models.py:370 models.py:1181 models.py:1318 msgid "station" msgstr "station" -#: aircox/models.py:382 aircox/models.py:1144 +#: models.py:373 models.py:1193 msgid "active" msgstr "actif" -#: aircox/models.py:384 +#: models.py:375 msgid "if not checked this program is no longer active" msgstr "si selectionné, ce programme n'est plus actif" -#: aircox/models.py:387 +#: models.py:378 msgid "syncronise" msgstr "synchroniser" -#: aircox/models.py:389 +#: models.py:380 msgid "update later diffusions according to schedule changes" msgstr "" "mettre à jour les diffusions suivantes selon les changements de l'horaire" -#: aircox/models.py:483 aircox/models.py:528 +#: models.py:476 models.py:521 msgid "related program" msgstr "programme apparenté" -#: aircox/models.py:486 +#: models.py:479 msgid "delay" msgstr "délai" -#: aircox/models.py:488 -msgid "delay between two sound plays" -msgstr "délai entre deux diffusions de son" +#: models.py:481 +msgid "minimal delay between two sound plays" +msgstr "délai minimum entre deux sons" -#: aircox/models.py:491 +#: models.py:484 msgid "begin" msgstr "début" -#: aircox/models.py:493 aircox/models.py:499 +#: models.py:486 models.py:492 msgid "used to define a time range this stream isplayed" msgstr "" -"utilisé pour définir un intervalle de temps pendant laquelle ce stream est " -"joué" +"utilisé pour définir un intervalle de temps pendant lequel ce stream est joué" -#: aircox/models.py:530 aircox/models.py:1229 +#: models.py:524 models.py:1330 msgid "date" msgstr "date" -#: aircox/models.py:532 aircox/models.py:946 +#: models.py:525 +#, fuzzy +#| msgid "start of the diffusion" +msgid "date of the first diffusion" +msgstr "début de la diffusion" + +#: models.py:528 models.py:995 msgid "duration" msgstr "durée" -#: aircox/models.py:533 +#: models.py:529 msgid "regular duration" msgstr "durée normale" -#: aircox/models.py:536 +#: models.py:532 msgid "frequency" msgstr "fréquence" -#: aircox/models.py:539 +#: models.py:535 msgid "ponctual" msgstr "ponctuel" -#: aircox/models.py:540 +#: models.py:536 msgid "first week of the month" msgstr "première semaine du mois" -#: aircox/models.py:541 +#: models.py:537 msgid "second week of the month" msgstr "deuxième semaine du mois" -#: aircox/models.py:542 +#: models.py:538 msgid "third week of the month" msgstr "troisième semaine du mois" -#: aircox/models.py:543 +#: models.py:539 msgid "fourth week of the month" msgstr "quatrième semaine du mois" -#: aircox/models.py:544 +#: models.py:540 msgid "last week of the month" msgstr "dernière semaine du mois" -#: aircox/models.py:545 +#: models.py:541 msgid "first and third weeks of the month" msgstr "première et troisième semaines du mois" -#: aircox/models.py:546 +#: models.py:542 msgid "second and fourth weeks of the month" msgstr "deuxième et quatrième semaines du mois" -#: aircox/models.py:547 +#: models.py:543 msgid "every week" msgstr "toutes les semaines" -#: aircox/models.py:548 +#: models.py:544 msgid "one week on two" msgstr "une semaine sur deux" -#: aircox/models.py:554 aircox/models.py:814 -msgid "initial" -msgstr "début" +#: models.py:550 +msgid "initial schedule" +msgstr "horaire initial" -#: aircox/models.py:728 +#: models.py:729 msgid "Schedules" msgstr "Horaires" -#: aircox/models.py:805 aircox/models.py:916 +#: models.py:826 models.py:965 msgid "program" msgstr "programme" -#: aircox/models.py:809 aircox/models.py:927 aircox/models.py:1139 -#: aircox/models.py:1211 +#: models.py:830 models.py:976 models.py:1188 models.py:1312 msgid "type" msgstr "type" -#: aircox/models.py:816 +#: models.py:835 +msgid "initial diffusion" +msgstr "diffusion initiale" + +#: models.py:837 msgid "the diffusion is a rerun of this one" msgstr "la diffusion est une rediffusion de celle-ci" -#: aircox/models.py:825 +#: models.py:847 models.py:849 +msgid "conflicts" +msgstr "" + +#: models.py:852 msgid "start of the diffusion" msgstr "début de la diffusion" -#: aircox/models.py:826 +#: models.py:853 msgid "end of the diffusion" msgstr "fin de la diffusion" -#: aircox/models.py:895 aircox/views.py:198 +#: models.py:944 views.py:198 msgid "Diffusion" msgstr "Diffusion" -#: aircox/models.py:896 aircox/templates/aircox/controllers/monitor.html:151 +#: models.py:945 templates/aircox/controllers/monitor.html:151 msgid "Diffusions" msgstr "Diffusions" -#: aircox/models.py:899 +#: models.py:948 msgid "edit the diffusion's planification" msgstr "éditer la planification de la diffusion" -#: aircox/models.py:918 +#: models.py:967 msgid "program related to it" msgstr "programme apparenté à celui-ci" -#: aircox/models.py:922 +#: models.py:971 msgid "diffusion" msgstr "diffusion" -#: aircox/models.py:924 +#: models.py:973 msgid "initial diffusion related it" msgstr "diffusion initiale apparentée" -#: aircox/models.py:932 +#: models.py:981 msgid "file" msgstr "fichier" -#: aircox/models.py:941 +#: models.py:990 msgid "embed HTML code" msgstr "code HTML intégré" -#: aircox/models.py:943 +#: models.py:992 msgid "HTML code used to embed a sound from external plateform" msgstr "" "code HTML utilisé pour intégrer un son depuis une plateforme extérieure" -#: aircox/models.py:948 +#: models.py:997 msgid "duration of the sound" msgstr "durée du son" -#: aircox/models.py:951 +#: models.py:1000 msgid "modification time" msgstr "temps de la modification" -#: aircox/models.py:953 +#: models.py:1002 msgid "last modification date and time" msgstr "date et heure de la dernière modification" -#: aircox/models.py:956 +#: models.py:1005 msgid "good quality" msgstr "bonne qualité" -#: aircox/models.py:957 +#: models.py:1006 msgid "sound's quality is okay" msgstr "la qualité du son est okay" -#: aircox/models.py:961 +#: models.py:1010 msgid "public" msgstr "public" -#: aircox/models.py:963 +#: models.py:1012 msgid "the sound is accessible to the public" msgstr "ce son est accessible au public" -#: aircox/models.py:1023 +#: models.py:1072 msgid "unknown" msgstr "" -#: aircox/models.py:1099 +#: models.py:1148 msgid "Sound" msgstr "Son" -#: aircox/models.py:1100 +#: models.py:1149 msgid "Sounds" msgstr "Sons" -#: aircox/models.py:1135 +#: models.py:1184 #, fuzzy #| msgid "duration" msgid "direction" msgstr "durée" -#: aircox/models.py:1146 +#: models.py:1195 #, fuzzy #| msgid "this output is active" msgid "this port is active" msgstr "cette sortie est active" -#: aircox/models.py:1149 +#: models.py:1198 #, fuzzy #| msgid "output settings" msgid "port settings" msgstr "paramètres de sortie" -#: aircox/models.py:1150 +#: models.py:1199 #, fuzzy #| msgid "" #| "list of comma separated params available; this is put in the output " @@ -329,35 +351,37 @@ msgstr "" "liste des paramètres disponibles séparés par des virgules; placé dans la " "configuration de sortieen temps que code brut; plugin apparenté" -#: aircox/models.py:1218 -msgid "station on which the event occured" -msgstr "station sur laquelle l'événement a eu lieu" +#: models.py:1319 +#, fuzzy +#| msgid "regular duration" +msgid "related station" +msgstr "durée normale" -#: aircox/models.py:1223 +#: models.py:1324 msgid "source" msgstr "source" -#: aircox/models.py:1225 -msgid "source id that make it happen on the station" -msgstr "id de la source qui le fait arriver sur la station" +#: models.py:1326 +msgid "identifier of the source related to this log" +msgstr "" -#: aircox/models.py:1233 +#: models.py:1334 msgid "comment" msgstr "commentaire" -#: aircox/templates/aircox/controllers/monitor.html:6 +#: templates/aircox/controllers/monitor.html:6 msgid "Monitoring streamer" msgstr "" -#: aircox/templates/aircox/controllers/monitor.html:112 +#: templates/aircox/controllers/monitor.html:112 msgid "Monitor Streamer" msgstr "" -#: aircox/templates/aircox/controllers/monitor.html:115 +#: templates/aircox/controllers/monitor.html:115 msgid "refresh" msgstr "" -#: aircox/templates/aircox/controllers/monitor.html:129 +#: templates/aircox/controllers/monitor.html:129 #, fuzzy, python-format #| msgid "" #| "\n" @@ -373,47 +397,47 @@ msgstr "" " %(items_counts)s items, avec un total de %(tracks_count)s " "tracks\n" -#: aircox/templates/aircox/controllers/monitor.html:136 -#: aircox/templates/aircox/controllers/monitor.html:175 +#: templates/aircox/controllers/monitor.html:136 +#: templates/aircox/controllers/monitor.html:175 msgid "restart" msgstr "" -#: aircox/templates/aircox/controllers/monitor.html:138 -#: aircox/templates/aircox/controllers/monitor.html:177 +#: templates/aircox/controllers/monitor.html:138 +#: templates/aircox/controllers/monitor.html:177 msgid "skip" msgstr "passer" -#: aircox/templates/aircox/controllers/monitor.html:143 +#: templates/aircox/controllers/monitor.html:143 #, fuzzy #| msgid "source" msgid "Source" msgstr "source" -#: aircox/templates/aircox/controllers/monitor.html:144 +#: templates/aircox/controllers/monitor.html:144 msgid "File" msgstr "" -#: aircox/templates/aircox/controllers/monitor.html:145 +#: templates/aircox/controllers/monitor.html:145 msgid "Actions*" msgstr "" -#: aircox/templates/aircox/controllers/monitor.html:158 +#: templates/aircox/controllers/monitor.html:158 msgid "current" msgstr "" -#: aircox/templates/aircox/controllers/monitor.html:161 +#: templates/aircox/controllers/monitor.html:161 #, fuzzy #| msgid "diffusion" msgid "diffusions" msgstr "diffusion" -#: aircox/templates/aircox/controllers/monitor.html:163 +#: templates/aircox/controllers/monitor.html:163 #, fuzzy #| msgid "Stream" msgid "stream" msgstr "Stream" -#: aircox/templates/aircox/controllers/monitor.html:186 +#: templates/aircox/controllers/monitor.html:186 msgid "" "\n" " *: Due to some technical issues, it might take up to 30 seconds to " @@ -421,49 +445,49 @@ msgid "" " " msgstr "" -#: aircox/templates/aircox/controllers/stats.html:6 -#: aircox/templates/aircox/controllers/stats.html:11 +#: templates/aircox/controllers/stats.html:9 +#: templates/aircox/controllers/stats.html:14 msgid "Statistics of the stations" msgstr "Statistiques des stations" -#: aircox/templates/aircox/controllers/stats.html:16 +#: templates/aircox/controllers/stats.html:19 msgid "day" msgstr "jour" -#: aircox/templates/aircox/controllers/stats.html:18 +#: templates/aircox/controllers/stats.html:21 msgid "month" msgstr "mois" -#: aircox/templates/aircox/controllers/stats.html:20 +#: templates/aircox/controllers/stats.html:23 msgid "year" msgstr "année" -#: aircox/templates/aircox/controllers/stats.html:22 +#: templates/aircox/controllers/stats.html:25 msgid "Show" msgstr "" -#: aircox/templates/aircox/controllers/stats.html:36 +#: templates/aircox/controllers/stats.html:39 msgid "Date" msgstr "Date" -#: aircox/templates/aircox/controllers/stats.html:37 +#: templates/aircox/controllers/stats.html:40 msgid "Type" msgstr "Type" #. Translators "Header for statistics view" -#: aircox/templates/aircox/controllers/stats.html:39 +#: templates/aircox/controllers/stats.html:42 msgid "Diffusion or sound played" msgstr "Diffusion ou son joué" -#: aircox/templates/aircox/controllers/stats.html:40 +#: templates/aircox/controllers/stats.html:43 msgid "Tags" msgstr "Tags" -#: aircox/templates/aircox/controllers/stats.html:65 +#: templates/aircox/controllers/stats.html:68 msgid "Total" msgstr "Total" -#: aircox/templates/aircox/controllers/stats.html:69 +#: templates/aircox/controllers/stats.html:72 #, fuzzy, python-format #| msgid "" #| "\n" @@ -480,9 +504,15 @@ msgstr "" " %(items_counts)s items, avec un total de %(tracks_count)s " "tracks\n" -#: aircox/views.py:217 +#: views.py:216 msgid "Stream" msgstr "Stream" +#~ msgid "station on which the event occured" +#~ msgstr "station sur laquelle l'événement a eu lieu" + +#~ msgid "source id that make it happen on the station" +#~ msgstr "id de la source qui le fait arriver sur la station" + #~ msgid "update" #~ msgstr "mettre à jour" diff --git a/aircox/models.py b/aircox/models.py index 17ba1a5..529a622 100755 --- a/aircox/models.py +++ b/aircox/models.py @@ -478,7 +478,7 @@ class Stream(models.Model): delay = models.TimeField( _('delay'), blank = True, null = True, - help_text = _('delay between two sound plays') + help_text = _('minimal delay between two sound plays') ) begin = models.TimeField( _('begin'), @@ -520,7 +520,10 @@ class Schedule(models.Model): Program, verbose_name = _('related program'), ) - date = models.DateTimeField(_('date')) + date = models.DateTimeField( + _('date'), + help_text = _('date of the first diffusion') + ) duration = models.TimeField( _('duration'), help_text = _('regular duration'), @@ -544,7 +547,7 @@ class Schedule(models.Model): ) initial = models.ForeignKey( 'self', - verbose_name = _('initial'), + verbose_name = _('initial schedule'), blank = True, null = True, help_text = 'this schedule is a rerun of this one', ) @@ -829,7 +832,7 @@ class Diffusion(models.Model): ) initial = models.ForeignKey ( 'self', - verbose_name = _('initial'), + verbose_name = _('initial diffusion'), blank = True, null = True, help_text = _('the diffusion is a rerun of this one') ) diff --git a/aircox/views.py b/aircox/views.py index d5dd4f9..1e45e93 100755 --- a/aircox/views.py +++ b/aircox/views.py @@ -193,7 +193,7 @@ class StatisticsView(View,TemplateResponseMixin,LoginRequiredMixin): qs = None item = None if type(elm) == models.Diffusion: - qs = models.Track.objects.get_for(elm) + qs = models.Track.objects.get_for(object = elm) item = self.Item( type = _('Diffusion'), date = elm.date, @@ -204,7 +204,6 @@ class StatisticsView(View,TemplateResponseMixin,LoginRequiredMixin): item.add_tags(qs) stats.items.append(item) stats.count += len(item.tracks) - else: # type is Track (related object of a track is a sound) stream = elm.related.related diff --git a/aircox_cms/locale/fr/LC_MESSAGES/django.mo b/aircox_cms/locale/fr/LC_MESSAGES/django.mo index cacd856..9f36e60 100644 Binary files a/aircox_cms/locale/fr/LC_MESSAGES/django.mo and b/aircox_cms/locale/fr/LC_MESSAGES/django.mo differ diff --git a/aircox_cms/locale/fr/LC_MESSAGES/django.po b/aircox_cms/locale/fr/LC_MESSAGES/django.po index e2e4411..1deeb68 100755 --- a/aircox_cms/locale/fr/LC_MESSAGES/django.po +++ b/aircox_cms/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Aircox 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-03-31 18:23+0200\n" +"POT-Creation-Date: 2017-05-17 20:54+0200\n" "PO-Revision-Date: 2016-10-10 16:00+02\n" "Last-Translator: Aarys\n" "Language-Team: Aircox's translators team\n" @@ -62,7 +62,7 @@ msgstr "favicon" msgid "small logo for the website displayed in the browser" msgstr "petit logo pour le site affiché dans le navigateur" -#: models.py:59 models.py:279 +#: models.py:59 models.py:284 msgid "tags" msgstr "tags" @@ -175,6 +175,7 @@ msgid "Promotion" msgstr "promotion" #: models.py:154 templates/aircox_cms/snippets/comments.html:6 +#: wagtail_hooks.py:162 msgid "Comments" msgstr "Commentaires" @@ -186,193 +187,210 @@ msgstr "Programmes et contrôles" msgid "website settings" msgstr "paramètres du site internet" -#: models.py:174 -msgid "public" -msgstr "public" +#: models.py:172 +#, fuzzy +#| msgid "Publication" +msgid "publication" +msgstr "Publication" -#: models.py:178 +#: models.py:175 +#, fuzzy +#| msgid "Published by" +msgid "published" +msgstr "Publié par" + +#: models.py:179 msgid "author" msgstr "auteur" -#: models.py:182 models.py:397 +#: models.py:183 models.py:401 msgid "email" msgstr "email" -#: models.py:186 +#: models.py:187 msgid "website" msgstr "site internet" -#: models.py:190 models.py:238 +#: models.py:191 models.py:243 msgid "date" msgstr "date" -#: models.py:194 +#: models.py:195 models.py:199 msgid "comment" msgstr "commentaire" +#: models.py:200 +#, fuzzy +#| msgid "comment" +msgid "comments" +msgstr "commentaire" + #. Translators: text shown in the comments list (in admin) -#: models.py:199 +#: models.py:204 #, python-brace-format msgid "{date}, {author}: {content}..." msgstr "{date}, {author}: {content}..." -#: models.py:244 +#: models.py:249 msgid "publish as program" msgstr "publier en tant que programme" -#: models.py:247 +#: models.py:252 msgid "use this program as the author of the publication" msgstr "utiliser ce programme en tant qu'auteur de la publication" -#: models.py:250 +#: models.py:255 msgid "focus" msgstr "focus" -#: models.py:252 +#: models.py:257 msgid "the publication is highlighted;" msgstr "la publication est mise en avant;" -#: models.py:255 models.py:257 +#: models.py:260 models.py:262 msgid "allow comments" msgstr "autoriser les commentaires" -#: models.py:261 models.py:609 models.py:634 +#: models.py:266 models.py:632 models.py:657 msgid "body" msgstr "corps du texte" -#: models.py:263 +#: models.py:268 msgid "the publication itself" msgstr "le contenu de la publication elle-même" -#: models.py:267 +#: models.py:272 msgid "cover" msgstr "couverture" -#: models.py:271 +#: models.py:276 msgid "image to use as cover of the publication" msgstr "image à utiliser comme couverture de la publication" -#: models.py:274 +#: models.py:279 msgid "headline" msgstr "entête" -#: models.py:276 -msgid "headline of the publication" +#: models.py:281 +#, fuzzy +#| msgid "headline of the publication" +msgid "headline of the publication, use it as an introduction" msgstr "entête de la publication" -#: models.py:286 models.py:287 +#: models.py:290 models.py:291 msgid "Publication" msgstr "Publication" -#: models.py:295 models.py:301 models.py:618 models.py:646 +#: models.py:299 models.py:305 models.py:518 models.py:641 models.py:669 msgid "Content" msgstr "Contenu" -#: models.py:302 sections.py:773 +#: models.py:306 models.py:519 sections.py:773 msgid "Links" msgstr "Liens" -#: models.py:389 +#: models.py:393 msgid "program" msgstr "programme" -#: models.py:400 +#: models.py:404 msgid "email is public" msgstr "l'email est public" -#: models.py:402 +#: models.py:406 msgid "the email addess is accessible to the public" msgstr "l'adresse email est accessible au public" -#: models.py:406 +#: models.py:410 wagtail_hooks.py:49 msgid "Program" msgstr "Programme" -#: models.py:407 signals.py:85 signals.py:97 wagtail_hooks.py:20 -#: wagtail_hooks.py:184 +#: models.py:411 signals.py:85 signals.py:97 wagtail_hooks.py:38 +#: wagtail_hooks.py:370 msgid "Programs" msgstr "Programmes" -#: models.py:476 +#: models.py:489 msgid "diffusion" msgstr "diffusion" -#: models.py:488 +#: models.py:501 msgid "publish archive" msgstr "publier l'archive" -#: models.py:490 +#: models.py:503 msgid "publish the podcast of the complete diffusion" msgstr "publier le podcast de la diffusion complète" -#: models.py:494 +#: models.py:507 templates/aircox_cms/snippets/list_item.html:37 +#: wagtail_hooks.py:80 msgid "Diffusion" msgstr "Diffusion" -#: models.py:495 wagtail_hooks.py:28 +#: models.py:508 wagtail_hooks.py:55 msgid "Diffusions" msgstr "Diffusions" -#: models.py:498 +#: models.py:511 msgid "Tracks" msgstr "Pistes" -#: models.py:538 +#: models.py:554 #, python-format msgid "Rerun of %(date)s" -msgstr "Rediffusion de %(date)s" +msgstr "Rediffusion du %(date)s" -#: models.py:542 +#: models.py:558 msgid "Cancelled" msgstr "Annulé" -#: models.py:611 models.py:636 +#: models.py:634 models.py:659 msgid "add an extra description for this list" msgstr "ajouter une description supplémentaire pour cette liste" -#: models.py:622 +#: models.py:645 msgid "Dynamic List Page" msgstr "Page avec liste dynamique" -#: models.py:623 +#: models.py:646 msgid "Dynamic List Pages" msgstr "Pages avec liste dynamique" -#: models.py:681 sections.py:866 +#: models.py:704 models.py:765 sections.py:866 sections.py:925 msgid "station" msgstr "station" -#: models.py:684 sections.py:869 -msgid "(required) the station on which the logs happened" -msgstr "(obliatoire) la station sur laquelle les logs se sont produits" +#: models.py:705 models.py:766 sections.py:926 +msgid "(required) related station" +msgstr "" -#: models.py:687 +#: models.py:708 msgid "maximum age" msgstr "âge maximum" -#: models.py:689 +#: models.py:710 msgid "maximum days in the past allowed to be shown. 0 means no limit" msgstr "" "nombre de jours maximum dans le passé autorisés à être affichés. 0 signifie " "qu'il n'y a pas de limite" -#: models.py:693 +#: models.py:714 msgid "reverse list" msgstr "" -#: models.py:695 +#: models.py:716 msgid "print logs in ascending order by date" msgstr "afficher les logs de manière ascendante par date" -#: models.py:699 models.py:700 +#: models.py:720 models.py:721 wagtail_hooks.py:127 msgid "Logs" msgstr "Logs" -#: models.py:707 +#: models.py:728 models.py:772 msgid "Configuration" msgstr "Configuration" -#: models.py:744 models.py:745 signals.py:71 +#: models.py:776 models.py:777 signals.py:71 msgid "Timetable" msgstr "Grille horaire" @@ -454,8 +472,7 @@ msgstr "selectionne les sœurs de la page apparentée" #: sections.py:206 msgid "if checked, related publications are siblings instead of the children." msgstr "" -"si coché, les publications apparentées sont les sœurs au lieu des " -"enfants." +"si coché, les publications apparentées sont les sœurs au lieu des enfants." #: sections.py:211 msgid "ascending order" @@ -503,7 +520,7 @@ msgstr "cacher les icones" msgid "if selected, images of publications will not be displayed in the list" msgstr "si sélectionné, la liste n'affiche pas les images des publications" -#: sections.py:420 sections.py:940 +#: sections.py:420 sections.py:945 msgid "Navigation" msgstr "Navigation" @@ -659,6 +676,10 @@ msgstr "" msgid "Rendering" msgstr "Rendu" +#: sections.py:869 +msgid "(required) the station on which the logs happened" +msgstr "(obliatoire) la station sur laquelle les logs se sont produits" + #: sections.py:874 msgid "number of items to display in the list (max 100)" msgstr "nombre d'objets à afficher dans la liste (max 100)" @@ -679,68 +700,68 @@ msgstr "Section: Grille horaire" msgid "Sections: Timetable" msgstr "Sections: Grilles horaire" -#: sections.py:925 +#: sections.py:930 msgid "timetable page" msgstr "Page de Grille horaire" -#: sections.py:927 +#: sections.py:932 msgid "select a timetable page used to show complete timetable" msgstr "" "sélectionner une page de grille horaire pour afficher l'horaire complet" -#: sections.py:930 +#: sections.py:935 msgid "show date navigation" msgstr "afficher les dates de navigation" -#: sections.py:932 +#: sections.py:937 msgid "if checked, navigation dates will be shown" msgstr "si coché, les dates de navigation sont affichées" -#: sections.py:965 +#: sections.py:970 msgid "Section: publication's info" msgstr "Section: info de la publication" -#: sections.py:966 +#: sections.py:971 msgid "Sections: publication's info" msgstr "Sections: info de la publication" -#: sections.py:971 +#: sections.py:976 msgid "default text" msgstr "texte par défaut" -#: sections.py:973 +#: sections.py:978 msgid "search" msgstr "recherche" -#: sections.py:974 +#: sections.py:979 msgid "text to display when the search field is empty" msgstr "texte à afficher quand le champ de recherche est vide" -#: sections.py:978 +#: sections.py:983 msgid "Section: search field" msgstr "Section: champ de recherche" -#: sections.py:979 +#: sections.py:984 msgid "Sections: search field" msgstr "Sections: champ de recherche" -#: sections.py:995 +#: sections.py:1000 msgid "live title" msgstr "titre du direct" -#: sections.py:997 +#: sections.py:1002 msgid "text to display when it plays live" msgstr "texte à afficher quand le direct est activé" -#: sections.py:1000 +#: sections.py:1005 msgid "audio streams" msgstr "streams audio" -#: sections.py:1001 +#: sections.py:1006 msgid "one audio stream per line" msgstr "un stream audio par ligne" -#: sections.py:1005 +#: sections.py:1010 msgid "Section: Player" msgstr "Section: Player" @@ -790,11 +811,11 @@ msgstr "{program.name} est un programme sur {station.name}" msgid "Playlist" msgstr "Playlist" -#: templates/aircox_cms/diffusion_page.html:22 +#: templates/aircox_cms/diffusion_page.html:23 msgid "Dates of diffusion" msgstr "Dates de diffusion" -#: templates/aircox_cms/diffusion_page.html:36 +#: templates/aircox_cms/diffusion_page.html:38 msgid "Podcasts" msgstr "Podcasts" @@ -832,14 +853,16 @@ msgstr "Lieu" msgid "Price" msgstr "Prix" -#: templates/aircox_cms/program_page.html:12 +#: templates/aircox_cms/program_page.html:12 wagtail_hooks.py:101 msgid "Schedule" msgstr "Horaire" #: templates/aircox_cms/program_page.html:18 +#, python-format msgid "" "%(day)s at %(start)s until %(end)s, %(frequency)s" -msgstr "%(day)s de %(start)s à %(end)s, %(frequency)s" +msgstr "" +"%(day)s de %(start)s à %(end)s, %(frequency)s" #: templates/aircox_cms/program_page.html:24 msgid "Rerun" @@ -927,19 +950,19 @@ msgstr "pause" msgid "loading..." msgstr "chargement..." -#: templates/aircox_cms/snippets/player.html:29 +#: templates/aircox_cms/snippets/player.html:32 msgid "add to the player" msgstr "ajouter au player" -#: templates/aircox_cms/snippets/player.html:30 +#: templates/aircox_cms/snippets/player.html:33 msgid "more informations" msgstr "plus d'informations" -#: templates/aircox_cms/snippets/player.html:31 +#: templates/aircox_cms/snippets/player.html:34 msgid "remove this sound" msgstr "enlever ce son" -#: templates/aircox_cms/snippets/player.html:46 +#: templates/aircox_cms/snippets/player.html:47 msgid "enable and disable single mode" msgstr "activer et désactiver le mode solo" @@ -947,28 +970,44 @@ msgstr "activer et désactiver le mode solo" msgid "add this sound to the playlist" msgstr "ajouter ce son à la playlist" -#: wagtail_hooks.py:37 +#: wagtail_hooks.py:86 msgid "Schedules" msgstr "Horaires" -#: wagtail_hooks.py:45 +#: wagtail_hooks.py:107 msgid "Streams" msgstr "Streams" -#: wagtail_hooks.py:52 +#: wagtail_hooks.py:121 +#, fuzzy +#| msgid "Streams" +msgid "Stream" +msgstr "Streams" + +#: wagtail_hooks.py:146 +#, fuzzy +#| msgid "Logs" +msgid "Log" +msgstr "Logs" + +#: wagtail_hooks.py:153 msgid "Advanced" msgstr "Avancé" -#: wagtail_hooks.py:60 +#: wagtail_hooks.py:173 msgid "Sounds" msgstr "Sons" -#: wagtail_hooks.py:151 +#: wagtail_hooks.py:331 msgid "Today's Diffusions" msgstr "Diffusions du jour" -#~ msgid "Published by" -#~ msgstr "Publié par" +#: wagtail_hooks.py:403 +msgid "Current Station" +msgstr "" + +#~ msgid "public" +#~ msgstr "public" #~ msgid "message to display when a post waits to be reviewed" #~ msgstr "message à afficher quand une publication attend d'être approuvée" diff --git a/aircox_cms/models.py b/aircox_cms/models.py index 7875c3b..07e9d2e 100755 --- a/aircox_cms/models.py +++ b/aircox_cms/models.py @@ -460,8 +460,11 @@ class ProgramPage(Publication): class Track(aircox.models.Track,Orderable): - diffusion = ParentalKey('DiffusionPage', - related_name='tracks') + diffusion = ParentalKey( + 'DiffusionPage', related_name='tracks', + null = True, blank = True, + on_delete = models.SET_NULL + ) sort_order_field = 'position' panels = [ diff --git a/aircox_cms/static/wagtailadmin/css/core.css b/aircox_cms/static/wagtailadmin/css/core.css index 92736a3..47d7d32 100644 --- a/aircox_cms/static/wagtailadmin/css/core.css +++ b/aircox_cms/static/wagtailadmin/css/core.css @@ -5001,10 +5001,6 @@ body.ready .nav-main a { background: #262626; } -.nav-submenu h1 { - color: #a2a2a2; -} - .nav-submenu h2 { display: none; } diff --git a/aircox_cms/wagtail_hooks.py b/aircox_cms/wagtail_hooks.py index 2186895..07ef361 100755 --- a/aircox_cms/wagtail_hooks.py +++ b/aircox_cms/wagtail_hooks.py @@ -3,6 +3,7 @@ import json from django.utils import timezone as tz from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse +from django.forms import SelectMultiple, TextInput from django.contrib.staticfiles.templatetags.staticfiles import static from django.utils.html import format_html from django.utils.safestring import mark_safe @@ -10,15 +11,25 @@ from django.utils.safestring import mark_safe from wagtail.wagtailcore import hooks from wagtail.wagtailadmin.menu import MenuItem, Menu, SubmenuMenuItem from wagtail.wagtailcore.models import PageRevision - from wagtail.contrib.modeladmin.options import \ ModelAdmin, ModelAdminGroup, modeladmin_register +from wagtail.wagtailadmin.edit_handlers import FieldPanel, FieldRowPanel, \ + MultiFieldPanel, InlinePanel, PageChooserPanel, StreamFieldPanel import aircox.models import aircox_cms.models as models +class RelatedListWidget(SelectMultiple): + def __init__(self, *args, **kwargs): + self.readonly = True + super().__init__(*args, **kwargs) + + def get_context(self, name, value, attrs): + self.choices.queryset = self.choices.queryset.filter(pk__in = value) + return super().get_context(name, value, attrs) + # # ModelAdmin items # @@ -27,9 +38,18 @@ class ProgramAdmin(ModelAdmin): menu_label = _('Programs') menu_icon = 'pick' menu_order = 200 - list_display = ('name', 'active') + list_display = ('name', 'active', 'station') search_fields = ('name',) +aircox.models.Program.panels = [ + MultiFieldPanel([ + FieldPanel('name'), + FieldPanel('active'), + FieldPanel('sync'), + ], heading=_('Program')), +] + + class DiffusionAdmin(ModelAdmin): model = aircox.models.Diffusion menu_label = _('Diffusions') @@ -40,6 +60,27 @@ class DiffusionAdmin(ModelAdmin): readonly_fields = ('conflicts',) search_fields = ('program__name', 'start') +aircox.models.Diffusion.panels = [ + MultiFieldPanel([ + FieldPanel('program'), + FieldPanel('type'), + FieldRowPanel([ + FieldPanel('start'), + FieldPanel('end'), + ]), + FieldPanel('initial'), + FieldPanel( + 'conflicts', + widget = RelatedListWidget( + attrs = { + 'disabled': True, + } + ) + ), + ], heading=_('Diffusion')), +] + + class ScheduleAdmin(ModelAdmin): model = aircox.models.Schedule menu_label = _('Schedules') @@ -48,6 +89,19 @@ class ScheduleAdmin(ModelAdmin): list_display = ('program', 'frequency', 'duration', 'initial') list_filter = ('frequency', 'date', 'duration', 'program') +aircox.models.Schedule.panels = [ + MultiFieldPanel([ + FieldPanel('program'), + FieldPanel('frequency'), + FieldRowPanel([ + FieldPanel('date'), + FieldPanel('duration'), + ]), + FieldPanel('initial'), + ], heading=_('Schedule')), +] + + class StreamAdmin(ModelAdmin): model = aircox.models.Stream menu_label = _('Streams') @@ -56,10 +110,49 @@ class StreamAdmin(ModelAdmin): list_display = ('program', 'delay', 'begin', 'end') list_filter = ('program', 'delay', 'begin', 'end') +aircox.models.Stream.panels = [ + MultiFieldPanel([ + FieldPanel('program'), + FieldPanel('delay'), + FieldRowPanel([ + FieldPanel('begin'), + FieldPanel('end'), + ]), + ], heading=_('Stream')), +] + + +class LogAdmin(ModelAdmin): + model = aircox.models.Log + menu_label = _('Logs') + menu_icon = 'time' + menu_order = 300 + list_display = ['date', 'station', 'source', 'type', 'comment', 'related'] + list_filter = ['date', 'source', 'related_type'] + +aircox.models.Log.panels = [ + MultiFieldPanel([ + FieldPanel('date'), + FieldRowPanel([ + FieldPanel('station'), + FieldPanel('source'), + ]), + FieldPanel('type'), + FieldPanel('comment'), + FieldRowPanel([ + FieldPanel('related_type'), + FieldPanel('related_id') + ]), + ], heading = _('Log')), +] + + +# Missing: Port, Station, Track + class AdvancedAdminGroup(ModelAdminGroup): menu_label = _("Advanced") menu_icon = 'plus-inverse' - items = (ProgramAdmin, DiffusionAdmin, ScheduleAdmin, StreamAdmin) + items = (ProgramAdmin, DiffusionAdmin, ScheduleAdmin, StreamAdmin, LogAdmin) modeladmin_register(AdvancedAdminGroup)