changeset 57:bfa8009f0769

improve the subscription form
author souliane <souliane@mailoo.org>
date Thu, 14 May 2015 22:46:57 +0200
parents 01e9c646999f
children 746e53efc188
files locale/fr/LC_MESSAGES/django.po sat_website/forms.py sat_website/local_settings.py sat_website/views.py templates/sat_website/adhesion.html templates/sat_website/adhesion_form.html templates/sat_website/thank_you.html
diffstat 7 files changed, 306 insertions(+), 111 deletions(-) [+]
line wrap: on
line diff
--- a/locale/fr/LC_MESSAGES/django.po	Sun May 10 15:48:04 2015 +0200
+++ b/locale/fr/LC_MESSAGES/django.po	Thu May 14 22:46:57 2015 +0200
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: 0.0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-05-10 15:38+0200\n"
-"PO-Revision-Date: 2015-05-10 15:44+0100\n"
+"POT-Creation-Date: 2015-05-14 22:45+0200\n"
+"PO-Revision-Date: 2015-05-14 22:46+0100\n"
 "Last-Translator: Salut à Toi <contact@salut-a-toi.org>\n"
 "Language-Team: français <goffi@goffi.org>\n"
 "Language: fr\n"
@@ -18,51 +18,51 @@
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: sat_website/forms.py:85
+#: sat_website/forms.py:86
 msgid "Identity"
 msgstr "Identité"
 
-#: sat_website/forms.py:86
-msgid "Name"
+#: sat_website/forms.py:87
+msgid "Given name"
 msgstr "Prénom"
 
-#: sat_website/forms.py:87
-msgid "Surname"
-msgstr "Nom"
+#: sat_website/forms.py:88
+msgid "Family name"
+msgstr "Nom de famille"
 
-#: sat_website/forms.py:88
+#: sat_website/forms.py:89
 msgid "Address, postal code, municipality"
 msgstr "Adresse, code postal, municipalité"
 
-#: sat_website/forms.py:90
+#: sat_website/forms.py:91
 msgid "Contacts"
 msgstr "Contacts"
 
-#: sat_website/forms.py:91
+#: sat_website/forms.py:92
 msgid "Email address"
 msgstr "Adresse courriel"
 
-#: sat_website/forms.py:92
+#: sat_website/forms.py:93
 msgid "Email address confirmation"
 msgstr "Adresse courriel (confirmation)"
 
-#: sat_website/forms.py:93
+#: sat_website/forms.py:94
 msgid "Jabber ID (for example your SàT login)"
 msgstr "Jabber ID (par exemple votre identifiant SàT)"
 
-#: sat_website/forms.py:95
+#: sat_website/forms.py:96
 msgid "Subscription"
 msgstr "Adhésion"
 
-#: sat_website/forms.py:99
+#: sat_website/forms.py:100
 msgid "Bank transfer"
 msgstr "Virement bancaire"
 
-#: sat_website/forms.py:99
+#: sat_website/forms.py:100
 msgid "Credit or debit card"
 msgstr "Carte de crédit ou de débit"
 
-#: sat_website/forms.py:100
+#: sat_website/forms.py:101
 msgid ""
 "Choose \"Bank transfer\" to proceed manually with the association's IBAN/BIC "
 "numbers. Choose \"Credit or debit card\" to pay via CB, Visa or Mastercard "
@@ -74,47 +74,143 @@
 "payer par CB, Visa ou Mastercard en utilisant un service bancaire sécurisé. "
 "Dans tous les cas, nous vous enverrons d'abord un courriel avec les détails."
 
-#: sat_website/forms.py:102 sat_website/forms.py:103
+#: sat_website/forms.py:103 sat_website/forms.py:104
 msgid "Reference"
 msgstr "Référence"
 
-#: sat_website/forms.py:103
+#: sat_website/forms.py:104
 msgid "Adherent number in case of a renewal"
 msgstr "Numéro d'adhérent en cas de renouvellement"
 
-#: sat_website/forms.py:105 sat_website/forms.py:106
+#: sat_website/forms.py:106 sat_website/forms.py:107
 msgid "Comment"
 msgstr "Commentaire"
 
-#: sat_website/forms.py:111
+#: sat_website/forms.py:109
+msgid "I would like to receive the newsletter."
+msgstr "Je souhaite recevoir la lettre d'information."
+
+#: sat_website/forms.py:114
 msgid "I read the "
 msgstr "J'ai lu les "
 
-#: sat_website/forms.py:112
+#: sat_website/forms.py:115
 msgid "Statutes"
 msgstr "Statuts"
 
-#: sat_website/forms.py:113
+#: sat_website/forms.py:116
 msgid " and "
 msgstr " et "
 
-#: sat_website/forms.py:114
+#: sat_website/forms.py:117
 msgid "Rules"
 msgstr " Règlement intérieur"
 
-#: sat_website/forms.py:115
+#: sat_website/forms.py:118
 msgid " of the association, and agree to both of them."
 msgstr " de l'association, et les accepte tous deux."
 
-#: sat_website/forms.py:139
+#: sat_website/forms.py:142
 msgid "Passwords don't match."
 msgstr "Les mots de passe ne correspondent pas."
 
-#: sat_website/forms.py:168
+#: sat_website/forms.py:165
+#| msgid "Yes"
+msgid "yes"
+msgstr "oui"
+
+#: sat_website/forms.py:165
+msgid "no"
+msgstr "non"
+
+#: sat_website/forms.py:177
 msgid "Language"
 msgstr "Langue"
 
-#: sat_website/forms.py:185 sat_website/forms.py:187
+#: sat_website/forms.py:213
+#, python-brace-format
+msgid ""
+"Tank you, {name}!\n"
+"        \n"
+"We received your submission and we are happy to count you in the members of "
+"the association.\n"
+"\n"
+msgstr ""
+"Merci, {name}!\n"
+"        \n"
+"Nous avons reçu votre demande et nous sommes heureux de vous compter parmi "
+"les membres de l'association.\n"
+"\n"
+
+#: sat_website/forms.py:218
+#, python-brace-format
+msgid ""
+"You chose to support Salut à Toi with a subscription of {amount} euros. "
+"Please complete your adhesion with a bank transfer to:\n"
+"\n"
+"Payee: Salut à Toi\n"
+"IBAN: {iban}\n"
+"BIC: {bic}\n"
+"Reason: subscription of {name} {surname} {ref_info}\n"
+"\n"
+"Or, if you prefer, you can proceed with a credit or debit card:\n"
+"\n"
+"https://www.apayer.fr/salut-a-toi\n"
+"\n"
+msgstr ""
+"Vous avez choisi de soutenir Salut à Toi avec une cotisation de {amount} "
+"euros. Merci de compléter votre adhésion en effectuant un virement bancaire "
+"à :\n"
+"\n"
+"Bénéficiaire : Salut à Toi\n"
+"IBAN: {iban}\n"
+"BIC: {bic}\n"
+"Motif : cotisation de {name} {surname} {ref_info}\n"
+"\n"
+"Si vous préférez, il est aussi possible de procéder par carte bancaire :\n"
+"\n"
+"https://www.apayer.fr/salut-a-toi\n"
+"\n"
+
+#: sat_website/forms.py:230
+#, python-brace-format
+msgid ""
+"Below a copy of the information we received:\n"
+"\n"
+"{result}\n"
+"\n"
+"If you have any question, feel free to contact us.\n"
+"\n"
+"Association Salut à Toi\n"
+"http://salut-a-toi.org"
+msgstr ""
+"Ci-dessous une copie des informations que vous nous avez transmises :\n"
+"\n"
+"{result}\n"
+"\n"
+"Si vous avez des questions, n'hésitez pas à nous contacter.\n"
+"\n"
+"Association Salut à Toi\n"
+"http://salut-a-toi.org"
+
+#: sat_website/forms.py:250
+#, python-brace-format
+msgid ""
+"New subscription received!\n"
+"\n"
+"{result}\n"
+"\n"
+"An email has been automatically sent to {name}, no additional action is "
+"required from your side."
+msgstr ""
+"Nouvelle adhésion !\n"
+"\n"
+"{result}\n"
+"\n"
+"Un courriel a été automatiquement envoyé à {name}, aucune action n'est "
+"requise de votre part."
+
+#: sat_website/forms.py:263 sat_website/forms.py:265
 msgid "Subscription to Salut à Toi"
 msgstr "Adhésion à Salut à Toi"
 
@@ -227,7 +323,7 @@
 msgid "The first video shows wix, primitivus and jp"
 msgstr "La première vidéo montre Wix, Primitivus et Jp"
 
-#: sat_website/templatetags/utils.py:82
+#: sat_website/templatetags/utils.py:83
 msgid ": "
 msgstr " : "
 
@@ -387,7 +483,7 @@
 #: templates/sat_website/adhesion.html:54
 msgid ""
 "To join the association without paying any subscription or to proceed with a "
-"bank transfer, please use our internal form instead."
+"bank transfer, please use our internal form:"
 msgstr ""
 "Pour rejoindre l'association sans payer de cotisation, ou bien pour procéder "
 "par virement bancaire, merci d'utiliser notre formulaire interne."
@@ -399,15 +495,15 @@
 #: templates/sat_website/adhesion.html:59
 msgid ""
 "If you prefer to proceed by card, you can directly use a secure paiement "
-"service hosted by our bank (Crédit Mutuel - CIC Paiement). We can "
-"unfortunately not pre-fill the form fields. Please enter a positive amount "
-"from those defined in the Rules of Procedure: 10, 20, 30, 50, 80 or 100."
+"service hosted by our bank. We can unfortunately not pre-fill the form "
+"fields. Please enter a positive amount from those defined in the Rules of "
+"Procedure: 10, 20, 30, 50, 80 or 100."
 msgstr ""
 "Si vous préférez procéder par carte, vous pouvez directement utiliser un "
-"service de paiement en ligne hébergé par notre banque (Crédit Mutuel - CIC "
-"Paiement). Nous ne pouvons malheureusement pas pré-remplir les champs du "
-"formulaire. Merci de saisir un montant de cotisation positif parmi ceux "
-"définis dans le règlement intérieur : 10, 20, 30, 50, 80 ou 100."
+"service de paiement en ligne hébergé par notre banque. Nous ne pouvons "
+"malheureusement pas pré-remplir les champs du formulaire. Merci de saisir un "
+"montant de cotisation positif parmi ceux définis dans le règlement "
+"intérieur : 10, 20, 30, 50, 80 ou 100."
 
 #: templates/sat_website/adhesion.html:62
 msgid "Join and proceed by card"
@@ -417,7 +513,7 @@
 msgid "Please complete this form"
 msgstr "Merci de bien vouloir renseigner ce formulaire"
 
-#: templates/sat_website/adhesion_form.html:77
+#: templates/sat_website/adhesion_form.html:80
 msgid "Confirm"
 msgstr "Confirmer"
 
@@ -1008,16 +1104,15 @@
 "Votre butineur ne gère pas la balise « video », vous devriez le mettre à "
 "jour, par ex. avec le dernier  %(firefox)s"
 
-#: templates/sat_website/links.html:26
+#: templates/sat_website/links.html:27
 msgid "Links and friendly projects"
 msgstr "Liens et projets amis"
 
-#: templates/sat_website/links.html:31
-#| msgid "Similar projects"
+#: templates/sat_website/links.html:32
 msgid "Comparable projects"
 msgstr "Projets comparables"
 
-#: templates/sat_website/links.html:34
+#: templates/sat_website/links.html:35
 msgid ""
 "The following projects have something in common with SàT: we all believe "
 "that the combination of free software and decentralisation is the answer to "
@@ -1033,12 +1128,11 @@
 "même compte avec chacun d'entre eux. La compatibilité avec les autres "
 "projets n'est pas directe mais peut être atteinte à l'aide de passerelles."
 
-#: templates/sat_website/links.html:63
-#| msgid "Similar projects"
+#: templates/sat_website/links.html:64
 msgid "Other projects"
 msgstr "Autres projets"
 
-#: templates/sat_website/links.html:66
+#: templates/sat_website/links.html:67
 #, python-format
 msgid ""
 "We use - and sometimes contribute -, take ideas and inspiration from many "
@@ -1227,52 +1321,52 @@
 "Notre but n'est pas d'héberger tous les comptes sur notre serveur... on ne "
 "veut pas de vos données, gardez-les !"
 
-#: templates/sat_website/press.html:26
+#: templates/sat_website/press.html:27
 msgid "Press files"
 msgstr "Dossier de presse"
 
-#: templates/sat_website/press.html:31
+#: templates/sat_website/press.html:32
 msgid "They write about it"
 msgstr "Articles"
 
-#: templates/sat_website/press.html:35 templates/sat_website/press.html:38
+#: templates/sat_website/press.html:36 templates/sat_website/press.html:39
 #, python-format
 msgid "%(author)s for %(magazine)s"
 msgstr "%(author)s pour %(magazine)s"
 
-#: templates/sat_website/press.html:35 templates/sat_website/press.html:47
-#: templates/sat_website/press.html:50 templates/sat_website/press.html:53
-#: templates/sat_website/press.html:56
+#: templates/sat_website/press.html:36 templates/sat_website/press.html:48
+#: templates/sat_website/press.html:51 templates/sat_website/press.html:54
+#: templates/sat_website/press.html:57
 msgid "French"
 msgstr "Français"
 
-#: templates/sat_website/press.html:38
+#: templates/sat_website/press.html:39
 msgid "German"
 msgstr "Allemand"
 
-#: templates/sat_website/press.html:43
+#: templates/sat_website/press.html:44
 msgid "We talk about it"
 msgstr "Conférences"
 
-#: templates/sat_website/press.html:47
+#: templates/sat_website/press.html:48
 #, python-format
 msgid "%(author)s at the 15th Libre Software Meeting, Montpellier, 2014:"
 msgstr ""
 "%(author)s aux 15èmes Rencontres Mondiales du Logiciel Libre, Montpellier, "
 "2014 :"
 
-#: templates/sat_website/press.html:50
+#: templates/sat_website/press.html:51
 #, python-format
 msgid "%(author)s at Pas Sage en Seine #6, Paris, 2014:"
 msgstr "%(author)s à Pas Sage en Seine #6, Paris, 2014:"
 
-#: templates/sat_website/press.html:53
+#: templates/sat_website/press.html:54
 #, python-format
 msgid "%(author)s at the 13th Libre Software Meeting, Genève, 2012:"
 msgstr ""
 "%(author)s aux 13èmes Rencontres Mondiales du Logiciel Libre, Genève, 2012 :"
 
-#: templates/sat_website/press.html:56
+#: templates/sat_website/press.html:57
 #, python-format
 msgid "%(author)s at the 15th Journées du Logiciel Libre, Lyon, 2012:"
 msgstr "%(author)s aux 15èmes Journées du Logiciel Libre, Lyon, 2012 :"
@@ -1984,29 +2078,50 @@
 msgid "Thank you!"
 msgstr "Merci !"
 
-#: templates/sat_website/thank_you.html:30
-msgid "Your subscription has been registered."
-msgstr "Votre adhésion a été enregistrée."
+#: templates/sat_website/thank_you.html:31
+msgid "Below a copy of the email we just sent to you."
+msgstr "Ci-dessous une copie du courriel que nous venons de vous envoyer."
 
-#: templates/sat_website/thank_you.html:39
-#, python-format
+#: templates/sat_website/thank_you.html:33
 msgid ""
-"\n"
-"\tYou chose to pay your annual subscription of %(amount)s € via %(method)s."
-"<br/>You should receive in a couple of minutes an email from us containing "
-"all the details to proceed with the payment.\n"
-"\t"
+"Please read it carefully, it contains the information to complete your "
+"subscription."
 msgstr ""
-"\n"
-"\tVous avez choisie de payer une cotisation annuelle de %(amount)s € par "
-"%(method)s.<br/>Vous devriez recevoir sous peu un courriel de notre part "
-"contenant tous les détails pour procéder au règlement.\n"
-"\t"
+"Merci de le lire attentivement, il contient les informations pour compléter "
+"votre adhésion."
+
+#~ msgid "No"
+#~ msgstr "non"
+
+#~ msgid "Please add me to the adherents newsletter."
+#~ msgstr "Je souhaite recevoir la lettre d'information."
+
+#~ msgid "Name"
+#~ msgstr "Prénom"
+
+#~ msgid "Surname"
+#~ msgstr "Nom"
+
+#~ msgid "Your subscription has been registered."
+#~ msgstr "Votre adhésion a été enregistrée."
 
-#: templates/sat_website/thank_you.html:43
-msgid "You should receive in a couple of minutes a confirmation email from us."
-msgstr ""
-"Vous devriez recevoir sous peu un courriel de confirmation de notre part."
+#~ msgid ""
+#~ "\n"
+#~ "\tYou chose to pay your annual subscription of %(amount)s € via "
+#~ "%(method)s.<br/>You should receive in a couple of minutes an email from "
+#~ "us containing all the details to proceed with the payment.\n"
+#~ "\t"
+#~ msgstr ""
+#~ "\n"
+#~ "\tVous avez choisie de payer une cotisation annuelle de %(amount)s € par "
+#~ "%(method)s.<br/>Vous devriez recevoir sous peu un courriel de notre part "
+#~ "contenant tous les détails pour procéder au règlement.\n"
+#~ "\t"
+
+#~ msgid ""
+#~ "You should receive in a couple of minutes a confirmation email from us."
+#~ msgstr ""
+#~ "Vous devriez recevoir sous peu un courriel de confirmation de notre part."
 
 #~ msgid "Funding the software"
 #~ msgstr "Financement du logiciel"
--- a/sat_website/forms.py	Sun May 10 15:48:04 2015 +0200
+++ b/sat_website/forms.py	Thu May 14 22:46:57 2015 +0200
@@ -21,7 +21,7 @@
 along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
 """
 
-from django.utils.translation import ugettext_lazy as _, string_concat, get_language
+from django.utils.translation import ugettext_lazy as _, ugettext, string_concat, get_language
 from django.utils.html import format_html
 from django.core.mail import send_mail
 from django import forms
@@ -29,6 +29,7 @@
 from collections import OrderedDict
 from email import email
 import utils
+import re
 
 
 ## Fields ##
@@ -83,9 +84,9 @@
 class RegistrationForm(forms.Form):
 
     section_1 = Section(label=_(u'Identity'))
-    name = CharField(label=_(u'Name'))
-    surname = CharField(label=_(u'Surname'))
-    address = CharField(label=_(u'Address, postal code, municipality'))
+    name = CharField(label=_(u'Given name'))
+    surname = CharField(label=_(u'Family name'))
+    address = CharField(label=_(u"Address, postal code, municipality"), widget=forms.Textarea(attrs={'rows': 3}))
 
     section_2 = Section(label=_(u'Contacts'))
     email = EmailField(label=_(u'Email address'))
@@ -100,11 +101,13 @@
                                help_text=_(u'Choose "Bank transfer" to proceed manually with the association\'s IBAN/BIC numbers. Choose "Credit or debit card" to pay via CB, Visa or Mastercard using a secure banking service. For both methods, we will first send you an email containing all the details.'), widget=forms.RadioSelect)
 
     section_5 = Section(label=_(u'Reference'))
-    ref = CharField(required=False, label=_(u"Reference"), placeholder=_(u"Adherent number in case of a renewal"))
+    reference = CharField(required=False, label=_(u"Reference"), placeholder=_(u"Adherent number in case of a renewal"))
 
     section_6 = Section(label=_(u'Comment'))
     comment = CharField(required=False, label=_(u"Comment"), placeholder="", widget=forms.Textarea(attrs={'rows': 3}))
 
+    newsletter = BooleanField(required=False, label=_(u'I would like to receive the newsletter.'))
+
     def html_link(url, label):
         return string_concat('<a target="#" href="', url, '">', label, '</a>')
 
@@ -141,14 +144,14 @@
 
 
     def results(self, user_readable=True):
-        """Get the results submitted by the user as a list of couple. Keep the
-        pertinent fields and filter out the inappropriate ones.
-    
-        @param user_readable: set to True to prefer the field labels to their names
+        """Get the results submitted by the user as a list.
+        
+        Keep the pertinent fields and filter out the inappropriate ones.
+        @param user_readable: (bool) set to True to prefer the field labels to their names
         @return: list of couple (name, value) or (label, value)
         """
         if not self.is_valid():
-            return ''
+            return None
         results = []
         for field in self:
             if isinstance(field.field, Section):
@@ -157,31 +160,106 @@
                 continue
             if field.name == "payment_method" and self['subscription_amount'].value() == "0":
                 continue
-            value = field.value()
+            key = field.name
+            if isinstance(field.field, BooleanField) and user_readable:
+                value = ugettext(u"yes") if field.value() else ugettext(u"no")
+            else:
+                value = re.sub(r"[\n\r]+", ", ", unicode(field.value()))
             if user_readable:
+                if isinstance(field.field, BooleanField):
+                    key = key.capitalize()  # to get Newsletter instead of "Please add me..."
+                else:
+                    key = field.label
                 if isinstance(field.field, ChoiceField):
                     value = field.field.choice_label(value)
-                results.append((field.label, value))
-            else:
-                results.append((field.name, value))
+            results.append((key, value))
         if user_readable:
             results.append((_(u'Language'), utils.get_language_name_local(get_language())))
         else:
             results.append(('lang', get_language()))
         return results
 
+    def result_as_dict(self, user_readable=True):
+        """Get the results submitted by the user as an OrderedDict.
+
+        @param user_readable (bool): set to True to prefer the field labels to their names
+        @return: dict {name: value} or {label: value}
+        """
+        return {key: value for key, value in self.results(user_readable)}
+
     def result_as_string(self, user_readable=True):
         """Get the result as a string to be sent for example via email.
 
-        @param user_readable: set to True to prefer the field labels to their names
-        @return: list of couple (name, value) or (label, value)
+        @param user_readable (bool): set to True to prefer the field labels to their names
+        @return: unicode
         """
         return '\n'.join([name + ': ' + value for name, value in self.results(user_readable)])
         
+    def prepareResultForUser(self):
+        """Get the email body to send to the subscriber.
+
+        @return: unicode
+        """
+        ref = self['reference'].value()
+        data = {'name': self['name'].value(),
+                'surname': self['surname'].value(),
+                'amount': self['subscription_amount'].value(),
+                'ref_info': '(ref. {ref})'.format(ref=ref) if ref else '',
+                'iban': settings.ASSO_IBAN,
+                'bic': settings.ASSO_BIC,
+                'result': self.result_as_string(True)
+                }
+
+        HEADER = ugettext(u"""Tank you, {name}!
+        
+We received your submission and we are happy to count you in the members of the association.
+
+""")
+        PAYMENT = ugettext(u"""You chose to support Salut à Toi with a subscription of {amount} euros. Please complete your adhesion with a bank transfer to:
+
+Payee: Salut à Toi
+IBAN: {iban}
+BIC: {bic}
+Reason: subscription of {name} {surname} {ref_info}
+
+Or, if you prefer, you can proceed with a credit or debit card:
+
+https://www.apayer.fr/salut-a-toi
+
+""")
+        FOOTER = ugettext(u"""Below a copy of the information we received:
+
+{result}
+
+If you have any question, feel free to contact us.
+
+Association Salut à Toi
+http://salut-a-toi.org""")
+
+        return (HEADER + (PAYMENT if int(data['amount']) > 0 else "") + FOOTER).format(**data)
+
+    def prepareResultForAdmin(self):
+        """Get the email body to send to the admins.
+
+        @return: unicode
+        """
+        data = {'name': self['name'].value(),
+                'result': self.result_as_string(False)
+                }
+
+        MSG = ugettext(u"""New subscription received!
+
+{result}
+
+An email has been automatically sent to {name}, no additional action is required from your side.""")
+
+        return MSG.format(**data)
+
     def process_submitted_data(self):
+        """Send emails to the subscriber and the admins."""
         if not self.is_valid():
             return
         # send email to user
-        send_mail(_(u'Subscription to Salut à Toi'), self.result_as_string(True), settings.EMAIL_BACKEND, [self['email'].value()], fail_silently=False)
+        send_mail(_(u'Subscription to Salut à Toi'), self.prepareResultForUser(), settings.EMAIL_BACKEND, [self['email'].value()], fail_silently=False)
         # send email to admins
-        send_mail(_(u'Subscription to Salut à Toi'), self.result_as_string(False), settings.EMAIL_BACKEND, [email for name, email in settings.ADMINS], fail_silently=False)
+        send_mail(_(u'Subscription to Salut à Toi'), self.prepareResultForAdmin(), settings.EMAIL_BACKEND, [email for name, email in settings.ADMINS], fail_silently=False)
--- a/sat_website/local_settings.py	Sun May 10 15:48:04 2015 +0200
+++ b/sat_website/local_settings.py	Thu May 14 22:46:57 2015 +0200
@@ -133,6 +133,10 @@
 # Subscription amounts as defined in the Rules of Procedure
 ASSO_SUBSCR_AMOUNTS = (0, 10, 20, 30, 50, 80, 100)
 
+# Bank information
+ASSO_IBAN = u"FR76 1027 8060 4300 0207 3220 109"
+ASSO_BIC = u"CMCIFR2A"
+
 # URL to the Statutes and Rules of the association
 ASSO_URL_STATUTES = 'http://repos.goffi.org/sat_docs/raw-file/tip/association/statuts.pdf'
 ASSO_URL_RULES = 'http://repos.goffi.org/sat_docs/raw-file/tip/association/r%C3%A8glement%20int%C3%A9rieur.pdf'
--- a/sat_website/views.py	Sun May 10 15:48:04 2015 +0200
+++ b/sat_website/views.py	Thu May 14 22:46:57 2015 +0200
@@ -96,7 +96,8 @@
                 category = 'thank_you'
         else:
             form = forms.RegistrationForm(initial={'subscription_amount': 10,
-                                                   'payment_method': 'transfer'})
+                                                   'payment_method': 'transfer',
+                                                   'newsletter': True})
         context['form'] = form
         context.update(utils.get_asso_urls())
 
--- a/templates/sat_website/adhesion.html	Sun May 10 15:48:04 2015 +0200
+++ b/templates/sat_website/adhesion.html	Thu May 14 22:46:57 2015 +0200
@@ -51,12 +51,12 @@
         {% include "sat_website/finance.html" %}
         <p>{% trans "The adhesion last exactly one year and isn't automatically renewed: you have to renew it yourself and you can change the amount of your cotisation every year." %}</p>
         <p>
-        {% trans "To join the association without paying any subscription or to proceed with a bank transfer, please use our internal form instead." %}
+        {% trans "To join the association without paying any subscription or to proceed with a bank transfer, please use our internal form:" %}
         </p>
         <p class="text-center">
             <a class="btn btn-primary btn-lg" href="adhesion_form" role="button">{% trans "Join for free or proceed with a transfer" %}</a>
         </p>
-        <p>{% trans "If you prefer to proceed by card, you can directly use a secure paiement service hosted by our bank (Crédit Mutuel - CIC Paiement). We can unfortunately not pre-fill the form fields. Please enter a positive amount from those defined in the Rules of Procedure: 10, 20, 30, 50, 80 or 100." %}
+        <p>{% trans "If you prefer to proceed by card, you can directly use a secure paiement service hosted by our bank. We can unfortunately not pre-fill the form fields. Please enter a positive amount from those defined in the Rules of Procedure: 10, 20, 30, 50, 80 or 100." %}
         </p>
         <p class="text-center">
             <a class="btn btn-primary btn-lg" href="https://www.apayer.fr/salut-a-toi" target="#" role="button">{% trans "Join and proceed by card" %}</a>
--- a/templates/sat_website/adhesion_form.html	Sun May 10 15:48:04 2015 +0200
+++ b/templates/sat_website/adhesion_form.html	Thu May 14 22:46:57 2015 +0200
@@ -53,7 +53,10 @@
                         <div class="checkbox">
                             <label>
                                 {% autoescape off %}
-                                {{ field }}{{ field.label }} <span class="glyphicon glyphicon-asterisk"></span>
+                                {{ field }}{{ field.label }}
+                                {% if field.field.required %}
+                                    <span class="glyphicon glyphicon-asterisk"></span>
+                                {% endif %}
                                 {% endautoescape %}
                             </label>
                         </div>
--- a/templates/sat_website/thank_you.html	Sun May 10 15:48:04 2015 +0200
+++ b/templates/sat_website/thank_you.html	Thu May 14 22:46:57 2015 +0200
@@ -27,21 +27,15 @@
 {% block headline %}{% trans "Thank you!" %}{% endblock %}
 {% block main_container %}
 
-<p>{% trans "Your subscription has been registered." %}</p>
-<div class="form-group">
-    {% for label, value in form.results %}
-        <div>{{ label }}: {{ value }}</div>
-    {% endfor %}
+<div class="alert alert-info" role="alert">
+    {% trans "Below a copy of the email we just sent to you." %}
+    {% if form.subscription_amount.value != "0" %}
+        {% trans "Please read it carefully, it contains the information to complete your subscription." %}
+    {% endif %}
 </div>
 
-<div class="alert alert-info" role="alert">
-{% if form.subscription_amount.value != "0" %}
-	{% blocktrans with amount=form.subscription_amount.value method=form.payment_method|selected_label|lower %}
-	You chose to pay your annual subscription of {{ amount }} € via {{ method }}.<br/>You should receive in a couple of minutes an email from us containing all the details to proceed with the payment.
-	{% endblocktrans %}
-{% else %}
-    {% blocktrans %}You should receive in a couple of minutes a confirmation email from us.{% endblocktrans %}
-{% endif %}
+<div class="container">
+    {{ form.prepareResultForUser|urlize|linebreaks }}
 </div>
 
 {% endblock %}