Skip to content

Commit

Permalink
Merge pull request #38 from Domatix/13.0-fix_stages
Browse files Browse the repository at this point in the history
[FIX] helpdesk_mgmt: automatic stage
  • Loading branch information
catalin-domatix authored Aug 5, 2020
2 parents ba0860b + ff3803f commit 8339b85
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 20 deletions.
33 changes: 32 additions & 1 deletion helpdesk_mgmt/models/helpdesk_ticket.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import random
from datetime import datetime
from datetime import datetime, timedelta

from odoo import _, api, fields, models, tools
from odoo.exceptions import AccessError
Expand Down Expand Up @@ -149,6 +149,37 @@ def _read_group_stage_ids(self, stages, domain, order):
string="Automatic last update", default=datetime.now()
)

ticket_change = fields.Datetime(
string="Next stage date", compute="_compute_next_stage"
)

@api.depends(
"stage_id.auto_next_number",
"stage_id.auto_next_type",
"stage_id.auto_next_stage_id",
)
def _compute_next_stage(self):
for record in self:
if (
record.stage_id.auto_next_number
and record.stage_id.auto_next_type
and record.stage_id.auto_next_stage_id
):
record.ticket_change = (
timedelta(hours=record.stage_id.auto_next_number)
+ record.auto_last_update
)
if record.stage_id.auto_next_type == "day":
record.ticket_change = (
timedelta(days=record.stage_id.auto_next_number)
+ record.auto_last_update
)
elif record.stage_id.auto_next_type == "week":
record.ticket_change = (
timedelta(weeks=record.stage_id.auto_next_number)
+ record.auto_last_update
)

def send_user_mail(self):
template = self.env.ref("helpdesk_mgmt.assignment_email_template")
self.message_post_with_template(
Expand Down
21 changes: 2 additions & 19 deletions helpdesk_mgmt/models/helpdesk_ticket_stage.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from datetime import datetime, timedelta
from datetime import datetime

from odoo import api, fields, models

Expand Down Expand Up @@ -51,18 +51,6 @@ class HelpdeskTicketStage(models.Model):
comodel_name="helpdesk.ticket", inverse_name="stage_id", string="Tickets",
)

@staticmethod
def compute_next_datetime(
date: datetime, increment: int, auto_type: str
) -> datetime:
_date = timedelta(hours=increment) + date
if auto_type == "day":
_date = timedelta(days=increment) + date
elif auto_type == "week":
_date = timedelta(weeks=increment) + date

return _date

# called by cron
@api.model
def change_stage(self):
Expand All @@ -73,12 +61,7 @@ def change_stage(self):
and stage_id.auto_next_stage_id
):
for ticket_id in stage_id.ticket_ids.filtered(
lambda x: datetime.now()
> self.compute_next_datetime(
x.auto_last_update,
self.auto_next_number,
self.auto_next_stage_id.auto_next_type,
)
lambda x: datetime.now() > x.ticket_change
):
ticket_id.stage_id = stage_id.auto_next_stage_id.id
ticket_id.auto_last_update = datetime.now()
1 change: 1 addition & 0 deletions helpdesk_mgmt/tests/test_helpdesk_ticket.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ def test_automatic_assign(self):
self.assertEqual(len(self.auto_assign_ticket_id.user_id), 0)
self.ticket._onchange_domain_user_id()
self.ticket._compute_domain_user_id()
self.ticket._compute_next_stage()

# Fixed
self.team_id.auto_assign_type = "fixed"
Expand Down

0 comments on commit 8339b85

Please sign in to comment.