Handle web application parts as tiles.
Project description
A tile is a piece of web application, i.e. a form, a navigation, etc.
Splitting your application in such small and logic application parts makes it easy to re-use this application, simplifies application ajaxification and the use of same application parts in different manners.
Imports.:
>>> from bda.bfg.tile import Tile >>> from bda.bfg.tile import TileRenderer >>> from bda.bfg.tile import registerTile >>> from bda.bfg.tile import tile
We need some dummies as model and request.:
>>> class Model(object): pass >>> model = Model() >>> from repoze.bfg.request import DEFAULT_REQUEST_FACTORIES >>> request = DEFAULT_REQUEST_FACTORIES[None]['factory'](environ={})
The pure Tile itself. Normally you do not create this directly, this is done due registration, see below.:
>>> mytile = Tile('testdata/tile1.pt', None) >>> mytile(model, request) u'<span>Tile One</span>'
Register a tile using the prior template testtemplate. When no object is given, the default tile is instanciated as above.:
>>> registerTile('tileone', 'testdata/tile1.pt')
Render the already registered tile.:
>>> TileRenderer(model, request)('tileone') u'<span>Tile One</span>'
Now the decorator - level=1 is needed for the doctest only to reduce the module level.:
>>> @tile('tiletwo', 'testdata/tile2.pt', level=1) ... class Tile2(Tile): ... data = u'custom' >>> TileRenderer(model, request)('tiletwo') u'<span>Tile Two: <b><span>Tile One</span></b></span>'
You can define an attribute which is responsible to render the tile instead of defining a template. By default render is taken. With the keyword argument attribute you can point to a different attribute.:
>>> @tile('attrtile') ... class Tile2(Tile): ... def render(self): ... return u'<h1>Rendered via attribute call</h1>' >>> TileRenderer(model, request)('attrtile') u'<h1>Rendered via attribute call</h1>'>>> @tile('attrtile', attribute='foobar') ... class Tile2(Tile): ... def foobar(self): ... return u'<h1>Rendered via attribute foobar call</h1>' >>> TileRenderer(model, request)('attrtile') u'<h1>Rendered via attribute foobar call</h1>'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file bda.bfg.tile-1.0.tar.gz
.
File metadata
- Download URL: bda.bfg.tile-1.0.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18ab1b358b7a40bda8820f0f0ae0e8d8d1bdaa92a63ebffc5f8f1010470e3ed8 |
|
MD5 | 5781d18ce262042b5cf81f5f010c7f98 |
|
BLAKE2b-256 | a9905fbb2f0d93a294201f80ba127450e3406749c22623df001f4bbbbcf0e0b8 |