Mercurial > sat_legacy_website
annotate sat_website/forms.py @ 55:a1e457ac6871
split adhesion.html between adhesion.html and association.html
author | souliane <souliane@mailoo.org> |
---|---|
date | Tue, 05 May 2015 15:02:50 +0200 |
parents | 62c23067e86e |
children | bfa8009f0769 |
rev | line source |
---|---|
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1 #!/usr/bin/python |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
3 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
4 """ |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
5 SàT website: Salut à Toi's presentation website |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
6 Copyright (C) 2012 Jérôme Poisson (goffi@goffi.org) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
7 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
8 This file is part of SàT website. |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
9 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
10 SàT website is free software: you can redistribute it and/or modify |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
11 it under the terms of the GNU Affero General Public License as published by |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
12 the Free Software Foundation, either version 3 of the License, or |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
13 (at your option) any later version. |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
14 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
15 Foobar is distributed in the hope that it will be useful, |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
16 but WITHOUT ANY WARRANTY; without even the implied warranty of |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
18 GNU Affero General Public License for more details. |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
19 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
20 You should have received a copy of the GNU Affero General Public License |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
21 along with Foobar. If not, see <http://www.gnu.org/licenses/>. |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
22 """ |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
23 |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
24 from django.utils.translation import ugettext_lazy as _, string_concat, get_language |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
25 from django.utils.html import format_html |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
26 from django.core.mail import send_mail |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
27 from django import forms |
40
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
28 from django.conf import settings |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
29 from collections import OrderedDict |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
30 from email import email |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
31 import utils |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
32 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
33 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
34 ## Fields ## |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
35 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
36 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
37 class Section(forms.Field): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
38 def __init__(self, *args, **kwargs): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
39 kwargs['required'] = False |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
40 super(Section, self).__init__(*args, **kwargs) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
41 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
42 class BooleanField(forms.BooleanField): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
43 def __init__(self, *args, **kwargs): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
44 super(BooleanField, self).__init__(*args, **kwargs) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
45 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
46 class CharField(forms.CharField): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
47 def __init__(self, label=None, *args, **kwargs): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
48 try: |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
49 placeholder = kwargs.pop('placeholder') |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
50 except KeyError: |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
51 placeholder = label |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
52 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
53 super(CharField, self).__init__(*args, **kwargs) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
54 self.widget.attrs.update({'class': "form-control", |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
55 'placeholder': placeholder}) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
56 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
57 class EmailField(forms.EmailField): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
58 def __init__(self, *args, **kwargs): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
59 super(EmailField, self).__init__(*args, **kwargs) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
60 self.widget.attrs.update({'class': "form-control", |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
61 'placeholder': self.label}) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
62 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
63 class ChoiceField(forms.ChoiceField): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
64 def __init__(self, *args, **kwargs): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
65 super(ChoiceField, self).__init__(*args, **kwargs) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
66 self.widget.attrs.update({'class': "form-control"}) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
67 |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
68 def choice_label(self, value): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
69 """Return the label corresponding to the given value. |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
70 |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
71 @param value (unicode): a choice value |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
72 @return: unicode |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
73 """ |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
74 for current_value, label in self.choices: |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
75 if unicode(current_value) == unicode(value): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
76 return unicode(label) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
77 return u'' |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
78 |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
79 |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
80 ## Forms ## |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
81 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
82 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
83 class RegistrationForm(forms.Form): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
84 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
85 section_1 = Section(label=_(u'Identity')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
86 name = CharField(label=_(u'Name')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
87 surname = CharField(label=_(u'Surname')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
88 address = CharField(label=_(u'Address, postal code, municipality')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
89 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
90 section_2 = Section(label=_(u'Contacts')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
91 email = EmailField(label=_(u'Email address')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
92 email_confirmation = EmailField(label=_(u'Email address confirmation')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
93 jid = EmailField(required=False, label=_(u'Jabber ID (for example your SàT login)')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
94 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
95 section_3 = Section(label=_(u'Subscription')) |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
96 subscription_amount = ChoiceField(choices=[(amount, u"%s €" % amount) for amount in utils.get_asso_subscr_amounts()]) |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
97 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
98 section_3b = Section(label="") |
55
a1e457ac6871
split adhesion.html between adhesion.html and association.html
souliane <souliane@mailoo.org>
parents:
45
diff
changeset
|
99 payment_method = ChoiceField(choices=[(u"transfer", _(u"Bank transfer")), (u"card", _(u"Credit or debit card"))], |
a1e457ac6871
split adhesion.html between adhesion.html and association.html
souliane <souliane@mailoo.org>
parents:
45
diff
changeset
|
100 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) |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
101 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
102 section_5 = Section(label=_(u'Reference')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
103 ref = CharField(required=False, label=_(u"Reference"), placeholder=_(u"Adherent number in case of a renewal")) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
104 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
105 section_6 = Section(label=_(u'Comment')) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
106 comment = CharField(required=False, label=_(u"Comment"), placeholder="", widget=forms.Textarea(attrs={'rows': 3})) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
107 |
40
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
108 def html_link(url, label): |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
109 return string_concat('<a target="#" href="', url, '">', label, '</a>') |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
110 |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
111 agreement_label = [_(u"I read the "), |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
112 html_link(settings.ASSO_URL_STATUTES, _(u"Statutes")), |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
113 _(u" and "), |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
114 html_link(settings.ASSO_URL_RULES, _(u"Rules")), |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
115 _(u" of the association, and agree to both of them."), |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
116 ] |
dfe7139dae0a
add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents:
34
diff
changeset
|
117 agreement_confirmation = BooleanField(label=string_concat(*agreement_label)) |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
118 |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
119 def sections(self): |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
120 """Get the fields grouped in sections. |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
121 |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
122 @return: OrderedDict binding section name to a list of fields |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
123 """ |
34
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
124 sections = OrderedDict() |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
125 current_section = None |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
126 for field in self: |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
127 if isinstance(field.field, Section): |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
128 current_section = sections.setdefault(field.label, []) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
129 else: |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
130 current_section.append(field) |
9d553570cc61
add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
131 return sections |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
132 |
44 | 133 def clean(self): |
134 cleaned_data = super(RegistrationForm, self).clean() | |
135 email = cleaned_data.get("email") | |
136 email_confirmation = cleaned_data.get("email_confirmation") | |
137 | |
138 if email and email_confirmation and email != email_confirmation: | |
139 msg = _(u"Passwords don't match.") | |
140 self.add_error('email_confirmation', msg) | |
141 | |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
142 |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
143 def results(self, user_readable=True): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
144 """Get the results submitted by the user as a list of couple. Keep the |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
145 pertinent fields and filter out the inappropriate ones. |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
146 |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
147 @param user_readable: set to True to prefer the field labels to their names |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
148 @return: list of couple (name, value) or (label, value) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
149 """ |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
150 if not self.is_valid(): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
151 return '' |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
152 results = [] |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
153 for field in self: |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
154 if isinstance(field.field, Section): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
155 continue |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
156 if field.name in ('email_confirmation', 'agreement_confirmation') or not field.value(): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
157 continue |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
158 if field.name == "payment_method" and self['subscription_amount'].value() == "0": |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
159 continue |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
160 value = field.value() |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
161 if user_readable: |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
162 if isinstance(field.field, ChoiceField): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
163 value = field.field.choice_label(value) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
164 results.append((field.label, value)) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
165 else: |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
166 results.append((field.name, value)) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
167 if user_readable: |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
168 results.append((_(u'Language'), utils.get_language_name_local(get_language()))) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
169 else: |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
170 results.append(('lang', get_language())) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
171 return results |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
172 |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
173 def result_as_string(self, user_readable=True): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
174 """Get the result as a string to be sent for example via email. |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
175 |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
176 @param user_readable: set to True to prefer the field labels to their names |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
177 @return: list of couple (name, value) or (label, value) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
178 """ |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
179 return '\n'.join([name + ': ' + value for name, value in self.results(user_readable)]) |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
180 |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
181 def process_submitted_data(self): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
182 if not self.is_valid(): |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
183 return |
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
184 # send email to user |
45
62c23067e86e
improve English texts following recommandations from Florian
souliane <souliane@mailoo.org>
parents:
44
diff
changeset
|
185 send_mail(_(u'Subscription to Salut à Toi'), self.result_as_string(True), settings.EMAIL_BACKEND, [self['email'].value()], fail_silently=False) |
41
1a0f24401866
send adhesion form results via email to the admins and the new member
souliane <souliane@mailoo.org>
parents:
40
diff
changeset
|
186 # send email to admins |
45
62c23067e86e
improve English texts following recommandations from Florian
souliane <souliane@mailoo.org>
parents:
44
diff
changeset
|
187 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) |