diff --git a/__init__.py b/__init__.py
index dbe5c3d..5d116c9 100644
--- a/__init__.py
+++ b/__init__.py
@@ -9,6 +9,6 @@ def register():
role.WorkConfiguration,
role.Role,
role.Allocation,
- role.TaskPhase,
+ role.WorkStatus,
role.Work,
module='project_role', type_='model')
diff --git a/role.py b/role.py
index f6eebc6..2588af3 100644
--- a/role.py
+++ b/role.py
@@ -19,8 +19,8 @@ class Allocation(metaclass=PoolMeta):
role = fields.Many2One('project.role', "Role", required=True)
-class TaskPhase(metaclass=PoolMeta):
- __name__= 'project.work.task_phase'
+class WorkStatus(metaclass=PoolMeta):
+ __name__= 'project.work.status'
role = fields.Many2One('project.role', "Role")
@@ -73,7 +73,7 @@ class Work(metaclass=PoolMeta):
allocations = []
existing_roles = {x.role for x in self.allocations if x.role}
for line in self.tracker.workflow.lines:
- role = line.phase.role
+ role = line.status.role
if not role or role in existing_roles:
continue
existing_roles.add(role)
@@ -88,31 +88,31 @@ class Work(metaclass=PoolMeta):
def _get_assignee_query(cls):
pool = Pool()
Allocation = pool.get('project.allocation')
- Phase = pool.get('project.work.task_phase')
+ Status = pool.get('project.work.status')
Employee = pool.get('company.employee')
Party = pool.get('party.party')
Role = pool.get('project.role')
work = cls.__table__()
allocation = Allocation.__table__()
- phase = Phase.__table__()
+ status = Status.__table__()
employee = Employee.__table__()
party = Party.__table__()
role = Role.__table__()
join1 = work.join(allocation, condition = work.id == allocation.work)
- join2 = join1.join(phase, condition = phase.id == work.task_phase)
+ join2 = join1.join(status, condition = status.id == work.status)
join3 = join2.join(employee, condition = allocation.employee == employee.id)
join4 = join3.join(party, condition = party.id == employee.party)
join5 = join4.join(role, condition = allocation.role == role.id)
query = join5.select(work.id)
- query.where = (phase.role == allocation.role)
+ query.where = (status.role == allocation.role)
return query, party, role
def get_assignee(self, name):
- if not self.task_phase:
+ if not self.status:
return
- role_need = self.task_phase.role
+ role_need = self.status.role
for allocation in self.allocations:
if allocation.role == role_need:
return allocation.employee.id
diff --git a/role.xml b/role.xml
index 4e1a103..651af38 100644
--- a/role.xml
+++ b/role.xml
@@ -25,16 +25,16 @@
-
-
- project.work.task_phase
- task_phase_form
-
+
+
+ project.work.status
+ work_status_form
+
-
- project.work.task_phase
- task_phase_list
-
+
+ project.work.status
+ work_status_list
+
diff --git a/tests/scenario_project_role.rst b/tests/scenario_project_role.rst
index 351a03e..adb5c23 100644
--- a/tests/scenario_project_role.rst
+++ b/tests/scenario_project_role.rst
@@ -63,17 +63,19 @@ Create Roles::
>>> reviewer.name = 'Reviewer'
>>> reviewer.save()
-Create TaskPhase::
+Create Status::
- >>> Task_Phase = Model.get('project.work.task_phase')
- >>> phase = Task_Phase()
- >>> phase.name = 'inici'
- >>> phase.role = dev
- >>> phase.save()
- >>> phase2 = Task_Phase()
- >>> phase2.name = 'test'
- >>> phase2.role = tester
- >>> phase2.save()
+ >>> Status = Model.get('project.work.status')
+ >>> status = Status()
+ >>> status.name = 'Start'
+ >>> status.role = dev
+ >>> status.types = ['task']
+ >>> status.save()
+ >>> status2 = Status()
+ >>> status2.name = 'Test'
+ >>> status2.role = tester
+ >>> status2.types = ['task']
+ >>> status2.save()
Create Workflow::
@@ -84,15 +86,15 @@ Create Workflow::
Create Workflow Lines ::
- >>> Workflow_Line = Model.get('project.work.workflow.line')
- >>> workflow_line = Workflow_Line()
+ >>> WorkflowLine = Model.get('project.work.workflow.line')
+ >>> workflow_line = WorkflowLine()
>>> workflow_line.workflow = workflow
- >>> workflow_line.phase = phase
+ >>> workflow_line.status = status
>>> workflow_line.save()
- >>> workflow_line2 = Workflow_Line()
+ >>> workflow_line2 = WorkflowLine()
>>> workflow_line2.workflow = workflow
- >>> workflow_line2.phase = phase2
+ >>> workflow_line2.status = status2
>>> workflow_line2.save()
Create Tracker::
@@ -119,6 +121,8 @@ Create Project::
>>> project.type = 'project'
>>> project.status = open
>>> project.save()
+ >>> project.allocations
+ []
Create Allocation::
@@ -137,20 +141,19 @@ Create Task::
>>> task.name = 'Task'
>>> task.company = company
>>> task.tracker = tracker
- >>> task.task_phase = workflow_line2.phase
- >>> task.status = open
+ >>> task.status = workflow_line2.status
>>> task.save()
Searcher ::
>>> result, = Work.find(['name','ilike', '%Tas%'])
- >>> result.id == task.id
+ >>> result == task
True
Searcher Asignee Tests::
>>> result, = Work.find(['assignee', 'ilike', '%emp2%'])
- >>> result.id == task.id
+ >>> result == task
True
>>> result = Work.find(['assignee', 'ilike', '%emp1%'])
>>> result
@@ -158,17 +161,19 @@ Searcher Asignee Tests::
Searcher employee/role::
- >>> result, = Work.find(['role_employee', 'ilike', '%emp1/dev%'])
- >>> result.id == task.id
+ >>> result = Work.find(['role_employee', 'ilike', '%emp1/dev%'],
+ ... order=[('id', 'ASC')])
+ >>> result == [project, task]
True
>>> result, = Work.find(['role_employee', 'ilike', '%emp2/test%'])
- >>> result.id == task.id
+ >>> result == task
True
>>> result = Work.find(['role_employee', 'ilike', '%emp1/test%'])
>>> result
[]
- >>> result, = Work.find(['role_employee', 'ilike', '%emp1%'])
- >>> result.id == task.id
+ >>> result = Work.find(['role_employee', 'ilike', '%emp1%'],
+ ... order=[('id', 'ASC')])
+ >>> result == [project, task]
True
>>> result = Work.find(['role_employee', 'ilike', '%test%'])
>>> result
@@ -178,14 +183,16 @@ On_change_parent test::
>>> task.allocations[0].employee = employee2
>>> task.save()
- >>> Work.find(['role_employee', 'ilike', '%emp1/dev%'])
- []
+ >>> result = Work.find(['role_employee', 'ilike', '%emp1/dev%'])
+ >>> result == [project]
+ True
>>> task.parent = None
>>> task.save()
>>> task.parent = project
>>> task.save()
- >>> result, = Work.find(['role_employee', 'ilike', '%emp1/dev%'])
- >>> result.id == task.id
+ >>> result = Work.find(['role_employee', 'ilike', '%emp1/dev%'],
+ ... order=[('id', 'ASC')])
+ >>> result == [project, task]
True
>>> allocation2 = Allocation()
>>> allocation2.role = reviewer
@@ -193,24 +200,26 @@ On_change_parent test::
>>> allocation2.work = task
>>> allocation2.save()
>>> result, = Work.find(['role_employee', 'ilike', '%emp2/revi%'])
- >>> result.id == task.id
+ >>> result == task
True
>>> task.parent = None
>>> task.save()
>>> task.parent = project
>>> task.save()
>>> result, = Work.find(['role_employee', 'ilike', '%emp2/revi%'])
- >>> result.id == task.id
+ >>> result == task
True
>>> task.allocations[0].delete()
>>> task.save()
- >>> result = Work.find(['role_employee', 'ilike', '%emp1/dev%'])
- >>> result
- []
+ >>> result = Work.find(['role_employee', 'ilike', '%emp1/dev%'],
+ ... order=[('id', 'ASC')])
+ >>> result == [project]
+ True
>>> task.parent = None
>>> task.save()
>>> task.parent = project
>>> task.save()
- >>> result, = Work.find(['role_employee', 'ilike', '%emp1/dev%'])
- >>> result.id == task.id
+ >>> result = Work.find(['role_employee', 'ilike', '%emp1/dev%'],
+ ... order=[('id', 'ASC')])
+ >>> result == [project, task]
True
diff --git a/view/task_phase_form.xml b/view/work_status_form.xml
similarity index 56%
rename from view/task_phase_form.xml
rename to view/work_status_form.xml
index 671c397..ec50923 100644
--- a/view/task_phase_form.xml
+++ b/view/work_status_form.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/view/task_phase_list.xml b/view/work_status_list.xml
similarity index 100%
rename from view/task_phase_list.xml
rename to view/work_status_list.xml