Update to latest project_phase changes.
This commit is contained in:
parent
01dd1923fd
commit
caae16fefc
|
@ -9,6 +9,6 @@ def register():
|
|||
role.WorkConfiguration,
|
||||
role.Role,
|
||||
role.Allocation,
|
||||
role.TaskPhase,
|
||||
role.WorkStatus,
|
||||
role.Work,
|
||||
module='project_role', type_='model')
|
||||
|
|
18
role.py
18
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
|
||||
|
|
18
role.xml
18
role.xml
|
@ -25,16 +25,16 @@
|
|||
<field name="view" ref="project_role_view_form"/>
|
||||
<field name="act_window" ref="act_project_role"/>
|
||||
</record>
|
||||
<!-- add roles to phase -->
|
||||
<record model="ir.ui.view" id="project_phase_view_form">
|
||||
<field name="model">project.work.task_phase</field>
|
||||
<field name="name">task_phase_form</field>
|
||||
<field name="inherit" ref="project_phase.project_phase_view_form"/>
|
||||
<!-- add roles to status -->
|
||||
<record model="ir.ui.view" id="work_status_view_form">
|
||||
<field name="model">project.work.status</field>
|
||||
<field name="name">work_status_form</field>
|
||||
<field name="inherit" ref="project.work_status_view_form"/>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="project_phase_view_list">
|
||||
<field name="model">project.work.task_phase</field>
|
||||
<field name="name">task_phase_list</field>
|
||||
<field name="inherit" ref="project_phase.project_phase_view_list"/>
|
||||
<record model="ir.ui.view" id="work_status_view_list">
|
||||
<field name="model">project.work.status</field>
|
||||
<field name="name">work_status_list</field>
|
||||
<field name="inherit" ref="project.work_status_view_list"/>
|
||||
</record>
|
||||
<!-- add roles to allocations -->
|
||||
<record model="ir.ui.view" id="allocation_view_form">
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<data>
|
||||
<xpath expr="/form/field[@name='sequence']" position="after">
|
||||
<xpath expr="//field[@name='sequence']" position="after">
|
||||
<label name="role"/>
|
||||
<field name="role"/>
|
||||
</xpath>
|
Loading…
Reference in New Issue