Add project_type on work and model access on project.work
This commit is contained in:
+12
@@ -1,7 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="res.group" id="group_project_admin">
|
||||
<field name="name">Project Administration</field>
|
||||
</record>
|
||||
<record model="res.user" id="res.user_admin">
|
||||
<field name="groups" eval="[('add', ref('group_project_admin'))]"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Project Management" sequence="7" id="menu_project"
|
||||
icon="tryton-development"/>
|
||||
<menuitem name="Configuration" parent="menu_project"
|
||||
id="menu_configuration" groupd="group_project_admin"
|
||||
sequence="10" icon="tryton-preferences"/>
|
||||
<menuitem name="Reporting" parent="menu_project"
|
||||
id="menu_reporting" sequence="100"/>
|
||||
</data>
|
||||
</tryton>
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
"Project"
|
||||
|
||||
from trytond.osv import fields, OSV
|
||||
import copy
|
||||
|
||||
|
||||
class TimesheetWork(OSV):
|
||||
_name = 'timesheet.work'
|
||||
|
||||
def __init__(self):
|
||||
super(TimesheetWork, self).__init__()
|
||||
self.parent = copy.copy(self.parent)
|
||||
if not self.parent._context:
|
||||
self.parent._context = "{'project_type': locals().get('project_type')}"
|
||||
else:
|
||||
self.parent._context = self.parent._context[:-1] + \
|
||||
",'project_type': locals().get('project_type')" + \
|
||||
self.parent._context[-1:]
|
||||
self._reset_columns()
|
||||
|
||||
TimesheetWork()
|
||||
|
||||
|
||||
class Work(OSV):
|
||||
@@ -11,9 +29,18 @@ class Work(OSV):
|
||||
|
||||
work = fields.Many2One('timesheet.work', 'Work',
|
||||
required=True)
|
||||
party = fields.Many2One('relationship.party', 'Party')
|
||||
project_type = fields.Selection([
|
||||
('project', 'Project'),
|
||||
], 'Type', required=True, select=1)
|
||||
party = fields.Many2One('relationship.party', 'Party',
|
||||
states={
|
||||
'invisible': "project_type != 'project'",
|
||||
})
|
||||
party_address = fields.Many2One('relationship.address', 'Contact Address',
|
||||
domain="[('party', '=', party)]")
|
||||
domain="[('party', '=', party)]",
|
||||
states={
|
||||
'invisible': "project_type != 'project'",
|
||||
})
|
||||
comment = fields.Text('Comment')
|
||||
|
||||
Work()
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
<![CDATA[
|
||||
<tree string="Works">
|
||||
<field name="complete_name"/>
|
||||
<field name="project_type"/>
|
||||
<field name="state"/>
|
||||
<field name="name" select="1" tree_invisible="1"/>
|
||||
<field name="active" select="1" tree_invisible="1"/>
|
||||
</tree>
|
||||
@@ -22,10 +24,16 @@
|
||||
<form string="Work">
|
||||
<label name="name"/>
|
||||
<field name="name"/>
|
||||
<label name="active"/>
|
||||
<field name="active"/>
|
||||
<label name="state"/>
|
||||
<group col="3" colspan="1">
|
||||
<field name="state"/>
|
||||
<label name="active"/>
|
||||
<field name="active"/>
|
||||
</group>
|
||||
<label name="parent"/>
|
||||
<field name="parent"/>
|
||||
<label name="project_type"/>
|
||||
<field name="project_type"/>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<label name="party"/>
|
||||
@@ -59,8 +67,48 @@
|
||||
<field name="view" ref="work_view_form"/>
|
||||
<field name="act_window" ref="act_work_form"/>
|
||||
</record>
|
||||
<menuitem parent="menu_project" action="act_work_form"
|
||||
<menuitem parent="menu_configuration" action="act_work_form"
|
||||
id="menu_work_form"/>
|
||||
|
||||
<record model="ir.model.access" id="access_work">
|
||||
<field name="model" search="[('model', '=', 'project.work')]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.access" id="access_work_admin">
|
||||
<field name="model" search="[('model', '=', 'project.work')]"/>
|
||||
<field name="group" ref="group_project_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_unlink" eval="True"/>
|
||||
</record>
|
||||
|
||||
<menuitem parent="menu_project" action="timesheet.act_work_tree"
|
||||
id="menu_project_tree" name="Projects"/>
|
||||
|
||||
<record model="ir.action.act_window" id="act_project_form">
|
||||
<field name="name">Projects</field>
|
||||
<field name="res_model">project.work</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[('project_type', '=', 'project')]</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_project_form_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="work_view_tree"/>
|
||||
<field name="act_window" ref="act_project_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_project_form_view2">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="work_view_form"/>
|
||||
<field name="act_window" ref="act_project_form"/>
|
||||
</record>
|
||||
<menuitem parent="menu_project_tree" action="act_project_form"
|
||||
id="menu_project_form"/>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
|
||||
Reference in New Issue
Block a user