]>
git.ipfire.org Git - ipfire.org.git/blob - www/webapp/ui_modules.py
9 from helpers
import Item
11 class UIModule(tornado
.web
.UIModule
):
12 def render_string(self
, *args
, **kwargs
):
14 "link" : self
.handler
.link
,
16 return tornado
.web
.UIModule
.render_string(self
, *args
, **kwargs
)
20 return self
.handler
.application
.user_db
23 class MenuItemModule(UIModule
):
24 def render(self
, item
):
25 if self
.request
.uri
.endswith(item
.uri
):
28 if not item
.uri
.startswith("http://"):
29 item
.uri
= "/%s%s" % (self
.locale
.code
[:2], item
.uri
,)
31 if type(item
.name
) == type({}):
32 item
.name
= item
.name
[self
.locale
.code
[:2]]
34 return self
.render_string("modules/menu-item.html", item
=item
)
37 class MenuModule(UIModule
):
38 def render(self
, menuclass
=None):
40 menuclass
= menu
.Menu("menu.json")
42 host
= self
.request
.host
.lower().split(':')[0]
44 return self
.render_string("modules/menu.html", menuitems
=menuclass
.get(host
))
47 class NewsItemModule(UIModule
):
48 def render(self
, item
):
49 item
= Item(**item
.args
.copy())
50 for attr
in ("subject", "content"):
51 if type(item
[attr
]) != type({}):
53 item
[attr
] = item
[attr
][self
.locale
.code
[:2]]
55 return self
.render_string("modules/news-item.html", item
=item
)
58 #class SidebarModule(UIModule):
59 # def render(self, sidebar):
60 # return self.render_string("modules/sidebar.html", items=sidebar.items)
63 class SidebarItemModule(UIModule
):
65 return self
.render_string("modules/sidebar-item.html")
68 class SidebarReleaseModule(UIModule
):
69 releases
= releases
.Releases()
72 return self
.render_string("modules/sidebar-release.html",
73 releases
=self
.releases
)
76 class ReleaseItemModule(UIModule
):
77 def render(self
, item
):
78 return self
.render_string("modules/release-item.html", item
=item
)
81 class SidebarBannerModule(UIModule
):
82 def render(self
, item
):
83 return self
.render_string("modules/sidebar-banner.html", item
=item
)
86 class BuildModule(UIModule
):
87 def render(self
, build
):
88 return self
.render_string("modules/builds.html", build
=build
)
91 class PlanetEntryModule(UIModule
):
92 def render(self
, entry
):
93 if not getattr(entry
, "author", None):
94 entry
.author
= self
.user_db
.get_user_by_id(entry
.author_id
)
96 entry
.markup
= markdown
.markdown(entry
.text
)
97 entry
.published
= entry
.published
.strftime("%Y-%m-%d")
98 entry
.updated
= entry
.updated
.strftime("%Y-%m-%d %H:%M")
100 return self
.render_string("modules/planet-entry.html", entry
=entry
)