From 4c31a758cf0715b1c1ff2f5b3cef18fec92c2d84 Mon Sep 17 00:00:00 2001 From: jpr-odoo Date: Mon, 13 Aug 2018 21:34:09 +0200 Subject: [PATCH] [REF] various: move sale_payment and website_quote into sale and sale_management [MOV] move sale_payment into sale ================================= Almost all use cases of sale require sale_payment down the line. There is only one case which does not: using sale_management without website_sale or website_quote. However, since we want to move most of the features of website_quote into sale_management, moving sale_payement first will make the task easier. [MOV] move website_quote into sale and sale_management ====================================================== We want to use some features of website_quote without having to install the whole module. The main issue with website_quote was that it had a requirement on website. What is common to website_sale and sale_management has been moved into sale. This is primarily the sales order portal view. What is only related to sale_management has been moved into it. This is notably: sales order templates, optional products, sign and pay, ... Everything that requires website has been moved into a new module named sale_quotation_builder. This is related to using the HTML builder to customize the quotation view. Models, files and routes have been renamed to better convey their purpose and to follow guidelines more closely. [IMP] merge sales order portal views ==================================== The old sales order view on the portal has been merged into the one from website_quote. The new view contains features of the two. A lot of fixes and improvements have also been done, related to BS4 issues but also to improve the sales order view in general. [IMP] add new settings ====================== The commit adds new settings related to activating the features that previously were activated by installing website_quote. PR: #26345 Task: 49205, 1838924 --- addons/account/models/account_invoice.py | 22 +- addons/account/views/account_invoice_view.xml | 1 + addons/account_cancel/views/account_views.xml | 4 +- addons/portal/static/src/js/portal_sidebar.js | 16 - .../portal/static/src/js/portal_signature.js | 6 + addons/portal/static/src/scss/portal.scss | 3 +- .../portal/static/src/xml/portal_chatter.xml | 2 +- addons/portal/views/portal_templates.xml | 6 +- addons/sale/__manifest__.py | 3 +- addons/sale/controllers/portal.py | 113 +-- addons/sale/models/__init__.py | 1 + .../{sale_payment => sale}/models/payment.py | 4 +- addons/sale/models/res_company.py | 5 +- addons/sale/models/res_config_settings.py | 33 +- addons/sale/models/sale.py | 145 ++- addons/sale/report/sale_report.xml | 13 + addons/sale/report/sale_report_templates.xml | 15 + .../sale/static/src/js/sale_portal_sidebar.js | 146 +++ .../static/src/js/tour.js | 0 addons/sale/static/src/scss/sale_portal.scss | 9 + .../views/payment_views.xml | 2 +- .../sale/views/res_config_settings_views.xml | 48 +- addons/sale/views/sale_portal_templates.xml | 940 +++++++++++------- addons/sale/views/sale_views.xml | 12 +- addons/sale_expense/tests/test_reinvoice.py | 2 + addons/sale_management/__init__.py | 1 + addons/sale_management/__manifest__.py | 14 +- .../controllers/__init__.py | 2 +- addons/sale_management/controllers/portal.py | 165 +++ .../data/sale_order_template_data.xml | 11 + .../data/sale_order_template_demo.xml} | 10 +- addons/sale_management/models/__init__.py | 4 + .../models/res_config_settings.py | 17 + addons/sale_management/models/res_users.py | 13 + .../models/sale_order.py | 239 ++--- .../models/sale_order_template.py} | 72 +- .../report/sale_report_templates.xml} | 4 +- .../security/ir.model.access.csv | 9 + .../security/sale_management_security.xml | 8 + .../static/src/img/online_training.png | Bin .../static/src/img/openerp_gold_partner.png | Bin .../static/src/img/partner_icon_01.png | Bin .../static/src/img/partner_icon_02.png | Bin .../static/src/img/partner_icon_04.png | Bin .../static/src/img/partner_sc_01.png | Bin .../static/src/js/sale_management.js | 51 + .../views/res_config_settings_views.xml | 48 + .../views/sale_management_templates.xml | 9 - .../views/sale_order_template_views.xml | 162 +++ .../views/sale_order_views.xml | 24 +- .../views/sale_portal_templates.xml | 112 +++ addons/sale_payment/__init__.py | 5 - addons/sale_payment/__manifest__.py | 27 - addons/sale_payment/controllers/payment.py | 89 -- addons/sale_payment/controllers/portal.py | 25 - .../models/res_config_settings.py | 19 - addons/sale_payment/models/sale_order.py | 113 --- .../views/res_config_settings_views.xml | 30 - .../sale_payment/views/sale_order_views.xml | 25 - .../views/sale_portal_templates.xml | 111 --- addons/sale_payment/views/settings.xml | 15 - .../__init__.py | 0 addons/sale_quotation_builder/__manifest__.py | 19 + .../controllers/__init__.py | 3 +- .../controllers/portal.py | 14 + .../data/sale_order_template_data.xml | 78 ++ .../models/__init__.py | 6 +- .../models/product_template.py | 25 + .../models/sale_order.py | 80 ++ .../models/sale_order_template.py | 63 ++ .../views/sale_order_template_views.xml | 32 + .../views/sale_order_views.xml | 21 + .../views/sale_portal_templates.xml | 97 ++ .../views/sale_stock_portal_template.xml | 12 +- addons/sale_timesheet/tests/test_reinvoice.py | 2 + addons/sale_timesheet/tests/test_reporting.py | 2 + addons/website/models/res_config_settings.py | 2 +- addons/website_quote/README.md | 21 - addons/website_quote/__manifest__.py | 27 - addons/website_quote/controllers/main.py | 225 ----- .../website_quote/data/website_quote_data.xml | 83 -- addons/website_quote/models/__init__.py | 7 - .../website_quote/models/product_template.py | 12 - .../models/res_config_settings.py | 10 - .../report/sale_order_reports.xml | 15 - .../report/website_quote_templates.xml | 17 - .../security/ir.model.access.csv | 9 - .../website_quote/static/description/icon.png | Bin 9067 -> 0 bytes .../website_quote/static/description/icon.svg | 1 - .../static/src/css/website_quotation.css | 55 - .../static/src/js/website_quotation.js | 139 --- .../static/src/scss/website_quotation.scss | 6 - .../views/res_config_settings_views.xml | 23 - .../website_quote/views/sale_quote_views.xml | 167 ---- .../views/website_quote_templates.xml | 745 -------------- addons/website_sale/__manifest__.py | 2 +- .../views/res_config_settings_views.xml | 19 + addons/website_sale/views/templates.xml | 4 +- .../views/website_sale_delivery_templates.xml | 2 +- .../views/website_sale_digital.xml | 6 +- 100 files changed, 2306 insertions(+), 2730 deletions(-) rename addons/{sale_payment => sale}/models/payment.py (98%) create mode 100644 addons/sale/static/src/js/sale_portal_sidebar.js rename addons/{sale_management => sale}/static/src/js/tour.js (100%) rename addons/{sale_payment => sale}/views/payment_views.xml (91%) rename addons/{website_quote => sale_management}/controllers/__init__.py (82%) create mode 100644 addons/sale_management/controllers/portal.py create mode 100644 addons/sale_management/data/sale_order_template_data.xml rename addons/{website_quote/data/website_quote_demo.xml => sale_management/data/sale_order_template_demo.xml} (69%) create mode 100644 addons/sale_management/models/res_config_settings.py create mode 100644 addons/sale_management/models/res_users.py rename addons/{website_quote => sale_management}/models/sale_order.py (55%) rename addons/{website_quote/models/sale_quote.py => sale_management/models/sale_order_template.py} (64%) rename addons/{website_quote/report/sale_order_templates.xml => sale_management/report/sale_report_templates.xml} (91%) create mode 100644 addons/sale_management/security/ir.model.access.csv create mode 100644 addons/sale_management/security/sale_management_security.xml rename addons/{website_quote => sale_management}/static/src/img/online_training.png (100%) rename addons/{website_quote => sale_management}/static/src/img/openerp_gold_partner.png (100%) rename addons/{website_quote => sale_management}/static/src/img/partner_icon_01.png (100%) rename addons/{website_quote => sale_management}/static/src/img/partner_icon_02.png (100%) rename addons/{website_quote => sale_management}/static/src/img/partner_icon_04.png (100%) rename addons/{website_quote => sale_management}/static/src/img/partner_sc_01.png (100%) create mode 100644 addons/sale_management/static/src/js/sale_management.js create mode 100644 addons/sale_management/views/res_config_settings_views.xml delete mode 100644 addons/sale_management/views/sale_management_templates.xml create mode 100644 addons/sale_management/views/sale_order_template_views.xml rename addons/{website_quote => sale_management}/views/sale_order_views.xml (71%) create mode 100644 addons/sale_management/views/sale_portal_templates.xml delete mode 100644 addons/sale_payment/__init__.py delete mode 100644 addons/sale_payment/__manifest__.py delete mode 100644 addons/sale_payment/controllers/payment.py delete mode 100644 addons/sale_payment/controllers/portal.py delete mode 100644 addons/sale_payment/models/res_config_settings.py delete mode 100644 addons/sale_payment/models/sale_order.py delete mode 100644 addons/sale_payment/views/res_config_settings_views.xml delete mode 100644 addons/sale_payment/views/sale_order_views.xml delete mode 100644 addons/sale_payment/views/sale_portal_templates.xml delete mode 100644 addons/sale_payment/views/settings.xml rename addons/{website_quote => sale_quotation_builder}/__init__.py (100%) create mode 100644 addons/sale_quotation_builder/__manifest__.py rename addons/{sale_payment => sale_quotation_builder}/controllers/__init__.py (70%) create mode 100644 addons/sale_quotation_builder/controllers/portal.py create mode 100644 addons/sale_quotation_builder/data/sale_order_template_data.xml rename addons/{sale_payment => sale_quotation_builder}/models/__init__.py (52%) create mode 100644 addons/sale_quotation_builder/models/product_template.py create mode 100644 addons/sale_quotation_builder/models/sale_order.py create mode 100644 addons/sale_quotation_builder/models/sale_order_template.py create mode 100644 addons/sale_quotation_builder/views/sale_order_template_views.xml create mode 100644 addons/sale_quotation_builder/views/sale_order_views.xml create mode 100644 addons/sale_quotation_builder/views/sale_portal_templates.xml delete mode 100644 addons/website_quote/README.md delete mode 100644 addons/website_quote/__manifest__.py delete mode 100644 addons/website_quote/controllers/main.py delete mode 100644 addons/website_quote/data/website_quote_data.xml delete mode 100644 addons/website_quote/models/__init__.py delete mode 100644 addons/website_quote/models/product_template.py delete mode 100644 addons/website_quote/models/res_config_settings.py delete mode 100644 addons/website_quote/report/sale_order_reports.xml delete mode 100644 addons/website_quote/report/website_quote_templates.xml delete mode 100644 addons/website_quote/security/ir.model.access.csv delete mode 100644 addons/website_quote/static/description/icon.png delete mode 100644 addons/website_quote/static/description/icon.svg delete mode 100644 addons/website_quote/static/src/css/website_quotation.css delete mode 100644 addons/website_quote/static/src/js/website_quotation.js delete mode 100644 addons/website_quote/static/src/scss/website_quotation.scss delete mode 100644 addons/website_quote/views/res_config_settings_views.xml delete mode 100644 addons/website_quote/views/sale_quote_views.xml delete mode 100644 addons/website_quote/views/website_quote_templates.xml diff --git a/addons/account/models/account_invoice.py b/addons/account/models/account_invoice.py index f4fe6810f44..a64d0c906a2 100644 --- a/addons/account/models/account_invoice.py +++ b/addons/account/models/account_invoice.py @@ -427,8 +427,8 @@ class AccountInvoice(models.Model): def _compute_access_url(self): super(AccountInvoice, self)._compute_access_url() - for order in self: - order.access_url = '/my/invoices/%s' % (order.id) + for invoice in self: + invoice.access_url = '/my/invoices/%s' % (invoice.id) @api.depends('state', 'journal_id', 'date_invoice') def _get_sequence_prefix(self): @@ -1505,6 +1505,24 @@ class AccountInvoice(models.Model): len(res), ) for r in res] + @api.multi + def get_portal_url(self, suffix=None): + """ + Get a portal url for this invoice, including access_token. + - suffix: string to append to the url, before the query string + """ + self.ensure_one() + return self.access_url + '%s?access_token=%s' % (suffix if suffix else '', self._portal_ensure_token()) + + @api.multi + def preview_invoice(self): + self.ensure_one() + return { + 'type': 'ir.actions.act_url', + 'target': 'self', + 'url': self.get_portal_url(), + } + class AccountInvoiceLine(models.Model): _name = "account.invoice.line" diff --git a/addons/account/views/account_invoice_view.xml b/addons/account/views/account_invoice_view.xml index 4d22d4d9a93..a59d9410bd8 100644 --- a/addons/account/views/account_invoice_view.xml +++ b/addons/account/views/account_invoice_view.xml @@ -408,6 +408,7 @@ string="Register Payment" groups="account.group_account_invoice" class="oe_highlight"/>