]>
git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - www/webapp/ui_modules.py
6 from tornado
.database
import Row
8 class UIModule(tornado
.web
.UIModule
):
9 def render_string(self
, *args
, **kwargs
):
11 "link" : self
.handler
.link
,
13 return tornado
.web
.UIModule
.render_string(self
, *args
, **kwargs
)
17 return self
.handler
.application
.user_db
20 class MenuItemModule(UIModule
):
21 def render(self
, item
):
22 if self
.request
.uri
.endswith(item
.uri
):
25 if not item
.uri
.startswith("http://"):
26 item
.uri
= "/%s%s" % (self
.locale
.code
[:2], item
.uri
,)
28 if type(item
.name
) == type({}):
29 item
.name
= item
.name
[self
.locale
.code
[:2]]
31 return self
.render_string("modules/menu-item.html", item
=item
)
34 class MenuModule(UIModule
):
36 menuclass
= self
.handler
.application
.ds
.menu
37 host
= self
.request
.host
.lower().split(':')[0]
39 return self
.render_string("modules/menu.html", menuitems
=menuclass
.get(host
))
42 class NewsItemModule(UIModule
):
43 def render(self
, item
):
44 item
= Row(item
.copy())
45 for attr
in ("subject", "content"):
46 if type(item
[attr
]) != type({}):
48 item
[attr
] = item
[attr
][self
.locale
.code
[:2]]
50 return self
.render_string("modules/news-item.html", item
=item
)
53 #class SidebarModule(UIModule):
54 # def render(self, sidebar):
55 # return self.render_string("modules/sidebar.html", items=sidebar.items)
58 class SidebarItemModule(UIModule
):
60 return self
.render_string("modules/sidebar-item.html")
63 class SidebarReleaseModule(UIModule
):
65 return self
.render_string("modules/sidebar-release.html",
66 releases
=self
.handler
.application
.ds
.releases
)
69 class ReleaseItemModule(UIModule
):
70 def render(self
, item
):
71 return self
.render_string("modules/release-item.html", item
=item
)
74 class SidebarBannerModule(UIModule
):
75 def render(self
, item
):
76 return self
.render_string("modules/sidebar-banner.html", item
=item
)
79 class BuildModule(UIModule
):
80 def render(self
, build
):
81 return self
.render_string("modules/builds.html", build
=build
)
84 class PlanetEntryModule(UIModule
):
85 def render(self
, entry
):
86 if not getattr(entry
, "author", None):
87 entry
.author
= self
.user_db
.get_user_by_id(entry
.author_id
)
89 entry
.markup
= markdown
.markdown(entry
.text
)
90 entry
.published
= entry
.published
.strftime("%Y-%m-%d")
91 entry
.updated
= entry
.updated
.strftime("%Y-%m-%d %H:%M")
93 return self
.render_string("modules/planet-entry.html", entry
=entry
)