inform new staff members by email

This commit is contained in:
Élie Bouttier 2017-08-01 01:11:58 +02:00
parent 35825be038
commit f68cd74022
4 changed files with 77 additions and 8 deletions

View File

@ -33,7 +33,16 @@ class UsersWidget(ModelSelect2MultipleWidget):
search_fields = [ '%s__icontains' % field for field in UserAdmin.search_fields ] search_fields = [ '%s__icontains' % field for field in UserAdmin.search_fields ]
ConferenceForm = modelform_factory(Conference, fields=['name', 'home', 'venue', 'city', 'contact_email', 'staff',], widgets={'staff': UsersWidget(),}) class ConferenceForm(forms.ModelForm):
class Meta:
model = Conference
fields = ['name', 'home', 'venue', 'city', 'contact_email', 'staff',]
widgets = {
'staff': UsersWidget(),
}
help_texts = {
'staff': _('New staff members will be informed of their new position by e-mail.'),
}
class CreateUserForm(forms.ModelForm): class CreateUserForm(forms.ModelForm):

View File

@ -203,8 +203,35 @@ def conference(request, conference):
form = ConferenceForm(request.POST or None, instance=conference) form = ConferenceForm(request.POST or None, instance=conference)
if request.method == 'POST' and form.is_valid(): if request.method == 'POST' and form.is_valid():
# TODO mail notifications to new staff members old_staff = set(conference.staff.all())
form.save() new_conference = form.save()
new_staff = set(new_conference.staff.all())
added_staff = new_staff - old_staff
protocol = 'http' if request.is_secure() else 'http'
base_url = protocol+'://'+conference.site.domain
url_login = base_url + reverse('login')
url_password_reset = base_url + reverse('password_reset')
msg_title = _('[{}] You have been added to the staff team').format(conference.name)
msg_body_template = _("""Hi {},
You have been added to the staff team.
You can now:
- login: {}
- reset your password: {}
{}
""")
for user in added_staff:
msg_body = msg_body_template.format(user.get_full_name(), url_login, url_password_reset, conference.name)
send_mail(
msg_title,
msg_body,
conference.from_email(),
[user.email],
fail_silently=False,
)
messages.success(request, _('Modifications successfully saved.')) messages.success(request, _('Modifications successfully saved.'))
return redirect(reverse('conference')) return redirect(reverse('conference'))

Binary file not shown.

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-31 21:38+0000\n" "POT-Creation-Date: 2017-07-31 23:09+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -288,11 +288,16 @@ msgstr "%(name)s a été ajouté aux participants"
msgid "%(name)s is already a participant" msgid "%(name)s is already a participant"
msgstr "%(name)s est déjà participant" msgstr "%(name)s est déjà participant"
#: cfp/forms.py:55 #: cfp/forms.py:44
msgid "New staff members will be informed of their new position by e-mail."
msgstr ""
"Les nouveaux membres du staff seront informés de leur nouveau rôle par courrier électronique."
#: cfp/forms.py:64
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:60 #: cfp/forms.py:69
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à."
@ -751,10 +756,38 @@ msgid "Decision taken in account"
msgstr "Décision enregistrée" msgstr "Décision enregistrée"
#: cfp/views.py:214 #: cfp/views.py:214
msgid "[{}] You have been added to the staff team"
msgstr "[{}] Vous avez été ajouté aux membres du staff"
#: cfp/views.py:215
msgid ""
"Hi {},\n"
"\n"
"You have been added to the staff team.\n"
"\n"
"You can now:\n"
"- login: {}\n"
"- reset your password: {}\n"
"\n"
"{}\n"
"\n"
msgstr ""
"Bonjour {},\n"
"\n"
"Vous avez été ajouté à léquipe dorganisation.\n"
"\n"
"Vous pouvez à présent :\n"
"- vous connecter : {}\n"
"- réinitialiser votre mot de passe : {}\n"
"\n"
"{}\n"
"\n"
#: cfp/views.py:235
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:228 #: cfp/views.py:249
msgid "User created successfully." msgid "User created successfully."
msgstr "Utilisateur créé avec succès." msgstr "Utilisateur créé avec succès."
@ -873,7 +906,7 @@ 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 #: ponyconf/urls.py:26
msgid "Email address" msgid "Email address"
msgstr "" msgstr ""