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 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 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
#################
SimpleForm.SubmitButton=SubmitButton
#################
## Overrides from ew.resource
#################
[docs]class JSLink(resource.JSLink):
[docs]class CSSLink(resource.CSSLink):
file_type='css'
[docs]class JSScript(resource.JSScript):
[docs]class CSSScript(resource.CSSScript):
[docs]class GoogleAnalytics(resource.GoogleAnalytics):