From 9adc0a153f10b77f5082448311910365401a3085 Mon Sep 17 00:00:00 2001 From: Borruso Date: Sat, 20 Nov 2021 17:14:27 +0100 Subject: [PATCH] [IMP] l10n_it_website_portal_fatturapa: black, isort, prettier --- .../__manifest__.py | 8 +- .../controllers/main.py | 83 ++++++++------ .../readme/ROADMAP.rst | 2 +- .../js/l10n_it_website_portal_fatturapa.js | 32 +++--- ..._it_website_portal_fatturapa_templates.xml | 105 +++++++++++++----- .../addons/l10n_it_website_portal_fatturapa | 1 + .../l10n_it_website_portal_fatturapa/setup.py | 6 + 7 files changed, 154 insertions(+), 83 deletions(-) create mode 120000 setup/l10n_it_website_portal_fatturapa/odoo/addons/l10n_it_website_portal_fatturapa create mode 100644 setup/l10n_it_website_portal_fatturapa/setup.py diff --git a/l10n_it_website_portal_fatturapa/__manifest__.py b/l10n_it_website_portal_fatturapa/__manifest__.py index 676327f4a6d1..4ebb982d136a 100644 --- a/l10n_it_website_portal_fatturapa/__manifest__.py +++ b/l10n_it_website_portal_fatturapa/__manifest__.py @@ -7,16 +7,14 @@ "version": "12.0.1.3.0", "author": "Odoo Community Association (OCA)", "category": "Localization/Italy", - "website": "https://github.com/OCA/l10n-italy/tree/" - "12.0/l10n_it_website_portal_fatturapa", + "website": "https://github.com/OCA/l10n-italy" + "12.0/l10n_it_website_portal_fatturapa", "license": "AGPL-3", "depends": [ "l10n_it_fatturapa", "l10n_it_website_portal_fiscalcode", "l10n_it_website_portal_ipa", ], - "data": [ - "views/l10n_it_website_portal_fatturapa_templates.xml" - ], + "data": ["views/l10n_it_website_portal_fatturapa_templates.xml"], "auto_install": True, } diff --git a/l10n_it_website_portal_fatturapa/controllers/main.py b/l10n_it_website_portal_fatturapa/controllers/main.py index 9eb5213c8149..7f982f6860bc 100644 --- a/l10n_it_website_portal_fatturapa/controllers/main.py +++ b/l10n_it_website_portal_fatturapa/controllers/main.py @@ -3,40 +3,55 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo.exceptions import ValidationError from odoo.http import request -from odoo.addons.l10n_it_website_portal_fiscalcode.controllers.main import \ - WebsitePortalFiscalCode from odoo.tools.translate import _ -FATTURAPA_PORTAL_FIELDS = \ - ['codice_destinatario', 'firstname', 'lastname', - 'pec_destinatario', 'country_id', 'fiscalcode', 'zipcode', 'vat', - 'electronic_invoice_subjected', 'street', 'city', - 'is_pa', 'ipa_code', 'eori_code', 'electronic_invoice_obliged_subject'] +from odoo.addons.l10n_it_website_portal_fiscalcode.controllers.main import ( + WebsitePortalFiscalCode, +) + +FATTURAPA_PORTAL_FIELDS = [ + "codice_destinatario", + "firstname", + "lastname", + "pec_destinatario", + "country_id", + "fiscalcode", + "zipcode", + "vat", + "electronic_invoice_subjected", + "street", + "city", + "is_pa", + "ipa_code", + "eori_code", + "electronic_invoice_obliged_subject", +] WebsitePortalFiscalCode.OPTIONAL_BILLING_FIELDS.extend(FATTURAPA_PORTAL_FIELDS) class WebsitePortalFatturapa(WebsitePortalFiscalCode): - def details_form_validate(self, data): # when checkbox electronic_invoice_subjected is not checked, # it is not posted - data['electronic_invoice_subjected'] = data.get( - 'electronic_invoice_subjected', False) + data["electronic_invoice_subjected"] = data.get( + "electronic_invoice_subjected", False + ) if data["electronic_invoice_subjected"]: data["electronic_invoice_obliged_subject"] = True - error, error_message = \ - super(WebsitePortalFatturapa, self).details_form_validate(data) + error, error_message = super( + WebsitePortalFatturapa, self + ).details_form_validate(data) partner_sudo = request.env.user.partner_id.sudo() - error, error_message = \ - self.validate_partner_firstname(data, error, error_message) + error, error_message = self.validate_partner_firstname( + data, error, error_message + ) - partner_values = self.get_portal_fatturapa_partner_values( - data, partner_sudo) - dummy_partner = request.env['res.partner'].new(partner_values) + partner_values = self.get_portal_fatturapa_partner_values(data, partner_sudo) + dummy_partner = request.env["res.partner"].new(partner_values) try: dummy_partner._check_ftpa_partner_data() except ValidationError as ve: - error['error'] = 'error' + error["error"] = "error" error_message.append(ve.name) return error, error_message @@ -46,28 +61,30 @@ def get_portal_fatturapa_partner_values(self, data, partner_sudo): partner_values = partner_sudo.read(constr_fields)[0] # Update them with fields that might be edited by the user - new_partner_values = {f_name: data.get(f_name) - for f_name in FATTURAPA_PORTAL_FIELDS} - if new_partner_values.get('country_id'): - new_partner_values['country_id'] = \ - int(new_partner_values['country_id']) - new_partner_values.update({ - 'zip': new_partner_values.pop('zipcode', '')}) + new_partner_values = { + f_name: data.get(f_name) for f_name in FATTURAPA_PORTAL_FIELDS + } + if new_partner_values.get("country_id"): + new_partner_values["country_id"] = int(new_partner_values["country_id"]) + new_partner_values.update({"zip": new_partner_values.pop("zipcode", "")}) partner_values.update(new_partner_values) return partner_values def validate_partner_firstname(self, data, error, error_message): # Compute name field, using First name and Last name - if all(f in data for f in ['name', 'firstname', 'lastname']): - lastname = data.get('lastname') - firstname = data.get('firstname') + if all(f in data for f in ["name", "firstname", "lastname"]): + lastname = data.get("lastname") + firstname = data.get("firstname") if lastname or firstname: data.update( - name=request.env['res.partner']._get_computed_name( - lastname, firstname)) + name=request.env["res.partner"]._get_computed_name( + lastname, firstname + ) + ) else: - error['firstname'] = 'error' - error['lastname'] = 'error' + error["firstname"] = "error" + error["lastname"] = "error" error_message.append( - _('At least one of first name and last name is required')) + _("At least one of first name and last name is required") + ) return error, error_message diff --git a/l10n_it_website_portal_fatturapa/readme/ROADMAP.rst b/l10n_it_website_portal_fatturapa/readme/ROADMAP.rst index 0064c2e5becf..ff5071c2dab6 100644 --- a/l10n_it_website_portal_fatturapa/readme/ROADMAP.rst +++ b/l10n_it_website_portal_fatturapa/readme/ROADMAP.rst @@ -1 +1 @@ -Fields `is_pa` and `ipa_code` are not shown in the frontend because Odoo core always supposes that frontend users are individual, and these fields are only meaningful for companies. \ No newline at end of file +Fields `is_pa` and `ipa_code` are not shown in the frontend because Odoo core always supposes that frontend users are individual, and these fields are only meaningful for companies. diff --git a/l10n_it_website_portal_fatturapa/static/src/js/l10n_it_website_portal_fatturapa.js b/l10n_it_website_portal_fatturapa/static/src/js/l10n_it_website_portal_fatturapa.js index c3753ce00c20..ef5df9065ace 100644 --- a/l10n_it_website_portal_fatturapa/static/src/js/l10n_it_website_portal_fatturapa.js +++ b/l10n_it_website_portal_fatturapa/static/src/js/l10n_it_website_portal_fatturapa.js @@ -1,20 +1,21 @@ -odoo.define('l10n_it_website_portal_fatturapa', function(require) { - 'use strict'; - require('web.core'); +odoo.define("l10n_it_website_portal_fatturapa", function (require) { + "use strict"; + require("web.core"); $(document).ready(function () { var details_div_selector = ".o_portal_details"; var $details_div = $(details_div_selector); if (!$details_div.length) { - return $.Deferred().reject( - "DOM doesn't contain " + details_div_selector); + return $.Deferred().reject("DOM doesn't contain " + details_div_selector); } - var $electronic_invoice_subjected_input = $details_div - .find("input[name='electronic_invoice_subjected'][type='checkbox']"); - var $div_electronic_invoice_subjected_fields = $details_div - .find(".div_electronic_invoice_subjected_fields"); + var $electronic_invoice_subjected_input = $details_div.find( + "input[name='electronic_invoice_subjected'][type='checkbox']" + ); + var $div_electronic_invoice_subjected_fields = $details_div.find( + ".div_electronic_invoice_subjected_fields" + ); - var compute_e_inv_fields_visibility = function(){ + var compute_e_inv_fields_visibility = function () { if ($electronic_invoice_subjected_input[0].checked) { $div_electronic_invoice_subjected_fields.show(); } else { @@ -24,17 +25,18 @@ odoo.define('l10n_it_website_portal_fatturapa', function(require) { compute_e_inv_fields_visibility(); $electronic_invoice_subjected_input.change(compute_e_inv_fields_visibility); - var $is_pa = $details_div - .find("input[name='is_pa'][type='checkbox']"); + var $is_pa = $details_div.find("input[name='is_pa'][type='checkbox']"); if (!$is_pa.length) { return; } var $codice_destinatario_div = $details_div - .find("input[name='codice_destinatario'][type='text']").parent(); + .find("input[name='codice_destinatario'][type='text']") + .parent(); var $pec_destinatario_div = $details_div - .find("input[name='pec_destinatario'][type='text']").parent(); + .find("input[name='pec_destinatario'][type='text']") + .parent(); - var compute_destinatario_fields_visibility = function(){ + var compute_destinatario_fields_visibility = function () { if (!$is_pa[0].checked) { $codice_destinatario_div.show(); $pec_destinatario_div.show(); diff --git a/l10n_it_website_portal_fatturapa/views/l10n_it_website_portal_fatturapa_templates.xml b/l10n_it_website_portal_fatturapa/views/l10n_it_website_portal_fatturapa_templates.xml index 135d2110a201..a86785092df9 100644 --- a/l10n_it_website_portal_fatturapa/views/l10n_it_website_portal_fatturapa_templates.xml +++ b/l10n_it_website_portal_fatturapa/views/l10n_it_website_portal_fatturapa_templates.xml @@ -5,73 +5,120 @@ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> -