tw2.core

tw2.core contains the base Widgets from which all others are derived.

Widget
Base class for all widgets.

CompoundWidget

A widget that has an arbitrary number of children, this is common for layout components, such as :class:`tw2.forms.TableLayout`.

System Message: ERROR/3 (<string>, line 2); backlink

Unknown interpreted text role "class".

RepeatingWidget

A widget that has a single child, which is repeated an arbitrary number of times, such as :class:`tw2.forms.GridLayout`.

System Message: ERROR/3 (<string>, line 2); backlink

Unknown interpreted text role "class".
  • repetitions
    • Fixed number of repetitions. If this is None, it dynamically determined, based on the length of the value list.
  • min_reps
    • Minimum number of repetitions
  • max_reps
    • Maximum number of repetitions
  • extra_reps
    • Number of extra repeitions, beyond the length of the value list.
  • children
    • Children specified for this widget will be passed to the child. In the template, children gets the list of repeated childen.

DisplayOnlyWidget

A widget that has a single child. The parent widget is only used for display purposes; it does not affect value propagation or validation. This is used by widgets like :class:`tw2.forms.FieldSet`.

System Message: ERROR/3 (<string>, line 2); backlink

Unknown interpreted text role "class".
  • children
    • Children specified for this widget will be passed to the child

Page

An HTML page. This widget includes a :meth:`request` method that serves the page.

System Message: ERROR/3 (<string>, line 2); backlink

Unknown interpreted text role "meth".
  • children
    • Children specified for this widget will be passed to the child
  • id_suffix
    • Suffix to append to compound IDs
  • content_type
    • Content type header

JSSource
Inline JavaScript source code.
  • location
    • Location on the page where the resource should be placed.This can be one of: head, headbottom, bodytop or bodybottom. None means the resource will not be injected, which is still useful, e.g. static images.
  • src
    • Source code

CSSSource
Inline Cascading Style-Sheet code.
  • location
    • Location on the page where the resource should be placed.This can be one of: head, headbottom, bodytop or bodybottom. None means the resource will not be injected, which is still useful, e.g. static images.
  • src
    • CSS code

TGStyleController
A widget mixin that provides more advanced controller routing and

dispatching.

The need for this mainly sprung from a divergence of source trees (unintentionally forking) between the developers of tw2 while it was still alpha/beta. One team expected users to define controllers as a 'request' classmethod on the widget and another team expected users to define a Controller class as a child of the widget. Team A's pattern is now the default in the main tree. This is a shim to support Team B's approach.

Use it like this:

>>> import tw2.core
>>> class MyWidget(tw2.core.TGStyleController, tw2.core.Widget):
...     class Controller(object):
...         @jsonify
...         def some_method(self, req):
...             return dict(foo="bar")