diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py index 88e4730c59c..b9bef25dfeb 100644 --- a/addons/account/report/account_aged_partner_balance.py +++ b/addons/account/report/account_aged_partner_balance.py @@ -2,6 +2,7 @@ import time from odoo import api, models, _ +from odoo.exceptions import UserError from odoo.tools import float_is_zero from datetime import datetime from dateutil.relativedelta import relativedelta @@ -196,6 +197,9 @@ class ReportAgedPartnerBalance(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form') or not self.env.context.get('active_model') or not self.env.context.get('active_id'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + total = [] model = self.env.context.get('active_model') docs = self.env[model].browse(self.env.context.get('active_id')) diff --git a/addons/account/report/account_balance.py b/addons/account/report/account_balance.py index 5bdf40ae7b1..fccc60e7680 100644 --- a/addons/account/report/account_balance.py +++ b/addons/account/report/account_balance.py @@ -2,6 +2,7 @@ import time from odoo import api, models +from odoo.exceptions import UserError class ReportTrialBalance(models.AbstractModel): @@ -59,6 +60,9 @@ class ReportTrialBalance(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form') or not self.env.context.get('active_model'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + self.model = self.env.context.get('active_model') docs = self.env[self.model].browse(self.env.context.get('active_ids', [])) display_account = data['form'].get('display_account') diff --git a/addons/account/report/account_general_ledger.py b/addons/account/report/account_general_ledger.py index d3b871f24b8..f7ebf8ad451 100644 --- a/addons/account/report/account_general_ledger.py +++ b/addons/account/report/account_general_ledger.py @@ -2,6 +2,7 @@ import time from odoo import api, models +from odoo.exceptions import UserError class ReportGeneralLedger(models.AbstractModel): @@ -109,6 +110,9 @@ class ReportGeneralLedger(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form') or not self.env.context.get('active_model'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + self.model = self.env.context.get('active_model') docs = self.env[self.model].browse(self.env.context.get('active_ids', [])) diff --git a/addons/account/report/account_journal.py b/addons/account/report/account_journal.py index d134891eb75..9dfa7807f48 100644 --- a/addons/account/report/account_journal.py +++ b/addons/account/report/account_journal.py @@ -2,6 +2,7 @@ import time from odoo import api, models +from odoo.exceptions import UserError class ReportJournal(models.AbstractModel): @@ -95,6 +96,9 @@ class ReportJournal(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + target_move = data['form'].get('target_move', 'all') sort_selection = data['form'].get('sort_selection', 'date') diff --git a/addons/account/report/account_partner_ledger.py b/addons/account/report/account_partner_ledger.py index ba2503d41a9..94d12a7bd3a 100644 --- a/addons/account/report/account_partner_ledger.py +++ b/addons/account/report/account_partner_ledger.py @@ -3,6 +3,7 @@ from datetime import datetime import time from odoo import api, models +from odoo.exceptions import UserError from odoo.tools import DEFAULT_SERVER_DATE_FORMAT @@ -69,6 +70,9 @@ class ReportPartnerLedger(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + data['computed'] = {} obj_partner = self.env['res.partner'] diff --git a/addons/account/report/account_report_financial.py b/addons/account/report/account_report_financial.py index abb50715ac5..4aacdf68108 100644 --- a/addons/account/report/account_report_financial.py +++ b/addons/account/report/account_report_financial.py @@ -2,6 +2,7 @@ import time from odoo import api, models +from odoo.exceptions import UserError class ReportFinancial(models.AbstractModel): @@ -144,6 +145,9 @@ class ReportFinancial(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form') or not self.env.context.get('active_model') or not self.env.context.get('active_id'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + self.model = self.env.context.get('active_model') docs = self.env[self.model].browse(self.env.context.get('active_id')) report_lines = self.get_account_lines(data.get('form')) diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py index 7d58e6bfbca..1428562ed62 100644 --- a/addons/hr_holidays/report/holidays_summary_report.py +++ b/addons/hr_holidays/report/holidays_summary_report.py @@ -4,6 +4,7 @@ from datetime import timedelta from dateutil.relativedelta import relativedelta from odoo import api, fields, models +from odoo.exceptions import UserError class HrHolidaySummaryReport(models.AbstractModel): @@ -102,6 +103,9 @@ class HrHolidaySummaryReport(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + Report = self.env['report'] holidays_report = Report._get_report_from_name('hr_holidays.report_holidayssummary') holidays = self.env['hr.holidays'].browse(self.ids) diff --git a/addons/hr_payroll/report/report_contribution_register.py b/addons/hr_payroll/report/report_contribution_register.py index ebfc969c1fd..c56918c88be 100644 --- a/addons/hr_payroll/report/report_contribution_register.py +++ b/addons/hr_payroll/report/report_contribution_register.py @@ -6,6 +6,7 @@ from datetime import datetime from dateutil.relativedelta import relativedelta from odoo import api, fields, models +from odoo.exceptions import UserError class ContributionRegisterReport(models.AbstractModel): @@ -29,6 +30,9 @@ class ContributionRegisterReport(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + register_ids = self.env.context.get('active_ids', []) contrib_registers = self.env['hr.contribution.register'].browse(register_ids) date_from = data['form'].get('date_from', fields.Date.today()) diff --git a/addons/l10n_in_hr_payroll/report/report_hr_salary_employee_bymonth.py b/addons/l10n_in_hr_payroll/report/report_hr_salary_employee_bymonth.py index 3ff69127d5c..1cc67073146 100644 --- a/addons/l10n_in_hr_payroll/report/report_hr_salary_employee_bymonth.py +++ b/addons/l10n_in_hr_payroll/report/report_hr_salary_employee_bymonth.py @@ -4,6 +4,7 @@ from datetime import date from odoo import api, models +from odoo.exceptions import UserError class ReportHrSalaryEmployeeBymonth(models.AbstractModel): @@ -93,6 +94,9 @@ class ReportHrSalaryEmployeeBymonth(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not data.get('form') or not self.env.context.get('active_model') or not self.env.context.get('active_id'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + model = self.env.context.get('active_model') docs = self.env[model].browse(self.env.context.get('active_id')) get_periods, months, total_mnths = self.get_periods(data['form']) diff --git a/addons/l10n_in_hr_payroll/report/report_hr_yearly_salary_detail.py b/addons/l10n_in_hr_payroll/report/report_hr_yearly_salary_detail.py index 57a74787f5d..bb6e2c75423 100644 --- a/addons/l10n_in_hr_payroll/report/report_hr_yearly_salary_detail.py +++ b/addons/l10n_in_hr_payroll/report/report_hr_yearly_salary_detail.py @@ -4,6 +4,7 @@ from datetime import date from odoo import api, models +from odoo.exceptions import UserError class EmployeesYearlySalaryReport(models.AbstractModel): @@ -127,6 +128,9 @@ class EmployeesYearlySalaryReport(models.AbstractModel): @api.model def render_html(self, docids, data=None): + if not self.env.context.get('active_model') or not self.env.context.get('active_id'): + raise UserError(_("Some data are missing, this report cannot be printed.")) + model = self.env.context.get('active_model') docs = self.env[model].browse(self.env.context.get('active_id')) docargs = { diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py index 3421738f1c6..1f59087a2c2 100644 --- a/addons/mrp/models/mrp_production.py +++ b/addons/mrp/models/mrp_production.py @@ -208,11 +208,8 @@ class MrpProduction(models.Model): @api.depends('move_raw_ids.quantity_done', 'move_finished_ids.quantity_done') def _compute_post_visible(self): for order in self: - if order.product_tmpl_id._is_cost_method_standard(): - order.post_visible = any((x.quantity_done > 0 and x.state not in ['done', 'cancel']) for x in order.move_raw_ids) or \ - any((x.quantity_done > 0 and x.state not in ['done' 'cancel']) for x in order.move_finished_ids) - else: - order.post_visible = any((x.quantity_done > 0 and x.state not in ['done' 'cancel']) for x in order.move_finished_ids) + order.post_visible = any(order.move_raw_ids.filtered(lambda x: (x.quantity_done) > 0 and (x.state not in ['done', 'cancel']))) or \ + any(order.move_finished_ids.filtered(lambda x: (x.quantity_done) > 0 and (x.state not in ['done', 'cancel']))) @api.multi @api.depends('workorder_ids.state', 'move_finished_ids') diff --git a/addons/mrp/views/mrp_production_views.xml b/addons/mrp/views/mrp_production_views.xml index 40a30df4bad..20140bdbae9 100644 --- a/addons/mrp/views/mrp_production_views.xml +++ b/addons/mrp/views/mrp_production_views.xml @@ -48,7 +48,7 @@