From ab37094ec44ff841a0d9a20781622565b52b844c Mon Sep 17 00:00:00 2001 From: "Lucas Perais (lpe)" Date: Thu, 22 Feb 2018 09:45:47 +0100 Subject: [PATCH 1/4] [FIX] website_quote: default require_payment instead of compute Commit a0f8ee92c3692f7d12652ec38a5e62f2cbddf0a8 solved the use case where a quotation was created through the website shop and where the default quote's template's require payment should be transmitted to the quote. However, this commit made the field readonly This present commit solves both problems by assigning a default to the problematic field rather than computing it OPW 817510 --- addons/website_quote/models/sale_order.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/addons/website_quote/models/sale_order.py b/addons/website_quote/models/sale_order.py index b66e09f87c4..96b34ef657b 100644 --- a/addons/website_quote/models/sale_order.py +++ b/addons/website_quote/models/sale_order.py @@ -49,6 +49,15 @@ class SaleOrder(models.Model): def _get_default_template_id(self): return self.env.ref('website_quote.website_quote_template_default', raise_if_not_found=False) + def _default_require_payment(self): + default_template = self._get_default_template_id() + if self.template_id: + return self.template_id.require_payment + elif default_template: + return default_template.require_payment + else: + return 0 + access_token = fields.Char( 'Security Token', copy=False, default=lambda self: str(uuid.uuid4()), required=True) @@ -68,14 +77,7 @@ class SaleOrder(models.Model): (0, 'Not mandatory on website quote validation'), (1, 'Immediate after website order validation'), (2, 'Immediate after website order validation and save a token'), - ], 'Payment', help="Require immediate payment by the customer when validating the order from the website quote", compute='_compute_require_payment', store=True) - - @api.one - @api.depends('template_id') - def _compute_require_payment(self): - # Do not overwrite if the field is already set - if self.template_id and (self.require_payment is None or self.require_payment is False): - self.require_payment = self.template_id.require_payment + ], 'Payment', help="Require immediate payment by the customer when validating the order from the website quote", default=_default_require_payment) @api.multi def copy(self, default=None): From cd21ea414e9b16e0a1044cfdf26aba744b269c8b Mon Sep 17 00:00:00 2001 From: Christophe Monniez Date: Thu, 22 Feb 2018 10:22:42 +0100 Subject: [PATCH 2/4] [FIX] packaging: include missing files needed for tests The test_mimetypes and base_import modules need various files for their tests. Before this commit some of those files (.ods, .odt, .xlsx, .docx, .zip) were not included in the packages. Fixes #22778 --- MANIFEST.in | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MANIFEST.in b/MANIFEST.in index baa2ef45201..426b97fbcf6 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -4,6 +4,7 @@ include README.md recursive-include openerp *.css recursive-include openerp *.csv recursive-include openerp *.doc +recursive-include openerp *.docx recursive-include openerp *.eml recursive-include openerp *.eot recursive-include openerp *.gif @@ -15,6 +16,8 @@ recursive-include openerp *.js recursive-include openerp *.less recursive-include openerp *.md recursive-include openerp *.mp3 +recursive-include openerp *.ods +recursive-include openerp *.odt recursive-include openerp *.ogg recursive-include openerp *.otf recursive-include openerp *.pdf @@ -33,9 +36,11 @@ recursive-include openerp *.woff recursive-include openerp *.woff2 recursive-include openerp *.wsdl recursive-include openerp *.xls +recursive-include openerp *.xlsx recursive-include openerp *.xsd recursive-include openerp *.xsl recursive-include openerp *.xml recursive-include openerp *.yml +recursive-include openerp *.zip recursive-exclude * *.py[co] recursive-exclude * *.hg* From 5cdefcc39a75f7f77f00bf0ab6e999d8461667d0 Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Wed, 21 Feb 2018 15:31:40 +0100 Subject: [PATCH 3/4] [FIX] purchase: Adding PO on refund vendor bill The function _prepare_invoice_line_from_po_line has not been designed to compute in a right the quantity for a line in an in_refund invoice. So it has no sens to display the field purchase_id for a refund vendor bill. Closes #23095 opw:816717 --- addons/purchase/views/account_invoice_views.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/purchase/views/account_invoice_views.xml b/addons/purchase/views/account_invoice_views.xml index 3f23f6777d0..583f2f40b56 100644 --- a/addons/purchase/views/account_invoice_views.xml +++ b/addons/purchase/views/account_invoice_views.xml @@ -59,7 +59,7 @@ - From ad3cc1b231f0284c15b515f36454b67fcdb2cd0e Mon Sep 17 00:00:00 2001 From: Duc Dao Date: Sat, 10 Feb 2018 01:18:20 +0700 Subject: [PATCH 4/4] [FIX] resource: Fix default empty timezone Since the method `_get_leave_intervals` assumed that field `tz` is always filled in. There is a case in default function, when `self._context` had key `tz` but its value was `False`, which may causes null value of field `tz` and lead to mismatch interval between leave and payslip --- addons/resource/models/resource.py | 4 ++-- doc/cla/individual/novawish.md | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 doc/cla/individual/novawish.md diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py index 7002961fd21..87bb3ebd37a 100644 --- a/addons/resource/models/resource.py +++ b/addons/resource/models/resource.py @@ -699,8 +699,8 @@ class ResourceCalendarLeaves(models.Model): date_from = fields.Datetime('Start Date', required=True) date_to = fields.Datetime('End Date', required=True) tz = fields.Selection( - _tz_get, string='Timezone', default=lambda self: self._context.get('tz', self.env.user.tz or 'UTC'), - help="Timezone used when encoding the leave. It is used to correctly" + _tz_get, string='Timezone', default=lambda self: self._context.get('tz') or self.env.user.tz or 'UTC', + help="Timezone used when encoding the leave. It is used to correctly " "localize leave hours when computing time intervals.") resource_id = fields.Many2one( "resource.resource", 'Resource', diff --git a/doc/cla/individual/novawish.md b/doc/cla/individual/novawish.md new file mode 100644 index 00000000000..7cb30078983 --- /dev/null +++ b/doc/cla/individual/novawish.md @@ -0,0 +1,11 @@ +Vietnam, 2018-02-10 + +I hereby agree to the terms of the Odoo Individual Contributor License +Agreement v1.0. + +I declare that I am authorized and able to make this agreement and sign this +declaration. + +Signed, + +Duc Dao duc.dd@komit-consulting.com https://github.com/novawish