Mercurial > sat_legacy_website
view 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 |
line wrap: on
line source
#!/usr/bin/python # -*- coding: utf-8 -*- """ SàT website: Salut à Toi's presentation website Copyright (C) 2012 Jérôme Poisson (goffi@goffi.org) This file is part of SàT website. SàT website is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Foobar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with Foobar. If not, see <http://www.gnu.org/licenses/>. """ from django.http import Http404 from django.shortcuts import render_to_response from django.core.context_processors import csrf from django.utils.translation import ugettext_lazy as _ from django.template import RequestContext from collections import OrderedDict import screenshots, social_contract, utils, forms CATEGORIES = OrderedDict([('frontends', (_(u"Presentation"), OrderedDict([("features", _(u"Features")), ("frontends", _(u"Frontends")), ("screenshots", _(u"Screenshots & Videos")), ]))), ('principles', (_(u"Technical area"), OrderedDict([("principles", _(u"Principles")), ("specifications", _(u"Specifications")), ("downloads", _(u"Downloads")), ("developers", _(u"Developers corner")), ]))), ('community', (_(u"Community"), OrderedDict([("community", _(u"Get in touch")), ("association", _(u"Association")), ("links", _(u"Links")), ("press", _(u"Press")), ]))), ]) CATEGORIES_RIGHT = OrderedDict([("adhesion", _(u"Adhesion")), ("social_contract", _(u"Social contract")), ]) CATEGORIES_HIDDEN = ('adhesion_form', 'thank_you') PROJECTS_INFOS = {'sat': _(u'contains the backend, Primitivus and Jp'), 'sat_media': _(u'Images and other media needed to launch SàT'), 'urwid_satext': _(u'console display library needed by Primitivus'), 'sat_pubsub': _(u'PubSub server component needed for SàT experimental blogging features'), 'libervia': _(u'Libervia frontend (web server and client)'), } def overview(request): return render_to_response('sat_website/overview.html') def generic_cat(request, category): context = RequestContext(request, { "available_languages": ['fr', 'en'], "categories": CATEGORIES, "categories_right": CATEGORIES_RIGHT, "category": category, "libervia_demo_url": utils.get_libervia_demo_url(), "subscription_amounts": utils.get_asso_subscr_amounts(), }) context.update(csrf(request)) if not category or category == "overview": context.update(utils.get_asso_finance_status()) return render_to_response('sat_website/overview.html', context) elif category == "screenshots": context["screenshots"] = screenshots.screenshots context["screenshots_tech"] = screenshots.screenshots_tech elif category == "social_contract": context["SOCIAL_CONTRACT"] = social_contract.get_social_contract() elif category == "downloads": context["projects_infos"] = utils.get_projects_infos(PROJECTS_INFOS) elif category in ("association", "adhesion"): context.update(utils.get_asso_finance_status()) context.update(utils.get_asso_urls()) elif category == "adhesion_form": if request.method == 'POST': form = forms.RegistrationForm(request.POST) form.process_submitted_data() if form.is_valid(): category = 'thank_you' else: form = forms.RegistrationForm(initial={'subscription_amount': 10, 'payment_method': 'transfer', 'newsletter': True}) context['form'] = form context.update(utils.get_asso_urls()) def all_keys(cats): subcats = [value[1].keys() for value in cats.values() if isinstance(value, tuple)] return sum(subcats, cats.keys()) if category in all_keys(CATEGORIES) or category in all_keys(CATEGORIES_RIGHT) or category in CATEGORIES_HIDDEN: return render_to_response('sat_website/%s.html' % (category,), context) else: raise Http404