]>
git.ipfire.org Git - ipfire.org.git/blob - src/web/handlers.py
13 #import tornado.database
14 #import tornado.locale
19 from handlers_accounts
import *
20 from handlers_admin
import *
21 from handlers_base
import *
22 from handlers_boot
import *
23 from handlers_download
import *
24 from handlers_fireinfo
import *
25 from handlers_iuse
import *
26 from handlers_mirrors
import *
27 from handlers_nopaste
import *
28 from handlers_talk
import *
30 class LangCompatHandler(BaseHandler
):
32 Redirect links in the old format to current site:
34 E.g. /en/index -> /index
36 def get(self
, lang
, page
):
37 self
.redirect("/%s" % page
)
40 class IndexHandler(BaseHandler
):
44 This handler displays the welcome page.
47 # Get the latest release.
48 latest_release
= self
.releases
.get_latest()
50 # Get a list of the most recent news items and put them on the page.
51 posts
= self
.backend
.blog
.get_newest(limit
=5)
53 return self
.render("index.html", posts
=posts
,
54 latest_release
=latest_release
,
55 fireinfo_country
=self
.fireinfo
.get_random_country_penetration())
58 class DonateHandler(BaseHandler
):
60 location
= self
.get_remote_location()
63 country
= location
.country
67 self
.render("donate.html", countries
=iso3166
.countries
, country
=country
)
69 @tornado.gen
.coroutine
73 "amount" : self
.get_argument("amount"),
74 "currency" : self
.get_argument("currency", "EUR"),
75 "method" : self
.get_argument("method", None),
77 # Is this a recurring donation?
78 "recurring" : self
.get_argument("frequency") == "monthly",
81 "email" : self
.get_argument("email"),
82 "title" : self
.get_argument("title"),
83 "first_name" : self
.get_argument("first_name"),
84 "last_name" : self
.get_argument("last_name"),
85 "company_name" : self
.get_argument("company_name", None),
86 "street1" : self
.get_argument("street1"),
87 "street2" : self
.get_argument("street2", None),
88 "post_code" : self
.get_argument("post_code"),
89 "city" : self
.get_argument("city"),
90 "state" : self
.get_argument("state", None),
91 "country_code" : self
.get_argument("country_code"),
94 # Send request to Zeiterfassung
96 response
= yield self
.backend
.zeiterfassung
.send_request(
97 "/api/v1/donations/create/ipfire-project", **args
)
100 raise # XXX handle any problems when Zeiterfassung is unreachable
102 # Redirect the user to the payment page
103 redirect_url
= response
.get("redirect_url")
105 raise tornado
.web
.HTTPError(500, "Did not receive a redirect URL")
107 self
.redirect(redirect_url
)
110 class DownloadHandler(BaseHandler
):
112 release
= self
.releases
.get_latest()
114 self
.render("download.html", release
=release
)
117 class StaticHandler(BaseHandler
):
118 def initialize(self
, template
):
119 self
._template
= template
122 self
.render("static/%s" % self
._template
)