Source code for ew.kajiki_ew

'''Implementation of core ew widgets in terms of kajiki-html4 templates
'''
from . import fields
from . import select
from . import forms
from . import widget
from . import resource
from .render import Snippet, File

#################
## Overrides from ew.fields
#################

[docs]class InputField(fields.InputField): template=Snippet('''<input type="$field_type" name="$name" class="$css_class" readonly="${readonly or None}" value="$value" py:attrs="attrs"/>''', 'kajiki-html4')
[docs]class HiddenField(fields.HiddenField): template=InputField.template
[docs]class CompoundField(fields.CompoundField): template=InputField.template
[docs]class FieldSet(fields.FieldSet): template=File('ew.templates.kajiki.field_set', 'kajiki-html4')
[docs]class RowField(fields.RowField): template=File('ew.templates.kajiki.row_field', 'kajiki-html4')
[docs]class RepeatedField(fields.RepeatedField): template=File('ew.templates.kajiki.repeated_field', 'kajiki-html4')
[docs]class TableField(fields.TableField): template=File('ew.templates.kajiki.table_field', 'kajiki-html4')
TableField.RowField=RowField
[docs]class TextField(fields.TextField): template=InputField.template
[docs]class EmailField(fields.EmailField): template=InputField.template
[docs]class NumberField(fields.NumberField): template=InputField.template
[docs]class IntField(fields.IntField): template=InputField.template
[docs]class DateField(fields.DateField): template=InputField.template
[docs]class TimeField(fields.TimeField): template=InputField.template
[docs]class TextArea(fields.TextArea): template=Snippet('''<textarea name="$name" class="$css_class" readonly="${readonly or None}" py:attrs="attrs">$value</textarea>''', 'kajiki-html4')
[docs]class Checkbox(fields.Checkbox): template=File('ew.templates.kajiki.checkbox', 'kajiki-html4')
[docs]class SubmitButton(fields.SubmitButton): template=Snippet('''<input type="submit" name="$name" class="$css_class" readonly="${readonly or None}" py:attrs="attrs" value="$label"/>''', 'kajiki-html4')
[docs]class HTMLField(fields.HTMLField): template=Snippet('''<div py:strip="True"><py:if test="text" >${literal(widget.expand(text))}</py:if><py:if test="not text and unicode(value)">${literal(value)}</py:if></div>''', 'kajiki-html4')
[docs]class LinkField(fields.LinkField): template=Snippet('''<a href="${widget.expand(href)}" py:attrs="attrs"><py:if test="text is None">${widget.expand(label)}</py:if><py:if test="text is not None">${widget.expand(text)}</py:if></a>''', 'kajiki-html4') ################# ## Overrides from ew.select #################
[docs]class SelectField(select.SelectField): template=File('ew.templates.kajiki.select_field', 'kajiki-html4')
[docs]class SingleSelectField(select.SingleSelectField): template=SelectField.template
[docs]class MultiSelectField(select.MultiSelectField): template=SelectField.template
[docs]class Option(select.Option): template=Snippet('''<option value="$html_value" selected="${selected and 'selected' or None}" >$label</option>''', 'kajiki-html4')
[docs]class CheckboxSet(select.CheckboxSet): template=File('ew.templates.kajiki.checkbox_set', 'kajiki-html4') ################# ## Overrides from ew.forms #################
[docs]class SimpleForm(forms.SimpleForm): template=File('ew.templates.kajiki.simple_form', 'kajiki-html4')
SimpleForm.SubmitButton=SubmitButton ################# ## Overrides from ew.resource #################
[docs]class JSScript(resource.JSScript):
[docs] class WidgetClass(widget.Widget): template=Snippet( '<script type="text/javascript">$widget.text</script>', 'kajiki-html4')
[docs]class CSSScript(resource.CSSScript):
[docs] class WidgetClass(widget.Widget): template=Snippet('<style>$widget.text</style>', 'kajiki-html4')
[docs]class GoogleAnalytics(resource.GoogleAnalytics):
[docs] class WidgetClass(widget.Widget): template=File('ew.templates.kajiki.google_analytics', 'kajiki-html4')