def __init__(self, *args, **kwargs): super(NetboxModelForm, self).__init__(*args, **kwargs) self.fields['organization'].choices = create_hierarchy(Organization) # Master and instance related queries masters = [ n.master.pk for n in Netbox.objects.filter(master__isnull=False) ] self.fields['master'].queryset = self.create_master_query(masters) self.fields['virtual_instance'].queryset = self.create_instance_query( masters) if self.instance.pk: # Set instances that we are master to as initial values self.initial['virtual_instance'] = Netbox.objects.filter( master=self.instance) # Disable fields based on current state if self.instance.master: self.fields['virtual_instance'].widget.attrs['disabled'] = True if self.instance.pk in masters: self.fields['master'].widget.attrs['disabled'] = True # Set the inital value of the function field self.fields['function'].initial = self.instance.get_function() css_class = 'large-4' self.helper = FormHelper() self.helper.form_action = '' self.helper.form_method = 'POST' self.helper.form_id = 'seeddb-netbox-form' self.helper.form_tag = False self.helper.layout = Layout( Row( Column( Fieldset( 'Inventory', 'ip', Div(id='verify-address-feedback'), 'room', 'category', 'organization', ), css_class=css_class, ), Column( Fieldset( 'Management profiles', Field('profiles', css_class='select2'), NavButton( 'check_connectivity', 'Check connectivity', css_class='check_connectivity', ), ), Fieldset( 'Collected info', Div( 'sysname', 'type', css_class='hide', css_id='real_collected_fields', ), ), css_class=css_class, ), Column( Fieldset( 'Meta information', 'function', Field('groups', css_class='select2'), 'data', HTML( "<a class='advanced-toggle'><i class='fa fa-caret-square-o-right'> </i>Advanced options</a>" ), Div( HTML( '<small class="alert-box">NB: An IP Device cannot both have a master and have virtual instances</small>' ), 'master', 'virtual_instance', css_class='advanced', ), ), css_class=css_class, ), ), )
def __init__(self, *args, **kwargs): time_period = kwargs.pop('time_period', None) super(AlertSubscriptionForm, self).__init__(*args, **kwargs) hidden_fields = ['id'] if isinstance(time_period, TimePeriod): self.fields['time_period'] = forms.ModelChoiceField( queryset=TimePeriod.objects.filter(id=time_period.id), widget=forms.HiddenInput, initial=time_period.id) hidden_fields.append('time_period') # Get account account = time_period.profile.account addresses = AlertAddress.objects.filter(account=account).order_by( 'type', 'address') filter_groups = FilterGroup.objects.filter( Q(owner__isnull=True) | Q(owner__exact=account)).order_by( 'owner', 'name') self.fields['alert_address'] = forms.ModelChoiceField( queryset=addresses, empty_label=None, error_messages={ 'required': 'Alert address is a required field.', 'invalid_choice': ('The selected alert address is an ' 'invalid choice.'), }, label='Send alerts to') self.fields['filter_group'] = forms.ModelChoiceField( queryset=filter_groups, empty_label=None, error_messages={ 'required': 'Filter group is a required field.', 'invalid_choice': ('The selected filter group is an ' 'invalid choice.'), }, label='Watch') self.fields['type'].label = 'When' self.fields['type'].help_text = """ <dl> <dt>Immediately</dt> <dd>Send the alert as soon as alertengine has processed it.</dd> <dt>Daily at predefined time</dt> <dd>Send all matched alerts at the specified daily dispatch time.</dd> <dt>Weekly at predefined time</dt> <dd>Send all matched alerts at the specified weekly dispatch time.</dd> <dt>At end of timeperiod</dt> <dd>Send all matched alerts when the current timeperiod is over and a new one starts.</dd> </dl> """ self.helper = FormHelper() self.helper.layout = Layout( Row( Column(Field('filter_group', css_class='select2'), css_class='medium-3'), Column(Field('alert_address', css_class='select2'), css_class='medium-3'), Column(HelpField('type', css_class='select2'), css_class='medium-3'), Column(Field('ignore_resolved_alerts', css_class='input-align'), css_class='medium-3')), *hidden_fields)
def __init__(self, private_checkbox, alist, from_url, *args, **kwargs): self.helper = FormHelper() self.helper.form_method = 'post' self.helper.form_id = 'createlistform' delete_url = reverse('list-delete', args=(alist.pk,)) if not from_url: self.helper.layout = Layout( Fieldset( u'Edit a list', Row( Column( Field('title'), css_class='large-12' ), ), Row( Column( Field('description'), css_class='large-12' ), ), Row( Column( Field('url'), css_class='large-12' ), ), Row( Column( HTML('<label for="id_private"><input class="checkboxinput" id="id_private" name="private" type="checkbox" %s> private</label>' % private_checkbox), css_class='large-6' ), Column( Field('language'), css_class='large-6' ), ), Row( Column( Field('mdcontent'), css_class='large-12' ), css_class='markdownform' ), ), Row( Column( Submit('submit', 'Save', css_class='small button'), css_class='large-6', ), Column( HTML('<a href="%s" class="small button alert right">Delete list</a>' % delete_url), css_class='large-6' ), ) ) else: self.helper.layout = Layout( Fieldset( u'Edit a list', Row( Column( Field('title'), css_class='large-12' ), ), Row( Column( Field('description'), css_class='large-12' ), ), Row( Column( Field('url'), css_class='large-12' ), ), Row( Column( HTML('<label for="id_private"><input class="checkboxinput" id="id_private" name="private" type="checkbox" %s> private</label>' % private_checkbox), css_class='large-6' ), Column( Field('language'), css_class='large-6' ), ), ), Row( Column( Submit('submit', 'Fetch and save', css_class='small button'), css_class='large-12', ), ) ) super(EditListForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): super(StatusPanelForm, self).__init__(*args, **kwargs) alert_types = get_alert_types() self.fields['event_type'] = forms.MultipleChoiceField( choices=get_event_types(), required=False) self.fields['alert_type'] = forms.MultipleChoiceField( choices=alert_types, required=False) self.fields['category'] = forms.MultipleChoiceField( choices=get_categories(), required=False) self.fields['organization'] = forms.MultipleChoiceField( choices=get_organizations(), required=False) self.fields['device_group'] = forms.MultipleChoiceField( choices=get_device_groups(), required=False) self.fields['location'] = forms.MultipleChoiceField( choices=get_locations(), required=False) self.fields['not_event_type'] = forms.MultipleChoiceField( choices=get_event_types(), required=False) self.fields['not_alert_type'] = forms.MultipleChoiceField( choices=alert_types, required=False) self.fields['not_category'] = forms.MultipleChoiceField( choices=get_categories(), required=False) self.fields['not_organization'] = forms.MultipleChoiceField( choices=get_organizations(), required=False) self.fields['not_device_group'] = forms.MultipleChoiceField( choices=get_device_groups(), required=False) self.fields['not_location'] = forms.MultipleChoiceField( choices=get_locations(), required=False) self.fields['status_filters'] = forms.MultipleChoiceField( choices=[(t, forms.forms.pretty_name(t)) for t, f in self.fields.items() if isinstance(f, forms.MultipleChoiceField)], required=False, label='Choose fields to filter status by') column_class = 'medium-6' self.helper = FormHelper() self.helper.form_id = 'status-form' self.helper.form_action = '' self.helper.form_method = 'POST' self.helper.layout = Layout( Row( Column(Field('status_filters', css_class='select2'), Fieldset('Status filters', Field('alert_type', css_class='select2'), Field('category', css_class='select2'), Field('device_group', css_class='select2'), Field('event_type', css_class='select2'), Field('location', css_class='select2'), Field('organization', css_class='select2'), Field('not_alert_type', css_class='select2'), Field('not_category', css_class='select2'), Field('not_device_group', css_class='select2'), Field('not_event_type', css_class='select2'), Field('not_location', css_class='select2'), Field('not_organization', css_class='select2'), css_class='field_list'), css_class=column_class), Column('stateless', 'stateless_threshold', 'acknowledged', 'on_maintenance', css_class=column_class), ), HTML('<hr>'), )
def part_3_crispies(pack=None): return [ Row(Column('textarea_input'), ), ]
def __init__(self, private_checkbox, md_content, from_url, *args, **kwargs): self.helper = FormHelper() self.helper.form_method = 'post' self.helper.form_id = 'createlistform' if not from_url: 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('url'), css_class='large-12'), ), Row( Column(HTML( '<label for="id_private"><input class="checkboxinput" id="id_private" name="private" type="checkbox" %s> private</label>' % private_checkbox), css_class='large-12'), ), Row(Column(Field('mdcontent', css_class="large-12"), css_class='large-6'), Column(HTML( '<div class="ctrlHolder"><label>preview</label><div class="editable">%s</div></div>' % md_content), css_class='large-6'), css_class='markdownform'), ), Row( Column( Submit('submit', 'Save', css_class='small button'), css_class='large-12', ), )) else: 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('url'), css_class='large-12'), ), Row( Column(HTML( '<label for="id_private"><input class="checkboxinput" id="id_private" name="private" type="checkbox" %s> private</label>' % private_checkbox), css_class='large-12'), ), ), Row( Column( Submit('submit', 'Fetch and save', css_class='small button'), css_class='large-12', ), )) super(EditListForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs): if kwargs.get('instance'): self.instance = kwargs.get('instance') else: source = kwargs.pop('source') self.base_fields['source'].initial = source.id self.base_fields['language'].initial = 'English' self.instance = None self.base_fields['source'].widget = forms.HiddenInput() self.base_fields[ 'merlot_categories'].widget = django_select2.widgets.Select2MultipleWidget( ) self.base_fields[ 'merlot_categories'].help_text = "Press Esc key to close the selection box after you've selected all relevant categories." self.base_fields[ 'language'].widget = django_select2.widgets.Select2Widget( choices=LANGUAGE_CHOICES) self.base_fields['tags'].help_text = "Separate tags with commas" self.base_fields['audience'].widget = forms.RadioSelect( choices=PRIMARY_AUDIENCE_CHOICES) self.base_fields['creative_commons'].widget = forms.RadioSelect( choices=YES_NO_UNSURE_CHOICES) self.base_fields[ 'creative_commons_commercial'].widget = forms.RadioSelect( choices=YES_NO_UNSURE_CHOICES) self.base_fields[ 'creative_commons_derivatives'].widget = forms.RadioSelect( choices=CC_DERIV_CHOICES) self.helper = FormHelper() self.helper.form_action = '.' self.helper.layout = Layout( Row( Field('merlot_ignore'), Field('title'), )) if self.instance and self.instance.linkurl: self.helper.layout.append( Layout( Row( HTML("<a href='%s' target='_blank'>View link</a>" % self.instance.linkurl), Field('linkurl'), ))) else: self.helper.layout.append(Layout(Row(Field('linkurl')))) self.helper.layout.append( Layout( Row( Field('description'), Field('language'), Field('content_medium'), Field('author'), Field('tags'), ))) if self.instance and self.instance.categories.count(): self.helper.layout.append( Layout( Row( HTML("<h4>Legacy categories:</h4>"), HTML(""" {%load mptt_tags %} <p> {% for node in course.categories.all %} {{ node.get_ancestors|tree_path:" > " }} > {{ node }}<br /> {% endfor %} </p> """)))) self.helper.layout.append( Layout( Row( HTML( "<a href='http://www.merlot.org/merlot/categories.htm' target='_blank'>Full Merlot Categories list</a>" ), Field('merlot_categories'), ))) self.helper.layout.append( Layout( Row( Field('image_url'), Div(Field('audience'), css_class="small-4 columns"), Div(Field('creative_commons'), css_class="small-4 columns"), Div(Field('creative_commons_commercial'), css_class="small-4 columns"), Div(Field('creative_commons_derivatives'), css_class="small-8 columns left"), ))) self.helper.layout.append( Row(Submit('Save', 'save'), css_class="buttons")) super(CourseModelForm, self).__init__(*args, **kwargs)
def entity_helper(form_tag=True, kind=None): """ Entity form layout helper """ helper = FormHelper() helper.form_action = '.' helper.attrs = {'data_abide': ''} helper.form_tag = form_tag fieldset = [ Row( Column( 'name', css_class='small-12' ), ), ] if kind is None: fieldset.append( Row( Column( 'kind', css_class='small-12' ), ), ) fieldset = fieldset+[ Row( Column( 'adress', css_class='small-12' ), ), Row( Column( 'town', css_class='small-12 medium-8' ), Column( 'zipcode', css_class='small-12 medium-4' ), ), Row( Column( 'phone', css_class='small-12 medium-6' ), Column( 'fax', css_class='small-12 medium-6' ), ), ButtonHolderPanel( Submit('submit', _('Submit')), css_class='text-right', ), ] helper.layout = Layout(*fieldset) return helper