]>
Commit | Line | Data |
---|---|---|
81675874 | 1 | #!/usr/bin/python |
2 | ||
3 | import tornado.web | |
4 | ||
5 | import menu | |
6 | import releases | |
7 | ||
8 | class UIModule(tornado.web.UIModule): | |
9 | def render_string(self, *args, **kwargs): | |
10 | kwargs.update({ | |
11 | "link" : self.handler.link, | |
12 | }) | |
13 | return tornado.web.UIModule.render_string(self, *args, **kwargs) | |
14 | ||
15 | ||
16 | class MenuItemModule(UIModule): | |
17 | def render(self, item): | |
5a1018ab | 18 | if self.request.uri.endswith(item.uri): |
81675874 | 19 | item.active = True |
5a1018ab MT |
20 | |
21 | if not item.uri.startswith("http://"): | |
22 | item.uri = "/%s%s" % (self.locale.code[:2], item.uri,) | |
23 | ||
81675874 | 24 | if type(item.name) == type({}): |
25 | item.name = item.name[self.locale.code[:2]] | |
5a1018ab | 26 | |
81675874 | 27 | return self.render_string("modules/menu-item.html", item=item) |
28 | ||
29 | ||
30 | class MenuModule(UIModule): | |
81675874 | 31 | def render(self, menuclass=None): |
81675874 | 32 | if not menuclass: |
33 | menuclass = menu.Menu("menu.json") | |
34 | return self.render_string("modules/menu.html", menuitems=menuclass.items) | |
35 | ||
36 | ||
37 | class NewsItemModule(UIModule): | |
38 | def render(self, item): | |
39 | for attr in ("subject", "content"): | |
40 | if type(item[attr]) != type({}): | |
41 | continue | |
42 | item[attr] = item[attr][self.locale.code[:2]] | |
43 | ||
44 | return self.render_string("modules/news-item.html", item=item) | |
45 | ||
46 | ||
47 | #class SidebarModule(UIModule): | |
48 | # def render(self, sidebar): | |
49 | # return self.render_string("modules/sidebar.html", items=sidebar.items) | |
50 | ||
51 | ||
52 | class SidebarItemModule(UIModule): | |
53 | def render(self): | |
54 | return self.render_string("modules/sidebar-item.html") | |
55 | ||
56 | ||
57 | class SidebarReleaseModule(UIModule): | |
58 | releases = releases.Releases() | |
59 | ||
60 | def render(self): | |
61 | return self.render_string("modules/sidebar-release.html", | |
62 | releases=self.releases) | |
63 | ||
64 | ||
65 | class ReleaseItemModule(UIModule): | |
66 | def render(self, item): | |
67 | return self.render_string("modules/release-item.html", item=item) | |
68 | ||
69 | ||
70 | class SidebarBannerModule(UIModule): | |
71 | def render(self, item): | |
72 | return self.render_string("modules/sidebar-banner.html", item=item) | |
73 | ||
74 | ||
75 | class BuildModule(UIModule): | |
76 | def render(self, build): | |
77 | return self.render_string("modules/builds.html", build=build) |