Example #1
0
    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'>&nbsp;</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,
                ),
            ), )
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
File: forms.py Project: yytsui/nav
    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'), ),
    ]
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
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