Viewing posts for the category Python
I wrote a page with quite a few dropdown lists .. since it gets tedious to just copy and paste I wrote myself a DropDownList class which takes a name and default:
Here some small code - snippets where some form of data gets passed to a page / element. This could of course be changed to get more data or not a dict/axiom db but I prefer it this way (Pretty much every axiom/nevow app will need something like this afaik):# -*- coding: utf8 -*-
from nevow.rend import Page
from nevow.page import Element, renderer
from nevow import loaders
from nevow import tags as T
class PageWithDB(Page):
"""
Own Page class to save myself passing the db object to every sub-page
"""
def __init__(self, db, original = None, docFactory = None):
self.db = None
if not db:
raise ValueError("No Database given")
self.db = db
Page.__init__(self, original, docFactory)
class ElementWithData(Element):
"""
Element with Data
"""
def __init__(self, data, docFactory = None):
self.data = None
if data == None:
raise ValueError("No Data")
self.data = data
Element.__init__(self, docFactory)
class ContainerPage(PageWithDB):
"""
Container Page which just has title and content renderer and
loads only skeleton page. To be used with Elements
The render_title and render_content methods should be overridden
"""
addSlash = True
docFactory = loaders.xmlfile(u'templates/pageskel.xml')
def render_title(self, ctx, data):
return u'TITLE RENDER'
def render_content(self, ctx, data):
return u'CONTENT'