def __init__(self, *args, **kwargs): admin = kwargs.pop('admin', None) is_owner = kwargs.pop('is_owner', None) super(FilterForm, self).__init__(*args, **kwargs) if not admin: self.fields['owner'].widget.attrs['disabled'] = 'disabled' if not is_owner: for field in self.fields.values(): field.widget.attrs['disabled'] = 'disabled' self.helper = FormHelper() self.helper.form_tag = False self.helper.layout = Layout( 'id', Row(Column('name', css_class='medium-6'), Column('owner', css_class='medium-6')))
def __init__(self, *args, **kwargs): super(ViewForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_class = 'custom' self.helper.form_action = '' self.helper.form_method = 'GET' self.helper.layout = Layout( Fieldset( 'Choose statistic', Row( Column('view', css_class='medium-5'), Column('timeframe', css_class='medium-3'), Column('rows', css_class='medium-1'), Column(LabelSubmit('submit', 'Show statistics', css_class='postfix'), css_class='medium-3'), )))
def __init__(self, *args, **kwargs): super(FormByTabsForm, self).__init__(*args, **kwargs) self.helper.attrs = {'data_abide': ''} self.helper.form_action = '.' part1 = [_('Part 1')] + part_1_crispies(pack=self.helper.template_pack) part2 = [_('Part 2')] + part_2_crispies(pack=self.helper.template_pack) part3 = [_('Part 3')] + part_3_crispies(pack=self.helper.template_pack) part4 = [_('Part 4')] + part_4_crispies(pack=self.helper.template_pack) self.helper.layout = Layout( TabHolder( TabItem(*part1), TabItem(*part2), TabItem(*part3), TabItem(*part4), ), *buttons_crispies(pack=self.helper.template_pack))
def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.form_method = 'post' self.helper.layout = Layout( Field('title'), HTML('{% include "misc/editor.part.html" %}'), Field('text'), Div( Submit('submit', u'Ajouter'), Submit('preview', u'Prévisualiser'), Submit( 'submit_continue', u'Ajouter et continuer', css_class='secondary'), css_class='button-group' ) ) super().__init__(*args, **kwargs)
def test_tab(output_test_path, render_output, rendered_template, helper, client): form = AdvancedForm() pack = helper.template_pack helper.layout = Layout( TabHolder(TabItem('My tab 1', 'simple'), TabItem('My tab 2', 'opt_in'), TabItem('My tab 3', 'longtext'), css_id='meep-meep')) rendered = rendered_template(form, helper=helper) attempted = render_output( os.path.join(output_test_path, pack, 'test_tab.html')) #write_output(output_test_path, pack, "test_tab.html", rendered) assert parse_html(attempted) == parse_html(rendered)
def test_inlinefield(output_test_path, render_output, rendered_template, helper, client): form = BasicInputForm() pack = helper.template_pack helper.layout = Layout( InlineField('simple', label_column='large-7', input_column='large-5', label_class='foobar')) rendered = rendered_template(form, helper=helper) attempted = render_output( os.path.join(output_test_path, pack, "test_inlinefield.html")) #write_output(output_test_path, pack, "test_inlinefield.html", rendered) assert parse_html(attempted) == parse_html(rendered)
def __init__(self, *args, **kwargs): super(L2TraceForm, self).__init__(*args, **kwargs) placeholder_text = "Hostname or IP-address" self.helper = FormHelper() self.helper.form_action = "" self.helper.form_method = 'GET' self.helper.layout = Layout( Row( Column(Field('host_from', placeholder=placeholder_text), css_class='medium-6'), Column(Field('host_to', placeholder=placeholder_text), css_class='medium-6'), ), Submit('submit', 'Trace') )
def __init__(self, *args, **kwargs): if 'my_account' in kwargs: self.account = kwargs.pop('my_account') else: self.account = None super(ChangePasswordForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_tag = False self.helper.layout = Layout( Fieldset( 'Change password', 'old_password', 'new_password1', 'new_password2', Submit('submit', 'Change password', css_class='small'), ))
def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.form_method = 'post' self.helper.layout = Layout( Fieldset( u'Général', Field('title') ), Fieldset( u'Contenu', Field('introduction'), Field('conclusion') ), ButtonHolder( Submit('submit', 'Valider'), ) ) super(PartForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.attrs = {'data_abide': ''} self.helper.form_action = '.' part1 = [_('Part 1')]+part_1_crispies() part2 = [_('Part 2')]+part_2_crispies() part3 = [_('Part 3')]+part_3_crispies() part4 = [_('Part 4')]+part_4_crispies() self.helper.layout = Layout( Fieldset(*part1), Fieldset(*part2), Fieldset(*part3), Fieldset(*part4), *buttons_crispies() ) super(FormByFieldsetsForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): super(TimePeriodForm, self).__init__(*args, **kwargs) self.helper = FormHelper() submit_text = 'Add' if self.instance and self.instance.id: self.fields['valid_during'].widget.attrs['disabled'] = 'disabled' submit_text = 'Save' self.helper.form_tag = False self.helper.layout = Layout( 'id', 'profile', Row( Column('start', css_class='medium-6'), Column(Field('valid_during', css_class='select2'), css_class='medium-6') ), Submit('submit', submit_text, css_class='small') )
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_tag = False self.helper.render_required_fields = True self.helper.render_hidden_fields = True self.helper.form_method = 'post' self.helper.form_show_errors = True self.helper.layout = Layout( Row(Column('student'), Column('contact_type', css_class='form-group col-md-4 mb-0'), Column('contact', css_class='form-group col-md-8 mb-0'), css_class='form-row'), Row(Column('first_name', css_class='form-group col-md-6 mb-0'), Column('last_name', css_class='form-group col-md-6 mb-0'), css_class='form-row'), Row(Column('phone_number', css_class='form-group col-md-4 mb-0'), Column('email', css_class='form-group col-md-8 mb-0'), css_class='form-row'))
def __init__(self, *args, **kwargs): super(LoginForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_id = 'login-form' self.helper.attrs = {'data_abide': ''} self.helper.form_method = 'post' self.helper.form_action = '' self.helper.layout = Layout( Fieldset( '', 'username', 'password' ), ButtonHolder( Reset('reset', 'Reset', css_class='secondary'), Submit('submit', 'Submit'), css_class='buttons text-right' ) )
def test_buttongroup(output_test_path, render_output, rendered_template, helper, client): form = BasicInputForm() pack = helper.template_pack helper.layout = Layout( 'simple', ButtonGroup( Submit('Save', 'Save'), Button('Cancel', 'Cancel'), )) rendered = rendered_template(form, helper=helper) attempted = render_output( os.path.join(output_test_path, pack, "test_buttongroup.html")) #write_output(output_test_path, pack, "test_buttongroup.html", rendered) assert parse_html(attempted) == parse_html(rendered)
def test_accordion(output_test_path, render_output, rendered_template, helper, client): form = AdvancedForm() pack = helper.template_pack # Define 'css_id' to avoid test fails with automatic generated random ID helper.layout = Layout( AccordionHolder(AccordionItem('Group 1', 'simple'), AccordionItem('Group 2', 'opt_in'), AccordionItem('Group 3', 'longtext'), css_id="meep-meep")) rendered = rendered_template(form, helper=helper) attempted = render_output( os.path.join(output_test_path, pack, "test_accordion.html")) #write_output(output_test_path, pack, "test_accordion.html", rendered) assert parse_html(attempted) == parse_html(rendered)
def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.form_method = 'post' self.helper.layout = Layout( Fieldset( u'Identifiants', Field('username'), Field('password'), Field('password_confirm'), Field('email'), ), Fieldset( u'Captcha', Field('captcha'), ), Div(Submit('submit', u'Valider mon inscription'), HTML(u'<a href="/" class="button secondary">Annuler</a>'), css_class='button-group')) super().__init__(*args, **kwargs)
def test_inlineswitchfield(output_test_path, rendered_template, helper, client): form = BoolInputForm() pack = helper.template_pack helper.layout = Layout( InlineSwitchField('opt_in', label_column='large-8', input_column='large-4', label_class='foobar', switch_class="inline")) rendered = rendered_template(form, helper=helper) attempted = read_output(output_test_path, pack, "test_inlineswitchfield.html") #write_output(output_test_path, pack, "test_inlineswitchfield.html", rendered) assert rendered == attempted
def test_tab(output_test_path, rendered_template, helper, client): form = AdvancedForm() pack = helper.template_pack helper.layout = Layout( TabHolder( TabItem('My tab 1', 'simple'), TabItem('My tab 2', 'opt_in'), TabItem('My tab 3', 'longtext'), css_id="meep-meep" ) ) rendered = rendered_template(form, helper=helper) attempted = read_output(output_test_path, pack, "test_tab.html") #write_output(output_test_path, pack, "test_tab.html", rendered) assert attempted == rendered
def __init__(self, *args, **kwargs): super(AccountForm, self).__init__(*args, **kwargs) account = kwargs.get('instance', False) self.helper = FormHelper() self.helper.form_action = '' self.helper.form_method = 'POST' fieldset_name = 'Account' fieldset_args = [fieldset_name] default_args = ['login', 'name', 'password1', 'password2'] if account: self.fields['password1'].required = False submit_value = 'Save changes' # This should really be two different forms because of this if kwargs['instance'].ext_sync: # We don't want to enable local password editing for accounts that are # managed externally. authenticator = ( "<p class='alert-box'>External authenticator: %s</p>" % kwargs["instance"].ext_sync ) del self.fields['password1'] del self.fields['password2'] self.fields['login'].widget.attrs['readonly'] = True fieldset_args.extend(['login', 'name', HTML(authenticator)]) else: fieldset_args.extend(default_args) if kwargs["instance"].id == Account.DEFAULT_ACCOUNT: # We don't want to enable significant changes to the anonymous account for field in ("password1", "password2", "login"): self.fields[field].widget.attrs["readonly"] = True else: submit_value = 'Create account' fieldset_args.extend(default_args) submit = Submit('submit_account', submit_value, css_class='small') fieldset_args.extend([submit]) fieldset = Fieldset(*fieldset_args) self.helper.layout = Layout(fieldset)
def __init__(self, *args, **kwargs): self._request = kwargs.pop('request') super(StudyFilterForm, self).__init__(*args, **kwargs) self.applied_filters = [] layouts = OrderedDict([('Study', []), ('Qualifier', []), ('Domain', [])]) for filt in Filter.objects.all().order_by('label'): layout_item, form_field = self._get_filter_layout_and_field(filt) # put layout_item into correct layout_group layouts[filt.filter_type].append(layout_item) # register form_field in form fields self.fields[filt.name] = form_field # add pretty_initial values to form attr if exists (for view) if hasattr(form_field, 'pretty_initial'): self.applied_filters.append( (filt.label, form_field.pretty_initial)) study_layout = self._get_accordion_or_empty(items=layouts['Study']) qualifier_layout = self._get_accordion_or_empty( items=layouts['Qualifier']) domain_layout = self._get_accordion_or_empty(items=layouts['Domain']) self.helper = FormHelper() self.helper.form_method = "GET" self.helper.layout = Layout( Row(Column( Div( HTML('<span id="message-bar">No new filters.</span>'), ButtonGroup( Submit('Apply', 'Apply', css_class="tiny secondary"), Submit('Reset', 'Clear Filters', css_class="secondary tiny"), css_class="right", ))), css_id="sticky-menu"), Row(Column(Fieldset("Study metadata", study_layout), )), Row(Column(Fieldset("Qualifier metadata", qualifier_layout), )), Row(Column(Fieldset("Domain metadata", domain_layout), )))
def __init__(self, link_pk, *args, **kwargs): self.helper = FormHelper() self.helper.form_method = 'post' self.helper.form_id = 'createlistform' self.helper.form_action = reverse('ajax-create-list', args=(link_pk, )) self.helper.layout = Layout( Fieldset( u'Create a list', Row(Column(Field('title'), css_class='large-12'), ), Row(Column(Field('description'), css_class='large-12'), ), Row(Column(Field('private'), css_class='large-4'), ), ), Row( Column(HTML( '<a id="createlist" class="small button">Create</a><a id="createclose" class="small secondary button" style="display:none">Close</a>' ), css_class='large-12'), ), ) super(NewListAjaxForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_tag = False #self.helper.form_id = 'id-student-form' self.helper.form_method = 'post' self.helper.layout = Layout( Fieldset( 'Product Data', Row(Column('name', css_class='form-group col-md-4 mb-0'), Column('description', css_class='form-group col-md-4 mb-0'), Column('cost_price', css_class='form-group col-md-4 mb-0'), Column('selling_price', css_class='form-group col-md-4 mb-0'), Column('quantity', css_class='form-group col-md-4 mb-0'), Column('keep_inventory', css_class='form-group col-md-4 mb-0'), css_class='form-row'), ), )
def __init__(self, *args, **kwargs): super(PasswordChangeForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_id = 'pw-change-form' self.helper.form_method = 'post' self.helper.form_action = '' self.helper.layout = Layout( Fieldset( 'Change password', 'old_password', 'new_password1', 'new_password2' ), ButtonHolder( Submit('submit', 'Submit'), Reset('reset', 'Reset'), css_class='text-right' ) )
def __init__(self, *args, **kwargs): super(NetboxFilterForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_action = '' self.helper.form_method = 'GET' self.helper.form_class = 'custom' self.helper.layout = Layout( Fieldset( 'Filter devices', Row( Column('category', css_class='medium-3'), Column('room', css_class='medium-3'), Column('organization', css_class='medium-3'), Column(LabelSubmit('submit', 'Filter', css_class='postfix'), css_class='medium-3') ) ) )
def __init__(self, *args, **kwargs): super(VlanFilterForm, self).__init__(*args, **kwargs) col_class = 'medium-3' self.helper = FormHelper() self.helper.form_action = '' self.helper.form_method = 'GET' self.helper.form_class = 'custom' self.helper.layout = Layout( Fieldset( 'Filter vlans', Row( Column('net_type', css_class=col_class), Column('organization', css_class=col_class), Column('usage', css_class=col_class), Column( LabelSubmit('submit', 'Filter', css_class='postfix'), css_class=col_class, ), ), ))
def note_helper(form_tag=True): """ Note form layout helper """ helper = FormHelper() helper.form_action = '.' helper.attrs = {'data_abide': ''} helper.form_tag = form_tag helper.layout = Layout( Row( Column( 'title', css_class='small-12' ), ), Row( Column( 'content', css_class='small-12' ), ), Row( Column( 'file', css_class='small-12' ), ), Row( Column( 'tags', css_class='small-12' ), ), ButtonHolderPanel( Submit('submit', _('Submit')), css_class='text-right', ), ) return helper
def entity_delete_helper(form_tag=True, has_notes=False): """ Entity delete form layout helper """ helper = FormHelper() helper.form_action = '.' helper.attrs = {'data_abide': ''} helper.form_tag = form_tag columns = [] # Show 'move to' field if there are some notes if has_notes: columns.append( Column( 'move_notecards_to', css_class='small-12 medium-8' ), ) columns.append( Column( 'confirm', css_class='small-12 medium-8' ), ) columns.append( Column( Submit('submit', _('Submit')), css_class='small-12 medium-4 text-right' ), ) helper.layout = Layout( ButtonHolderPanel( Row(*columns), ), ) return helper
def __init__(self, *args, **kwargs): super(DetentionProfileForm, self).__init__(*args, **kwargs) self.fields['qvlan'].choices = get_quarantine_vlans() did = self.data.get('detention_id') or self.initial.get('detention_id') self.fields['justification'].choices = get_justifications(did) self.helper = FormHelper() self.helper.form_action = '' self.helper.form_class = 'profileDetentionForm custom' self.helper.layout = Layout( 'detention_id', 'title', 'description', Fieldset( 'Obligatory', Row( Column('detention_type', css_class='medium-4'), Column('justification', css_class='medium-4'), Column('duration', css_class='medium-4'), ), Div('qvlan', css_class='qvlanrow'), css_class='secondary', ), Fieldset( 'Extra options', Row( Column('keep_closed', css_class='medium-4'), Column( CheckBox('exponential', css_class='input-align'), css_class='medium-4', ), Div(css_class='medium-4 columns'), ), 'mail', 'active_on_vlans', css_class='secondary', ), CheckBox('active', css_class='input-align'), Submit('submit', 'Save'), )
def __init__(self, *args, **kwargs): super(LoggerGroupSearchForm, self).__init__(*args, **kwargs) self.fields['facility'].choices = choice_values(LogMessageType, 'facility') self.fields['priority'].choices = choice_values(Priority, 'keyword') self.fields['mnemonic'].choices = choice_values(LogMessageType, 'mnemonic') self.fields['origin'].choices = choice_values(Origin, 'name') self.fields['timestamp_from'].widget.format = DATEFORMAT[0] self.fields['timestamp_to'].widget.format = DATEFORMAT[0] self.helper = FormHelper() self.helper.form_tag = False self.helper.layout = Layout( Row( Column( Fieldset( 'Filter <a href="http://www.cisco.com/en/US/docs/ios/system/messages/guide/sm_cnovr.html"><i class="fa fa-info-circle"></i></a>', Row( Column(Field('facility', css_class='select2 medium-12'), css_class='medium-12'), Column(Field('priority', css_class='select2'), css_class='medium-12'), Column(Field('mnemonic', css_class='select2'), css_class='medium-12'), Column(Field('origin', css_class='select2'), css_class='medium-12'), Column(Field('category', css_class='select2'), css_class='medium-12'), Column('timestamp_from', css_class='medium-12'), Column('timestamp_to', css_class='medium-12'), Column('show_log', css_class='medium-12'), ), ), css_class='medium-12' ), ), )
def __init__(self, group, *args, **kwargs): super(AccountAddForm, self).__init__(*args, **kwargs) if group: query = Account.objects.exclude(id__in=group.accounts.all()) else: query = Account.objects.all() self.fields['account'] = forms.models.ModelChoiceField( query, required=True, widget=forms.Select(), label='', empty_label='--- Choose account ---') self.helper = FormHelper() self.helper.layout = Layout( Row( Column(Field('account', css_class='select2'), css_class='medium-9'), Column(Submit('submit_account', 'Add to group', css_class='postfix'), css_class='medium-3') ) )