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