Merge lp:~camptocamp/project-service/7.0-port-project_service_type into lp:~project-core-editors/project-service/trunk

Proposed by Yannick Vaucher @ Camptocamp
Status: Work in progress
Proposed branch: lp:~camptocamp/project-service/7.0-port-project_service_type
Merge into: lp:~project-core-editors/project-service/trunk
Diff against target: 512 lines (+291/-153)
7 files modified
project_service_type/__init__.py (+18/-24)
project_service_type/__openerp__.py (+32/-40)
project_service_type/i18n/en.po (+79/-0)
project_service_type/i18n/fr.po (+79/-0)
project_service_type/project.py (+36/-47)
project_service_type/project_view.xml (+44/-42)
project_service_type/security/ir.model.access.csv (+3/-0)
To merge this branch: bzr merge lp:~camptocamp/project-service/7.0-port-project_service_type
Reviewer Review Type Date Requested Status
Maxime Chambreuil (http://www.savoirfairelinux.com) Abstain
Guewen Baconnier @ Camptocamp Needs Fixing
Daniel Reis Needs Information
Review via email: mp+162135@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Daniel Reis (dreis-pt) wrote :

To fix:
- "WARNING: The model project.service_type has no access rules, consider adding one."

Other comments:
- Project "Type": would it be adequate to call it "Budget type"? Personally I'm not familiar with "Forfait" and "Regie" terms. Probably I know them as "Fixed price" and "Responsibility / Closed price". It would be nice to add a little explanation on these on the field's Help text.

review: Needs Fixing
Revision history for this message
Frederic Clementi - Camptocamp (frederic-clementi) wrote :

Ok for the comment. Do you agree with this king of comment ?

Fixed price -> 'when project price is an upfront agreed price'

Responsibility / Closed price -> 'when invoicing is based on actual worked time (only an hourly/daily price has been agreed).

Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

I updated the terms and made help text:

Forfait (FR) -> Fixed price
Plafond (FR) -> Responsibility / Closed price
Régie (FR) -> Force account

Maybe not the best terms?

Revision history for this message
Daniel Reis (dreis-pt) wrote :

Sorry for not commenting earlier.

I've just learned that v7 official modules have some support for different type of service projects: take a look at https://doc.openerp.com/book/4/4_12_Services/4_12_Services_contract

If you install "Contract Management", you get new fields for the invoicing methods to use:
- `fix_price_invoices` flag, if there is fixed invoicing
- `invoice_on timesheets` flag, if there is invoicing based on actual work

Could this make the new `project_type` unnecessary?

review: Needs Information
Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

> I updated the terms and made help text:
>
> Forfait (FR) -> Fixed price
> Plafond (FR) -> Responsibility / Closed price
> Régie (FR) -> Force account
>
> Maybe not the best terms?

Renaming the string of a selection is a thing. The 'stored' part of the selection should be renamed as well.

> If you install "Contract Management", you get new fields for the invoicing methods to use:
> - `fix_price_invoices` flag, if there is fixed invoicing
> - `invoice_on timesheets` flag, if there is invoicing based on actual work
>
> Could this make the new `project_type` unnecessary?

Good catch, this is something to consider.

review: Needs Fixing
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

Based on Daniel's comment, I would disapprove this MP as the need is already answered.

But I guess this module is a dependency of others and their migration requires an effort I don't know, which is why I will abstain.

review: Abstain
Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

That's a module we use at least for our own OpenERP.

My guess is that project_type exists for historical reasons, and we might consider to remove it if it can be replaced by native fields. I don't know exactly what it is used for and the implications if we change that.

Yannick, can you check, according to the Daniel's comment, if the 'project_type' is really a requirement for us and if it can be replaced by 'fix_price_invoices' and 'invoice_on timesheets'.

Thanks!

Unmerged revisions

32. By Yannick Vaucher @ Camptocamp

[ADD] project_service_type - translations + reformat help message for field project_type

31. By Yannick Vaucher @ Camptocamp

[IMP] project_service_type - change class name to camelcase

30. By Yannick Vaucher @ Camptocamp

[FIX] project_service_type - remove extra coma

29. By Yannick Vaucher @ Camptocamp

[ADD] project_service_type - security

28. By Yannick Vaucher @ Camptocamp

[IMP] project_service_type - translate budget types

27. By Yannick Vaucher @ Camptocamp

[IMP] project_service_type - retab xml file

26. By Yannick Vaucher @ Camptocamp

[IMP] project_service_type - update license to AGPL

25. By Yannick Vaucher @ Camptocamp

[IMP] project_service_type - use orm.Model instead of alias osv.osv

24. By Yannick Vaucher @ Camptocamp

[MIG] portage of project_service_type by OpenERP

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'project_service_type/__init__.py'
2--- project_service_type/__init__.py 2011-08-12 12:33:12 +0000
3+++ project_service_type/__init__.py 2013-06-17 13:17:26 +0000
4@@ -1,29 +1,23 @@
5 # -*- coding: utf-8 -*-
6 ##############################################################################
7 #
8-# Copyright (c) 2010 Camtocamp SA
9-# @author Joël Grand-Guillaume
10-#
11-# WARNING: This program as such is intended to be used by professional
12-# programmers who take the whole responsability of assessing all potential
13-# consequences resulting from its eventual inadequacies and bugs
14-# End users who are looking for a ready-to-use solution with commercial
15-# garantees and support are strongly adviced to contract a Free Software
16-# Service Company
17-#
18-# This program is Free Software; you can redistribute it and/or
19-# modify it under the terms of the GNU General Public License
20-# as published by the Free Software Foundation; either version 2
21-# of the License, or (at your option) any later version.
22-#
23-# This program is distributed in the hope that it will be useful,
24-# but WITHOUT ANY WARRANTY; without even the implied warranty of
25-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26-# GNU General Public License for more details.
27-#
28-# You should have received a copy of the GNU General Public License
29-# along with this program; if not, write to the Free Software
30-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
31+# Author: Joël Grand-Guillaume
32+# Copyright 2010 Camptocamp SA
33+#
34+# This program is free software: you can redistribute it and/or modify
35+# it under the terms of the GNU Affero General Public License as
36+# published by the Free Software Foundation, either version 3 of the
37+# License, or (at your option) any later version.
38+#
39+# This program is distributed in the hope that it will be useful,
40+# but WITHOUT ANY WARRANTY; without even the implied warranty of
41+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
42+# GNU Affero General Public License for more details.
43+#
44+# You should have received a copy of the GNU Affero General Public License
45+# along with this program. If not, see <http://www.gnu.org/licenses/>.
46 #
47 ##############################################################################
48-import project
49\ No newline at end of file
50+import project
51+
52+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
53
54=== modified file 'project_service_type/__openerp__.py'
55--- project_service_type/__openerp__.py 2013-03-04 16:16:31 +0000
56+++ project_service_type/__openerp__.py 2013-06-17 13:17:26 +0000
57@@ -1,48 +1,40 @@
58 # -*- coding: utf-8 -*-
59 ##############################################################################
60 #
61-# @author Grand-Guillaume Joel
62-# WARNING: This program as such is intended to be used by professional
63-# programmers who take the whole responsability of assessing all potential
64-# consequences resulting from its eventual inadequacies and bugs
65-# End users who are looking for a ready-to-use solution with commercial
66-# garantees and support are strongly adviced to contract a Free Software
67-# Service Company
68-#
69-# This program is Free Software; you can redistribute it and/or
70-# modify it under the terms of the GNU General Public License
71-# as published by the Free Software Foundation; either version 2
72-# of the License, or (at your option) any later version.
73-#
74-# This program is distributed in the hope that it will be useful,
75-# but WITHOUT ANY WARRANTY; without even the implied warranty of
76-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
77-# GNU General Public License for more details.
78-#
79-# You should have received a copy of the GNU General Public License
80-# along with this program; if not, write to the Free Software
81-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
82+# Author: Joël Grand-Guillaume
83+# Copyright 2010 Camptocamp SA
84+#
85+# This program is free software: you can redistribute it and/or modify
86+# it under the terms of the GNU Affero General Public License as
87+# published by the Free Software Foundation, either version 3 of the
88+# License, or (at your option) any later version.
89+#
90+# This program is distributed in the hope that it will be useful,
91+# but WITHOUT ANY WARRANTY; without even the implied warranty of
92+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
93+# GNU Affero General Public License for more details.
94+#
95+# You should have received a copy of the GNU Affero General Public License
96+# along with this program. If not, see <http://www.gnu.org/licenses/>.
97 #
98 ##############################################################################
99-
100 {
101- "name": "Add type of service on project",
102- "version": "1.0",
103- "author": "Camptocamp",
104- "category": "Generic Modules/Projects & Services",
105- "description":
106-"""
107+ 'name' : 'Add type of service on project',
108+ 'version' : '1.0',
109+ 'category' : 'Generic Modules/Projects & Services',
110+ 'description':
111+'''
112 This will add a type of service on project allowing you to categorize them.
113-""",
114- "website": "http://camptocamp.com",
115- "depends": [
116- "project",
117- ],
118- "init_xml": [],
119- "demo_xml": [],
120- "update_xml": [
121- "project_view.xml"
122- ],
123- "active": False,
124- "installable": False
125+''',
126+ 'author' : 'Camptocamp',
127+ 'website': 'http://camptocamp.com',
128+ 'depends' : ['project'],
129+ 'data' : ['project_view.xml'],
130+ 'demo_xml' : [],
131+ 'test': [],
132+ 'installable': True,
133+ 'auto_install': False,
134+ 'application': False
135 }
136+
137+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
138
139=== added directory 'project_service_type/i18n'
140=== added file 'project_service_type/i18n/en.po'
141--- project_service_type/i18n/en.po 1970-01-01 00:00:00 +0000
142+++ project_service_type/i18n/en.po 2013-06-17 13:17:26 +0000
143@@ -0,0 +1,79 @@
144+# Translation of OpenERP Server.
145+# This file contains the translation of the following modules:
146+# * project_service_type
147+#
148+msgid ""
149+msgstr ""
150+"Project-Id-Version: OpenERP Server 7.0\n"
151+"Report-Msgid-Bugs-To: \n"
152+"POT-Creation-Date: 2013-06-17 12:56+0000\n"
153+"PO-Revision-Date: 2013-06-17 12:56+0000\n"
154+"Last-Translator: <>\n"
155+"Language-Team: \n"
156+"MIME-Version: 1.0\n"
157+"Content-Type: text/plain; charset=UTF-8\n"
158+"Content-Transfer-Encoding: \n"
159+"Plural-Forms: \n"
160+
161+#. module: project_service_type
162+#: field:project.project,project_type:0
163+msgid "Budget Type"
164+msgstr "Budget Type"
165+
166+#. module: project_service_type
167+#: selection:project.project,project_type:0
168+msgid "Force account"
169+msgstr "Force account"
170+
171+#. module: project_service_type
172+#: field:project.project,project_service_id:0
173+#: view:project.service_type:0
174+#: field:project.service_type,name:0
175+msgid "Service Type"
176+msgstr "Service Type"
177+
178+#. module: project_service_type
179+#: model:ir.model,name:project_service_type.model_project_service_type
180+msgid "Service type"
181+msgstr "Service type"
182+
183+#. module: project_service_type
184+#: model:ir.module.module,shortdesc:project_service_type.module_meta_information
185+msgid "Add type of service on project"
186+msgstr "Add type of service on project"
187+
188+#. module: project_service_type
189+#: model:ir.model,name:project_service_type.model_project_project
190+msgid "Project"
191+msgstr "Project"
192+
193+#. module: project_service_type
194+#: model:ir.module.module,description:project_service_type.module_meta_information
195+msgid "\n"
196+"This will add a type of service on project allowing you to categorize them.\n"
197+""
198+msgstr "\n"
199+"This will add a type of service on project allowing you to categorize them.\n"
200+""
201+
202+#. module: project_service_type
203+#: model:ir.actions.act_window,name:project_service_type.action_service_type
204+#: model:ir.ui.menu,name:project_service_type.menu_service_type
205+msgid "Service Types"
206+msgstr "Service Types"
207+
208+#. module: project_service_type
209+#: selection:project.project,project_type:0
210+msgid "Responsibility / Closed price"
211+msgstr "Responsibility / Closed price"
212+
213+#. module: project_service_type
214+#: selection:project.project,project_type:0
215+msgid "Fixed price"
216+msgstr "Fixed price"
217+
218+#. module: project_service_type
219+#: help:project.project,project_type:0
220+msgid "Fixed price: When project is an upfront agreed price.\nResponsibility / Closed price : When a ceiling price is defined for the project.\nForce account: When invoicing is based on actual worked time (only an hourly/daily price has been agreed)."
221+msgstr "Fixed price: When project is an upfront agreed price.\nResponsibility / Closed price : When a ceiling price is defined for the project.\nForce account: When invoicing is based on actual worked time (only an hourly/daily price has been agreed)."
222+
223
224=== added file 'project_service_type/i18n/fr.po'
225--- project_service_type/i18n/fr.po 1970-01-01 00:00:00 +0000
226+++ project_service_type/i18n/fr.po 2013-06-17 13:17:26 +0000
227@@ -0,0 +1,79 @@
228+# Translation of OpenERP Server.
229+# This file contains the translation of the following modules:
230+# * project_service_type
231+#
232+msgid ""
233+msgstr ""
234+"Project-Id-Version: OpenERP Server 7.0\n"
235+"Report-Msgid-Bugs-To: \n"
236+"POT-Creation-Date: 2013-06-17 12:57+0000\n"
237+"PO-Revision-Date: 2013-06-17 12:57+0000\n"
238+"Last-Translator: Yannick Vaucher (Camptocamp) <>\n"
239+"Language-Team: \n"
240+"MIME-Version: 1.0\n"
241+"Content-Type: text/plain; charset=UTF-8\n"
242+"Content-Transfer-Encoding: \n"
243+"Plural-Forms: \n"
244+
245+#. module: project_service_type
246+#: field:project.project,project_type:0
247+msgid "Budget Type"
248+msgstr "Type de budget"
249+
250+#. module: project_service_type
251+#: selection:project.project,project_type:0
252+msgid "Force account"
253+msgstr "Régie"
254+
255+#. module: project_service_type
256+#: field:project.project,project_service_id:0
257+#: view:project.service_type:0
258+#: field:project.service_type,name:0
259+msgid "Service Type"
260+msgstr "Type de service"
261+
262+#. module: project_service_type
263+#: model:ir.model,name:project_service_type.model_project_service_type
264+msgid "Service type"
265+msgstr "Type de service"
266+
267+#. module: project_service_type
268+#: model:ir.module.module,shortdesc:project_service_type.module_meta_information
269+msgid "Add type of service on project"
270+msgstr "Ajoute un type de service au project"
271+
272+#. module: project_service_type
273+#: model:ir.model,name:project_service_type.model_project_project
274+msgid "Project"
275+msgstr "Projet"
276+
277+#. module: project_service_type
278+#: model:ir.module.module,description:project_service_type.module_meta_information
279+msgid "\n"
280+"This will add a type of service on project allowing you to categorize them.\n"
281+""
282+msgstr "\n"
283+"Ceci va ajouter un type de service au projet, ce qui permet de les catégoriser.\n"
284+""
285+
286+#. module: project_service_type
287+#: model:ir.actions.act_window,name:project_service_type.action_service_type
288+#: model:ir.ui.menu,name:project_service_type.menu_service_type
289+msgid "Service Types"
290+msgstr "Types de service"
291+
292+#. module: project_service_type
293+#: selection:project.project,project_type:0
294+msgid "Responsibility / Closed price"
295+msgstr "Plafond"
296+
297+#. module: project_service_type
298+#: selection:project.project,project_type:0
299+msgid "Fixed price"
300+msgstr "Forfait"
301+
302+#. module: project_service_type
303+#: help:project.project,project_type:0
304+msgid "Fixed price: When project is an upfront agreed price.\nResponsibility / Closed price : When a ceiling price is defined for the project.\nForce account: When invoicing is based on actual worked time (only an hourly/daily price has been agreed)."
305+msgstr "Forfait: Quand le prix convenu du projet est un prix défini à l'avance.\nPlafond : Quand un prix plafond est défini pour le projet.\nRégie: Quand la facturation se base sur le temps de travail accompli (seul un tarif heure/jour à été convenu)."
306+
307
308=== modified file 'project_service_type/project.py'
309--- project_service_type/project.py 2011-08-12 12:33:12 +0000
310+++ project_service_type/project.py 2013-06-17 13:17:26 +0000
311@@ -1,57 +1,46 @@
312 # -*- coding: utf-8 -*-
313 ##############################################################################
314 #
315-# Copyright (c) 2010 Camtocamp SA
316-# @author Joël Grand-Guillaume
317-# $Id: $
318-#
319-# WARNING: This program as such is intended to be used by professional
320-# programmers who take the whole responsability of assessing all potential
321-# consequences resulting from its eventual inadequacies and bugs
322-# End users who are looking for a ready-to-use solution with commercial
323-# garantees and support are strongly adviced to contract a Free Software
324-# Service Company
325-#
326-# This program is Free Software; you can redistribute it and/or
327-# modify it under the terms of the GNU General Public License
328-# as published by the Free Software Foundation; either version 2
329-# of the License, or (at your option) any later version.
330-#
331-# This program is distributed in the hope that it will be useful,
332-# but WITHOUT ANY WARRANTY; without even the implied warranty of
333-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
334-# GNU General Public License for more details.
335-#
336-# You should have received a copy of the GNU General Public License
337-# along with this program; if not, write to the Free Software
338-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
339+# Author: Joël Grand-Guillaume
340+# Copyright 2010 Camptocamp SA
341+#
342+# This program is free software: you can redistribute it and/or modify
343+# it under the terms of the GNU Affero General Public License as
344+# published by the Free Software Foundation, either version 3 of the
345+# License, or (at your option) any later version.
346+#
347+# This program is distributed in the hope that it will be useful,
348+# but WITHOUT ANY WARRANTY; without even the implied warranty of
349+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
350+# GNU Affero General Public License for more details.
351+#
352+# You should have received a copy of the GNU Affero General Public License
353+# along with this program. If not, see <http://www.gnu.org/licenses/>.
354 #
355 ##############################################################################
356-
357-from osv import fields
358-from osv import osv
359-
360-from tools import config
361-
362-class project_service_type(osv.osv):
363+from openerp.osv import orm, fields
364+
365+class ProjectServiceType(orm.Model):
366 _name = "project.service_type"
367 _description = "Service type"
368-
369 _columns = {
370- 'name': fields.char('Service type', required=True, size=64),
371- }
372-
373-
374-project_service_type()
375-
376-
377-class project_project(osv.osv):
378+ 'name': fields.char('Service Type', required=True, size=64),
379+ }
380+
381+
382+class ProjectProject(orm.Model):
383 _inherit = 'project.project'
384-
385 _columns = {
386- 'project_service_id':fields.many2one('project.service_type', 'Service type', required=True),
387- 'project_type': fields.selection([('forfait', 'Forfait'),('plafond', 'Plafond'),('regie', 'Regie')], 'Type', required=True),
388- }
389-
390-
391-project_project()
392+ 'project_service_id':fields.many2one('project.service_type', 'Service Type', required=True),
393+ 'project_type': fields.selection(
394+ [('forfait', 'Fixed price'),
395+ ('plafond', 'Responsibility / Closed price'),
396+ ('regie', 'Force account')], 'Budget Type', required=True,
397+ help=(
398+ "Fixed price: When project is an upfront agreed price.\n"
399+ "Responsibility / Closed price : When a ceiling price is defined for the project.\n"
400+ "Force account: When invoicing is based on actual"
401+ " worked time (only an hourly/daily price has been agreed).")),
402+ }
403+
404+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
405
406=== modified file 'project_service_type/project_view.xml'
407--- project_service_type/project_view.xml 2011-08-12 12:33:12 +0000
408+++ project_service_type/project_view.xml 2013-06-17 13:17:26 +0000
409@@ -1,50 +1,52 @@
410-<terp>
411-<data>
412-
413+<?xml version="1.0" encoding="utf-8"?>
414+<openerp>
415+ <data>
416+
417 <record model="ir.ui.view" id="view_service_type_form">
418- <field name="name">project.service_type.form</field>
419- <field name="model">project.service_type</field>
420- <field name="type">form</field>
421- <field name="arch" type="xml">
422- <form string="Service type">
423- <field name="name" select="1"/>
424- </form>
425- </field>
426+ <field name="name">project.service_type.form</field>
427+ <field name="model">project.service_type</field>
428+ <field name="arch" type="xml">
429+ <form string="Service Type" version="7.0">
430+ <group>
431+ <field name="name"/>
432+ </group>
433+ </form>
434+ </field>
435 </record>
436+
437 <record model="ir.ui.view" id="view_service_type_list">
438- <field name="name">project.service_type.list</field>
439- <field name="model">project.service_type</field>
440- <field name="type">tree</field>
441- <field name="priority" eval="6"/>
442- <field name="arch" type="xml">
443- <tree string="Service type">
444- <field name="name"/>
445- </tree>
446- </field>
447+ <field name="name">project.service_type.list</field>
448+ <field name="model">project.service_type</field>
449+ <field name="priority" eval="6"/>
450+ <field name="arch" type="xml">
451+ <tree string="Service Type">
452+ <field name="name"/>
453+ </tree>
454+ </field>
455 </record>
456-
457+
458 <record model="ir.actions.act_window" id="action_service_type">
459- <field name="name">Service types</field>
460- <field name="type">ir.actions.act_window</field>
461- <field name="res_model">project.service_type</field>
462- <field name="view_type">form</field>
463- <field name="view_mode">tree,form</field>
464- <field name="view_id" ref="view_service_type_list"/>
465+ <field name="name">Service Types</field>
466+ <field name="type">ir.actions.act_window</field>
467+ <field name="res_model">project.service_type</field>
468+ <field name="view_type">form</field>
469+ <field name="view_mode">tree,form</field>
470+ <field name="view_id" ref="view_service_type_list"/>
471 </record>
472-
473- <menuitem parent="project.menu_definitions" id="menu_service_type" action="action_service_type"/>
474-
475+
476+ <menuitem parent="base.menu_definitions" id="menu_service_type" action="action_service_type"/>
477+
478 <record id="edit_project" model="ir.ui.view">
479- <field name="name">project.project.form</field>
480- <field name="model">project.project</field>
481- <field name="type">form</field>
482- <field name="inherit_id" ref="project.edit_project" />
483- <field name="arch" type="xml">
484- <xpath expr="/form/notebook/page/group/field[@name='warn_manager']" position="before">
485- <field name="project_service_id" widget="selection" />
486- <field name="project_type" />
487- </xpath>
488- </field>
489+ <field name="name">project.project.form</field>
490+ <field name="model">project.project</field>
491+ <field name="inherit_id" ref="project.edit_project" />
492+ <field name="arch" type="xml">
493+ <xpath expr="/form/sheet/notebook/page[@string='Other Info']/group/group[@string='Miscellaneous']/field[@name='currency_id']" position="after">
494+ <field name="project_service_id" widget="selection" />
495+ <field name="project_type" />
496+ </xpath>
497+ </field>
498 </record>
499-</data>
500-</terp>
501+
502+ </data>
503+</openerp>
504
505=== added directory 'project_service_type/security'
506=== added file 'project_service_type/security/ir.model.access.csv'
507--- project_service_type/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
508+++ project_service_type/security/ir.model.access.csv 2013-06-17 13:17:26 +0000
509@@ -0,0 +1,3 @@
510+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
511+"access_project_service_type","project.service_type","model_project_service_type","project.group_project_user",1,0,0,0
512+"access_project_service_type_manager","project.service_type","model_project_service_type","project.group_project_manager",1,1,1,1

Subscribers

People subscribed via source and target branches