diff --git a/addons/hr_recruitment/models/hr_recruitment.py b/addons/hr_recruitment/models/hr_recruitment.py index bcb5b55445e60..9bc544bab1ecf 100644 --- a/addons/hr_recruitment/models/hr_recruitment.py +++ b/addons/hr_recruitment/models/hr_recruitment.py @@ -63,6 +63,12 @@ class RecruitmentStage(models.Model): fold = fields.Boolean( "Folded in Recruitment Pipe", help="This stage is folded in the kanban view when there are no records in that stage to display.") + legend_blocked = fields.Char( + 'Red Kanban Label', default=lambda self: _('Blocked'), translate=True, required=True) + legend_done = fields.Char( + 'Green Kanban Label', default=lambda self: _('Ready for Next Stage'), translate=True, required=True) + legend_normal = fields.Char( + 'Grey Kanban Label', default=lambda self: _('In Progress'), translate=True, required=True) @api.model def default_get(self, fields): @@ -156,6 +162,15 @@ def _default_company_id(self): attachment_number = fields.Integer(compute='_get_attachment_number', string="Number of Attachments") employee_name = fields.Char(related='emp_id.name', string="Employee Name") attachment_ids = fields.One2many('ir.attachment', 'res_id', domain=[('res_model', '=', 'hr.applicant')], string='Attachments') + kanban_state = fields.Selection([ + ('normal', 'Grey'), + ('done', 'Green'), + ('blocked', 'Red')], string='Kanban State', + copy=False, default='normal', required=True) + legend_blocked = fields.Char(related='stage_id.legend_blocked', string='Kanban Blocked') + legend_done = fields.Char(related='stage_id.legend_done', string='Kanban Valid') + legend_normal = fields.Char(related='stage_id.legend_normal', string='Kanban Ongoing') + @api.depends('date_open', 'date_closed') @api.one @@ -267,6 +282,8 @@ def write(self, vals): if 'stage_id' in vals: vals['date_last_stage_update'] = fields.Datetime.now() vals.update(self._onchange_stage_id_internal(vals.get('stage_id'))['value']) + if 'kanban_state' not in vals: + vals['kanban_state'] = 'normal' for applicant in self: vals['last_stage_id'] = applicant.stage_id.id res = super(Applicant, self).write(vals) diff --git a/addons/hr_recruitment/static/src/scss/hr_job.scss b/addons/hr_recruitment/static/src/scss/hr_job.scss index 852a06d10c228..671d7d20882e6 100644 --- a/addons/hr_recruitment/static/src/scss/hr_job.scss +++ b/addons/hr_recruitment/static/src/scss/hr_job.scss @@ -53,4 +53,11 @@ } } } -} \ No newline at end of file +} + +.o_kanban_view .oe_kanban_card { + .o_kanban_state_with_padding { + padding-left:7%; + padding-bottom:5%; + } +} diff --git a/addons/hr_recruitment/views/hr_recruitment_views.xml b/addons/hr_recruitment/views/hr_recruitment_views.xml index 0d5664d61421c..b46e557be71c7 100644 --- a/addons/hr_recruitment/views/hr_recruitment_views.xml +++ b/addons/hr_recruitment/views/hr_recruitment_views.xml @@ -102,6 +102,10 @@ options='{"terminology": "archive"}'/> + + + +
@@ -708,6 +722,18 @@ + +

+ You can define here the labels that will be displayed for the kanban state instead + of the default labels. +

+