schedule redirection url

This commit is contained in:
Élie Bouttier 2017-10-18 20:37:16 +02:00
parent 80d56f8858
commit afe24cbcf8
6 changed files with 82 additions and 46 deletions

View File

@ -212,7 +212,7 @@ class ConferenceForm(forms.ModelForm):
class Meta: class Meta:
model = Conference model = Conference
fields = [ fields = [
'name', 'home', 'venue', 'city', 'contact_email', 'schedule_publishing_date', 'name', 'home', 'venue', 'city', 'contact_email', 'schedule_publishing_date', 'schedule_redirection_url',
'volunteers_opening_date', 'volunteers_closing_date', 'reply_email', 'secure_domain', 'staff', 'volunteers_opening_date', 'volunteers_closing_date', 'reply_email', 'secure_domain', 'staff',
] ]
widgets = { widgets = {

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-10-18 18:14
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cfp', '0014_auto_20171016_1713'),
]
operations = [
migrations.AddField(
model_name='conference',
name='schedule_redirection_url',
field=models.URLField(blank=True, default='', verbose_name='Schedule redirection URL'),
),
]

View File

@ -35,6 +35,8 @@ class Conference(models.Model):
staff = models.ManyToManyField(User, blank=True, verbose_name=_('Staff members')) staff = models.ManyToManyField(User, blank=True, verbose_name=_('Staff members'))
secure_domain = models.BooleanField(default=True, verbose_name=_('Secure domain (HTTPS)')) secure_domain = models.BooleanField(default=True, verbose_name=_('Secure domain (HTTPS)'))
schedule_publishing_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Schedule publishing date')) schedule_publishing_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Schedule publishing date'))
schedule_redirection_url = models.URLField(blank=True, default='', verbose_name=_('Schedule redirection URL'),
help_text=_('If specified, schedule tab will redirect to this URL.'))
volunteers_opening_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Volunteers enrollment opening date')) volunteers_opening_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Volunteers enrollment opening date'))
volunteers_closing_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Volunteers enrollment closing date')) volunteers_closing_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Volunteers enrollment closing date'))

View File

@ -600,7 +600,10 @@ def schedule(request, program_format, pending, cache, template):
def public_schedule(request, program_format): def public_schedule(request, program_format):
if not request.conference.schedule_available and not is_staff(request, request.user): if not request.conference.schedule_available and not is_staff(request, request.user):
raise PermissionDenied raise PermissionDenied
return schedule(request, program_format=program_format, pending=False, cache=True, template='cfp/schedule.html') if request.conference.schedule_redirection_url and program_format is None:
return redirect(request.conference.schedule_redirection_url)
else:
return schedule(request, program_format=program_format, pending=False, cache=True, template='cfp/schedule.html')
@staff_required @staff_required

Binary file not shown.

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-09 18:30+0000\n" "POT-Creation-Date: 2017-10-18 18:15+0000\n"
"PO-Revision-Date: 2017-10-09 20:31+0200\n" "PO-Revision-Date: 2017-10-18 20:16+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr\n" "Language: fr\n"
@ -34,11 +34,11 @@ msgstr "Décliné"
msgid "Waiting" msgid "Waiting"
msgstr "En attente" msgstr "En attente"
#: cfp/forms.py:28 cfp/forms.py:93 cfp/forms.py:185 cfp/models.py:346 #: cfp/forms.py:28 cfp/forms.py:93 cfp/forms.py:185 cfp/models.py:349
msgid "Confirmed" msgid "Confirmed"
msgstr "Confirmé" msgstr "Confirmé"
#: cfp/forms.py:29 cfp/models.py:348 #: cfp/forms.py:29 cfp/models.py:351
msgid "Cancelled" msgid "Cancelled"
msgstr "Annulé" msgstr "Annulé"
@ -56,12 +56,12 @@ msgstr "Catégorie"
msgid "Title" msgid "Title"
msgstr "Titre" msgstr "Titre"
#: cfp/forms.py:71 cfp/models.py:141 cfp/models.py:435 #: cfp/forms.py:71 cfp/models.py:143 cfp/models.py:438
#: cfp/templates/cfp/staff/talk_details.html:64 #: cfp/templates/cfp/staff/talk_details.html:64
msgid "Description" msgid "Description"
msgstr "Description" msgstr "Description"
#: cfp/forms.py:72 cfp/models.py:109 cfp/models.py:416 #: cfp/forms.py:72 cfp/models.py:111 cfp/models.py:419
#: cfp/templates/cfp/staff/participant_details.html:16 #: cfp/templates/cfp/staff/participant_details.html:16
#: cfp/templates/cfp/staff/talk_details.html:78 #: cfp/templates/cfp/staff/talk_details.html:78
msgid "Notes" msgid "Notes"
@ -71,7 +71,7 @@ msgstr "Notes"
msgid "Visible by speakers" msgid "Visible by speakers"
msgstr "Visible par les orateurs" msgstr "Visible par les orateurs"
#: cfp/forms.py:99 cfp/forms.py:191 cfp/models.py:303 #: cfp/forms.py:99 cfp/forms.py:191 cfp/models.py:306
#: cfp/templates/cfp/staff/talk_details.html:21 #: cfp/templates/cfp/staff/talk_details.html:21
#: cfp/templates/cfp/staff/talk_list.html:46 #: cfp/templates/cfp/staff/talk_list.html:46
#: cfp/templates/cfp/staff/track_form.html:14 #: cfp/templates/cfp/staff/track_form.html:14
@ -109,7 +109,7 @@ msgstr "Programmé"
msgid "Filter talks already / not yet scheduled" msgid "Filter talks already / not yet scheduled"
msgstr "Filtrer les exposés déjà / pas encore planifiées" msgstr "Filtrer les exposés déjà / pas encore planifiées"
#: cfp/forms.py:123 cfp/models.py:320 #: cfp/forms.py:123 cfp/models.py:323
#: cfp/templates/cfp/staff/talk_details.html:54 #: cfp/templates/cfp/staff/talk_details.html:54
msgid "Materials" msgid "Materials"
msgstr "Supports" msgstr "Supports"
@ -146,7 +146,7 @@ msgstr "Ajouter une étiquette"
msgid "Put in a room" msgid "Put in a room"
msgstr "Assigner à une salle" msgstr "Assigner à une salle"
#: cfp/forms.py:167 cfp/models.py:139 cfp/models.py:190 cfp/models.py:433 #: cfp/forms.py:167 cfp/models.py:141 cfp/models.py:193 cfp/models.py:436
#: cfp/templates/cfp/staff/participant_list.html:35 #: cfp/templates/cfp/staff/participant_list.html:35
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
@ -202,14 +202,22 @@ msgid "Schedule publishing date"
msgstr "Date de publication du programme" msgstr "Date de publication du programme"
#: cfp/models.py:38 #: cfp/models.py:38
msgid "Schedule redirection URL"
msgstr "URL de redirection du programme"
#: cfp/models.py:39
msgid "If specified, schedule tab will redirect to this URL."
msgstr "Si spécifiée, longlet programme redirigera vers cette URL."
#: cfp/models.py:40
msgid "Volunteers enrollment opening date" msgid "Volunteers enrollment opening date"
msgstr "Date douverture de lappel à bénévole" msgstr "Date douverture de lappel à bénévole"
#: cfp/models.py:39 #: cfp/models.py:41
msgid "Volunteers enrollment closing date" msgid "Volunteers enrollment closing date"
msgstr "Date de fermeture de lappel à bénévole" msgstr "Date de fermeture de lappel à bénévole"
#: cfp/models.py:77 #: cfp/models.py:79
#, python-brace-format #, python-brace-format
msgid "" msgid ""
"The reply email should be a formatable string accepting a token argument (e." "The reply email should be a formatable string accepting a token argument (e."
@ -218,82 +226,82 @@ msgstr ""
"Ladresse de réponse doit être une chaine de texte formatable avec un " "Ladresse de réponse doit être une chaine de texte formatable avec un "
"argument « token » (e.g. ponyconf+{token}@exemple.com)." "argument « token » (e.g. ponyconf+{token}@exemple.com)."
#: cfp/models.py:97 cfp/models.py:411 #: cfp/models.py:99 cfp/models.py:414
msgid "Your Name" msgid "Your Name"
msgstr "Votre Nom" msgstr "Votre Nom"
#: cfp/models.py:99 cfp/templates/cfp/staff/participant_details.html:12 #: cfp/models.py:101 cfp/templates/cfp/staff/participant_details.html:12
msgid "Biography" msgid "Biography"
msgstr "Biographie" msgstr "Biographie"
#: cfp/models.py:101 #: cfp/models.py:103
msgid "Twitter" msgid "Twitter"
msgstr "Twitter" msgstr "Twitter"
#: cfp/models.py:102 #: cfp/models.py:104
msgid "LinkedIn" msgid "LinkedIn"
msgstr "LinkedIn" msgstr "LinkedIn"
#: cfp/models.py:103 #: cfp/models.py:105
msgid "Github" msgid "Github"
msgstr "Github" msgstr "Github"
#: cfp/models.py:104 #: cfp/models.py:106
msgid "Website" msgid "Website"
msgstr "Site web" msgstr "Site web"
#: cfp/models.py:105 #: cfp/models.py:107
msgid "Facebook" msgid "Facebook"
msgstr "Facebook" msgstr "Facebook"
#: cfp/models.py:106 #: cfp/models.py:108
msgid "Mastodon" msgid "Mastodon"
msgstr "Mastodon" msgstr "Mastodon"
#: cfp/models.py:107 cfp/models.py:414 #: cfp/models.py:109 cfp/models.py:417
msgid "Phone number" msgid "Phone number"
msgstr "Numéro de téléphone" msgstr "Numéro de téléphone"
#: cfp/models.py:110 cfp/models.py:302 #: cfp/models.py:112 cfp/models.py:305
msgid "This field is only visible by organizers." msgid "This field is only visible by organizers."
msgstr "Ce champs est uniquement visible par les organisateurs." msgstr "Ce champs est uniquement visible par les organisateurs."
#: cfp/models.py:192 #: cfp/models.py:195
msgid "Color" msgid "Color"
msgstr "Couleur" msgstr "Couleur"
#: cfp/models.py:224 #: cfp/models.py:227
msgid "Default duration (min)" msgid "Default duration (min)"
msgstr "Durée par défaut (min)" msgstr "Durée par défaut (min)"
#: cfp/models.py:225 #: cfp/models.py:228
msgid "Color on program" msgid "Color on program"
msgstr "Couleur sur le programme" msgstr "Couleur sur le programme"
#: cfp/models.py:226 #: cfp/models.py:229
msgid "Label on program" msgid "Label on program"
msgstr "Label dans le xml du programme" msgstr "Label dans le xml du programme"
#: cfp/models.py:297 cfp/templates/cfp/staff/base.html:15 #: cfp/models.py:300 cfp/templates/cfp/staff/base.html:15
#: cfp/templates/cfp/staff/participant_list.html:8 #: cfp/templates/cfp/staff/participant_list.html:8
#: cfp/templates/cfp/staff/talk_details.html:68 #: cfp/templates/cfp/staff/talk_details.html:68
#: cfp/templates/cfp/staff/talk_list.html:45 #: cfp/templates/cfp/staff/talk_list.html:45
msgid "Speakers" msgid "Speakers"
msgstr "Orateurs" msgstr "Orateurs"
#: cfp/models.py:298 #: cfp/models.py:301
msgid "Talk Title" msgid "Talk Title"
msgstr "Titre de la proposition" msgstr "Titre de la proposition"
#: cfp/models.py:301 #: cfp/models.py:304
msgid "Description of your talk" msgid "Description of your talk"
msgstr "Description de votre proposition" msgstr "Description de votre proposition"
#: cfp/models.py:305 #: cfp/models.py:308
msgid "Message to organizers" msgid "Message to organizers"
msgstr "Message aux organisateurs" msgstr "Message aux organisateurs"
#: cfp/models.py:306 #: cfp/models.py:309
msgid "" msgid ""
"If you have any constraint or if you have anything that may help you to " "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 " "select your talk, like a video or slides of your talk, please write it down "
@ -303,63 +311,63 @@ msgstr ""
"votre proposition, comme une vidéo, des slides, n'hésitez pas à les ajouter " "votre proposition, comme une vidéo, des slides, n'hésitez pas à les ajouter "
"ici." "ici."
#: cfp/models.py:309 #: cfp/models.py:312
msgid "Talk Category" msgid "Talk Category"
msgstr "Catégorie de proposition" msgstr "Catégorie de proposition"
#: cfp/models.py:310 #: cfp/models.py:313
msgid "I'm ok to be recorded on video" msgid "I'm ok to be recorded on video"
msgstr "Jaccepte dêtre enregistré en vidéo" msgstr "Jaccepte dêtre enregistré en vidéo"
#: cfp/models.py:312 #: cfp/models.py:315
msgid "Video licence" msgid "Video licence"
msgstr "Licence vidéo" msgstr "Licence vidéo"
#: cfp/models.py:313 #: cfp/models.py:316
msgid "I need sound" msgid "I need sound"
msgstr "Jai besoin de son" msgstr "Jai besoin de son"
#: cfp/models.py:316 #: cfp/models.py:319
msgid "Beginning date and time" msgid "Beginning date and time"
msgstr "Date et heure de début" msgstr "Date et heure de début"
#: cfp/models.py:317 #: cfp/models.py:320
msgid "Duration (min)" msgid "Duration (min)"
msgstr "Durée (min)" msgstr "Durée (min)"
#: cfp/models.py:321 #: cfp/models.py:324
msgid "" msgid ""
"You can use this field to share some materials related to your intervention." "You can use this field to share some materials related to your intervention."
msgstr "" msgstr ""
"Vous pouvez utiliser ce champs pour partager les supports de votre " "Vous pouvez utiliser ce champs pour partager les supports de votre "
"intervention." "intervention."
#: cfp/models.py:350 #: cfp/models.py:353
msgid "Waiting confirmation" msgid "Waiting confirmation"
msgstr "En attente de confirmation" msgstr "En attente de confirmation"
#: cfp/models.py:352 #: cfp/models.py:355
msgid "Refused" msgid "Refused"
msgstr "Refusé" msgstr "Refusé"
#: cfp/models.py:354 #: cfp/models.py:357
#, python-format #, python-format
msgid "Pending decision, score: %(score).1f" msgid "Pending decision, score: %(score).1f"
msgstr "En cours, score : %(score).1f" msgstr "En cours, score : %(score).1f"
#: cfp/models.py:417 #: cfp/models.py:420
msgid "If you have some constraints, you can indicate them here." msgid "If you have some constraints, you can indicate them here."
msgstr "Si vous avez des contraintes, vous pouvez les indiquer ici." msgstr "Si vous avez des contraintes, vous pouvez les indiquer ici."
#: cfp/models.py:436 #: cfp/models.py:439
msgid "Volunteer" msgid "Volunteer"
msgstr "Bénévole" msgstr "Bénévole"
#: cfp/models.py:440 #: cfp/models.py:443
msgid "Activity" msgid "Activity"
msgstr "Activité" msgstr "Activité"
#: cfp/models.py:441 #: cfp/models.py:444
msgid "Activities" msgid "Activities"
msgstr "Activités" msgstr "Activités"
@ -1025,6 +1033,9 @@ msgstr "Changement de mot de passe"
msgid "Email address" msgid "Email address"
msgstr "Adresse e-mail" msgstr "Adresse e-mail"
#~ msgid "External schedule URL"
#~ msgstr "URL programme externe"
#~ msgid "Apply a tag" #~ msgid "Apply a tag"
#~ msgstr "Ajouter une étiquette" #~ msgstr "Ajouter une étiquette"