Mercurial > sat_legacy_website
view sat_website/views.py @ 123:c0dbe7ad54c8
add a question "what is the Libervia demo version?" to the FAQ
author | souliane <souliane@mailoo.org> |
---|---|
date | Fri, 06 Nov 2015 10:10:39 +0100 |
parents | e138879873f1 |
children | 1bdb78a21647 |
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 datetime import media, social_contract, utils, forms CATEGORIES = OrderedDict([('frontends', (_(u"Presentation"), OrderedDict([("features", _(u"Features")), ("frontends", _(u"Frontends")), ("media", _(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")), ("faq", _(u"FAQ")), ]))), ]) CATEGORIES_RIGHT = OrderedDict([("membership", _(u"Membership")), ("social_contract", _(u"Social contract")), ]) CATEGORIES_ALIASES = {"adhesion": "membership", "adhesion_form": "membership_form", "screenshots": "media", } CATEGORIES_HIDDEN = ('membership_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): if category in CATEGORIES_ALIASES: category = CATEGORIES_ALIASES[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(), # FIXME: dirty implementation just for the duration of the campaign! # http://stackoverflow.com/questions/4327021/python-count-down-to-event-in-days-and-hours "campaign_countdown": (datetime.datetime(2015, 12, 6) - datetime.datetime.now()).days, }) context.update(csrf(request)) context.update(utils.get_asso_finance_status()) if not category or category == "overview": context.update(utils.get_asso_finance_status()) return render_to_response('sat_website/overview.html', context) elif category == "media": context["media"] = media.media context["media_tech"] = media.media_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", "membership"): context.update(utils.get_asso_urls()) elif category == "membership_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', 'mailing': 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