diff --git a/addons/base_gengo/wizard/base_gengo_translations.py b/addons/base_gengo/wizard/base_gengo_translations.py index bf860bb7473..df75643ebb6 100644 --- a/addons/base_gengo/wizard/base_gengo_translations.py +++ b/addons/base_gengo/wizard/base_gengo_translations.py @@ -28,23 +28,17 @@ class BaseGengoTranslations(models.TransientModel): _name = 'base.gengo.translations' _description = 'Base Gengo Translations' - @api.model - def default_get(self, fields): - res = super(BaseGengoTranslations, self).default_get(fields) - if 'authorize_credentials' in fields: - res['authorized_credentials'], gengo = self.gengo_authentication() - if 'lang_id' in fields: - res['lang_id'] = get_lang(self.env).id - return res - sync_type = fields.Selection([ ('send', 'Send New Terms'), ('receive', 'Receive Translation'), ('both', 'Both') ], "Sync Type", default='both', required=True) - lang_id = fields.Many2one('res.lang', 'Language', required=True) + lang_id = fields.Many2one( + 'res.lang', 'Language', required=True, + default=lambda s: get_lang(s.env).id) sync_limit = fields.Integer("No. of terms to sync", default=20) - authorized_credentials = fields.Boolean('The private and public keys are valid') + authorized_credentials = fields.Boolean( + 'The private and public keys are valid', default=lambda s: s.gengo_authentication()[0]) def init(self): icp = self.env['ir.config_parameter'].sudo() diff --git a/addons/crm/wizard/crm_lead_to_opportunity_mass.py b/addons/crm/wizard/crm_lead_to_opportunity_mass.py index 8748325b80b..19f2c73a886 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity_mass.py +++ b/addons/crm/wizard/crm_lead_to_opportunity_mass.py @@ -9,17 +9,12 @@ class Lead2OpportunityMassConvert(models.TransientModel): _description = 'Convert Lead to Opportunity (in mass)' _inherit = 'crm.lead2opportunity.partner' - @api.model - def default_get(self, fields): - res = super(Lead2OpportunityMassConvert, self).default_get(fields) - if 'lead_tomerge_ids' in fields and not res.get('lead_tomerge_ids'): - res['lead_tomerge_ids'] = self.env.context.get('active_ids', []) - return res - lead_id = fields.Many2one(required=False) lead_tomerge_ids = fields.Many2many( 'crm.lead', 'crm_convert_lead_mass_lead_rel', - string='Active Leads', context={'active_test': False}) + string='Active Leads', context={'active_test': False}, + default=lambda self: self.env.context.get('active_ids', []), + ) user_ids = fields.Many2many('res.users', string='Salespersons') deduplicate = fields.Boolean('Apply deduplication', default=True, help='Merge with existing leads/opportunities of each partner') action = fields.Selection(selection_add=[ diff --git a/addons/fleet/models/fleet_vehicle_cost.py b/addons/fleet/models/fleet_vehicle_cost.py index fb039a4c125..818217faafc 100644 --- a/addons/fleet/models/fleet_vehicle_cost.py +++ b/addons/fleet/models/fleet_vehicle_cost.py @@ -130,16 +130,6 @@ class FleetVehicleLogServices(models.Model): _rec_name = 'service_type_id' _description = 'Services for vehicles' - @api.model - def default_get(self, default_fields): - res = super(FleetVehicleLogServices, self).default_get(default_fields) - service = self.env.ref('fleet.type_service_service_8', raise_if_not_found=False) - res.update({ - 'date': fields.Date.context_today(self), - 'service_type_id': service.id if service else None, - }) - return res - active = fields.Boolean(default=True) vehicle_id = fields.Many2one('fleet.vehicle', 'Vehicle', required=True, help='Vehicle concerned by this log') amount = fields.Monetary('Cost') @@ -148,14 +138,17 @@ class FleetVehicleLogServices(models.Model): odometer = fields.Float(compute="_get_odometer", inverse='_set_odometer', string='Odometer Value', help='Odometer measure of the vehicle at the moment of this log') odometer_unit = fields.Selection(related='vehicle_id.odometer_unit', string="Unit", readonly=True) - date = fields.Date(help='Date when the cost has been executed') + date = fields.Date(help='Date when the cost has been executed', default=fields.Date.context_today) company_id = fields.Many2one('res.company', 'Company', default=lambda self: self.env.company) currency_id = fields.Many2one('res.currency', related='company_id.currency_id') purchaser_id = fields.Many2one('res.partner', string="Driver", compute='_compute_purchaser_id', readonly=False, store=True) inv_ref = fields.Char('Vendor Reference') vendor_id = fields.Many2one('res.partner', 'Vendor') notes = fields.Text() - service_type_id = fields.Many2one('fleet.service.type', 'Service Type', required=True) + service_type_id = fields.Many2one( + 'fleet.service.type', 'Service Type', required=True, + default=lambda self: self.env.ref('fleet.type_service_service_8', raise_if_not_found=False), + ) state = fields.Selection([ ('todo', 'To Do'), ('running', 'Running'), diff --git a/addons/hr/wizard/hr_departure_wizard.py b/addons/hr/wizard/hr_departure_wizard.py index 5e7782a1648..af8619270d8 100644 --- a/addons/hr/wizard/hr_departure_wizard.py +++ b/addons/hr/wizard/hr_departure_wizard.py @@ -8,14 +8,6 @@ class HrDepartureWizard(models.TransientModel): _name = 'hr.departure.wizard' _description = 'Departure Wizard' - @api.model - def default_get(self, fields): - res = super(HrDepartureWizard, self).default_get(fields) - if (not fields or 'employee_id' in fields) and 'employee_id' not in res: - if self.env.context.get('active_id'): - res['employee_id'] = self.env.context['active_id'] - return res - departure_reason = fields.Selection([ ('fired', 'Fired'), ('resigned', 'Resigned'), @@ -23,7 +15,10 @@ class HrDepartureWizard(models.TransientModel): ], string="Departure Reason", default="fired") departure_description = fields.Text(string="Additional Information") departure_date = fields.Date(string="Departure Date", required=True, default=fields.Date.today) - employee_id = fields.Many2one('hr.employee', string='Employee', required=True) + employee_id = fields.Many2one( + 'hr.employee', string='Employee', required=True, + default=lambda self: self.env.context.get('active_id', None), + ) archive_private_address = fields.Boolean('Archive Private Address', default=True) def action_register_departure(self): diff --git a/addons/hr/wizard/hr_plan_wizard.py b/addons/hr/wizard/hr_plan_wizard.py index 0a9e27c35ea..69e1ee280b9 100644 --- a/addons/hr/wizard/hr_plan_wizard.py +++ b/addons/hr/wizard/hr_plan_wizard.py @@ -8,16 +8,11 @@ class HrPlanWizard(models.TransientModel): _name = 'hr.plan.wizard' _description = 'Plan Wizard' - @api.model - def default_get(self, fields_list): - res = super(HrPlanWizard, self).default_get(fields_list) - if (not fields_list or 'employee_id' in fields_list) and 'employee_id' not in res: - if self.env.context.get('active_id'): - res['employee_id'] = self.env.context['active_id'] - return res - plan_id = fields.Many2one('hr.plan', default=lambda self: self.env['hr.plan'].search([], limit=1)) - employee_id = fields.Many2one('hr.employee', string='Employee', required=True) + employee_id = fields.Many2one( + 'hr.employee', string='Employee', required=True, + default=lambda self: self.env.context.get('active_id', None), + ) def action_launch(self): for activity_type in self.plan_id.plan_activity_type_ids: diff --git a/addons/hr_timesheet/wizard/project_task_create_timesheet.py b/addons/hr_timesheet/wizard/project_task_create_timesheet.py index e55043e982d..b919361822b 100644 --- a/addons/hr_timesheet/wizard/project_task_create_timesheet.py +++ b/addons/hr_timesheet/wizard/project_task_create_timesheet.py @@ -11,18 +11,13 @@ class ProjectTaskCreateTimesheet(models.TransientModel): _sql_constraints = [('time_positive', 'CHECK(time_spent > 0)', 'The timesheet\'s time must be positive' )] - @api.model - def default_get(self, fields): - result = super(ProjectTaskCreateTimesheet, self).default_get(fields) - - active_id = self._context.get('active_id') - if 'task_id' in fields and active_id: - result['task_id'] = active_id - return result - time_spent = fields.Float('Time', digits=(16, 2)) description = fields.Char('Description') - task_id = fields.Many2one('project.task', "Task", help="Task for which we are creating a sales order", required=True) + task_id = fields.Many2one( + 'project.task', "Task", required=True, + default=lambda self: self.env.context.get('active_id', None), + help="Task for which we are creating a sales order", + ) def save_timesheet(self): values = { diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 6509cac3e25..a8725944b39 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -209,7 +209,7 @@ class Project(models.Model): date = fields.Date(string='Expiration Date', index=True, tracking=True) subtask_project_id = fields.Many2one('project.project', string='Sub-task Project', ondelete="restrict", help="Project in which sub-tasks of the current project will be created. It can be the current project itself.") - allow_subtasks = fields.Boolean('Sub-tasks') + allow_subtasks = fields.Boolean('Sub-tasks', default=lambda self: self.env.user.has_group('project.group_subtask_project')) # rating fields rating_request_deadline = fields.Datetime(compute='_compute_rating_request_deadline', store=True) @@ -234,13 +234,6 @@ class Project(models.Model): ('project_date_greater', 'check(date >= date_start)', 'Error! project start-date must be lower than project end-date.') ] - @api.model - def default_get(self, *args, **kwargs): - defaults = super().default_get(*args, **kwargs) - if 'allow_subtasks' not in defaults: - defaults['allow_subtasks'] = self.env.user.has_group('project.group_subtask_project') - return defaults - def _compute_alias_enabled(self): for project in self: project.alias_enabled = project.alias_domain and project.alias_id.alias_name diff --git a/addons/snailmail/wizard/snailmail_letter_format_error.py b/addons/snailmail/wizard/snailmail_letter_format_error.py index d8b6c06bd69..38168101e55 100644 --- a/addons/snailmail/wizard/snailmail_letter_format_error.py +++ b/addons/snailmail/wizard/snailmail_letter_format_error.py @@ -5,18 +5,14 @@ class SnailmailLetterFormatError(models.TransientModel): _name = 'snailmail.letter.format.error' _description = 'Format Error Sending a Snailmail Letter' - message_id = fields.Many2one('mail.message') - snailmail_cover = fields.Boolean(string='Add a Cover Page') - - @api.model - def default_get(self, fields): - res = super(SnailmailLetterFormatError, self).default_get(fields) - snailmail_cover = self.env.company.snailmail_cover - res.update({ - 'message_id': self.env.context.get('message_id'), - 'snailmail_cover': snailmail_cover, - }) - return res + message_id = fields.Many2one( + 'mail.message', + default=lambda self: self.env.context.get('message_id', None), + ) + snailmail_cover = fields.Boolean( + string='Add a Cover Page', + default=lambda self: self.env.company.snailmail_cover, + ) def update_resend_action(self): self.env.company.write({'snailmail_cover': self.snailmail_cover}) diff --git a/addons/website/wizard/website_robots.py b/addons/website/wizard/website_robots.py index 7172a3aa6b1..1d68aa4f22a 100644 --- a/addons/website/wizard/website_robots.py +++ b/addons/website/wizard/website_robots.py @@ -7,14 +7,7 @@ class WebsiteRobots(models.TransientModel): _name = "website.robots" _description = "Robots.txt Editor" - content = fields.Text() - - @api.model - def default_get(self, fields): - defaults = super(WebsiteRobots, self).default_get(fields) - if 'content' in fields: - defaults['content'] = self.env['website'].get_current_website().robots_txt - return defaults + content = fields.Text(default=lambda s: s.env['website'].get_current_website().robots_txt) def action_save(self): self.env['website'].get_current_website().robots_txt = self.content