]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - www/webapp/ui_modules.py
Change layout of menu.json to create seperate menus per vhost.
[people/shoehn/ipfire.org.git] / www / webapp / ui_modules.py
CommitLineData
81675874 1#!/usr/bin/python
2
3import tornado.web
4
5import menu
6import releases
7
2c055a8e
MT
8from helpers import Item
9
81675874 10class 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
18class 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
32class 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
39class 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
55class SidebarItemModule(UIModule):
56 def render(self):
57 return self.render_string("modules/sidebar-item.html")
58
59
60class 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
68class ReleaseItemModule(UIModule):
69 def render(self, item):
70 return self.render_string("modules/release-item.html", item=item)
71
72
73class SidebarBannerModule(UIModule):
74 def render(self, item):
75 return self.render_string("modules/sidebar-banner.html", item=item)
76
77
78class BuildModule(UIModule):
79 def render(self, build):
80 return self.render_string("modules/builds.html", build=build)