Add project_type on work and model access on project.work

This commit is contained in:
Cédric Krier
2008-06-09 19:18:12 +02:00
parent 50faa3ccb8
commit 7cfbab01ba
3 changed files with 92 additions and 5 deletions
+12
View File
@@ -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>
+29 -2
View File
@@ -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()
+51 -3
View File
@@ -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>