Skip to main content

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

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bda.bfg.tile-1.0.tar.gz (5.0 kB view details)

Uploaded Source

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

Hashes for bda.bfg.tile-1.0.tar.gz
Algorithm Hash digest
SHA256 18ab1b358b7a40bda8820f0f0ae0e8d8d1bdaa92a63ebffc5f8f1010470e3ed8
MD5 5781d18ce262042b5cf81f5f010c7f98
BLAKE2b-256 a9905fbb2f0d93a294201f80ba127450e3406749c22623df001f4bbbbcf0e0b8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page