diff --git a/models/project.py b/models/project.py index 368aa6b55ec480cba8ebd72d374c01d4cc4379b5..e9c6db03ee3d965172756c5bc782159bfac76342 100644 --- a/models/project.py +++ b/models/project.py @@ -1,17 +1,41 @@ # Copyright 2022 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import models +from odoo import api, fields, models class Project(models.Model): _inherit = "project.project" + _order = "display_name" + + display_name = fields.Char(compute="_compute_display_name", store=True, index=True) + type_name = fields.Char(related="type_id.name") + + @api.depends("name", "type_id.name") + def _compute_display_name(self): + for project in self: + project.display_name = ( + "%s / %s" % (project.type_id.name, project.name) + if project.type_id + else project.name + ) def name_get(self): - """ Return the type then project name + """ + Return the type then project name """ res = [] for project in self: - name = "%s / %s" % (project.type_id.name, project.name) if project.type_id else project.name - res.append((project.id, name)) + res.append((project.id, project.display_name)) return res + + def _name_search( + self, name="", args=None, operator="ilike", limit=100, name_get_uid=None + ): + """ + Search for type as well + """ + args = args or [] + if name: + args += [("display_name", operator, name)] + return self._search(args, limit=limit, access_rights_uid=name_get_uid)