def __init__(self, *args, **kwargs): super(ExpensePaymentForm, self).__init__(*args, **kwargs) self.helper.layout = Layout(Div(Column("expenses", css_class="col-md-9"), Column(Field("payment_date", css_class="datepicker"), css_class="col-md-3"), css_class="row"), self.submit)
def test_second_layout_multifield_column_buttonholder_submit_div(): form_helper = FormHelper() form_helper.add_layout( Layout( MultiField( "Some company data", "is_company", "email", css_id="multifield_info", title="multifield_title", multifield_test="123", ), Column( "first_name", "last_name", css_id="column_name", css_class="columns", ), ButtonHolder( Submit("Save the world", "{{ value_var }}", css_class="button white", data_id="test", data_name="test"), Submit("store", "Store results"), ), Div("password1", "password2", css_id="custom-div", css_class="customdivs", test_markup="123"), )) template = Template(""" {% load crispy_forms_tags %} {% crispy form form_helper %} """) c = Context({ "form": SampleForm(), "form_helper": form_helper, "value_var": "Save" }) html = template.render(c) assert "multiField" in html assert "formColumn" in html assert 'id="multifield_info"' in html assert 'title="multifield_title"' in html assert 'multifield-test="123"' in html assert 'id="column_name"' in html assert 'class="formColumn columns"' in html assert 'class="buttonHolder">' in html assert 'input type="submit"' in html assert "button white" in html assert 'data-id="test"' in html assert 'data-name="test"' in html assert 'name="save-the-world"' in html assert 'value="Save"' in html assert 'name="store"' in html assert 'value="Store results"' in html assert 'id="custom-div"' in html assert 'class="customdivs"' in html assert 'test-markup="123"' in html
def __init__(self, *args, **kwargs): super(LeadForm, self).__init__(*args, **kwargs) clientPopupUrl = reverse("crm:client_organisation_company_popup") self.helper.layout = Layout( TabHolder( Tab( _("Identification"), Column(Field( "name", placeholder=mark_safe( _("Name of the lead. don't include client name"))), css_class="col-md-12"), Column(FieldWithButtons( "client", HTML( "<a role='button' class='btn btn-default' href='%s' data-remote='false' data-toggle='modal' data-target='#clientModal'><span class='glyphicon glyphicon-plus'></span></a>" % clientPopupUrl)), css_class="col-md-6"), Column("subsidiary", css_class="col-md-6"), Column("description", css_class="col-md-6"), Column("administrative_notes", css_class="col-md-6"), Column(Field( "action", placeholder=_("Next commercial action to be done")), css_class="col-md-6")), Tab( _("State and tracking"), Div( Column( "responsible", Field("due_date", placeholder=_("Due date for next step"), css_class="datepicker"), Field( "start_date", placeholder=_("Date of the operational start"), css_class="datepicker"), css_class='col-md-6'), Column(Field( "deal_id", placeholder=_("Leave blank to auto generate")), Field( "client_deal_id", placeholder=_("Internal client reference")), "state", css_class='col-md-6'))), Tab( _("Commercial"), Div( Column(AppendedText("sales", "k€"), "salesman", css_class='col-md-6'), Column(FieldWithButtons( "business_broker", HTML( "<a role='button' class='btn btn-default' href='%s' target='_blank'><span class='glyphicon glyphicon-plus'></span></a>" % reverse("crm:businessbroker_create"))), FieldWithButtons( "paying_authority", HTML( "<a role='button' class='btn btn-default' href='%s' target='_blank'><span class='glyphicon glyphicon-plus'></span></a>" % reverse("crm:businessbroker_create"))), css_class='col-md-6'))), Tab( _("Staffing"), Div(Field( "staffing", placeholder=_("People that could contribute...")), Field( "external_staffing", placeholder= _("People outside company that could contribute..." )), css_class="col-md-6"))), Fieldset("", "send_email"), Field("tags", css_class="hide" ), # Don't use type=hidden, it breaks tag parsing. self.submit)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab( 'Main', Row( Column('name', 'unit_purchase_price', 'initial_quantity', css_class='col-md-6 col-sm-12 form-group'), Column('unit', 'description', css_class='col-md-6 col-sm-12 form-group'))), Tab( 'Details', Row( Column('minimum_order_level', css_class="form-group col-sm-6"), Column('maximum_stock_level', css_class="form-group col-sm-6"), ), Row( Column('length', css_class="form-group col-sm-4"), Column('width', css_class="form-group col-sm-4"), Column('height', css_class="form-group col-sm-4"), ), Row( Column('supplier', css_class="form-group col-sm-6"), Column('warehouse', css_class="form-group col-sm-6"), ), Row( Column('category', css_class="form-group col-sm-6"), Column('image', css_class="form-group col-sm-6"), ), 'type', 'active')), Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super(PerformanceForm, self).__init__(*args, **kwargs) self.helper = FormHelper(self) self.fields['from_date'].label = 'From' self.fields['to_date'].label = 'To' self.fields['select_a_period'].label = 'Select a period' choices = [ (0, 'Global Performance'), (1, 'Nigel Performance'), (2, 'Workshop Performance'), (3, 'Waste evaluation'), (4, 'NCR'), (5, 'Get details on a job'), ] self.fields['query'].widget = forms.Select(attrs={ 'required': True, 'data-placeholder': ' Select an action ..' }, choices=choices) choices = [] trains = Train.objects.all() for train in trains: choices.append((train.id, train.name)) self.fields['train'].widget = forms.Select(attrs={ 'required': True, 'data-placeholder': ' Select train(s) ..', 'multiple': True }, choices=choices) choices = [] cars = Car.objects.all() for car in cars: choices.append((car.id, car.name)) self.fields['car'].widget = forms.Select(attrs={ 'required': True, 'data-placeholder': ' Select car(s) ..', 'multiple': True }, choices=choices) choices = [] parts = Part.objects.all() for part in parts: choices.append((part.id, part.name)) self.fields['part'].widget = forms.Select(attrs={ 'required': True, 'data-placeholder': ' Select part(s) ..', 'multiple': True }, choices=choices) choices = [] teamleaders = Profile.objects.filter(position='TL') for profile in teamleaders: choices.append((profile.id, profile.name)) self.fields['team_leader'].widget = forms.Select(attrs={ 'required': True, 'data-placeholder': ' Select team leader(s) ..', 'multiple': True }, choices=choices) choices = [] team = Profile.objects.filter(position='TN') for profile in team: choices.append((profile.id, profile.name)) self.fields['team'].widget = forms.Select(attrs={ 'required': True, 'data-placeholder': ' Select an employee or a team ..', 'multiple': True }, choices=choices) self.fields['reference'].widget = forms.Select( attrs={ 'required': True, 'data-placeholder': ' Select reference(s) ..', 'multiple': True }) self.fields['location'].widget = forms.Select( attrs={ 'required': True, 'data-placeholder': ' Select location(s) ..', 'multiple': True }) choices = [] tracking_codes = TrackingCode.objects.all() for tracking_code in tracking_codes: choices.append( (tracking_code.id, tracking_code.useful_with_teamleader())) self.fields['tracking_code'].widget = forms.Select(attrs={ 'required': True, 'data-placeholder': ' Search tracking code(s) ..', 'multiple': True }, choices=choices) self.helper.layout = Layout( 'query', 'select_a_period', Row('from_date', 'to_date'), 'tracking_code', 'team_leader', 'all_team', 'team', Row(Column('all_trains', 'train'), Column('all_cars', 'car'), Column( 'all_parts', 'part', ), Column('all_references', 'reference'), Column('all_locations', 'location')), self.helper.add_input(Submit(('performancebtn'), 'Search')))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_tag = True self.helper.form_method = 'post' self.helper.layout = Layout( Row(Column('bryggnr', css_class='form-group col-md-3'), Column('dato', css_class='form-group col-md-3'), Column('navn', css_class='form-group col-md-6'), css_class='form-row'), Row(Column('og', css_class='form-group col-md-2'), Column('fg', css_class='form-group col-md-2'), Column('abv', css_class='form-group col-md-2'), Column('effektivitet', css_class='form-group col-md-2'), Column('sluttvolum', css_class='form-group col-md-2'), Column('utbytte', css_class='form-group col-md-2'), css_class='form-row'), Row(Column('mesketemperatur', css_class='form-group col-md-2'), Column('rating', css_class='form-group col-md-2'), Column('meskevann', css_class='form-group col-md-2'), Column('kokevolum', css_class='form-group col-md-2'), Column('etterfylling', css_class='form-group col-md-2'), Column('gjaer', css_class='form-group col-md-2'), css_class='form-row'), Row(Column('malt_1', css_class='form-group col-md-3'), Column('m_mengde_1', css_class='form-group col-md-3'), Column('humle_1', css_class='form-group col-md-3'), Column('h_mengde_1', css_class='form-group col-md-3'), css_class='form-row'), Row(Column('malt_2', css_class='form-group col-md-3'), Column('m_mengde_2', css_class='form-group col-md-3'), Column('humle_2', css_class='form-group col-md-3'), Column('h_mengde_2', css_class='form-group col-md-3'), css_class='form-row'), Row(Column('malt_3', css_class='form-group col-md-3'), Column('m_mengde_3', css_class='form-group col-md-3'), Column('humle_3', css_class='form-group col-md-3'), Column('h_mengde_3', css_class='form-group col-md-3'), css_class='form-row'), Row(Column('malt_4', css_class='form-group col-md-3'), Column('m_mengde_4', css_class='form-group col-md-3'), Column('humle_4', css_class='form-group col-md-3'), Column('h_mengde_4', css_class='form-group col-md-3'), css_class='form-row'), Row(Column('malt_5', css_class='form-group col-md-3'), Column('m_mengde_5', css_class='form-group col-md-3'), Column('humle_5', css_class='form-group col-md-3'), Column('h_mengde_5', css_class='form-group col-md-3'), css_class='form-row'), Row(Column('kommentar', css_class='form-group col-md-12'), css_class='form-row'), Submit('submit', 'Submit', css_class='btn-primary'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # Criapy init self.helper = FormHelper() self.helper.form_id = "tabular-report-form" self.helper.form_method = "post" self.helper.attrs["autocomplete"] = "off" self.helper.include_media = False self.helper.layout = Layout( Row( Column( Field("estado", css_class="form-control select2", style="width:100%"), css_class="form-group col-md-4 mb-0", ), Column( Field( "municipio", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-4 mb-0", ), Column( Field( "parroquia", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-4 mb-0", ), css_class="form-row", ), Row( Column( Field("gestion", css_class="form-control select2", style="width:100%"), css_class="form-group col-md-2 mb-0", ), Column( Field( "cod_activacion", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-2 mb-0", ), Column( Field("area", css_class="form-control select2", style="width:100%"), css_class="form-group col-md-4 mb-0", ), Column( Field( "sub_area", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-4 mb-0", ), css_class="form-row", ), Row( Column( Field( "titulo", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-12 mb-0", ), css_class="form-row", ), Row( Column( Field( "ieu", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-12 mb-0", ), css_class="form-row", ), Row( Column( Field( "localidad", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-12 mb-0", ), css_class="form-row", ), Row( Column( Field( "carrera", css_class="form-control select2", style="width:100%", ), css_class="form-group col-md-12 mb-0", ), css_class="form-row", ), ) self.helper.add_input(Submit("submit", "Descargar Archivo"))
def __init__(self, *args, **kwargs): super(ServerForm, self).__init__(*args, **kwargs) for field in self.fields: self.fields[field].widget.attrs["autocomplete"] = "off" self.fields["ip_address"].widget.attrs["placeholder"] = "IP Address" self.fields["name"].widget.attrs["placeholder"] = "Hostname" self.fields["server_status"].empty_label = "-- Select Status --" self.fields["server_provider"].empty_label = "-- Select Provider --" self.fields["note"].widget.attrs["placeholder"] = "" self.helper = FormHelper() # Turn on <form> tags for this parent form self.helper.form_tag = True self.helper.form_show_labels = False self.helper.form_method = "post" self.helper.form_class = "newitem" self.helper.layout = Layout( TabHolder( CustomTab( "Server Information", HTML(""" <p class="form-spacer"></p> """), "ip_address", "name", Row( Column("server_status", css_class="form-group col-md-6 mb-0"), Column("server_provider", css_class="form-group col-md-6 mb-0"), css_class="form-row", ), "note", link_css_class="icon server-icon", css_id="server", ), CustomTab( "Additional Addresses", HTML(""" <p class="form-spacer"></p> """), Formset("addresses", object_context_name="Address"), Button( "add-address", "Add Address", css_class="btn-block btn-secondary formset-add-address", ), HTML(""" <p class="form-spacer"></p> """), link_css_class="icon route-icon", css_id="addresses", ), template="tab.html", css_class="nav-justified", ), ButtonHolder( Submit("submit", "Submit", css_class="btn btn-primary col-md-4"), HTML(""" <button onclick="window.location.href='{{ cancel_link }}'" class="btn btn-outline-secondary col-md-4" type="button">Cancel</button> """), ), )
def __init__(self, *args, **kwargs): super(ServerCheckoutForm, self).__init__(*args, **kwargs) data_projects_url = reverse("shepherd:ajax_load_projects") data_project_url = reverse("shepherd:ajax_load_project") for field in self.fields: self.fields[field].widget.attrs["autocomplete"] = "off" self.fields["client"].empty_label = "-- Select a Client --" self.fields["client"].label = "" self.fields["activity_type"].empty_label = "-- Select Activity --" self.fields["activity_type"].label = "" self.fields["server_role"].empty_label = "-- Select Role --" self.fields["server_role"].label = "" self.fields["project"].empty_label = "-- Select a Client First --" self.fields["project"].label = "" self.fields["project"].queryset = Project.objects.none() self.fields["start_date"].widget.input_type = "date" self.fields["end_date"].widget.input_type = "date" self.fields["note"].widget.attrs["placeholder"] = "" self.fields["note"].label = "" self.helper = FormHelper() self.helper.form_method = "post" self.helper.form_class = "newitem" self.helper.form_show_labels = False self.helper.attrs = { "data-projects-url": data_projects_url, "data-project-url": data_project_url, } self.helper.form_id = "checkout-form" self.helper.layout = Layout( HTML(""" <h4 class="icon project-icon">Project & Activity Information</h4> <hr> """), "client", "project", Row( Column("start_date", css_class="form-group col-md-6 mb-0"), Column("end_date", css_class="form-group col-md-6 mb-0"), css_class="form-row", ), "activity_type", "server_role", HTML(""" <h4 class="icon comment-icon">Additional Information</h4> <hr> """), "note", "server", "operator", ButtonHolder( Submit("submit", "Submit", css_class="btn btn-primary col-md-4"), HTML(""" <button onclick="window.location.href='{{ cancel_link }}'" class="btn btn-outline-secondary col-md-4" type="button">Cancel</button> """), ), ) # Prevent "not one of the valid options" errors from AJAX project filtering if "client" in self.data: try: client_id = int(self.data.get("client")) self.fields["project"].queryset = Project.objects.filter( client_id=client_id).order_by("codename") except (ValueError, TypeError): pass elif self.instance.pk: self.fields[ "project"].queryset = self.instance.client.project_set.order_by( "codename")
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Row(Column('first_name', css_class='form-group col-md-3 mb-0 offset-md-3'), Column('last_name', css_class='form-group col-md-3 mb-0'), css_class='form-row'), Row(Column('email', css_class='form-group col-md-3 mb-0 offset-md-3'), Column('role', css_class='form-group col-md-3 mb-0'), css_class='form-row'), Row(Column('institution', css_class='form-group col-md-3 mb-0 offset-md-3'), Column(Row(Column('group_name', css_class='form-group col-md-12 mb-0'), css_class='form-row'), Row(Column('new_group_name', css_class='form-group col-md-12 mb-0'), css_class='form-row'), css_class='form-group col-md-3'), css_class='form-row'), Row(Column('password1', css_class='form-group col-md-3 mb-0 offset-md-3'), Column('password2', css_class='form-group col-md-3 mb-0'), css_class='form-row '), Row(Column('captcha', css_class='form-group col-md-3 mb-0 offset-md-3'), Column(Submit('submit', 'Sign up', css_class="custom-button"), css_class='form-group col-md-2 mb-0 offset-md-2'), css_class='form-row align-items-center'))
def __init__(self, *args, **kwargs): super(AuxServerAddressForm, self).__init__(*args, **kwargs) for field in self.fields: self.fields[field].widget.attrs["autocomplete"] = "chrome-off" self.fields["primary"].label = "Make Primary Address" self.fields["ip_address"].label = "" self.fields["ip_address"].widget.attrs["placeholder"] = "IP Address" self.fields["ip_address"].widget.attrs["autocomplete"] = "off" self.helper = FormHelper() # Disable the <form> tags because this will be inside of an instance of `ClientForm()` self.helper.form_tag = False # Disable CSRF so `csrfmiddlewaretoken` is not rendered multiple times self.helper.disable_csrf = True # Hide the field labels from the model self.helper.form_show_labels = False # Layout the form for Bootstrap self.helper.layout = Layout( # Wrap form in a div so Django renders form instances in their own element Div( # These Bootstrap alerts begin hidden and function as undo buttons for deleted forms Alert( content=(""" <strong>Address Deleted!</strong> Deletion will be permanent once the form is submitted. Click this alert to undo. """), css_class="alert alert-danger show formset-undo-button", style="display:none; cursor:pointer;", template="alert.html", block=False, dismiss=False, ), Div( HTML(""" <p><strong>Address #<span class="counter">{{ forloop.counter }}</span></strong></p> <hr> """), Row( Column("ip_address", css_class="form-group col-md-6 mb-0"), Column( Field( "primary", css_class="primary-checkbox", onchange="checkboxUpdate(this)", ), css_class="form-group col-md-6 mb-0", ), css_class="form-row", ), Row( Column( Field("DELETE", style="display: none;"), Button( "formset-del-button", "Delete Address", css_class= "btn-sm btn-danger formset-del-button", ), css_class="form-group col-md-12 text-center", ), css_class="form-row", ), HTML(""" <p class="form-spacer"></p> """), css_class="formset", ), css_class="formset-container", ))
def __init__(self, user, mode, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.fields['group'].queryset = Group.objects.filter( user=user).all().order_by("name") self.fields['assigned_to'].queryset = Resource.objects.filter( user__in=User.objects.filter(groups__in=Group.objects.filter( user=user))).order_by("res_name") formAction = None if (mode == 'delete'): formAction = Submit('save', 'Delete', css_class='btn btn-danger') elif (mode == 'close'): formAction = Submit('save', 'Complete', css_class='btn btn-success') elif (mode == 'copyas'): formAction = Submit('save', 'Copy', css_class='btn btn-info') else: formAction = Submit('save', 'Save', css_class='btn btn-primary') self.helper.layout = Layout( Row(Column('short_desc', css_class='form-group col-md-12 mb-0'), css_class='form-row'), Row(Column('context_id', css_class='form-group col-md-12 mb-0'), css_class='form-row'), Row(Column('group', css_class='form-group col-md-4 mb-0'), Column('assigned_to', css_class='form-group col-md-5 mb-0'), Column('status', css_class='form-group col-md-3 mb-0'), css_class='form-row'), Row(Column('todo_type', css_class='form-group col-md-4 mb-0'), Column('effort_type', css_class='form-group col-md-4 mb-0'), Column('effort', css_class='form-group col-md-4 mb-0'), css_class='form-row'), Row(Column('start_date', css_class='form-group col-md-4 mb-0'), Column('end_date', css_class='form-group col-md-4 mb-0'), Column('created_by', css_class='form-group col-md-4 mb-0'), css_class='form-row'), Row( Column( FormActions( formAction, HTML( '<a class="btn btn-warning" href={% url "todo_index" %}>Cancel</a>' ), # Button( 'cancel', 'Cancel', css_class="btn btn-md btn-default",data_dismiss="modal") ), css_class='form-group col-md-12 mb-0'), css_class='form-row'))
def __init__(self, *args, **kwargs): super(BasicOptionForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Row(Column('ticker', css_class='form-group col-md-3 mb-0'), Column('open_date', css_class='form-group col-md-3 mb-0'), Column('exp_date', css_class='form-group col-md-3 mb-0'), Column('stock_price', css_class='form-group col-md-3 mb-0'), css_class='form-row'), Row(Column('longshort', css_class='form-group col-md-3 mb-0'), Column('callput', css_class='form-group col-md-3 mb-0'), Column('strike', css_class='form-group col-md-3 mb-0'), Column('premium', css_class='form-group col-md-3 mb-0'), css_class='form-row'), Row(Column('quantity', css_class='form-group col-md-4 mb-0'), Column('close_price', css_class='form-group col-md-4 mb-0'), Column('close_date', css_class='form-group col-md-4 mb-0'), css_class='form-row'), Row(Column('broker', css_class='form-group col-md-6 mb-0'), Column('status', css_class='form-group col-md-6 mb-0'), css_class='form-row'), Submit('submit', 'Submit'))
def get_form_helper(self, form_tag=True): """ Returns the crispy forms form helper to be used. """ helper = FormHelper() helper.form_method = 'post' helper.form_tag = form_tag button_classes = "btn col mb-4" layout_content = [] if self.can_create: layout_content.append( Row( Column( HTML( """ <a class="%s" href="%s"> %s <i class="fa fa-plus" aria-hidden="true"></i> </a> """ % (button_classes + " btn-primary", self.create_object_url, "Skapa ny %s" % self.verbose_name_singular.lower()) ), ), Column() ) ) if self.can_delete or self.can_download: row_content = [] if self.can_download: row_content.append( Column( HTML( """ <a class="%s" href="%s" type="submit" download> %s <i class="fa fa-download" aria-hidden="true"></i> </a> """ % (button_classes + " btn-success", self.download_url, "Ladda ned %s" % self.verbose_name_plural.lower()) ), ) ) if self.can_delete: row_content.append( Column( HTML( """ <button class="%s" name="delete" type="submit"> %s <i class="fa fa-trash" aria-hidden="true"></i> </button> """ % (button_classes + " btn-danger", "Radera alla %s" % self.verbose_name_plural.lower()) ), ) ) if len(row_content) == 1: row_content.append(Column()) layout_content.append(Row(*row_content)) if self.can_upload: layout_content.append( Row( Column( 'upload_objects_file', HTML( """ <script type="text/javascript" id="script-upload_objects_file" src="%s"></script> """ % (static(self.upload_js_file)) ), css_class='col-12' ), ) ) helper.layout = Layout(*layout_content) return helper
def __init__(self, *args, **kwargs): super(OrderForm, self).__init__(*args, **kwargs) placeholder_text = { 'full_name': 'Full Name', 'email': 'Email Address', 'phone_number': 'Phone Number', 'street_address1': 'Street Address 1', 'street_address2': 'Street Address 2', 'town_or_city': 'Town or City', 'postcode': 'Post Code', 'county': 'County, State or Locality', 'country': 'Country', 'stripe_pid': 'ref', } self.helper = FormHelper() self.helper.form_id = 'id-orderform' self.helper.form_class = 'form__default' self.helper.field_class = 'pb-0 mb-0' self.helper.form_method = 'post' self.helper.form_show_labels = True self.helper.form_action = '/checkout/' self.helper.layout = Layout( HTML('<p class="small text-muted mb-1">Your Details</p>'), Field('full_name', css_class="rounded-0"), Field('email', css_class="rounded-0"), Field('phone_number', css_class="rounded-0"), HTML('<p class="small text-muted mt-3 mb-1">Delivery Details</p>'), Field('street_address1', css_class="rounded-0"), Field('street_address2', css_class="rounded-0"), Row(Column(Field('town_or_city', css_class="rounded-0"), css_class='form-group col-sm-6 mb-0'), Column(Field('county', css_class="rounded-0"), css_class='form-group col-sm-6 mb-0 pl-0-sm'), css_class='form-row'), Row(Column(Field('postcode', css_class="rounded-0"), css_class='form-group col-sm-6 mb-0'), Column(Field('country', css_class="rounded-0"), css_class='form-group col-sm-6 mb-0 pl-0-sm'), css_class='form-row'), Field('stripe_pid', type='hidden'), HTML('<p class="small text-muted mt-3 mb-1">Card Details</p>'), HTML('<div id="card-element">' '<!--Stripe.js injects the Card Element--></div>'), HTML('<p id="card-error" role="alert"></p>'), HTML('<p class="result-message hidden">Payment succeeded.</p>'), HTML('<button id="order-submit" ' 'class="btn__default mt-2 float-right">' '<span class="hidden" id="spinner">' '<i class="fas fa-spinner fa-spin mr-2"></i> ' 'Processing Payment</span>' '<span id="button-text">' '<i class="far fa-credit-card mr-2" aria-hidden="true"></i>' 'Pay Now</span></button>'), ) self.fields['full_name'].widget.attrs['autofocus'] = True for field in self.fields: if field != 'country': if self.fields[field].required: placeholder = f'{placeholder_text[field]} *' else: placeholder = placeholder_text[field] self.fields[field].widget.attrs['placeholder'] = placeholder self.fields[field].label = False
def __init__(self, *args, **kwargs): super(ProductForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab( 'Main', Row( Column('name', Div('unit_purchase_price'), Div('tax'), css_class="form-group col-sm-6"), Column(HTML( "<div id='pricing-widget' style='margin:30px auto;'></div>" ), css_class="form-group col-sm-6"), ), 'type', # hidden field ), Tab( 'Details', 'description', 'unit', Row( Column(Div('initial_quantity'), css_class='form-group col-md-4 col-sm-12'), Column('minimum_order_level', css_class="form-group col-md-4 col-sm-12"), Column('maximum_stock_level', css_class="form-group col-md-4 col-sm-12"), ), Row( Column('length', css_class="form group col-md-4 col-sm-12"), Column('width', css_class="form group col-md-4 col-sm-12"), Column('height', css_class="form group col-md-4 col-sm-12"), ), Row( Column('supplier', css_class="form group col-md-6 col-sm-12"), Column('warehouse', css_class="form group col-md-6 col-sm-12"), ), Row( Column('category', css_class="form group col-md-6 col-sm-12"), Column('image', css_class="form group col-md-6 col-sm-12"), ), 'active'), ), Submit('submit', 'Submit'))
def cadence_layout(self): return Layout(Row(Column('cadence_type'), Column('cadence_frequency')))
def __init__(self, *args, **kwargs): super(EquipmentForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( TabHolder( Tab( 'Main', Row( Column('name', 'unit_purchase_price', 'type', 'initial_quantity', css_class='col-md-6 col-sm-12 form-group'), Column('unit', 'description', css_class='col-md-6 col-sm-12 form-group'))), Tab( 'Details', Row( Column('length', css_class='form group col-md-4 col-sm-12'), Column('width', css_class='form group col-md-4 col-sm-12'), Column('height', css_class='form group col-md-4 col-sm-12'), ), Row( Column('supplier', css_class='form group col-md-6 col-sm-12'), Column('warehouse', css_class='form group col-md-6 col-sm-12'), ), Row( Column('category', css_class='form group col-md-6 col-sm-12'), Column('image', css_class='form group col-md-6 col-sm-12'), ), ), Tab( 'Asset', 'record_as_asset', 'asset_category', Row( Column('initial_value', css_class="col-md-6 col-sm-12"), Column('salvage_value', css_class="col-md-6 col-sm-12"), ), Row( Column('date_purchased', css_class="col-md-6 col-sm-12"), Column('depreciation_period', css_class="col-md-6 col-sm-12"), ), 'active')), Submit('submit', 'Submit'))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_tag = True self.helper.form_method = 'post' self.helper.layout = Layout( Row(Column('name', css_class='form-group col-md-6'), Column('type', css_class='form-group col-md-3'), Column('link', css_class='form-group col-md-3'), css_class='form-row'), Row(Column('batch_volume', css_class='form-group col-md-2'), Column('mash_time', css_class='form-group col-md-2'), Column('mash_temp', css_class='form-group col-md-2'), Column('boil_time', css_class='form-group col-md-2'), Column('boil_volume', css_class='form-group col-md-2'), Column('fermenter_volume', css_class='form-group col-md-2'), css_class='form-row'), Row(Column('og', css_class='form-group col-md-2'), Column('fg', css_class='form-group col-md-2'), Column('abv', css_class='form-group col-md-2'), Column('ibu', css_class='form-group col-md-2'), Column('efficiency', css_class='form-group col-md-2'), Column('yeast', css_class='form-group col-md-2'), css_class='form-row'), Row(Column(Formset_malt('malt'), css_class='form-group col-md-6'), Column(Formset_hop('hop'), css_class='form-group col-md-6'), css_class='form-row'), Row(Column('note', css_class='form-group col-md-12'), css_class='form-row'), Submit('submit', 'Submit', css_class='btn-primary'))
def __init__(self, *args, **kwargs): super(ISBNForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Row(Column('isbn', css_class='form-group col-lg-4 mb-0'), css_class='form-row'), Submit('submit', '検索'))