mirror of
https://github.com/bringout/oca-workflow-process.git
synced 2026-04-19 05:32:05 +02:00
Initial commit: OCA Workflow Process packages (456 packages)
This commit is contained in:
commit
d366e42934
18799 changed files with 1284507 additions and 0 deletions
|
|
@ -0,0 +1,65 @@
|
|||
from odoo import _, fields, models
|
||||
|
||||
|
||||
class ProjectProject(models.Model):
|
||||
_inherit = "project.project"
|
||||
|
||||
sprint_ids = fields.One2many(
|
||||
comodel_name="project.sprint",
|
||||
inverse_name="project_id",
|
||||
string="Sprints",
|
||||
)
|
||||
sprint_count = fields.Integer(compute="_compute_sprint_count")
|
||||
backlog_count = fields.Integer(compute="_compute_backlog_count")
|
||||
|
||||
def _compute_backlog_count(self):
|
||||
for project in self:
|
||||
project.backlog_count = len(
|
||||
project.task_ids.filtered(
|
||||
lambda task: not task.sprint_id and task.kanban_state != "done"
|
||||
)
|
||||
)
|
||||
|
||||
def _compute_sprint_count(self):
|
||||
unassigned_sprint_count = self.env["project.sprint"].search(
|
||||
[("project_id", "=", False)], count=True
|
||||
)
|
||||
for project in self:
|
||||
project.sprint_count = len(project.sprint_ids) + unassigned_sprint_count
|
||||
|
||||
def action_sprints(self):
|
||||
self.ensure_one()
|
||||
return {
|
||||
"name": _("Sprints"),
|
||||
"type": "ir.actions.act_window",
|
||||
"res_model": "project.sprint",
|
||||
"view_mode": "tree,form,timeline",
|
||||
"domain": ["|", ("project_id", "=", self.id), ("project_id", "=", False)],
|
||||
"context": {"default_project_id": self.id},
|
||||
}
|
||||
|
||||
def action_backlog(self):
|
||||
self.ensure_one()
|
||||
return {
|
||||
"name": _("Backlog"),
|
||||
"type": "ir.actions.act_window",
|
||||
"res_model": "project.task",
|
||||
"view_mode": "tree,form",
|
||||
"domain": [
|
||||
("project_id", "=", self.id),
|
||||
("sprint_id", "=", False),
|
||||
("kanban_state", "!=", "done"),
|
||||
],
|
||||
"context": {"default_project_id": self.id},
|
||||
}
|
||||
|
||||
def action_sprint_timeline(self):
|
||||
self.ensure_one()
|
||||
return {
|
||||
"name": _("Sprint Timeline"),
|
||||
"type": "ir.actions.act_window",
|
||||
"res_model": "project.task",
|
||||
"view_mode": "timeline",
|
||||
"domain": [("project_id", "=", self.id), ("sprint_id", "!=", False)],
|
||||
"context": {"default_project_id": self.id, "no_create": True},
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue