Esempio n. 1
0
    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
Esempio n. 3
0
 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'))
Esempio n. 4
0
 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'))
Esempio n. 5
0
 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'))
Esempio n. 6
0
 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'))
Esempio n. 7
0
 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'))
Esempio n. 8
0
    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'))
Esempio n. 9
0
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',)
Esempio n. 10
0
 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
Esempio n. 11
0
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', ]
Esempio n. 12
0
 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))
Esempio n. 13
0
 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')
Esempio n. 14
0
    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)
Esempio n. 15
0
    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>"""),
            ))
Esempio n. 16
0
    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'),
            )
        )
Esempio n. 17
0
    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>"""),
            ))
Esempio n. 18
0
    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'),
            )
        )
Esempio n. 19
0
 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'))
Esempio n. 20
0
    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'),
            )
        )
Esempio n. 21
0
 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'))
Esempio n. 22
0
 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")))
Esempio n. 23
0
    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"))
Esempio n. 24
0
 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))
Esempio n. 25
0
    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
Esempio n. 26
0
 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')))
Esempio n. 27
0
    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)
Esempio n. 28
0
 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')))
Esempio n. 29
0
 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'))
Esempio n. 30
0
 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")
     )