diff --git a/src/servala/core/models/organization.py b/src/servala/core/models/organization.py index 2a90464..4b9b435 100644 --- a/src/servala/core/models/organization.py +++ b/src/servala/core/models/organization.py @@ -154,8 +154,6 @@ class BillingEntity(ServalaModelMixin, models.Model): "name": odoo_data.get("company_name", name), "company_type": "company", } - if vat := odoo_data.get("invoice_vat"): - company_payload["vat"] = vat company_id = CLIENT.execute("res.partner", "create", [company_payload]) instance.odoo_company_id = company_id @@ -199,7 +197,7 @@ class BillingEntity(ServalaModelMixin, models.Model): "invoice_address": None, } - company_fields = ["name", "company_type", "vat"] + company_fields = ["name", "company_type"] invoice_address_fields = [ "name", "company_type", diff --git a/src/servala/frontend/forms/organization.py b/src/servala/frontend/forms/organization.py index b08c2f7..37a2a35 100644 --- a/src/servala/frontend/forms/organization.py +++ b/src/servala/frontend/forms/organization.py @@ -40,7 +40,6 @@ class OrganizationCreateForm(OrganizationForm): ) invoice_email = forms.EmailField(label=_("Billing Email"), required=False) invoice_phone = forms.CharField(label=_("Phone"), required=False, max_length=30) - invoice_vat = forms.CharField(label=_("VAT ID"), required=False, max_length=50) class Meta(OrganizationForm.Meta): pass diff --git a/src/servala/frontend/forms/renderers.py b/src/servala/frontend/forms/renderers.py index b6a9995..eb50961 100644 --- a/src/servala/frontend/forms/renderers.py +++ b/src/servala/frontend/forms/renderers.py @@ -20,6 +20,8 @@ class VerticalFormRenderer(TemplatesSetting): def get_class_names(self, field): input_type = self.get_field_input_type(field) errors = "is-invalid " if field.errors else "" + if input_type == "radio": + return f"{errors}form-check-input" if input_type == "checkbox": return f"{errors}form-check-input" return f"{errors}form-control" diff --git a/src/servala/frontend/templates/django/forms/widgets/input_option.html b/src/servala/frontend/templates/django/forms/widgets/input_option.html new file mode 100644 index 0000000..9a7654d --- /dev/null +++ b/src/servala/frontend/templates/django/forms/widgets/input_option.html @@ -0,0 +1,6 @@ +{% include "django/forms/widgets/input.html" %} +{% if widget.wrap_label %} + +{% endif %} diff --git a/src/servala/frontend/templates/django/forms/widgets/radio.html b/src/servala/frontend/templates/django/forms/widgets/radio.html new file mode 100644 index 0000000..1f363b9 --- /dev/null +++ b/src/servala/frontend/templates/django/forms/widgets/radio.html @@ -0,0 +1,15 @@ +{# Change compared to Django: only render widget.attrs.class in actual option widget, not in wrapper #} +{% with id=widget.attrs.id %} +
+ {% for group, options, index in widget.optgroups %} + {% if group %} +
+ + {% endif %} + {% for option in options %} +
{% include option.template_name with widget=option %}
+ {% endfor %} + {% if group %}
{% endif %} + {% endfor %} +
+{% endwith %} diff --git a/src/servala/frontend/templates/frontend/organizations/create.html b/src/servala/frontend/templates/frontend/organizations/create.html index 4fcdc7e..967e7ec 100644 --- a/src/servala/frontend/templates/frontend/organizations/create.html +++ b/src/servala/frontend/templates/frontend/organizations/create.html @@ -19,7 +19,7 @@ - {% if form.existing_odoo_address_id and form.existing_odoo_address_id.choices %} + {% if form.billing_processing_choice %}
@@ -42,8 +42,6 @@
- {{ form.invoice_vat.as_field_group }} -
{{ form.invoice_street.as_field_group }} {{ form.invoice_street2.as_field_group }}
{{ form.invoice_zip.as_field_group }}
diff --git a/src/servala/frontend/templates/frontend/organizations/update.html b/src/servala/frontend/templates/frontend/organizations/update.html index 384d5a5..97d266d 100644 --- a/src/servala/frontend/templates/frontend/organizations/update.html +++ b/src/servala/frontend/templates/frontend/organizations/update.html @@ -116,12 +116,6 @@ {{ odoo_data.invoice_address.country_id.1|default:"" }} - - - {% translate "VAT ID" %} - - {{ odoo_data.company.vat|default:"" }} - {% translate "Invoice Email" %} diff --git a/src/servala/settings.py b/src/servala/settings.py index 654b039..420ba47 100644 --- a/src/servala/settings.py +++ b/src/servala/settings.py @@ -142,11 +142,11 @@ INSTALLED_APPS = [ "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", + # The frontend app is loaded early in order to supersede some allauth views/behaviour + "servala.frontend", "django.forms", "template_partials", "rules.apps.AutodiscoverRulesConfig", - # The frontend app is loaded early in order to supersede some allauth views/behaviour - "servala.frontend", "allauth", "allauth.account", "allauth.socialaccount", diff --git a/src/servala/static/css/servala.css b/src/servala/static/css/servala.css index 1e418fb..b7a5b8b 100644 --- a/src/servala/static/css/servala.css +++ b/src/servala/static/css/servala.css @@ -54,6 +54,12 @@ html[data-bs-theme="dark"] .btn-outline-primary, .btn-outline-primary { margin-bottom: 0; } +fieldset .form-check-input + label { + font-weight: normal; + min-height: 1.5rem; + margin: .125rem; +} + .search-form .form-body>.row { display: flex; &>.col-12 {