class MilestoneField(ew.SingleSelectField): template=ew.Snippet('''<select {{widget.j2_attrs({ 'id':id, 'name':rendered_name, 'multiple':multiple, 'class':css_class}, attrs)}}> {% for o in open_milestones %} <option{% if o.selected%} selected{% endif %} value="{{o.html_value}}">{{o.label|e}}</option> {% endfor %} {% if closed_milestones %} <optgroup label="Closed"> {% for o in closed_milestones %} <option{% if o.selected%} selected{% endif %} value="{{o.html_value}}">{{o.label|e}}</option> {% endfor %} </optgroup> {% endif %} </select>''', 'jinja2') def prepare_context(self, context): context = super(MilestoneField, self).prepare_context(context) # group open / closed milestones context['open_milestones'] = [opt for opt in self.options if not opt.complete] context['closed_milestones'] = [opt for opt in self.options if opt.complete] # filter closed milestones entirely #value = context['value'] #context['options'] = [opt for opt in self.options if not opt.complete or value == opt.py_value] return context
def fields(self): fields = [ ew.TextField(name=g.antispam.enc('username'), label='Username', attrs={ 'autofocus': 'autofocus', 'placeholder': 'Username' if plugin.ThemeProvider.get().use_input_placeholders() else '', 'autocomplete': 'username', 'autocapitalize': 'none', }), ew.PasswordField(name=g.antispam.enc('password'), label='Password', attrs={ 'placeholder': 'Password' if plugin.ThemeProvider.get().use_input_placeholders() else '', 'autocomplete': 'current-password', }), ew.Checkbox( name=g.antispam.enc('rememberme'), label='Remember Me', attrs={'style': 'margin-left: 162px;'}), ew.HiddenField(name='return_to'), ] if plugin.AuthenticationProvider.get(request).forgotten_password_process: # only show link if auth provider has method of recovering password fields.append( ew.HTMLField( name='link', text='<a href="/auth/forgotten_password" style="margin-left:162px" target="_top">' 'Forgot password?</a>')) for fld in g.antispam.extra_fields(): fields.append( ew_core.Widget(template=ew.Snippet(fld))) return fields
class DisplayOnlyField(ew.HiddenField): ''' Render a field as plain text, optionally with a hidden field to preserve the value. ''' template = ew.Snippet( '''{{ (text or value or attrs.value)|e }} {%- if with_hidden_input is none and name or with_hidden_input -%} <input {{ widget.j2_attrs({ 'type':'hidden', 'name':name, 'value':value, 'class':css_class}, attrs) }}> {%- endif %}''', 'jinja2') defaults = dict(ew.HiddenField.defaults, text=None, value=None, with_hidden_input=None)
class _HTMLExplanation(ew.InputField): template = ew.Snippet( '''<label class="grid-4"> </label> <div class="grid-14" style="margin:2px;">{{widget.text}}</div> ''', 'jinja2')