def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() if self.__class__.tabs: self.helper.form_tag = False self.helper.layout = Layout(TabHolder(*self.__class__.tabs))
def test_tab_and_tab_holder(self): test_form = SampleForm() test_form.helper = FormHelper() test_form.helper.layout = Layout( TabHolder( Tab( "one", "first_name", css_id="custom-name", css_class="first-tab-class active", ), Tab("two", "password1", "password2"), )) html = render_crispy_form(test_form) assert (html.count( '<ul class="nav nav-tabs"> <li class="nav-item">' '<a class="nav-link active" href="#custom-name" data-bs-toggle="tab">' "One</a></li>") == 1) assert html.count("tab-pane") == 2 assert html.count('class="tab-pane first-tab-class active"') == 1 assert html.count('<div id="custom-name"') == 1 assert html.count('<div id="two"') == 1 assert html.count('name="first_name"') == 1 assert html.count('name="password1"') == 1 assert html.count('name="password2"') == 1
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab( 'Form', Row( Column('date', css_class="form group col-md-6 col-sm-12"), Column('time', css_class="form group col-md-6 col-sm-12"), ), 'works_request', 'description', 'completed', 'expected_duration', 'status', 'authorized_by', 'team', ), Tab( 'Service People', HTML(""" <div id="work-order-persons"></div> """), ), )) self.helper.add_input(Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab( 'Email', 'email_address', 'email_password', 'smtp_server', 'smtp_port', 'default_reminder_email', ), Tab('Server', 'server_ip', 'server_domain', 'server_port', 'conn_account', 'conn_password', ), Tab('Report Config', 'DDC_reminder_days', 'company_name', 'speeding_threshold', 'harsh_braking_delta', 'daily_report_generation_time' ) ) ) self.helper.add_input(Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab('Procedure Details', 'name', 'reference', 'author', 'description', ), Tab('procedure steps', HTML( """ <div id="procedure-widgets" style="display:block;clear:both"> </div> """ ) ), Tab('Select Equipment And Consumables', HTML( """ <div id="inventory-widgets" style="display:block;clear:both"></div> """ ) ), ) ) self.helper.add_input(Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab('basic', Row( Column('start_date', css_class='form-group col-4'), Column('expiration_date', css_class='form-group col-4'), Column('cycle', css_class="form-group col-4") ), Row( Column('amount', css_class='form-group col-6'), Column('debit_account', css_class='form-group col-6'), ), 'description', Row( Column('category', css_class='form-group col-6'), Column('recorded_by', css_class='form-group col-6'), ), 'reference' ), ) ) self.helper.add_input(Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab('basic', Row( Column('name', css_class='form-group col-6'), Column('created_by', css_class='form-group col-6'), ), Row( Column('initial_value', css_class='form-group col-6'), Column('salvage_value', css_class='form-group col-6'), ), Row( Column('depreciation_period', css_class='form-group col-6'), Column('depreciation_method', css_class='form-group col-6'), ), 'init_date', 'category', ), Tab('description', 'description', 'credit_account', ), ) ) self.helper.add_input(Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab( 'Basic', Row( Column('first_name', css_class='form-group col-6'), Column('last_name', css_class='form-group col-6'), ), Row( Column('email', 'phone', css_class='form-group col-6'), Column('address', css_class='form-group col-6'), ), ), Tab( 'Personal', 'date_of_birth', 'id_number', 'gender', ), Tab('Conditions of service', 'pay_grade', 'leave_days', 'pin', 'uses_timesheet'))) self.helper.add_input(Submit('submit', 'Submit'))
class UserProfileForm(ModelForm): helper = FormHelper() helper.form_tag = True helper.form_method = "POST" helper.form_action = "/accounts/edit_profile/" helper.add_input(Submit('submit', 'Submit')) helper.layout = Layout( TabHolder( Tab( 'Basic Information', 'first_name', 'last_name', 'phone_number', 'ssn', ), Tab( 'Address', 'address1', 'address2', 'city', 'state', 'zip_code', ) ) ) class Meta: model = UserProfile fields = ('first_name', 'last_name', 'phone_number', 'ssn', 'address1', 'address2', 'city', 'state', 'zip_code',)
def get_form(self): form = super().get_form() form['body'].label = '' form['body_test'].label = '' form.helper = FormHelper() form.helper.layout = Layout( Row( Column('name', css_class='col-sm-8'), Column('type', css_class='col-sm-4'), css_class='form-row', ), TabHolder( Tab ('Body', Field('body', css_class='mt-2 tf-nowrap'), ), Tab ('Test', Field('body_test', css_class='mt-2 tf-nowrap'), Div( Submit('copy-from-body', 'Copy from Body'), Submit('copy-to-body', 'Copy to Body'), Submit('save-test', 'Save'), Button('show-test', 'Show'), css_class='text-right', ) ), ), FormActions( Submit('save', 'Save'), Button('delete', 'Delete'), Button('cancel', 'Cancel'), ) ) return form
class contactForm(forms.ModelForm): helper = FormHelper() helper.form_tag = False helper.layout = Layout( TabHolder( Tab( 'Basic Information', 'firstName', 'lastName', 'phone', 'email', 'company', ), Tab( 'Shipping Address', 'address1', 'address2', 'city', 'state', 'zip', ), ) ) def __init__(self, *args, **kwargs): super(contactForm, self).__init__(*args, **kwargs) class Meta: model = contact exclude = ['cdID', ]
def __init__(self, *args, **kwargs): super(OrganizationForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.layout = Layout( TabHolder( Tab('Info', 'name', 'description'), Tab('Import Configuration', 'organization_type', 'organization_identifier', 'api_endpoint', 'scm_login', 'import_enabled', 'refresh_minutes', 'force_rescan'), Tab('Import Rules', 'import_without_dotfile', 'default_worker_pool', 'overwrite_project_name', 'overwrite_project_script', 'overwrite_configurations', 'allow_worker_pool_assignment', 'allow_pipeline_definition', 'auto_attach_ssh_keys'), Tab('Environment', 'worker_pool'))) request = Shared().request if not request.user.is_superuser: # currently you can only be superuser so this code is a little defensive and is taken from *ProjectForm* gids = [g.id for g in request.user.groups.all()] # this filtration is a little specific to the ownership plugin for authz and we might want to make this more pluggable later self.fields[ 'auto_attach_ssh_keys'].queryset = ServiceLogin.objects.filter( Q(owner_groups__pk__in=gids) | Q(created_by=request.user)) self.fields['ssh_keys'].queryset = SshKey.objects.filter( Q(owner_groups__pk__in=gids) | Q(created_by=request.user))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper.layout = Layout( TabHolder( Tab( 'Main', Div(Div('name', 'type', 'code', css_class="col-sm-6"), Div('short_description', 'description', css_class="col-sm-6"), css_class='row'), ), Tab( 'Booking Details', Div(Div('start_day', css_class="col-sm-6"), Div('booking_rule', css_class="col-sm-6"), css_class='row'), ), Tab('Log', 'created_by', 'created_on', 'modified_by', 'modified_on'))) self.prepare_required_field('name', 'Name') self.prepare_required_field('type', 'Type') self.prepare_required_field('code', 'Code') self.prepare_required_field('short_description', 'Short Description') self.prepare_required_field('description', 'Description') self.prepare_required_field('start_day', 'Start Day') self.prepare_required_field('booking_rule', 'Booking Rule')
def test_tab_and_tab_holder(self): test_form = TestForm() test_form.helper = FormHelper() test_form.helper.layout = Layout( TabHolder( Tab('one', 'first_name', css_id="custom-name", css_class="first-tab-class"), Tab('two', 'password1', 'password2'))) html = render_crispy_form(test_form) self.assertEqual( html.count( '<li class="tab-pane active"><a href="#custom-name" data-toggle="tab">One</a></li>' ), 1) self.assertEqual(html.count('class="tab-pane first-tab-class active"'), 1) self.assertEqual(html.count('<li class="tab-pane'), 2) self.assertEqual(html.count('tab-pane'), 4) self.assertEqual(html.count('<div id="custom-name"'), 1) self.assertEqual(html.count('<div id="two"'), 1) self.assertEqual(html.count('name="first_name"'), 1) self.assertEqual(html.count('name="password1"'), 1) self.assertEqual(html.count('name="password2"'), 1)
def __init__(self, *args, **kwargs): super(CustomerForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.form_tag = False self.helper.layout = Layout( TabHolder( Tab( _('Basic information'), Field('name', wrapper_class="col-md-6"), Field('email', wrapper_class="col-md-6"), Field('information', wrapper_class="col-md-12"), ), Tab( _('Time information'), Field('date', wrapper_class="col-md-4"), Field('time', wrapper_class="col-md-4"), Field('datetime', wrapper_class="col-md-4"), ), Tab( _('Image information'), Field('image', wrapper_class="col-md-4"), Field('cropping', wrapper_class="col-md-4"), Field('color', wrapper_class="col-md-4"), ))) self.helper.layout.append( FormActions( Submit('submit', _('Submit'), css_class='btn btn-primary'), HTML("""{% load i18n %}<a class="btn btn-danger" href="{{ url_delete }}">{% trans 'Delete' %}</a>"""), ))
def __init__(self, *args, **kwargs): super(LibroViewForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.layout = Layout( TabHolder( Tab( _('Información Básica'), Field('titulo', wrapper_class="col-md-6"), Field('autor_libro', wrapper_class="col-md-6"), Field('creado_por', wrapper_class="col-md-6"), Field('editorial_libro', wrapper_class="col-md-12"), Field('documento', wrapper_class="col-md-12"), HTML("""<iframe src="http://127.0.0.1:8000/media/documents/ase.pdf" style="width:100%; height:150%;" frameborder="0"></iframe> """) ), Tab( _('Otra Información'), ) ) ) self.helper.layout.append( FormActions( Submit('submit', _('Submit'), css_class='btn btn-primary'), ) )
def __init__(self, *args, **kwargs): super(InvoiceForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.form_tag = False self.helper.layout = Layout( TabHolder( Tab( _('Invoice'), Field('customer', wrapper_class="col-md-12"), Field('registered', wrapper_class="col-md-4"), Field('sent', wrapper_class="col-md-4"), Field('paid', wrapper_class="col-md-4"), Field('date', wrapper_class="col-md-6"), Field('invoice_number', wrapper_class="col-md-6"), Field('subtotal', wrapper_class="col-md-3"), Field('subtotal_iva', wrapper_class="col-md-3"), Field('subtotal_retentions', wrapper_class="col-md-3"), Field('total', wrapper_class="col-md-3"), ), Tab( _('Email'), Field('description1', wrapper_class="col-md-12"), Field('description2', wrapper_class="col-md-12"), ))) self.helper.layout.append( FormActions( Submit('submit', _('Submit'), css_class='btn btn-primary'), HTML("""{% load i18n %}<a class="btn btn-danger" href="{{ url_delete }}">{% trans 'Delete' %}</a>"""), ))
def __init__(self, *args, **kwargs): super(LibroAddForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.layout = Layout( TabHolder( Tab( _('Información Básica'), Field('titulo', wrapper_class="col-md-6"), Field('autor_libro', wrapper_class="col-md-6"), Field('creado_por', wrapper_class="col-md-6"), Field('editorial_libro', wrapper_class="col-md-12"), Field('documento', wrapper_class="col-md-12"), ), Tab( _('Otra Información'), ) ) ) self.helper.layout.append( FormActions( Submit('submit', _('Submit'), css_class='btn btn-primary'), ) )
def __init__(self,*args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab('general', 'name', 'balance', Row( Column('balance_sheet_category', css_class='form-group col-6'), Column('type', css_class='form-group col-6'), ), 'description' ), Tab('account', 'bank_account_number', 'parent_account', Row( Column('control_account', css_class='form-group col-6'), Column('bank_account', css_class='form-group col-6'), ), ), ) ) self.helper.add_input(Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super(LibroUpdateForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.fields['creado_por'].disabled = True disabled_widget = forms.Select(attrs={'disabled': True}) self.helper.layout = Layout( TabHolder( Tab( _('Información Básica'), Field('titulo', wrapper_class="col-md-6" ), Field('autor_libro', wrapper_class="col-md-6"), Field('creado_por', wrapper_class="col-md-8"), Field('editorial_libro', wrapper_class="col-md-12"), Field('documento', wrapper_class="col-md-12") ), Tab( _('Otra Información'), ) ) ) self.helper.layout.append( FormActions( Submit('submit', _('Submit'), css_class='btn btn-primary'), ) )
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab('Basic', 'date', Row( Column('amount', css_class='form-group col-6'), Column('debit_account', css_class='form-group col-6'), ), 'description', 'category', Row( Column('recorded_by', css_class='form-group col-6'), Column('reference', css_class='form-group col-6'), ) ), Tab('Billing', 'billable', 'customer', ), ) ) self.helper.add_input(Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super(ClientBillForm, self).__init__(*args, **kwargs) self.helper.form_tag = False self.helper.layout = Layout( Div( TabHolder(Tab( _("Description"), Column("lead", "bill_id", "state", css_class="col-md-6"), Column("comment", "lang", "anonymize_profile", "include_timesheet", "bill_file", css_class="col-md-6"), ), Tab( _("Amounts"), Column("amount", "vat", "amount_with_vat", css_class="col-md-6")), Tab( _("Dates"), Column("creation_date", "due_date", "payment_date", "previous_year_bill", css_class="col-md-6"), ), css_class="row")))
def __init__(self, *args, **kwargs): super(TeamForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.layout = Layout() tab_holder = TabHolder() self.helper.add_input(Submit("submit", "Save"))
def __init__(self, *args, **kwargs): super(ProjectForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.layout = Layout( TabHolder( Tab('Info', 'name', 'description'), Tab('Script', 'script', 'timeout', 'container_base_image'), Tab('Repository', 'scm_type', 'repo_url', 'repo_branch', 'recursive', 'scm_login', 'webhook_enabled', 'webhook_token'), Tab('Schedule', 'schedule_enabled', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday', 'weekday_start_hours', 'weekday_start_minutes', 'weekend_start_hours', 'weekend_start_minutes', 'schedule_threshold'), Tab('SSH', 'ssh_keys'), Tab('Variables', 'variable_sets', 'variables', 'launch_questions'), Tab('Environment', 'worker_pool'), Tab('Pipeline', 'pipeline_enabled', 'pipeline', 'stage'), Tab('Ownership', 'launch_groups', 'owner_groups'))) request = Shared().request if not request.user.is_superuser: gids = [g.id for g in request.user.groups.all()] # this filtration is a little specific to the ownership plugin for authz and we might want to make this more pluggable later self.fields['scm_login'].queryset = ServiceLogin.objects.filter( Q(owner_groups__pk__in=gids) | Q(created_by=request.user)) self.fields['ssh_keys'].queryset = SshKey.objects.filter( Q(owner_groups__pk__in=gids) | Q(created_by=request.user))
def test_tab_and_tab_holder(self, settings): test_form = SampleForm() test_form.helper = FormHelper() test_form.helper.layout = Layout( TabHolder( Tab('one', 'first_name', css_id="custom-name", css_class="first-tab-class active"), Tab('two', 'password1', 'password2'))) html = render_crispy_form(test_form) if settings.CRISPY_TEMPLATE_PACK == 'bootstrap4': assert html.count( '<ul class="nav nav-tabs"> <li class="nav-item"><a class="nav-link active" href="#custom-name" data-toggle="tab">One</a></li>' ) == 1 assert html.count('tab-pane') == 2 else: assert html.count( '<ul class="nav nav-tabs"> <li class="tab-pane active"><a href="#custom-name" data-toggle="tab">One</a></li>' ) == 1 assert html.count('<li class="tab-pane') == 2 assert html.count('tab-pane') == 4 assert html.count('class="tab-pane first-tab-class active"') == 1 assert html.count('<div id="custom-name"') == 1 assert html.count('<div id="two"') == 1 assert html.count('name="first_name"') == 1 assert html.count('name="password1"') == 1 assert html.count('name="password2"') == 1
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.layout = Layout( TabHolder(Tab('Info', 'name', 'description'), Tab('Variables', 'variables'), Tab('Ownership', 'owner_groups')))
def __init__(self, *args, **kwargs): super(LinksForm, self).__init__(*args, **kwargs) self.helper.layout = Layout( TabHolder(Tab( _('Base'), 'id', 'name', 'slug', 'description', ), )) if 'request' in kwargs: from .tables import LinksTable _request = copy.copy(kwargs['request']) _request.POST = {} _request.method = 'GET' try: category = self._meta.model.objects.get( id=kwargs['initial']['id']) except: category = None data = [] else: data = category.link_set.all() dimensions = Tab( _('Links'), HTML( LinksTable(_request, category=category, data=data).render()), ) self.helper.layout[0].append(dimensions)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper(self) self.helper.layout = Layout( TabHolder(Tab('Info', 'name', 'description'), Tab('Access', 'username', 'password'), Tab('Ownership', 'owner_groups')))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab( 'Basic', 'name', Row( Column('flat_fee', css_class='form-group col-md-6 col-sm-12'), Column('hourly_rate', css_class='form-group col-md-6 col-sm-12'), ), ), Tab( 'Other', 'description', Row( Column('category', css_class='form-group col-md-4 col-sm-12'), Column('procedure', css_class='form-group col-md-4 col-sm-12'), Column('frequency', css_class='form-group col-md-4 col-sm-12'), ), 'is_listed', )), Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout= Layout( TabHolder( Tab('details', Row( Column('vendor_type', css_class='form-group col-3'), Column('name', css_class='form-group col-9'), ), 'email', Row( Column('address', css_class='form-group col-6'), Column('banking_details', css_class='form-group col-6'), ), 'billing_address' ), Tab('other', 'website', 'image', 'organization', 'other_details', ), ), Div(Submit('submit', 'Submit'), css_class="floating-submit") )