This module adds a simple, manually filled ``date_deadline`` Date field, tracked in the chatter, with an overdue flag, a red kanban decoration and search filters (overdue, due today, group by deadline).
30 lines
952 B
Python
30 lines
952 B
Python
from odoo import api, fields, models
|
|
|
|
|
|
class HelpdeskTicket(models.Model):
|
|
_inherit = "helpdesk.ticket"
|
|
|
|
date_deadline = fields.Date(
|
|
string="Deadline",
|
|
tracking=True,
|
|
help="Target date by which the ticket should be resolved.",
|
|
)
|
|
deadline_overdue = fields.Boolean(
|
|
string="Overdue",
|
|
compute="_compute_deadline_overdue",
|
|
help="True when the deadline is strictly before today.",
|
|
)
|
|
|
|
@api.depends("date_deadline")
|
|
def _compute_deadline_overdue(self):
|
|
"""Flag tickets whose deadline is strictly before today.
|
|
|
|
A ticket without a deadline is never overdue. The comparison uses
|
|
the current user's timezone so the flag flips at local midnight.
|
|
"""
|
|
today = fields.Date.context_today(self)
|
|
for ticket in self:
|
|
ticket.deadline_overdue = bool(
|
|
ticket.date_deadline and ticket.date_deadline < today
|
|
)
|