VIP speakers

This commit is contained in:
Élie Bouttier 2017-11-03 20:35:24 +01:00
parent 9c53dd6878
commit 72f254b3d3
8 changed files with 47 additions and 15 deletions

View File

@ -179,6 +179,7 @@ ParticipantForm = modelform_factory(Participant, fields=('name', 'email', 'biogr
class ParticipantStaffForm(ParticipantForm): class ParticipantStaffForm(ParticipantForm):
class Meta(ParticipantForm.Meta): class Meta(ParticipantForm.Meta):
fields = ('name', 'vip', 'email', 'biography')
labels = { labels = {
'name': _('Name'), 'name': _('Name'),
} }

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.1 on 2017-11-03 19:22
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cfp', '0016_auto_20171103_1842'),
]
operations = [
migrations.AlterField(
model_name='participant',
name='vip',
field=models.BooleanField(default=False, verbose_name='Invited speaker'),
),
]

View File

@ -104,7 +104,7 @@ class Participant(PonyConfModel):
language = models.CharField(max_length=10, blank=True) language = models.CharField(max_length=10, blank=True)
notes = models.TextField(default='', blank=True, verbose_name=_("Notes"), notes = models.TextField(default='', blank=True, verbose_name=_("Notes"),
help_text=_('This field is only visible by organizers.')) help_text=_('This field is only visible by organizers.'))
vip = models.BooleanField(default=False) vip = models.BooleanField(default=False, verbose_name=_('Invited speaker'))
conversation = models.OneToOneField(MessageThread) conversation = models.OneToOneField(MessageThread)
objects = ParticipantManager() objects = ParticipantManager()

View File

@ -5,7 +5,10 @@
{% block content %} {% block content %}
<h1>{{ participant }}</h1> <h1>
{{ participant }}
{% if participant.vip %}<span class="badge">{% trans "VIP" %}</span>{% endif %}
</h1>
<p><a class="btn btn-success" href="{% url 'participant-edit' participant.token %}">{% trans "Edit" %}</a></p> <p><a class="btn btn-success" href="{% url 'participant-edit' participant.token %}">{% trans "Edit" %}</a></p>
@ -19,6 +22,7 @@
<h2>{% trans "Informations" %}</h2> <h2>{% trans "Informations" %}</h2>
<ul> <ul>
{% if participant.vip %}<li><b>{% trans "Invited speaker" %}</b></li>{% endif %}
<li><b>{% trans "E-mail:" %}</b> <a href="mailto:{{ participant.email }}">{{ participant.email }}</a></li> <li><b>{% trans "E-mail:" %}</b> <a href="mailto:{{ participant.email }}">{{ participant.email }}</a></li>
{% if participant.twitter %}<li><b>{% trans "Twitter:" %}</b> <a href="{{ participant.twitter }}">{{ participant.twitter }}</a></li>{% endif %} {% if participant.twitter %}<li><b>{% trans "Twitter:" %}</b> <a href="{{ participant.twitter }}">{{ participant.twitter }}</a></li>{% endif %}
{% if participant.linkedin %}<li><b>{% trans "LinkedIn:" %}</b> <a href="{{ participant.linkedin }}">{{ participant.linkedin }}</a></li>{% endif %} {% if participant.linkedin %}<li><b>{% trans "LinkedIn:" %}</b> <a href="{{ participant.linkedin }}">{{ participant.linkedin }}</a></li>{% endif %}

View File

@ -47,7 +47,10 @@
<tbody> <tbody>
{% endif %} {% endif %}
<tr> <tr>
<td><a href="{% url 'participant-details' participant.token %}">{{ participant }}</a></td> <td>
<a href="{% url 'participant-details' participant.token %}">{{ participant }}</a>
{% if participant.vip %}<span class="badge pull-right">VIP</span>{% endif %}
</td>
<td> <td>
<span class="text-success">{% blocktrans count accepted=participant.accepted_talk_count %}accepted: {{ accepted }}{% plural %}accepted: {{ accepted }}{% endblocktrans %}</span> <span class="text-success">{% blocktrans count accepted=participant.accepted_talk_count %}accepted: {{ accepted }}{% plural %}accepted: {{ accepted }}{% endblocktrans %}</span>

View File

@ -68,7 +68,7 @@
{% for participant in talk.speakers.all %} {% for participant in talk.speakers.all %}
{% if forloop.first %}<ul>{% endif %} {% if forloop.first %}<ul>{% endif %}
<li><a href="{% url 'participant-details' participant.token %}">{{ participant }}</a></li> <li><a href="{% url 'participant-details' participant.token %}">{{ participant }}</a>{% if participant.vip %} <span class="badge">VIP</span>{% endif %}</li>
{% if forloop.last %}</ul>{% endif %} {% if forloop.last %}</ul>{% endif %}
{% empty %} {% empty %}
<i>{% trans "No speakers." %}</i> <i>{% trans "No speakers." %}</i>

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-11-03 18:42+0000\n" "POT-Creation-Date: 2017-11-03 19:20+0000\n"
"PO-Revision-Date: 2017-11-03 19:43+0100\n" "PO-Revision-Date: 2017-11-03 20:22+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr\n" "Language: fr\n"
@ -22,7 +22,7 @@ msgstr ""
msgid "Pending decision" msgid "Pending decision"
msgstr "Décision en attente" msgstr "Décision en attente"
#: cfp/forms.py:18 cfp/forms.py:103 cfp/forms.py:195 #: cfp/forms.py:18 cfp/forms.py:103 cfp/forms.py:196
msgid "Accepted" msgid "Accepted"
msgstr "Accepté" msgstr "Accepté"
@ -34,7 +34,7 @@ msgstr "Décliné"
msgid "Waiting" msgid "Waiting"
msgstr "En attente" msgstr "En attente"
#: cfp/forms.py:29 cfp/forms.py:109 cfp/forms.py:201 cfp/models.py:343 #: cfp/forms.py:29 cfp/forms.py:109 cfp/forms.py:202 cfp/models.py:343
msgid "Confirmed" msgid "Confirmed"
msgstr "Confirmé" msgstr "Confirmé"
@ -56,7 +56,7 @@ msgstr "Aucune"
msgid "Default duration: %(duration)d min" msgid "Default duration: %(duration)d min"
msgstr "Durée par défaut : %(duration)d min" msgstr "Durée par défaut : %(duration)d min"
#: cfp/forms.py:85 cfp/forms.py:97 cfp/forms.py:189 #: cfp/forms.py:85 cfp/forms.py:97 cfp/forms.py:190
#: cfp/templates/cfp/staff/talk_details.html:15 #: cfp/templates/cfp/staff/talk_details.html:15
msgid "Category" msgid "Category"
msgstr "Catégorie" msgstr "Catégorie"
@ -81,7 +81,7 @@ msgstr "Notes"
msgid "Visible by speakers" msgid "Visible by speakers"
msgstr "Visible par les orateurs" msgstr "Visible par les orateurs"
#: cfp/forms.py:115 cfp/forms.py:207 cfp/models.py:300 #: cfp/forms.py:115 cfp/forms.py:208 cfp/models.py:300
#: 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
@ -136,7 +136,7 @@ msgstr "Vidéo"
msgid "Filter talks with / without video" msgid "Filter talks with / without video"
msgstr "Filtrer les exposés avec / sans vidéo" msgstr "Filtrer les exposés avec / sans vidéo"
#: cfp/forms.py:153 cfp/forms.py:219 #: cfp/forms.py:153 cfp/forms.py:220
msgid "Not assigned" msgid "Not assigned"
msgstr "Pas encore assignée" msgstr "Pas encore assignée"
@ -156,23 +156,23 @@ 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:183 cfp/models.py:135 cfp/models.py:187 cfp/models.py:431 #: cfp/forms.py:184 cfp/models.py:135 cfp/models.py:187 cfp/models.py:431
#: cfp/templates/cfp/staff/participant_list.html:35 #: cfp/templates/cfp/staff/participant_list.html:35
#: cfp/templates/cfp/staff/volunteer_list.html:29 #: cfp/templates/cfp/staff/volunteer_list.html:29
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#: cfp/forms.py:238 #: cfp/forms.py:239
msgid "New staff members will be informed of their new position by e-mail." msgid "New staff members will be informed of their new position by e-mail."
msgstr "" msgstr ""
"Les nouveaux membres du staff seront informés de leur nouveau rôle par " "Les nouveaux membres du staff seront informés de leur nouveau rôle par "
"courrier électronique." "courrier électronique."
#: cfp/forms.py:258 #: cfp/forms.py:259
msgid "An user with that firstname and that lastname already exists." msgid "An user with that firstname and that lastname already exists."
msgstr "Un utilisateur avec ce prénom et ce nom existe déjà." msgstr "Un utilisateur avec ce prénom et ce nom existe déjà."
#: cfp/forms.py:263 #: cfp/forms.py:264
msgid "A user with that email already exists." msgid "A user with that email already exists."
msgstr "Un utilisateur avec cet email existe déjà." msgstr "Un utilisateur avec cet email existe déjà."
@ -278,6 +278,10 @@ msgstr "Numéro de téléphone"
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:107
msgid "Invited speaker"
msgstr "Orateur invité"
#: cfp/models.py:189 #: cfp/models.py:189
msgid "Color" msgid "Color"
msgstr "Couleur" msgstr "Couleur"