volunteer: send secret url by mail
This commit is contained in:
parent
1159552241
commit
e4e4cd35ef
13
cfp/templates/cfp/mails/volunteer_send_token.txt
Normal file
13
cfp/templates/cfp/mails/volunteer_send_token.txt
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% load i18n %}{% blocktrans with name=volunteer.name footer=conf.name %}Hi {{ name }},
|
||||||
|
|
||||||
|
Someone, probably you, asked to access your volunteer profile.
|
||||||
|
You can update your availabilities or edit your profile following this url:
|
||||||
|
|
||||||
|
{{ url }}
|
||||||
|
|
||||||
|
If you have any question, your can answer to this email.
|
||||||
|
|
||||||
|
Sincerely,
|
||||||
|
|
||||||
|
{{ footer }}
|
||||||
|
{% endblocktrans %}
|
|
@ -1,4 +1,5 @@
|
||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
|
@ -6,14 +7,31 @@
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<h1>{% trans "Become a volunteers!" %}</h1>
|
<div class="page-header">
|
||||||
|
<h1>
|
||||||
<p>
|
{% trans "Become a volunteers!" %}
|
||||||
{% blocktrans %}We need you! To participate, please enter your name and e-mail.{% endblocktrans %}
|
</h1>
|
||||||
</p>
|
{% blocktrans %}We need you! To participate, please enter your name and e-mail.{% endblocktrans %}
|
||||||
|
</div>
|
||||||
{% include '_form.html' %}
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
{% if not request.user.is_authenticated %}
|
||||||
|
<div class="col-md-8 col-md-offset-2 alert alert-info">
|
||||||
|
<span class="glyphicon glyphicon-exclamation-sign"></span>
|
||||||
|
{% url 'volunteer-mail-token' as mail_token_url %}
|
||||||
|
{% blocktrans %}If you already subscribe as a volunteer and want to update your availabilities, please click <a href="{{ mail_token_url }}">here</a>.{% endblocktrans %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<form method="POST" class="form-horizontal col-md-8 col-md-offset-2">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form|crispy }}
|
||||||
|
<div class="col-md-12 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary text-center">{% trans "Save" %} <i class="fa fa-check"></i></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% for activity in activities %}
|
{% for activity in activities %}
|
||||||
{% if forloop.first %}
|
{% if forloop.first %}
|
||||||
|
|
30
cfp/templates/cfp/volunteer_mail_token.html
Normal file
30
cfp/templates/cfp/volunteer_mail_token.html
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
|
{% load ponyconf_tags i18n %}
|
||||||
|
|
||||||
|
{% block volunteertab %} class="active"{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="page-header">
|
||||||
|
<h1>
|
||||||
|
{% trans "Access an existing profile" %}
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<form method="POST" class="form-horizontal col-md-8 col-md-offset-2">
|
||||||
|
{% csrf_token %}
|
||||||
|
<div class="form-group">
|
||||||
|
{% blocktrans %}To receive a email with a link to access your profile, please enter your email below.{% endblocktrans %}
|
||||||
|
</div>
|
||||||
|
{{ form|crispy }}
|
||||||
|
<div class="col-md-12 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary text-center">{% trans "Save" %} <i class="fa fa-check"></i></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
|
@ -28,6 +28,7 @@ urlpatterns = [
|
||||||
url(r'^cfp/(?P<talk_id>[\w\-]+)/(?P<participant_id>[\w\-]+)/desist/$', views.talk_acknowledgment, {'confirm': False}, name='talk-desist'),
|
url(r'^cfp/(?P<talk_id>[\w\-]+)/(?P<participant_id>[\w\-]+)/desist/$', views.talk_acknowledgment, {'confirm': False}, name='talk-desist'),
|
||||||
# End backward compatibility
|
# End backward compatibility
|
||||||
url(r'^volunteer/enrole/$', views.volunteer_enrole, name='volunteer-enrole'),
|
url(r'^volunteer/enrole/$', views.volunteer_enrole, name='volunteer-enrole'),
|
||||||
|
url(r'^volunteer/token/$', views.volunteer_mail_token, name='volunteer-mail-token'),
|
||||||
url(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?$', views.volunteer_home, name='volunteer-home'),
|
url(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?$', views.volunteer_home, name='volunteer-home'),
|
||||||
url(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?join/(?P<activity>[\w\-]+)/$', views.volunteer_update_activity, {'join': True}, name='volunteer-join'),
|
url(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?join/(?P<activity>[\w\-]+)/$', views.volunteer_update_activity, {'join': True}, name='volunteer-join'),
|
||||||
url(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?quit/(?P<activity>[\w\-]+)/$', views.volunteer_update_activity, {'join': False}, name='volunteer-quit'),
|
url(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?quit/(?P<activity>[\w\-]+)/$', views.volunteer_update_activity, {'join': False}, name='volunteer-quit'),
|
||||||
|
|
36
cfp/views.py
36
cfp/views.py
|
@ -2,6 +2,7 @@ from math import ceil
|
||||||
from django.core.mail import send_mail
|
from django.core.mail import send_mail
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.shortcuts import get_object_or_404, redirect, render
|
from django.shortcuts import get_object_or_404, redirect, render
|
||||||
|
from django.template.loader import render_to_string
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.views.generic import FormView, TemplateView
|
from django.views.generic import FormView, TemplateView
|
||||||
|
@ -96,6 +97,41 @@ Thanks!
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
def volunteer_mail_token(request):
|
||||||
|
form = MailForm(request.POST or None)
|
||||||
|
if request.method == 'POST' and form.is_valid():
|
||||||
|
try:
|
||||||
|
volunteer = Volunteer.objects.get(site=request.conference.site, email=form.cleaned_data['email'])
|
||||||
|
except Volunteer.DoesNotExist:
|
||||||
|
messages.error(request, _('Sorry, we do not know this email.'))
|
||||||
|
else:
|
||||||
|
|
||||||
|
base_url = ('https' if request.is_secure() else 'http') + '://' + request.conference.site.domain
|
||||||
|
url = base_url + reverse('volunteer-home', kwargs=dict(volunteer_token=volunteer.token))
|
||||||
|
body = render_to_string('cfp/mails/volunteer_send_token.txt', {
|
||||||
|
'volunteer': volunteer,
|
||||||
|
'url': url,
|
||||||
|
'conf': request.conference
|
||||||
|
})
|
||||||
|
#Message.objects.create(
|
||||||
|
# thread=volunteer.conversation,
|
||||||
|
# author=request.conference,
|
||||||
|
# from_email=request.conference.contact_email,
|
||||||
|
# content=body,
|
||||||
|
#)
|
||||||
|
send_mail(
|
||||||
|
subject=_('Thank you for your help!'),
|
||||||
|
message=body,
|
||||||
|
from_email='%s <%s>' % (request.conference.name, request.conference.contact_email),
|
||||||
|
recipient_list=['%s <%s>' % (volunteer.name, volunteer.email)],
|
||||||
|
)
|
||||||
|
messages.success(request, _('A email have been sent with a link to access to your profil.'))
|
||||||
|
return redirect(reverse('volunteer-mail-token'))
|
||||||
|
return render(request, 'cfp/volunteer_mail_token.html', {
|
||||||
|
'form': form,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
@volunteer_required
|
@volunteer_required
|
||||||
def volunteer_home(request, volunteer):
|
def volunteer_home(request, volunteer):
|
||||||
return render(request, 'cfp/volunteer.html', {
|
return render(request, 'cfp/volunteer.html', {
|
||||||
|
|
Binary file not shown.
|
@ -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-16 10:05+0000\n"
|
"POT-Creation-Date: 2017-11-19 22:31+0000\n"
|
||||||
"PO-Revision-Date: 2017-11-16 11:01+0100\n"
|
"PO-Revision-Date: 2017-11-19 23:36+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
@ -18,6 +18,86 @@ msgstr ""
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
"X-Generator: Poedit 2.0.4\n"
|
"X-Generator: Poedit 2.0.4\n"
|
||||||
|
|
||||||
|
#: accounts/forms.py:20
|
||||||
|
msgid "Email address"
|
||||||
|
msgstr "Adresse e-mail"
|
||||||
|
|
||||||
|
#: accounts/models.py:10 cfp/models.py:110 cfp/models.py:462
|
||||||
|
msgid "Phone number"
|
||||||
|
msgstr "Numéro de téléphone"
|
||||||
|
|
||||||
|
#: accounts/models.py:11 cfp/models.py:463
|
||||||
|
msgid "SMS prefered"
|
||||||
|
msgstr "SMS préférés"
|
||||||
|
|
||||||
|
#: accounts/models.py:12 cfp/models.py:102
|
||||||
|
#: cfp/templates/cfp/proposal_dashboard.html:33
|
||||||
|
#: cfp/templates/cfp/staff/participant_details.html:15
|
||||||
|
msgid "Biography"
|
||||||
|
msgstr "Biographie"
|
||||||
|
|
||||||
|
#: accounts/models.py:14 cfp/models.py:104
|
||||||
|
msgid "Twitter"
|
||||||
|
msgstr "Twitter"
|
||||||
|
|
||||||
|
#: accounts/models.py:15 cfp/models.py:105
|
||||||
|
msgid "LinkedIn"
|
||||||
|
msgstr "LinkedIn"
|
||||||
|
|
||||||
|
#: accounts/models.py:16 cfp/models.py:106
|
||||||
|
msgid "Github"
|
||||||
|
msgstr "Github"
|
||||||
|
|
||||||
|
#: accounts/models.py:17 cfp/models.py:107
|
||||||
|
msgid "Website"
|
||||||
|
msgstr "Site web"
|
||||||
|
|
||||||
|
#: accounts/models.py:18 cfp/models.py:108
|
||||||
|
msgid "Facebook"
|
||||||
|
msgstr "Facebook"
|
||||||
|
|
||||||
|
#: accounts/models.py:19 cfp/models.py:109
|
||||||
|
msgid "Mastodon"
|
||||||
|
msgstr "Mastodon"
|
||||||
|
|
||||||
|
#: accounts/signals.py:23
|
||||||
|
msgid "Welcome!"
|
||||||
|
msgstr "Bienvenue !"
|
||||||
|
|
||||||
|
#: accounts/signals.py:28
|
||||||
|
msgid "Goodbye!"
|
||||||
|
msgstr "Au revoir !"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:12 ponyconf/templates/base.html:47
|
||||||
|
msgid "Profile"
|
||||||
|
msgstr "Profil"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:21 ponyconf/templates/_form.html:12
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Envoyer"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:25
|
||||||
|
#: cfp/templates/cfp/admin/create_user.html:14
|
||||||
|
#: cfp/templates/cfp/staff/talk_decide.html:22 ponyconf/templates/_form.html:16
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Annuler"
|
||||||
|
|
||||||
|
#: accounts/views.py:11
|
||||||
|
msgid "Reset your password"
|
||||||
|
msgstr "Réinitialiser son mot de passe"
|
||||||
|
|
||||||
|
#: accounts/views.py:12
|
||||||
|
msgid "Change password"
|
||||||
|
msgstr "Changer de mot de passe"
|
||||||
|
|
||||||
|
#: accounts/views.py:28
|
||||||
|
msgid "Profile updated successfully."
|
||||||
|
msgstr "Profil modifié avec succès !"
|
||||||
|
|
||||||
|
#: accounts/views.py:30
|
||||||
|
msgid "Please correct those errors."
|
||||||
|
msgstr "Merci de corriger ces erreurs."
|
||||||
|
|
||||||
#: cfp/forms.py:17
|
#: cfp/forms.py:17
|
||||||
msgid "Pending decision"
|
msgid "Pending decision"
|
||||||
msgstr "Décision en attente"
|
msgstr "Décision en attente"
|
||||||
|
@ -253,39 +333,6 @@ msgstr ""
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nom"
|
msgstr "Nom"
|
||||||
|
|
||||||
#: cfp/models.py:102 cfp/templates/cfp/proposal_dashboard.html:33
|
|
||||||
#: cfp/templates/cfp/staff/participant_details.html:15
|
|
||||||
msgid "Biography"
|
|
||||||
msgstr "Biographie"
|
|
||||||
|
|
||||||
#: cfp/models.py:104
|
|
||||||
msgid "Twitter"
|
|
||||||
msgstr "Twitter"
|
|
||||||
|
|
||||||
#: cfp/models.py:105
|
|
||||||
msgid "LinkedIn"
|
|
||||||
msgstr "LinkedIn"
|
|
||||||
|
|
||||||
#: cfp/models.py:106
|
|
||||||
msgid "Github"
|
|
||||||
msgstr "Github"
|
|
||||||
|
|
||||||
#: cfp/models.py:107
|
|
||||||
msgid "Website"
|
|
||||||
msgstr "Site web"
|
|
||||||
|
|
||||||
#: cfp/models.py:108
|
|
||||||
msgid "Facebook"
|
|
||||||
msgstr "Facebook"
|
|
||||||
|
|
||||||
#: cfp/models.py:109
|
|
||||||
msgid "Mastodon"
|
|
||||||
msgstr "Mastodon"
|
|
||||||
|
|
||||||
#: 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:330
|
#: cfp/models.py:113 cfp/models.py:330
|
||||||
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."
|
||||||
|
@ -396,10 +443,6 @@ msgstr "En cours, score : %(score).1f"
|
||||||
msgid "Your Name"
|
msgid "Your Name"
|
||||||
msgstr "Votre Nom"
|
msgstr "Votre Nom"
|
||||||
|
|
||||||
#: cfp/models.py:463
|
|
||||||
msgid "SMS prefered"
|
|
||||||
msgstr "SMS préférés"
|
|
||||||
|
|
||||||
#: cfp/models.py:466
|
#: cfp/models.py:466
|
||||||
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."
|
||||||
|
@ -501,14 +544,11 @@ msgstr "Ajouter un nouvel utilisateur"
|
||||||
#: cfp/templates/cfp/proposal_mail_token.html:25
|
#: cfp/templates/cfp/proposal_mail_token.html:25
|
||||||
#: cfp/templates/cfp/proposal_speaker_form.html:49
|
#: cfp/templates/cfp/proposal_speaker_form.html:49
|
||||||
#: cfp/templates/cfp/proposal_talk_form.html:28
|
#: cfp/templates/cfp/proposal_talk_form.html:28
|
||||||
|
#: cfp/templates/cfp/volunteer_enrole.html:30
|
||||||
|
#: cfp/templates/cfp/volunteer_mail_token.html:25
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Envoyer"
|
msgstr "Envoyer"
|
||||||
|
|
||||||
#: cfp/templates/cfp/admin/create_user.html:14
|
|
||||||
#: cfp/templates/cfp/staff/talk_decide.html:22 ponyconf/templates/_form.html:16
|
|
||||||
msgid "Cancel"
|
|
||||||
msgstr "Annuler"
|
|
||||||
|
|
||||||
#: cfp/templates/cfp/admin/tag_form.html:16
|
#: cfp/templates/cfp/admin/tag_form.html:16
|
||||||
msgid "Edit tag"
|
msgid "Edit tag"
|
||||||
msgstr "Édition d’une étiquette"
|
msgstr "Édition d’une étiquette"
|
||||||
|
@ -538,6 +578,66 @@ msgstr ""
|
||||||
"Si vous avez déjà soumis une proposition et que vous souhaitez l’éditer, "
|
"Si vous avez déjà soumis une proposition et que vous souhaitez l’éditer, "
|
||||||
"cliquez <a href=\"%(mail_token_url)s\">ici</a>."
|
"cliquez <a href=\"%(mail_token_url)s\">ici</a>."
|
||||||
|
|
||||||
|
#: cfp/templates/cfp/mails/speaker_send_token.txt:1
|
||||||
|
msgid ""
|
||||||
|
"Hi {},\n"
|
||||||
|
"\n"
|
||||||
|
"Someone, probably you, ask to access your profile.\n"
|
||||||
|
"You can edit your talks or add new ones following this url:\n"
|
||||||
|
"\n"
|
||||||
|
" {}\n"
|
||||||
|
"\n"
|
||||||
|
"If you have any question, your can answer to this email.\n"
|
||||||
|
"\n"
|
||||||
|
"Sincerely,\n"
|
||||||
|
"\n"
|
||||||
|
"{}\n"
|
||||||
|
msgstr ""
|
||||||
|
"Bonjour {},\n"
|
||||||
|
"\n"
|
||||||
|
"Quelqu’un, sans doute vous, a demandé à accéder à votre profil.\n"
|
||||||
|
"Vous pouvez modifier vos propositions ou en soumettre de nouvelles à l’url "
|
||||||
|
"suivante :\n"
|
||||||
|
"\n"
|
||||||
|
" {}\n"
|
||||||
|
"\n"
|
||||||
|
"Si vous avez une question, vous pouvez répondre à ce mail.\n"
|
||||||
|
"\n"
|
||||||
|
"Sincèrement,\n"
|
||||||
|
"\n"
|
||||||
|
"{}\n"
|
||||||
|
|
||||||
|
#: cfp/templates/cfp/mails/volunteer_send_token.txt:1
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Hi %(name)s,\n"
|
||||||
|
"\n"
|
||||||
|
"Someone, probably you, asked to access your volunteer profile.\n"
|
||||||
|
"You can update your availabilities or edit your profile following this url:\n"
|
||||||
|
"\n"
|
||||||
|
" %(url)s\n"
|
||||||
|
"\n"
|
||||||
|
"If you have any question, your can answer to this email.\n"
|
||||||
|
"\n"
|
||||||
|
"Sincerely,\n"
|
||||||
|
"\n"
|
||||||
|
"%(footer)s\n"
|
||||||
|
msgstr ""
|
||||||
|
"Bonjour %(name)s,\n"
|
||||||
|
"\n"
|
||||||
|
"Quelqu’un, sans doute vous, a demandé à accéder à votre profil bénévole.\n"
|
||||||
|
"Vous pouvez modifier vos disponibilité ou éditer votre profil à l’url "
|
||||||
|
"suivante :\n"
|
||||||
|
"\n"
|
||||||
|
" %(url)s\n"
|
||||||
|
"\n"
|
||||||
|
"Si vous avez une question, vous pouvez répondre à ce mail.\n"
|
||||||
|
"\n"
|
||||||
|
"Sincèrement,\n"
|
||||||
|
"\n"
|
||||||
|
"\n"
|
||||||
|
"%(footer)s\n"
|
||||||
|
|
||||||
#: cfp/templates/cfp/proposal_dashboard.html:11
|
#: cfp/templates/cfp/proposal_dashboard.html:11
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Welcome <b>%(name)s</b>!"
|
msgid "Welcome <b>%(name)s</b>!"
|
||||||
|
@ -644,10 +744,12 @@ msgstr ""
|
||||||
"en soumettre une autre, cliquez <a href=\"%(mail_token_url)s\">ici</a>."
|
"en soumettre une autre, cliquez <a href=\"%(mail_token_url)s\">ici</a>."
|
||||||
|
|
||||||
#: cfp/templates/cfp/proposal_mail_token.html:12
|
#: cfp/templates/cfp/proposal_mail_token.html:12
|
||||||
|
#: cfp/templates/cfp/volunteer_mail_token.html:12
|
||||||
msgid "Access an existing profile"
|
msgid "Access an existing profile"
|
||||||
msgstr "Accéder à un profil existant"
|
msgstr "Accéder à un profil existant"
|
||||||
|
|
||||||
#: cfp/templates/cfp/proposal_mail_token.html:21
|
#: cfp/templates/cfp/proposal_mail_token.html:21
|
||||||
|
#: cfp/templates/cfp/volunteer_mail_token.html:21
|
||||||
msgid ""
|
msgid ""
|
||||||
"To receive a email with a link to access your profile, please enter your "
|
"To receive a email with a link to access your profile, please enter your "
|
||||||
"email below."
|
"email below."
|
||||||
|
@ -1078,7 +1180,8 @@ msgstr "bénévole"
|
||||||
msgid "Phone"
|
msgid "Phone"
|
||||||
msgstr "Téléphone"
|
msgstr "Téléphone"
|
||||||
|
|
||||||
#: cfp/templates/cfp/volunteer.html:9 cfp/templates/cfp/volunteer_enrole.html:9
|
#: cfp/templates/cfp/volunteer.html:9
|
||||||
|
#: cfp/templates/cfp/volunteer_enrole.html:12
|
||||||
msgid "Become a volunteers!"
|
msgid "Become a volunteers!"
|
||||||
msgstr "Devenez un bénévole !"
|
msgstr "Devenez un bénévole !"
|
||||||
|
|
||||||
|
@ -1090,17 +1193,27 @@ msgstr "Je serai heureux d’aider à cela !"
|
||||||
msgid "Sorry, I have a setback"
|
msgid "Sorry, I have a setback"
|
||||||
msgstr "Désolé, j’ai un contretemps"
|
msgstr "Désolé, j’ai un contretemps"
|
||||||
|
|
||||||
#: cfp/templates/cfp/volunteer_enrole.html:12
|
#: cfp/templates/cfp/volunteer_enrole.html:14
|
||||||
msgid "We need you! To participate, please enter your name and e-mail."
|
msgid "We need you! To participate, please enter your name and e-mail."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nous avons besoin de vous ! Pour participer, veuillez indiquer votre nom et "
|
"Nous avons besoin de vous ! Pour participer, veuillez indiquer votre nom et "
|
||||||
"votre adresse e-mail."
|
"votre adresse e-mail."
|
||||||
|
|
||||||
#: cfp/templates/cfp/volunteer_enrole.html:22
|
#: cfp/templates/cfp/volunteer_enrole.html:23
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"If you already subscribe as a volunteer and want to update your "
|
||||||
|
"availabilities, please click <a href=\"%(mail_token_url)s\">here</a>."
|
||||||
|
msgstr ""
|
||||||
|
"Si vous vous êtes déjà inscrit en tant que bénévole et que vous souhaitez "
|
||||||
|
"mettre à jour vos disponibilités, cliquez <a href=\"%(mail_token_url)s"
|
||||||
|
"\">ici</a>."
|
||||||
|
|
||||||
|
#: cfp/templates/cfp/volunteer_enrole.html:40
|
||||||
msgid "We are looking for help with the following activities:"
|
msgid "We are looking for help with the following activities:"
|
||||||
msgstr "Nous cherchons de l’aide pour les activités suivantes :"
|
msgstr "Nous cherchons de l’aide pour les activités suivantes :"
|
||||||
|
|
||||||
#: cfp/views.py:52
|
#: cfp/views.py:67
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hi {},\n"
|
"Hi {},\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1128,26 +1241,34 @@ msgstr ""
|
||||||
"{}\n"
|
"{}\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cfp/views.py:72
|
#: cfp/views.py:87 cfp/views.py:123
|
||||||
msgid "Thank you for your help!"
|
msgid "Thank you for your help!"
|
||||||
msgstr "Merci pour votre aide !"
|
msgstr "Merci pour votre aide !"
|
||||||
|
|
||||||
#: cfp/views.py:77
|
#: cfp/views.py:92
|
||||||
msgid ""
|
msgid ""
|
||||||
"Thank you for your participation! You can now subscribe to some activities."
|
"Thank you for your participation! You can now subscribe to some activities."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Merci pour votre participation ! Vous pouvez maintenant vous inscrire à une "
|
"Merci pour votre participation ! Vous pouvez maintenant vous inscrire à une "
|
||||||
"ou plusieurs activités."
|
"ou plusieurs activités."
|
||||||
|
|
||||||
#: cfp/views.py:99
|
#: cfp/views.py:106 cfp/views.py:280
|
||||||
|
msgid "Sorry, we do not know this email."
|
||||||
|
msgstr "Désolé, nous ne connaissons pas cette e-mail."
|
||||||
|
|
||||||
|
#: cfp/views.py:128 cfp/views.py:305
|
||||||
|
msgid "A email have been sent with a link to access to your profil."
|
||||||
|
msgstr "Un e-mail vous a été envoyé avec un lien pour accéder à votre profil."
|
||||||
|
|
||||||
|
#: cfp/views.py:149
|
||||||
msgid "Thank you for your participation!"
|
msgid "Thank you for your participation!"
|
||||||
msgstr "Merci pour votre participation !"
|
msgstr "Merci pour votre participation !"
|
||||||
|
|
||||||
#: cfp/views.py:103
|
#: cfp/views.py:153
|
||||||
msgid "Okay, no problem!"
|
msgid "Okay, no problem!"
|
||||||
msgstr "Ok, pas de soucis !"
|
msgstr "Ok, pas de soucis !"
|
||||||
|
|
||||||
#: cfp/views.py:187
|
#: cfp/views.py:236
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hi {},\n"
|
"Hi {},\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1187,15 +1308,11 @@ msgstr ""
|
||||||
"{}\n"
|
"{}\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cfp/views.py:217 cfp/views.py:301
|
#: cfp/views.py:266 cfp/views.py:350
|
||||||
msgid "You proposition have been successfully submitted!"
|
msgid "You proposition have been successfully submitted!"
|
||||||
msgstr "Votre proposition a été transmise avec succès !"
|
msgstr "Votre proposition a été transmise avec succès !"
|
||||||
|
|
||||||
#: cfp/views.py:231
|
#: cfp/views.py:285
|
||||||
msgid "Sorry, we do not know this email."
|
|
||||||
msgstr "Désolé, nous ne connaissons pas cette e-mail."
|
|
||||||
|
|
||||||
#: cfp/views.py:236
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hi {},\n"
|
"Hi {},\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1226,41 +1343,37 @@ msgstr ""
|
||||||
"{}\n"
|
"{}\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cfp/views.py:256
|
#: cfp/views.py:346 cfp/views.py:419
|
||||||
msgid "A email have been sent with a link to access to your profil."
|
|
||||||
msgstr "Un e-mail vous a été envoyé avec un lien pour accéder à votre profil."
|
|
||||||
|
|
||||||
#: cfp/views.py:297 cfp/views.py:370
|
|
||||||
msgid "Changes saved."
|
msgid "Changes saved."
|
||||||
msgstr "Modifications sauvegardées."
|
msgstr "Modifications sauvegardées."
|
||||||
|
|
||||||
#: cfp/views.py:318
|
#: cfp/views.py:367
|
||||||
msgid "You already confirmed your participation to this talk."
|
msgid "You already confirmed your participation to this talk."
|
||||||
msgstr "Vous avez déjà confirmé votre participation à cet exposé."
|
msgstr "Vous avez déjà confirmé votre participation à cet exposé."
|
||||||
|
|
||||||
#: cfp/views.py:320
|
#: cfp/views.py:369
|
||||||
msgid "You already cancelled your participation to this talk."
|
msgid "You already cancelled your participation to this talk."
|
||||||
msgstr "Vous avez déjà annulé votre participation à cet exposé."
|
msgstr "Vous avez déjà annulé votre participation à cet exposé."
|
||||||
|
|
||||||
#: cfp/views.py:325
|
#: cfp/views.py:374
|
||||||
msgid "Your participation has been taken into account, thank you!"
|
msgid "Your participation has been taken into account, thank you!"
|
||||||
msgstr "Votre participation a été prise en compte, merci !"
|
msgstr "Votre participation a été prise en compte, merci !"
|
||||||
|
|
||||||
#: cfp/views.py:326
|
#: cfp/views.py:375
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Speaker %(speaker)s confirmed his/her participation."
|
msgid "Speaker %(speaker)s confirmed his/her participation."
|
||||||
msgstr "L’intervenant %(speaker)s a confirmé sa participation."
|
msgstr "L’intervenant %(speaker)s a confirmé sa participation."
|
||||||
|
|
||||||
#: cfp/views.py:328
|
#: cfp/views.py:377
|
||||||
msgid "We have noted your unavailability."
|
msgid "We have noted your unavailability."
|
||||||
msgstr "Nous avons enregistré votre indisponibilité."
|
msgstr "Nous avons enregistré votre indisponibilité."
|
||||||
|
|
||||||
#: cfp/views.py:329
|
#: cfp/views.py:378
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Speaker %(speaker)s CANCELLED his/her participation."
|
msgid "Speaker %(speaker)s CANCELLED his/her participation."
|
||||||
msgstr "L’intervenant %(speaker)s a ANNULÉ sa participation."
|
msgstr "L’intervenant %(speaker)s a ANNULÉ sa participation."
|
||||||
|
|
||||||
#: cfp/views.py:377
|
#: cfp/views.py:426
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hi {},\n"
|
"Hi {},\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1300,59 +1413,59 @@ msgstr ""
|
||||||
"{}\n"
|
"{}\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cfp/views.py:408 cfp/views.py:428
|
#: cfp/views.py:457 cfp/views.py:477
|
||||||
msgid "Co-speaker successfully added to the talk."
|
msgid "Co-speaker successfully added to the talk."
|
||||||
msgstr "Co-intervenant ajouté à l’exposé avec succès."
|
msgstr "Co-intervenant ajouté à l’exposé avec succès."
|
||||||
|
|
||||||
#: cfp/views.py:441
|
#: cfp/views.py:490
|
||||||
msgid "Co-speaker successfully removed from the talk."
|
msgid "Co-speaker successfully removed from the talk."
|
||||||
msgstr "Co-intervenant supprimé de l’exposé avec succès."
|
msgstr "Co-intervenant supprimé de l’exposé avec succès."
|
||||||
|
|
||||||
#: cfp/views.py:483
|
#: cfp/views.py:532
|
||||||
msgid "The speaker confirmation have been noted."
|
msgid "The speaker confirmation have been noted."
|
||||||
msgstr "La confirmation de l’orateur a été notée."
|
msgstr "La confirmation de l’orateur a été notée."
|
||||||
|
|
||||||
#: cfp/views.py:484
|
#: cfp/views.py:533
|
||||||
msgid "The talk have been confirmed."
|
msgid "The talk have been confirmed."
|
||||||
msgstr "L’exposé a été confirmé."
|
msgstr "L’exposé a été confirmé."
|
||||||
|
|
||||||
#: cfp/views.py:486
|
#: cfp/views.py:535
|
||||||
msgid "The speaker unavailability have been noted."
|
msgid "The speaker unavailability have been noted."
|
||||||
msgstr "L’indisponibilité de l’intervenant a été notée."
|
msgstr "L’indisponibilité de l’intervenant a été notée."
|
||||||
|
|
||||||
#: cfp/views.py:487
|
#: cfp/views.py:536
|
||||||
msgid "The talk have been cancelled."
|
msgid "The talk have been cancelled."
|
||||||
msgstr "L’exposé a été annulé."
|
msgstr "L’exposé a été annulé."
|
||||||
|
|
||||||
#: cfp/views.py:572 cfp/views.py:677
|
#: cfp/views.py:621 cfp/views.py:726
|
||||||
msgid "The talk has been accepted."
|
msgid "The talk has been accepted."
|
||||||
msgstr "L’exposé a été accepté."
|
msgstr "L’exposé a été accepté."
|
||||||
|
|
||||||
#: cfp/views.py:574 cfp/views.py:679
|
#: cfp/views.py:623 cfp/views.py:728
|
||||||
msgid "The talk has been declined."
|
msgid "The talk has been declined."
|
||||||
msgstr "L’exposé a été décliné."
|
msgstr "L’exposé a été décliné."
|
||||||
|
|
||||||
#: cfp/views.py:646 cfp/views.py:751
|
#: cfp/views.py:695 cfp/views.py:800
|
||||||
msgid "Message sent!"
|
msgid "Message sent!"
|
||||||
msgstr "Message envoyé !"
|
msgstr "Message envoyé !"
|
||||||
|
|
||||||
#: cfp/views.py:660
|
#: cfp/views.py:709
|
||||||
msgid "Vote successfully created"
|
msgid "Vote successfully created"
|
||||||
msgstr "A voté !"
|
msgstr "A voté !"
|
||||||
|
|
||||||
#: cfp/views.py:660
|
#: cfp/views.py:709
|
||||||
msgid "Vote successfully updated"
|
msgid "Vote successfully updated"
|
||||||
msgstr "Vote mis à jour"
|
msgstr "Vote mis à jour"
|
||||||
|
|
||||||
#: cfp/views.py:681
|
#: cfp/views.py:730
|
||||||
msgid "Decision taken in account"
|
msgid "Decision taken in account"
|
||||||
msgstr "Décision enregistrée"
|
msgstr "Décision enregistrée"
|
||||||
|
|
||||||
#: cfp/views.py:817
|
#: cfp/views.py:866
|
||||||
msgid "[{}] You have been added to the staff team"
|
msgid "[{}] You have been added to the staff team"
|
||||||
msgstr "[{}] Vous avez été ajouté aux membres du staff"
|
msgstr "[{}] Vous avez été ajouté aux membres du staff"
|
||||||
|
|
||||||
#: cfp/views.py:818
|
#: cfp/views.py:867
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hi {},\n"
|
"Hi {},\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1376,15 +1489,15 @@ msgstr ""
|
||||||
"{}\n"
|
"{}\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cfp/views.py:839
|
#: cfp/views.py:888
|
||||||
msgid "Modifications successfully saved."
|
msgid "Modifications successfully saved."
|
||||||
msgstr "Modification enregistrée avec succès."
|
msgstr "Modification enregistrée avec succès."
|
||||||
|
|
||||||
#: cfp/views.py:1003
|
#: cfp/views.py:1052
|
||||||
msgid "User created successfully."
|
msgid "User created successfully."
|
||||||
msgstr "Utilisateur créé avec succès."
|
msgstr "Utilisateur créé avec succès."
|
||||||
|
|
||||||
#: cfp/views.py:1024
|
#: cfp/views.py:1073
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Format '%s' not available"
|
msgid "Format '%s' not available"
|
||||||
msgstr "Format '%s' non disponible"
|
msgstr "Format '%s' non disponible"
|
||||||
|
@ -1410,10 +1523,6 @@ msgstr "Anglais"
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
#: ponyconf/templates/_form.html:12
|
|
||||||
msgid "Submit"
|
|
||||||
msgstr "Envoyer"
|
|
||||||
|
|
||||||
#: ponyconf/templates/base.html:21
|
#: ponyconf/templates/base.html:21
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Accueil"
|
msgstr "Accueil"
|
||||||
|
@ -1430,15 +1539,15 @@ msgstr "Organisation"
|
||||||
msgid "Administration"
|
msgid "Administration"
|
||||||
msgstr "Administration"
|
msgstr "Administration"
|
||||||
|
|
||||||
#: ponyconf/templates/base.html:54
|
#: ponyconf/templates/base.html:48
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Déconnexion"
|
msgstr "Déconnexion"
|
||||||
|
|
||||||
#: ponyconf/templates/base.html:56
|
#: ponyconf/templates/base.html:50
|
||||||
msgid "Staff"
|
msgid "Staff"
|
||||||
msgstr "Staff"
|
msgstr "Staff"
|
||||||
|
|
||||||
#: ponyconf/templates/base.html:73
|
#: ponyconf/templates/base.html:67
|
||||||
msgid "Powered by"
|
msgid "Powered by"
|
||||||
msgstr "Propulsé par"
|
msgstr "Propulsé par"
|
||||||
|
|
||||||
|
@ -1462,10 +1571,6 @@ msgstr "Mot de passe oublié ?"
|
||||||
msgid "Password Change"
|
msgid "Password Change"
|
||||||
msgstr "Changement de mot de passe"
|
msgstr "Changement de mot de passe"
|
||||||
|
|
||||||
#: ponyconf/urls.py:27
|
|
||||||
msgid "Email address"
|
|
||||||
msgstr "Adresse e-mail"
|
|
||||||
|
|
||||||
#~ msgid "Contact:"
|
#~ msgid "Contact:"
|
||||||
#~ msgstr "Contacter :"
|
#~ msgstr "Contacter :"
|
||||||
|
|
||||||
|
@ -1565,12 +1670,6 @@ msgstr "Adresse e-mail"
|
||||||
#~ msgid "I need a computer"
|
#~ msgid "I need a computer"
|
||||||
#~ msgstr "J’ai besoin d’un ordinateur"
|
#~ msgstr "J’ai besoin d’un ordinateur"
|
||||||
|
|
||||||
#~ msgid "Welcome!"
|
|
||||||
#~ msgstr "Bienvenue !"
|
|
||||||
|
|
||||||
#~ msgid "Goodbye!"
|
|
||||||
#~ msgstr "Au revoir !"
|
|
||||||
|
|
||||||
#~ msgid "Travels and hosting"
|
#~ msgid "Travels and hosting"
|
||||||
#~ msgstr "Déplacement et hébergement"
|
#~ msgstr "Déplacement et hébergement"
|
||||||
|
|
||||||
|
@ -1651,18 +1750,6 @@ msgstr "Adresse e-mail"
|
||||||
#~ msgid "Delete These"
|
#~ msgid "Delete These"
|
||||||
#~ msgstr "Supprimer ces"
|
#~ msgstr "Supprimer ces"
|
||||||
|
|
||||||
#~ msgid "Reset your password"
|
|
||||||
#~ msgstr "Réinitialiser son mot de passe"
|
|
||||||
|
|
||||||
#~ msgid "Change password"
|
|
||||||
#~ msgstr "Changer de mot de passe"
|
|
||||||
|
|
||||||
#~ msgid "Profile updated successfully."
|
|
||||||
#~ msgstr "Profil modifié avec succès !"
|
|
||||||
|
|
||||||
#~ msgid "Please correct those errors."
|
|
||||||
#~ msgstr "Merci de corriger ces erreurs."
|
|
||||||
|
|
||||||
#~ msgid "%(name)s added to participants"
|
#~ msgid "%(name)s added to participants"
|
||||||
#~ msgstr "%(name)s a été ajouté aux participants"
|
#~ msgstr "%(name)s a été ajouté aux participants"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user