Skip to content

Commit

Permalink
[FIX] validate national number on website form
Browse files Browse the repository at this point in the history
* validate belgian national register number on website form.
* fix style of belgian national register number field.
* only display belgian national register number field if
  display_national_number is true.
  • Loading branch information
huguesdk committed May 3, 2024
1 parent 22e48d3 commit ea17bcd
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 13 deletions.
27 changes: 25 additions & 2 deletions l10n_be_cooperator_website_national_number/controllers/main.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from odoo.exceptions import ValidationError
from odoo.http import request

from odoo.addons.cooperator_website.controllers.main import WebsiteSubscription
Expand All @@ -21,6 +22,28 @@ def get_values_from_user(self, values, is_company):

def fill_values(self, values, is_company, logged, load_from_user=False):
values = super().fill_values(values, is_company, logged, load_from_user)
if not is_company and request.env.company.require_national_number:
values["national_number_required"] = True
display_national_number = False
national_number_required = False

Check warning on line 26 in l10n_be_cooperator_website_national_number/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_website_national_number/controllers/main.py#L25-L26

Added lines #L25 - L26 were not covered by tests
if not is_company:
display_national_number = request.env.company.display_national_number
national_number_required = request.env.company.require_national_number
values["display_national_number"] = display_national_number
values["national_number_required"] = national_number_required

Check warning on line 31 in l10n_be_cooperator_website_national_number/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_website_national_number/controllers/main.py#L28-L31

Added lines #L28 - L31 were not covered by tests
return values

def _additional_validate(self, kwargs, logged, values, post_file):
result = super()._additional_validate(kwargs, logged, values, post_file)

Check warning on line 35 in l10n_be_cooperator_website_national_number/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_website_national_number/controllers/main.py#L35

Added line #L35 was not covered by tests
if result is not True:
return result
try:

Check warning on line 38 in l10n_be_cooperator_website_national_number/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_website_national_number/controllers/main.py#L37-L38

Added lines #L37 - L38 were not covered by tests
# sudo is required to allow access to res.partner.id_category.
request.env[

Check warning on line 40 in l10n_be_cooperator_website_national_number/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_website_national_number/controllers/main.py#L40

Added line #L40 was not covered by tests
"subscription.request"
].sudo().check_be_national_register_number(values["national_number"])
except ValidationError as ve:
values["error_msg"] = str(ve)
error = values.get("error", set())
error.add("national_number")
values["error"] = error
return False
return True

Check warning on line 49 in l10n_be_cooperator_website_national_number/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_website_national_number/controllers/main.py#L43-L49

Added lines #L43 - L49 were not covered by tests
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>

<template id="national_number_template" name="national_number_template">
<div
class="form-group field-national_number"
t-attf-class="form-group #{error and 'national_number' in error and 'has-error' or ''}"
name="national_number_container"
>
<label for="national_number">National Number</label>
<div class="mb-3 field-national_number" name="national_number_container">
<label for="national_number" class="form-label">National Number</label>
<input
class="form-control form-control-sm"
id="national_number"
name="national_number"
t-attf-class="form-control form-control-sm{{ error and 'national_number' in error and ' is-invalid' or '' }}"
type="text"
t-att-readonly="logged"
name="national_number"
id="national_number"
t-att-required="national_number_required"
t-attf-value="#{national_number or ''}"
t-att-readonly="logged"
t-att-value="national_number"
placeholder="YY.MM.DD-NNN.MM"
/>
</div>
</template>
Expand All @@ -29,6 +27,7 @@
position="after"
>
<t
t-if="display_national_number"
t-call="l10n_be_cooperator_website_national_number.national_number_template"
/>
</xpath>
Expand Down

0 comments on commit ea17bcd

Please sign in to comment.