scripts/wiki/theme/crans.py
Vincent Le Gallic c039058708 Enregistrement des droits d'exécution. Aucune vraie modif.
Darcs n'enregistrait pas les permissions des fichiers.
2013-01-31 05:36:25 +01:00

125 lines
3.2 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
MoinMoin monobook theme.
Author: Antoine Durand-Gasselin <adg@crans.org>
"""
import datetime
from MoinMoin.theme import ThemeBase
class Theme(ThemeBase):
name = "crans"
today = datetime.date.today()
def wikipanel(self, d):
""" Create wiki panel """
_ = self.request.getText
html = [
u'<div class="sidepanel">',
u'<h1>%s</h1>' % _("Wiki"),
self.navibar(d),
u'</div>',
]
return u'\n'.join(html)
def pagepanel(self, d):
""" Create page panel """
_ = self.request.getText
if self.shouldShowEditbar(d['page']):
html = [
u'<div class="sidepanel">',
u'<h1>%s</h1>' % _("Page"),
self.editbar(d),
u'</div>',
]
return u'\n'.join(html)
return ''
def userpanel(self, d):
""" Create user panel """
_ = self.request.getText
html = [
u'<div class="sidepanel">',
u'<h1>%s</h1>' % _("User"),
self.username(d),
u'</div>'
]
return u'\n'.join(html)
def header(self, d):
"""
Assemble page header
@param d: parameter dictionary
@rtype: string
@return: page header html
"""
_ = self.request.getText
if self.today.month == 10 and self.today.day == 31:
x_class = 'class="halloween"'
elif self.today.month == 12 and self.today.day == 24:
x_class = 'class="noel"'
elif self.today.month == 4 and self.today.day ==1:
x_class = 'class="april_fool"'
else: x_class = ''
html = [
# Custom html above header
self.emit_custom_html(self.cfg.page_header1),
u'<div id="titleBar">',
u'<h1 id="title" %s>' % x_class, self.title(d), u'</h1>',
u'</div>',
self.msg(d),
self.startPage()
]
return u'\n'.join(html)
editorheader = header
def footer(self, d, **keywords):
""" Assemble wiki footer
@param d: parameter dictionary
@keyword ...:...
@rtype: unicode
@return: page footer html
"""
page = d['page']
html = [
self.pageinfo(page),
self.endPage(),
# Sidebar
u'<div id="rightSidebar">',
self.userpanel(d), self.wikipanel(d), self.pagepanel(d),
self.searchform(d), self.credits(d), self.showversion(d, **keywords),
u'</div>',
# # Pre footer custom html (not recommended!)
# self.emit_custom_html(self.cfg.page_footer1),
#
# # Footer
# u'<div id="footer">',
# u'</div>',
#
# # Post footer custom html
# self.emit_custom_html(self.cfg.page_footer2),
]
return u'\n'.join(html)
def execute(request):
""" Generate and return a theme object
@param request: the request object
@rtype: MoinTheme
@return: Theme object
"""
return Theme(request)