diff --git a/addons/website_event_track/models/event_track.py b/addons/website_event_track/models/event_track.py index 5eaac977767..302090a1e1e 100644 --- a/addons/website_event_track/models/event_track.py +++ b/addons/website_event_track/models/event_track.py @@ -42,15 +42,24 @@ class Track(models.Model): group_expand='_read_group_stage_ids', required=True, tracking=True) is_accepted = fields.Boolean('Is Accepted', related='stage_id.is_accepted', readonly=True) + legend_blocked = fields.Char(related='stage_id.legend_blocked', + string='Kanban Blocked Explanation', readonly=True) + legend_done = fields.Char(related='stage_id.legend_done', + string='Kanban Valid Explanation', readonly=True) + legend_normal = fields.Char(related='stage_id.legend_normal', + string='Kanban Ongoing Explanation', readonly=True) kanban_state = fields.Selection([ ('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')], string='Kanban State', - copy=False, default='normal', required=True, tracking=True, + copy=False, default='normal', required=True, help="A track's kanban state indicates special situations affecting it:\n" " * Grey is the default situation\n" " * Red indicates something is preventing the progress of this track\n" " * Green indicates the track is ready to be pulled to the next stage") + kanban_state_label = fields.Char( + string='Kanban State Label', compute='_compute_kanban_state_label', store=True, + tracking=True) partner_id = fields.Many2one('res.partner', 'Contact', help="Contact of the track, may be different from speaker.") # speaker information partner_name = fields.Char( @@ -159,6 +168,18 @@ class Track(models.Model): if track.id: track.website_url = '/event/%s/track/%s' % (slug(track.event_id), slug(track)) + # STAGES + + @api.depends('stage_id', 'kanban_state') + def _compute_kanban_state_label(self): + for track in self: + if track.kanban_state == 'normal': + track.kanban_state_label = track.stage_id.legend_normal + elif track.kanban_state == 'blocked': + track.kanban_state_label = track.stage_id.legend_blocked + else: + track.kanban_state_label = track.stage_id.legend_done + # SPEAKER @api.depends('partner_id') diff --git a/addons/website_event_track/models/event_track_stage.py b/addons/website_event_track/models/event_track_stage.py index 9e1a177c0f3..c5c33cb5b88 100644 --- a/addons/website_event_track/models/event_track_stage.py +++ b/addons/website_event_track/models/event_track_stage.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import fields, models +from odoo import _, fields, models class TrackStage(models.Model): @@ -15,6 +15,13 @@ class TrackStage(models.Model): 'mail.template', string='Email Template', domain=[('model', '=', 'event.track')], help="If set an email will be sent to the customer when the track reaches this step.") + # legends + color = fields.Integer(string='Color') + description = fields.Text(string='Description', translate=True) + legend_blocked = fields.Char('Red Kanban Label', default=lambda s: _('Blocked'), translate=True) + legend_done = fields.Char('Green Kanban Label', default=lambda s: _('Ready for Next Stage'), translate=True) + legend_normal = fields.Char('Grey Kanban Label', default=lambda s: _('In Progress'), translate=True) + # pipe fold = fields.Boolean( string='Folded in Kanban', help='This stage is folded in the kanban view when there are no records in that stage to display.') @@ -26,4 +33,3 @@ class TrackStage(models.Model): help='Done tracks are automatically published so that they are available in frontend.') is_cancel = fields.Boolean(string='Canceled Stage') is_done = fields.Boolean() - color = fields.Integer(string='Color') diff --git a/addons/website_event_track/views/event_track_stage_views.xml b/addons/website_event_track/views/event_track_stage_views.xml index 9ee7adf3c2b..a326d6c5027 100644 --- a/addons/website_event_track/views/event_track_stage_views.xml +++ b/addons/website_event_track/views/event_track_stage_views.xml @@ -32,6 +32,27 @@ + + + Define labels explaining kanban state management. + + + + + + + + + Add a description to help your coworkers understand the meaning and purpose of the stage. + + + diff --git a/addons/website_event_track/views/event_track_views.xml b/addons/website_event_track/views/event_track_views.xml index 2977b61e477..e018de90ee0 100644 --- a/addons/website_event_track/views/event_track_views.xml +++ b/addons/website_event_track/views/event_track_views.xml @@ -17,13 +17,16 @@ event.track + + + + + + + + + - - - - - - @@ -87,6 +90,7 @@ + @@ -139,6 +143,9 @@ + + +
+ Define labels explaining kanban state management. +
+ Add a description to help your coworkers understand the meaning and purpose of the stage. +