[ADD] helpdesk_ticket_deadline: add a manual deadline on tickets
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).
This commit is contained in:
1
helpdesk_ticket_deadline/models/__init__.py
Normal file
1
helpdesk_ticket_deadline/models/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from . import helpdesk_ticket
|
||||
29
helpdesk_ticket_deadline/models/helpdesk_ticket.py
Normal file
29
helpdesk_ticket_deadline/models/helpdesk_ticket.py
Normal file
@@ -0,0 +1,29 @@
|
||||
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
|
||||
)
|
||||
Reference in New Issue
Block a user