annotate sat_website/views.py @ 57:bfa8009f0769

improve the subscription form
author souliane <souliane@mailoo.org>
date Thu, 14 May 2015 22:46:57 +0200
parents 01e9c646999f
children a14845624e01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/usr/bin/python
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
3
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
4 """
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
5 SàT website: Salut à Toi's presentation website
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
6 Copyright (C) 2012 Jérôme Poisson (goffi@goffi.org)
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
7
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
8 This file is part of SàT website.
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
9
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
10 SàT website is free software: you can redistribute it and/or modify
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
11 it under the terms of the GNU Affero General Public License as published by
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
12 the Free Software Foundation, either version 3 of the License, or
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
13 (at your option) any later version.
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
14
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
15 Foobar is distributed in the hope that it will be useful,
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
18 GNU Affero General Public License for more details.
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
19
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
20 You should have received a copy of the GNU Affero General Public License
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
21 along with Foobar. If not, see <http://www.gnu.org/licenses/>.
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
22 """
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
23 from django.http import Http404
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
24 from django.shortcuts import render_to_response
2
0df46e87537d i18n: marked translatable texts + add change language form on pages footer
Goffi <goffi@goffi.org>
parents: 1
diff changeset
25 from django.core.context_processors import csrf
0df46e87537d i18n: marked translatable texts + add change language form on pages footer
Goffi <goffi@goffi.org>
parents: 1
diff changeset
26 from django.utils.translation import ugettext_lazy as _
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
27 from django.template import RequestContext
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
28 from collections import OrderedDict
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
29 import screenshots, social_contract, utils, forms
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
30
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
31 CATEGORIES = OrderedDict([('frontends', (_(u"Presentation"),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
32 OrderedDict([("features", _(u"Features")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
33 ("frontends", _(u"Frontends")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
34 ("screenshots", _(u"Screenshots & Videos")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
35 ]))),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
36 ('principles', (_(u"Technical area"),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
37 OrderedDict([("principles", _(u"Principles")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
38 ("specifications", _(u"Specifications")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
39 ("downloads", _(u"Downloads")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
40 ("developers", _(u"Developers corner")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
41 ]))),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
42 ('community', (_(u"Community"),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
43 OrderedDict([("community", _(u"Get in touch")),
55
a1e457ac6871 split adhesion.html between adhesion.html and association.html
souliane <souliane@mailoo.org>
parents: 52
diff changeset
44 ("association", _(u"Association")),
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
45 ("links", _(u"Links")),
56
01e9c646999f add links to other projects and press files
souliane <souliane@mailoo.org>
parents: 55
diff changeset
46 ("press", _(u"Press")),
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
47 ]))),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
48 ])
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
49
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
50 CATEGORIES_RIGHT = OrderedDict([("adhesion", _(u"Adhesion")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
51 ("social_contract", _(u"Social contract")),
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
52 ])
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
53
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
54 CATEGORIES_HIDDEN = ('adhesion_form', 'thank_you')
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
55
39
d2c45f4ba57e add downloads.html
souliane <souliane@mailoo.org>
parents: 34
diff changeset
56 PROJECTS_INFOS = {'sat': _(u'contains the backend, Primitivus and Jp'),
d2c45f4ba57e add downloads.html
souliane <souliane@mailoo.org>
parents: 34
diff changeset
57 'sat_media': _(u'Images and other media needed to launch SàT'),
d2c45f4ba57e add downloads.html
souliane <souliane@mailoo.org>
parents: 34
diff changeset
58 'urwid_satext': _(u'console display library needed by Primitivus'),
d2c45f4ba57e add downloads.html
souliane <souliane@mailoo.org>
parents: 34
diff changeset
59 'sat_pubsub': _(u'PubSub server component needed for SàT experimental blogging features'),
d2c45f4ba57e add downloads.html
souliane <souliane@mailoo.org>
parents: 34
diff changeset
60 'libervia': _(u'Libervia frontend (web server and client)'),
d2c45f4ba57e add downloads.html
souliane <souliane@mailoo.org>
parents: 34
diff changeset
61 }
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
62
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
63 def overview(request):
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
64 return render_to_response('sat_website/overview.html')
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
65
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
66 def generic_cat(request, category):
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
67 context = RequestContext(request, {
2
0df46e87537d i18n: marked translatable texts + add change language form on pages footer
Goffi <goffi@goffi.org>
parents: 1
diff changeset
68 "available_languages": ['fr', 'en'],
0df46e87537d i18n: marked translatable texts + add change language form on pages footer
Goffi <goffi@goffi.org>
parents: 1
diff changeset
69 "categories": CATEGORIES,
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
70 "categories_right": CATEGORIES_RIGHT,
1
a49aa1b823f6 added SàT archive download link (detect the last version)
Goffi <goffi@goffi.org>
parents: 0
diff changeset
71 "category": category,
33
73c6333fd124 change overview.html, move the previous content to principles.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
72 "libervia_demo_url": utils.get_libervia_demo_url(),
73c6333fd124 change overview.html, move the previous content to principles.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
73 "subscription_amounts": utils.get_asso_subscr_amounts(),
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
74 })
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
75
2
0df46e87537d i18n: marked translatable texts + add change language form on pages footer
Goffi <goffi@goffi.org>
parents: 1
diff changeset
76 context.update(csrf(request))
0df46e87537d i18n: marked translatable texts + add change language form on pages footer
Goffi <goffi@goffi.org>
parents: 1
diff changeset
77
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
78 if not category or category == "overview":
33
73c6333fd124 change overview.html, move the previous content to principles.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
79 context.update(utils.get_asso_finance_status())
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
80 return render_to_response('sat_website/overview.html', context)
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
81 elif category == "screenshots":
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
82 context["screenshots"] = screenshots.screenshots
47
3e460ca969d2 delete screenshots_tech.html, display all screenshots in the same page using sections
souliane <souliane@mailoo.org>
parents: 40
diff changeset
83 context["screenshots_tech"] = screenshots.screenshots_tech
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
84 elif category == "social_contract":
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
85 context["SOCIAL_CONTRACT"] = social_contract.get_social_contract()
33
73c6333fd124 change overview.html, move the previous content to principles.html
souliane <souliane@mailoo.org>
parents: 29
diff changeset
86 elif category == "downloads":
39
d2c45f4ba57e add downloads.html
souliane <souliane@mailoo.org>
parents: 34
diff changeset
87 context["projects_infos"] = utils.get_projects_infos(PROJECTS_INFOS)
55
a1e457ac6871 split adhesion.html between adhesion.html and association.html
souliane <souliane@mailoo.org>
parents: 52
diff changeset
88 elif category in ("association", "adhesion"):
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
89 context.update(utils.get_asso_finance_status())
40
dfe7139dae0a add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents: 39
diff changeset
90 context.update(utils.get_asso_urls())
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
91 elif category == "adhesion_form":
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
92 if request.method == 'POST':
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
93 form = forms.RegistrationForm(request.POST)
40
dfe7139dae0a add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents: 39
diff changeset
94 form.process_submitted_data()
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
95 if form.is_valid():
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
96 category = 'thank_you'
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
97 else:
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
98 form = forms.RegistrationForm(initial={'subscription_amount': 10,
57
bfa8009f0769 improve the subscription form
souliane <souliane@mailoo.org>
parents: 56
diff changeset
99 'payment_method': 'transfer',
bfa8009f0769 improve the subscription form
souliane <souliane@mailoo.org>
parents: 56
diff changeset
100 'newsletter': True})
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
101 context['form'] = form
40
dfe7139dae0a add links to the statutes and rules of the association in the adhesion form
souliane <souliane@mailoo.org>
parents: 39
diff changeset
102 context.update(utils.get_asso_urls())
27
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
103
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
104 def all_keys(cats):
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
105 subcats = [value[1].keys() for value in cats.values() if isinstance(value, tuple)]
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
106 return sum(subcats, cats.keys())
eda4deefecd1 reorganisation of the menu using submenus
souliane <souliane@mailoo.org>
parents: 4
diff changeset
107
34
9d553570cc61 add adhesion_form.html and thank_you.html
souliane <souliane@mailoo.org>
parents: 33
diff changeset
108 if category in all_keys(CATEGORIES) or category in all_keys(CATEGORIES_RIGHT) or category in CATEGORIES_HIDDEN:
0
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
109 return render_to_response('sat_website/%s.html' % (category,), context)
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
110 else:
9305c6458e2f initial commit
Goffi <goffi@goffi.org>
parents:
diff changeset
111 raise Http404