diff --git a/cfp/forms.py b/cfp/forms.py index befbf6b..f2e4f1a 100644 --- a/cfp/forms.py +++ b/cfp/forms.py @@ -324,7 +324,7 @@ class RoomForm(OnSiteNamedModelForm): class TagForm(OnSiteNamedModelForm): class Meta: model = Tag - fields = ['name', 'color', 'inverted', 'public'] + fields = ['name', 'color', 'inverted', 'public', 'staff'] class ActivityForm(OnSiteNamedModelForm): diff --git a/cfp/migrations/0020_auto_20171116_0940.py b/cfp/migrations/0020_auto_20171116_0940.py new file mode 100644 index 0000000..b91421a --- /dev/null +++ b/cfp/migrations/0020_auto_20171116_0940.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.1 on 2017-11-16 09:40 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('cfp', '0019_tag_public'), + ] + + operations = [ + migrations.AddField( + model_name='tag', + name='staff', + field=models.BooleanField(default=False, verbose_name='Show the tag on the staff program'), + ), + migrations.AlterField( + model_name='tag', + name='public', + field=models.BooleanField(default=False, verbose_name='Show the tag on the public program'), + ), + ] diff --git a/cfp/models.py b/cfp/models.py index b0c5a78..5671003 100644 --- a/cfp/models.py +++ b/cfp/models.py @@ -209,7 +209,8 @@ class Tag(models.Model): slug = AutoSlugField(populate_from='name') color = RGBColorField(default='#ffffff', verbose_name=_("Color")) inverted = models.BooleanField(default=False) - public = models.BooleanField(default=False, verbose_name=_('Show the tag on the program')) + public = models.BooleanField(default=False, verbose_name=_('Show the tag on the public program')) + staff = models.BooleanField(default=False, verbose_name=_('Show the tag on the staff program')) def get_absolute_url(self): return reverse('tag-list') diff --git a/cfp/planning.py b/cfp/planning.py index 4687fbd..8a6bd69 100644 --- a/cfp/planning.py +++ b/cfp/planning.py @@ -142,6 +142,8 @@ class Program: continue options = ' rowspan="%d" bgcolor="%s"' % (event.rowcount, event.talk.category.color) cellcontent = escape(str(event.talk)) + '
' + escape(event.talk.get_speakers_str()) + '' + for tag in event.talk.tags.filter(staff=True): + cellcontent += '
' + tag.label elif (i+1 > len(events) or not events[i+1]) and i+1 < self.cols[room]: colspan += 1 continue diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 907c425..b5333ee 100644 Binary files a/locale/fr/LC_MESSAGES/django.mo and b/locale/fr/LC_MESSAGES/django.mo differ diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index f6e285a..971ce5f 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-11-14 23:05+0000\n" -"PO-Revision-Date: 2017-11-15 00:06+0100\n" +"POT-Creation-Date: 2017-11-16 10:05+0000\n" +"PO-Revision-Date: 2017-11-16 11:01+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -34,15 +34,15 @@ msgstr "Décliné" msgid "Waiting" msgstr "En attente" -#: cfp/forms.py:29 cfp/forms.py:131 cfp/forms.py:228 cfp/models.py:373 +#: cfp/forms.py:29 cfp/forms.py:131 cfp/forms.py:228 cfp/models.py:374 msgid "Confirmed" msgstr "Confirmé" -#: cfp/forms.py:30 cfp/models.py:375 +#: cfp/forms.py:30 cfp/models.py:376 msgid "Cancelled" msgstr "Annulé" -#: cfp/forms.py:62 cfp/models.py:504 +#: cfp/forms.py:62 cfp/models.py:505 msgid "Activity" msgstr "Activité" @@ -65,13 +65,13 @@ msgstr "Catégorie" msgid "Title" msgstr "Titre" -#: cfp/forms.py:109 cfp/models.py:158 cfp/models.py:499 +#: cfp/forms.py:109 cfp/models.py:158 cfp/models.py:500 #: cfp/templates/cfp/proposal_talk_details.html:75 #: cfp/templates/cfp/staff/talk_details.html:64 msgid "Description" msgstr "Description" -#: cfp/forms.py:110 cfp/models.py:112 cfp/models.py:464 +#: cfp/forms.py:110 cfp/models.py:112 cfp/models.py:465 #: cfp/templates/cfp/staff/participant_details.html:19 #: cfp/templates/cfp/staff/talk_details.html:78 #: cfp/templates/cfp/staff/volunteer_details.html:22 @@ -82,7 +82,7 @@ msgstr "Notes" msgid "Visible by speakers" msgstr "Visible par les orateurs" -#: cfp/forms.py:137 cfp/forms.py:234 cfp/models.py:330 +#: cfp/forms.py:137 cfp/forms.py:234 cfp/models.py:331 #: cfp/templates/cfp/staff/talk_details.html:21 #: cfp/templates/cfp/staff/talk_list.html:46 #: cfp/templates/cfp/staff/track_form.html:14 @@ -120,7 +120,7 @@ msgstr "Programmé" msgid "Filter talks already / not yet scheduled" msgstr "Filtrer les exposés déjà / pas encore planifiées" -#: cfp/forms.py:161 cfp/models.py:347 +#: cfp/forms.py:161 cfp/models.py:348 #: cfp/templates/cfp/proposal_talk_details.html:89 #: cfp/templates/cfp/staff/talk_details.html:54 msgid "Materials" @@ -163,7 +163,7 @@ msgstr "Assigner à une salle" msgid "Notify by mail?" msgstr "Notifier par e-mail ?" -#: cfp/forms.py:250 cfp/models.py:459 +#: cfp/forms.py:250 cfp/models.py:460 #: cfp/templates/cfp/staff/volunteer_list.html:30 msgid "Email" msgstr "E-mail" @@ -247,7 +247,7 @@ msgstr "" "L’adresse de réponse doit être une chaine de texte formatable avec un " "argument « token » (e.g. ponyconf+{token}@exemple.com)." -#: cfp/models.py:100 cfp/models.py:156 cfp/models.py:208 cfp/models.py:497 +#: cfp/models.py:100 cfp/models.py:156 cfp/models.py:208 cfp/models.py:498 #: cfp/templates/cfp/staff/participant_list.html:42 #: cfp/templates/cfp/staff/volunteer_list.html:29 msgid "Name" @@ -282,11 +282,11 @@ msgstr "Facebook" msgid "Mastodon" msgstr "Mastodon" -#: cfp/models.py:110 cfp/models.py:461 +#: cfp/models.py:110 cfp/models.py:462 msgid "Phone number" msgstr "Numéro de téléphone" -#: cfp/models.py:113 cfp/models.py:329 +#: cfp/models.py:113 cfp/models.py:330 msgid "This field is only visible by organizers." msgstr "Ce champs est uniquement visible par les organisateurs." @@ -299,22 +299,26 @@ msgid "Color" msgstr "Couleur" #: cfp/models.py:212 -msgid "Show the tag on the program" -msgstr "Afficher l’étiquette sur le programme" +msgid "Show the tag on the public program" +msgstr "Afficher l’étiquette sur le programme public" -#: cfp/models.py:248 +#: cfp/models.py:213 +msgid "Show the tag on the staff program" +msgstr "Afficher l’étiquette sur le programme organisateur" + +#: cfp/models.py:249 msgid "Default duration (min)" msgstr "Durée par défaut (min)" -#: cfp/models.py:249 +#: cfp/models.py:250 msgid "Color on program" msgstr "Couleur sur le programme" -#: cfp/models.py:250 +#: cfp/models.py:251 msgid "Label on program" msgstr "Label dans le xml du programme" -#: cfp/models.py:324 cfp/templates/cfp/proposal_talk_details.html:53 +#: cfp/models.py:325 cfp/templates/cfp/proposal_talk_details.html:53 #: cfp/templates/cfp/staff/base.html:10 #: cfp/templates/cfp/staff/participant_list.html:8 #: cfp/templates/cfp/staff/talk_details.html:68 @@ -322,19 +326,19 @@ msgstr "Label dans le xml du programme" msgid "Speakers" msgstr "Orateurs" -#: cfp/models.py:325 +#: cfp/models.py:326 msgid "Talk Title" msgstr "Titre de la proposition" -#: cfp/models.py:328 +#: cfp/models.py:329 msgid "Description of your talk" msgstr "Description de votre proposition" -#: cfp/models.py:332 cfp/templates/cfp/proposal_talk_details.html:99 +#: cfp/models.py:333 cfp/templates/cfp/proposal_talk_details.html:99 msgid "Message to organizers" msgstr "Message aux organisateurs" -#: cfp/models.py:333 +#: cfp/models.py:334 msgid "" "If you have any constraint or if you have anything that may help you to " "select your talk, like a video or slides of your talk, please write it down " @@ -344,67 +348,67 @@ msgstr "" "votre proposition, comme une vidéo, des slides, n'hésitez pas à les ajouter " "ici." -#: cfp/models.py:336 +#: cfp/models.py:337 msgid "Talk Category" msgstr "Catégorie de proposition" -#: cfp/models.py:337 +#: cfp/models.py:338 msgid "I'm ok to be recorded on video" msgstr "J’accepte d’être enregistré en vidéo" -#: cfp/models.py:339 +#: cfp/models.py:340 msgid "Video licence" msgstr "Licence vidéo" -#: cfp/models.py:340 +#: cfp/models.py:341 msgid "I need sound" msgstr "J’ai besoin de son" -#: cfp/models.py:343 +#: cfp/models.py:344 msgid "Beginning date and time" msgstr "Date et heure de début" -#: cfp/models.py:344 +#: cfp/models.py:345 msgid "Duration (min)" msgstr "Durée (min)" -#: cfp/models.py:348 +#: cfp/models.py:349 msgid "" "You can use this field to share some materials related to your intervention." msgstr "" "Vous pouvez utiliser ce champs pour partager les supports de votre " "intervention." -#: cfp/models.py:377 +#: cfp/models.py:378 msgid "Waiting confirmation" msgstr "En attente de confirmation" -#: cfp/models.py:379 +#: cfp/models.py:380 msgid "Refused" msgstr "Refusé" -#: cfp/models.py:381 +#: cfp/models.py:382 #, python-format msgid "Pending decision, score: %(score).1f" msgstr "En cours, score : %(score).1f" -#: cfp/models.py:458 +#: cfp/models.py:459 msgid "Your Name" msgstr "Votre Nom" -#: cfp/models.py:462 +#: cfp/models.py:463 msgid "SMS prefered" msgstr "SMS préférés" -#: cfp/models.py:465 +#: cfp/models.py:466 msgid "If you have some constraints, you can indicate them here." msgstr "Si vous avez des contraintes, vous pouvez les indiquer ici." -#: cfp/models.py:500 cfp/templates/cfp/staff/volunteer_details.html:8 +#: cfp/models.py:501 cfp/templates/cfp/staff/volunteer_details.html:8 msgid "Volunteer" msgstr "Bénévole" -#: cfp/models.py:505 cfp/templates/cfp/admin/activity_list.html:9 +#: cfp/models.py:506 cfp/templates/cfp/admin/activity_list.html:9 #: cfp/templates/cfp/admin/base.html:13 #: cfp/templates/cfp/staff/volunteer_details.html:27 #: cfp/templates/cfp/staff/volunteer_list.html:32