1.1 --- a/ep2008.py Sat Dec 01 21:50:31 2007 +0100
1.2 +++ b/ep2008.py Sun Dec 02 01:18:00 2007 +0100
1.3 @@ -36,6 +36,9 @@
1.4 data_underlay_dir = '/home/paulb/Activities/EuroPython/2008/ep2008/wiki/underlay'
1.5
1.6 acl_enabled = 1
1.7 + acl_rights_default = 'Known:read,write,delete,revert All:read,write'
1.8 + acl_rights_before = 'AdminGroup:read,write,delete,revert,admin'
1.9 +
1.10 theme_default = 'ep2008'
1.11
1.12 logo_string = u'<img src="/wiki/ep2008/img/europython.png" alt="EuroPython" />'
1.13 @@ -55,6 +58,12 @@
1.14 ]
1.15
1.16 banner_string = u'<img src="/wiki/ep2008/img/sponsor_us.png" alt="Banner advertisement" id="banner" />'
1.17 + banner_alt_text = u'Sponsor of EuroPython'
1.18 + banner_prefix = u'sponsor'
1.19 + banner_per_page = 0
1.20 + banner_attachment_page = u'FrontPage'
1.21 + banner_link_page = u'Sponsors'
1.22 +
1.23 contact_string = u'<div id="contact"><a href="Contact">Contact Information</a></div>'
1.24 contribute_string = u'Contribute to this site!'
1.25 special_username = 0
2.1 --- a/themes/ep2008/ep2008.py Sat Dec 01 21:50:31 2007 +0100
2.2 +++ b/themes/ep2008/ep2008.py Sun Dec 02 01:18:00 2007 +0100
2.3 @@ -7,9 +7,9 @@
2.4 """
2.5
2.6 from MoinMoin.theme import ThemeBase
2.7 -#from MoinMoin.theme import modern
2.8 +from MoinMoin.action import AttachFile
2.9 +import random
2.10
2.11 -#class Theme(modern.Theme):
2.12 class Theme(ThemeBase):
2.13
2.14 name = "ep2008"
2.15 @@ -30,7 +30,7 @@
2.16 self.logo(),
2.17
2.18 # Banner
2.19 - self.cfg.banner_string,
2.20 + self.banner(d),
2.21
2.22 self.searchform(d),
2.23 self.navibar(d),
2.24 @@ -159,6 +159,44 @@
2.25 d['page'].link_to(request, text=self.cfg.contribute_string,
2.26 querystr={'action': 'login'}, id="login")
2.27
2.28 + def banner(self, d):
2.29 + request = self.request
2.30 + formatter = request.formatter
2.31 +
2.32 + # Either get banners per page or acquire them from a central source.
2.33 +
2.34 + if self.cfg.banner_per_page:
2.35 + pagename = d["page"].page_name
2.36 + else:
2.37 + pagename = self.cfg.banner_attachment_page
2.38 +
2.39 + # Only get attachments with a certain prefix.
2.40 +
2.41 + attachments = []
2.42 + for filename in AttachFile._get_files(request, pagename):
2.43 + if filename.startswith(self.cfg.banner_prefix):
2.44 + attachments.append(filename)
2.45 +
2.46 + # Display the default banner if no attachments are found.
2.47 +
2.48 + if not attachments:
2.49 + return self.cfg.banner_string
2.50 +
2.51 + # Choose an attachment at random and return the HTML to show it.
2.52 +
2.53 + attachment = random.choice(attachments)
2.54 +
2.55 + kw = {}
2.56 + kw['src'] = AttachFile.getAttachUrl(pagename, attachment, request)
2.57 + kw['alt'] = self.cfg.banner_alt_text
2.58 + kw['id'] = u'banner'
2.59 +
2.60 + target = self.cfg.banner_link_page
2.61 +
2.62 + return "%s%s%s" % (formatter.pagelink(1, target),
2.63 + formatter.image(**kw),
2.64 + formatter.pagelink(0))
2.65 +
2.66 def execute(request):
2.67 """
2.68 Generate and return a theme object