Merge lp:~vauxoo/addons-vauxoo/7.0-add_project_followers_rule-dev-ernesto into lp:addons-vauxoo/7.0

Status: Merged
Merged at revision: 1050
Proposed branch: lp:~vauxoo/addons-vauxoo/7.0-add_project_followers_rule-dev-ernesto
Merge into: lp:addons-vauxoo/7.0
Diff against target: 876 lines (+810/-0)
12 files modified
project_followers_rule/__init__.py (+26/-0)
project_followers_rule/__openerp__.py (+55/-0)
project_followers_rule/data/group_follower.xml (+9/-0)
project_followers_rule/data/ir_rule_project_data.xml (+17/-0)
project_followers_rule/demo/project_task_demo.xml (+23/-0)
project_followers_rule/i18n/es_MX.po (+21/-0)
project_followers_rule/i18n/es_VE.po (+21/-0)
project_followers_rule/i18n/project_followers_rule.pot (+21/-0)
project_followers_rule/model/__init__.py (+28/-0)
project_followers_rule/model/project.py (+56/-0)
project_followers_rule/test/ir_rule_task_project.yml (+518/-0)
project_followers_rule/view/project_project_view.xml (+15/-0)
To merge this branch: bzr merge lp:~vauxoo/addons-vauxoo/7.0-add_project_followers_rule-dev-ernesto
Reviewer Review Type Date Requested Status
Moisés López - http://www.vauxoo.com Needs Fixing
Luis Ernesto García Medina - http://www.vauxoo.com Pending
Julio Serna-http://www.vauxoo.com Pending
Review via email: mp+222260@code.launchpad.net

Description of the change

Se agrego test yaml para validar que los errores de lectura son los esperados de acuerdo a los permisos de usuario.

To post a comment you must log in.
1023. By Luis Ernesto García Medina - http://www.vauxoo.com

[REF][project_followers_rule] prints were added to locate exceptions

Revision history for this message
Moisés López - http://www.vauxoo.com (moylop260) wrote :

    print '----------------##---------------------------'
    try:
        with mute_logger('openerp.osv.orm'):
            with mute_logger('openerp.addons.base.ir.ir_model'):
                self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
    except except_orm:
        error = tools.ustr( traceback.format_exc() )
        log( error )

Cambialo por
    log( '----------------##---------------------------' )
    test_ok = False
    try:
        with mute_logger('openerp.osv.orm'):
            self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
    except except_orm:
        test_ok = True
        error = tools.ustr( traceback.format_exc() )
        #log( error )
    assert test_ok, "Test failed."

Es decir, cambia los print's por log's y cambia los log de errores por assert's de banderas, por favor.

review: Needs Fixing
1024. By Luis Ernesto García Medina - http://www.vauxoo.com

[IMP][project_followers_rule] portal_project add a dependency module, change logs errors by asserts

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'project_followers_rule'
2=== added file 'project_followers_rule/__init__.py'
3--- project_followers_rule/__init__.py 1970-01-01 00:00:00 +0000
4+++ project_followers_rule/__init__.py 2014-06-09 16:41:47 +0000
5@@ -0,0 +1,26 @@
6+# -*- encoding: utf-8 -*-
7+#
8+# Module Writen to OpenERP, Open Source Management Solution
9+#
10+# Copyright (c) 2013 Vauxoo - http://www.vauxoo.com/
11+# All Rights Reserved.
12+# info Vauxoo (info@vauxoo.com)
13+#
14+# Coded by: Jorge Angel Naranjo (jorge_nr@vauxoo.com)
15+#
16+#
17+# This program is free software: you can redistribute it and/or modify
18+# it under the terms of the GNU Affero General Public License as
19+# published by the Free Software Foundation, either version 3 of the
20+# License, or (at your option) any later version.
21+#
22+# This program is distributed in the hope that it will be useful,
23+# but WITHOUT ANY WARRANTY; without even the implied warranty of
24+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25+# GNU Affero General Public License for more details.
26+#
27+# You should have received a copy of the GNU Affero General Public License
28+# along with this program. If not, see <http://www.gnu.org/licenses/>.
29+#
30+#
31+import model
32
33=== added file 'project_followers_rule/__openerp__.py'
34--- project_followers_rule/__openerp__.py 1970-01-01 00:00:00 +0000
35+++ project_followers_rule/__openerp__.py 2014-06-09 16:41:47 +0000
36@@ -0,0 +1,55 @@
37+# -*- encoding: utf-8 -*-
38+#
39+# Module Writen to OpenERP, Open Source Management Solution
40+#
41+# Copyright (c) 2014 Vauxoo - http://www.vauxoo.com/
42+# All Rights Reserved.
43+# info Vauxoo (info@vauxoo.com)
44+#
45+# Coded by: Luis Ernesto García Medina (ernesto_gm@vauxoo.com)
46+#
47+#
48+# This program is free software: you can redistribute it and/or modify
49+# it under the terms of the GNU Affero General Public License as
50+# published by the Free Software Foundation, either version 3 of the
51+# License, or (at your option) any later version.
52+#
53+# This program is distributed in the hope that it will be useful,
54+# but WITHOUT ANY WARRANTY; without even the implied warranty of
55+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
56+# GNU Affero General Public License for more details.
57+#
58+# You should have received a copy of the GNU Affero General Public License
59+# along with this program. If not, see <http://www.gnu.org/licenses/>.
60+#
61+#
62+
63+{
64+ "name": "Followers of Task to Project",
65+ "version": "1.0",
66+ "author": "Vauxoo",
67+ "category": "Generic Modules",
68+ "description" : """
69+The followers_task_ids function field type is added, this field is used in the registration rule Follow Project Task,
70+allowing read, write, delete and create tasks without being a follower of the project.
71+ """,
72+ "website": "http://www.vauxoo.com/",
73+ "license": "AGPL-3",
74+ "depends": ["base",
75+ "portal_project",
76+ "hr",
77+ ],
78+ "demo": [
79+ 'demo/project_task_demo.xml',
80+ ],
81+ "data": [
82+ 'data/group_follower.xml',
83+ 'data/ir_rule_project_data.xml',
84+ 'view/project_project_view.xml',
85+ ],
86+ "test": [
87+ "test/ir_rule_task_project.yml",
88+ ],
89+ "installable": True,
90+ "active": False,
91+}
92
93=== added directory 'project_followers_rule/data'
94=== added file 'project_followers_rule/data/group_follower.xml'
95--- project_followers_rule/data/group_follower.xml 1970-01-01 00:00:00 +0000
96+++ project_followers_rule/data/group_follower.xml 2014-06-09 16:41:47 +0000
97@@ -0,0 +1,9 @@
98+<?xml version="1.0" encoding="utf-8"?>
99+<openerp>
100+<data noupdate="0">
101+ <record id="group_followers_project" model="res.groups">
102+ <field name="name">Lectura al proyecto - siendo seguidor de tarea</field>
103+ <field name="is_portal" eval="False"/>
104+ </record>
105+</data>
106+</openerp>
107
108=== added file 'project_followers_rule/data/ir_rule_project_data.xml'
109--- project_followers_rule/data/ir_rule_project_data.xml 1970-01-01 00:00:00 +0000
110+++ project_followers_rule/data/ir_rule_project_data.xml 2014-06-09 16:41:47 +0000
111@@ -0,0 +1,17 @@
112+<?xml version="1.0" encoding="UTF-8"?>
113+<openerp>
114+ <data noupdate='1'>
115+ <record id="rule_followers_task" model="ir.rule">
116+ <field name="name">Project Follow Task</field>
117+ <field ref="model_project_project" name="model_id"/>
118+ <field name="domain_force">[('followers_tasks_ids', 'in', [user.partner_id.id])]</field>
119+ <field name="perm_read" eval="1"/>
120+ <field name="perm_write" eval="1"/>
121+ <field name="perm_create" eval="1"/>
122+ <field name="perm_unlink" eval="1"/>
123+ <field name="active" eval="1"/>
124+ <field name="groups" eval="[(6,0,[ref('group_followers_project'),])]"/>
125+ </record>
126+
127+ </data>
128+</openerp>
129
130=== added directory 'project_followers_rule/demo'
131=== added file 'project_followers_rule/demo/project_task_demo.xml'
132--- project_followers_rule/demo/project_task_demo.xml 1970-01-01 00:00:00 +0000
133+++ project_followers_rule/demo/project_task_demo.xml 2014-06-09 16:41:47 +0000
134@@ -0,0 +1,23 @@
135+<?xml version="1.0" encoding="utf-8"?>
136+<openerp>
137+ <data noupdate="0">
138+ <record id="project_vauxoo_test" model="project.project">
139+ <field name="name">Project Test Rule Followers Of Task</field>
140+ <field name="state">open</field>
141+ <field name="members" eval="[(6, 0, [ref('base.user_root')])]"/>
142+ <field name="date_start" eval="time.strftime('%Y-%m-01 10:00:00')"/>
143+ <field name="user_id" ref="base.user_root"/>
144+ <field name="privacy_visibility">followers</field>
145+ <field name="priority">1</field>
146+<!--
147+ <field name="currency_id" ref="base.MXN"/>
148+-->
149+ </record>
150+ <record id="project_task_test_vauxoo" model="project.task">
151+ <field name="name">Task Test Vauxoo</field>
152+ <field name="project_id" ref="project_vauxoo_test"/>
153+ <field eval="(DateTime.today()).strftime('%Y-%m-%d')" name="date_deadline"/>
154+ <field name="description">Test to Project Test Rule Followers Of Task</field>
155+ </record>
156+ </data>
157+</openerp>
158
159=== added directory 'project_followers_rule/i18n'
160=== added file 'project_followers_rule/i18n/es_MX.po'
161--- project_followers_rule/i18n/es_MX.po 1970-01-01 00:00:00 +0000
162+++ project_followers_rule/i18n/es_MX.po 2014-06-09 16:41:47 +0000
163@@ -0,0 +1,21 @@
164+# Translation of OpenERP Server.
165+# This file contains the translation of the following modules:
166+#
167+msgid ""
168+msgstr ""
169+"Project-Id-Version: OpenERP Server 7.0\n"
170+"Report-Msgid-Bugs-To: \n"
171+"POT-Creation-Date: 2014-05-16 22:51+0000\n"
172+"PO-Revision-Date: 2014-05-16 22:51+0000\n"
173+"Last-Translator: <>\n"
174+"Language-Team: \n"
175+"MIME-Version: 1.0\n"
176+"Content-Type: text/plain; charset=UTF-8\n"
177+"Content-Transfer-Encoding: \n"
178+"Plural-Forms: \n"
179+
180+#. module: project_followers_rule
181+#: model:ir.model,name:project_followers_rule.model_project_project
182+msgid "Project"
183+msgstr "Proyecto"
184+
185
186=== added file 'project_followers_rule/i18n/es_VE.po'
187--- project_followers_rule/i18n/es_VE.po 1970-01-01 00:00:00 +0000
188+++ project_followers_rule/i18n/es_VE.po 2014-06-09 16:41:47 +0000
189@@ -0,0 +1,21 @@
190+# Translation of OpenERP Server.
191+# This file contains the translation of the following modules:
192+#
193+msgid ""
194+msgstr ""
195+"Project-Id-Version: OpenERP Server 7.0\n"
196+"Report-Msgid-Bugs-To: \n"
197+"POT-Creation-Date: 2014-05-16 22:51+0000\n"
198+"PO-Revision-Date: 2014-05-16 22:51+0000\n"
199+"Last-Translator: <>\n"
200+"Language-Team: \n"
201+"MIME-Version: 1.0\n"
202+"Content-Type: text/plain; charset=UTF-8\n"
203+"Content-Transfer-Encoding: \n"
204+"Plural-Forms: \n"
205+
206+#. module: project_followers_rule
207+#: model:ir.model,name:project_followers_rule.model_project_project
208+msgid "Project"
209+msgstr "Proyecto"
210+
211
212=== added file 'project_followers_rule/i18n/project_followers_rule.pot'
213--- project_followers_rule/i18n/project_followers_rule.pot 1970-01-01 00:00:00 +0000
214+++ project_followers_rule/i18n/project_followers_rule.pot 2014-06-09 16:41:47 +0000
215@@ -0,0 +1,21 @@
216+# Translation of OpenERP Server.
217+# This file contains the translation of the following modules:
218+#
219+msgid ""
220+msgstr ""
221+"Project-Id-Version: OpenERP Server 7.0\n"
222+"Report-Msgid-Bugs-To: \n"
223+"POT-Creation-Date: 2014-05-16 22:48+0000\n"
224+"PO-Revision-Date: 2014-05-16 22:48+0000\n"
225+"Last-Translator: <>\n"
226+"Language-Team: \n"
227+"MIME-Version: 1.0\n"
228+"Content-Type: text/plain; charset=UTF-8\n"
229+"Content-Transfer-Encoding: \n"
230+"Plural-Forms: \n"
231+
232+#. module: project_followers_rule
233+#: model:ir.model,name:project_followers_rule.model_project_project
234+msgid "Project"
235+msgstr ""
236+
237
238=== added directory 'project_followers_rule/model'
239=== added file 'project_followers_rule/model/__init__.py'
240--- project_followers_rule/model/__init__.py 1970-01-01 00:00:00 +0000
241+++ project_followers_rule/model/__init__.py 2014-06-09 16:41:47 +0000
242@@ -0,0 +1,28 @@
243+# -*- encoding: utf-8 -*-
244+#
245+# Module Writen to OpenERP, Open Source Management Solution
246+#
247+# Copyright (c) 2014 Vauxoo - http://www.vauxoo.com/
248+# All Rights Reserved.
249+# info Vauxoo (info@vauxoo.com)
250+#
251+# Coded by: Luis Ernesto García Medina (ernesto_gm@vauxoo.com)
252+#
253+#
254+# This program is free software: you can redistribute it and/or modify
255+# it under the terms of the GNU Affero General Public License as
256+# published by the Free Software Foundation, either version 3 of the
257+# License, or (at your option) any later version.
258+#
259+# This program is distributed in the hope that it will be useful,
260+# but WITHOUT ANY WARRANTY; without even the implied warranty of
261+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
262+# GNU Affero General Public License for more details.
263+#
264+# You should have received a copy of the GNU Affero General Public License
265+# along with this program. If not, see <http://www.gnu.org/licenses/>.
266+#
267+#
268+
269+import project
270+
271
272=== added file 'project_followers_rule/model/project.py'
273--- project_followers_rule/model/project.py 1970-01-01 00:00:00 +0000
274+++ project_followers_rule/model/project.py 2014-06-09 16:41:47 +0000
275@@ -0,0 +1,56 @@
276+# -*- encoding: utf-8 -*-
277+#
278+# Module Writen to OpenERP, Open Source Management Solution
279+#
280+# Copyright (c) 2014 Vauxoo - http://www.vauxoo.com/
281+# All Rights Reserved.
282+# info Vauxoo (info@vauxoo.com)
283+#
284+# Coded by: Luis Ernesto García Medina (ernesto_gm@vauxoo.com)
285+#
286+#
287+# This program is free software: you can redistribute it and/or modify
288+# it under the terms of the GNU Affero General Public License as
289+# published by the Free Software Foundation, either version 3 of the
290+# License, or (at your option) any later version.
291+#
292+# This program is distributed in the hope that it will be useful,
293+# but WITHOUT ANY WARRANTY; without even the implied warranty of
294+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
295+# GNU Affero General Public License for more details.
296+#
297+# You should have received a copy of the GNU Affero General Public License
298+# along with this program. If not, see <http://www.gnu.org/licenses/>.
299+#
300+
301+from openerp.osv import osv, fields
302+
303+
304+class project(osv.Model):
305+ _inherit = 'project.project'
306+
307+ def _get_followers(self, cr, uid, ids, field_name, arg, context=None):
308+ result = {}
309+ for project in self.browse(cr, uid, ids, context=context):
310+ task_ids = self.pool.get('project.task').search(
311+ cr, uid, [('project_id', '=', project.id)])
312+ for task in self.pool.get('project.task').browse(cr, uid, task_ids):
313+ if task.message_follower_ids:
314+ result[project.id] = [
315+ follower.id for follower in task.message_follower_ids]
316+ return result
317+
318+ def _search_project(self, cr, uid, obj, name, args, context):
319+ for cond in args:
320+ partner_ids = cond[2]
321+ task_ids = self.pool.get('project.task').search(
322+ cr, uid, [('message_follower_ids', 'in', partner_ids),
323+ ('project_id.privacy_visibility', '=', 'followers')])
324+ project_ids = set(task.project_id.id for task in self.pool.get(
325+ 'project.task').browse(cr, uid, task_ids))
326+ return [('id', 'in', tuple(project_ids))]
327+ _columns = {
328+ 'followers_tasks_ids': fields.function(_get_followers, type='many2many',
329+ relation="res.partner", string="Followers Task", method=True, store=False,
330+ fnct_search=_search_project),
331+ }
332
333=== added directory 'project_followers_rule/test'
334=== added file 'project_followers_rule/test/ir_rule_task_project.yml'
335--- project_followers_rule/test/ir_rule_task_project.yml 1970-01-01 00:00:00 +0000
336+++ project_followers_rule/test/ir_rule_task_project.yml 2014-06-09 16:41:47 +0000
337@@ -0,0 +1,518 @@
338+-
339+ Create a user 'Demo Task Rule'
340+-
341+ !record {model: res.users, id: res_user_demo_task_rule0}:
342+ company_id: base.main_company
343+ name: Demo Task Rule
344+ login: dtask
345+ password: dtask
346+ groups_id:
347+ - base.group_user
348+ - group_followers_project
349+-
350+ Permissions Testing Task
351+-
352+ !python {model: project.task}: |
353+ import netsvc, tools, os, base64
354+ import traceback
355+ from openerp.osv.orm import except_orm
356+ from tools.misc import mute_logger
357+
358+ test_ok = False
359+
360+ obj_task = self.browse(cr, uid, ref("project_task_test_vauxoo"))
361+ obj_user = self.pool.get('res.users')
362+ user_partner_id = obj_user.browse(cr, uid, ref("res_user_demo_task_rule0")).partner_id.id
363+ ###############################################################################################
364+ # Project privacy_visibility: Followers #
365+ # follower_project: False, follower_task: False #
366+ ###############################################################################################
367+ log("Testing task permissions when visibility project is Followers Only")
368+ # HR-Employee, Lectura proyecto- siendo seguidor de tarea
369+ log( '----------------1---------------------------' )
370+ try:
371+ with mute_logger('openerp.osv.orm'):
372+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
373+ except except_orm:
374+ error = tools.ustr( traceback.format_exc() )
375+ test_ok = True
376+ assert test_ok, "Test failed."
377+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
378+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_user"), ref("group_followers_project")])]} )
379+ log( '----------------2---------------------------' )
380+ try:
381+ with mute_logger('openerp.osv.orm'):
382+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
383+ except except_orm:
384+ error = tools.ustr( traceback.format_exc() )
385+ test_ok = True
386+ assert test_ok, "Test failed."
387+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
388+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
389+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
390+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
391+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
392+ log( '----------------3---------------------------' )
393+ try:
394+ with mute_logger('openerp.osv.orm'):
395+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
396+ except except_orm:
397+ error = tools.ustr( traceback.format_exc() )
398+ test_ok = True
399+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
400+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
401+ log( '----------------4---------------------------' )
402+ try:
403+ with mute_logger('openerp.osv.orm'):
404+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
405+ except except_orm:
406+ error = tools.ustr( traceback.format_exc() )
407+ test_ok = True
408+ assert test_ok, "Test failed."
409+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
410+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
411+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
412+ ###############################################################################################
413+ # Project privacy_visibility: Followers #
414+ # follower_project: True, follower_task: False #
415+ ###############################################################################################
416+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
417+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(4, user_partner_id)]})
418+ self.pool.get('res.groups').write(cr, uid, [ref("base.group_hr_user")], {'implied_ids': [(6, 0, [])]})
419+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project"), ref("project.group_project_user")])]} )
420+ log( '----------------5---------------------------' )
421+ try:
422+ with mute_logger('openerp.osv.orm'):
423+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
424+ except except_orm:
425+ error = tools.ustr( traceback.format_exc() )
426+ test_ok = True
427+ assert test_ok, "Test failed."
428+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
429+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
430+ try:
431+ with mute_logger('openerp.osv.orm'):
432+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
433+ except except_orm:
434+ error = tools.ustr( traceback.format_exc() )
435+ test_ok = True
436+ assert test_ok, "Test failed."
437+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
438+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
439+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
440+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
441+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
442+ log( '----------------6---------------------------' )
443+ try:
444+ with mute_logger('openerp.osv.orm'):
445+ with mute_logger('openerp.addons.base.ir.ir_model'):
446+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
447+ except except_orm:
448+ error = tools.ustr( traceback.format_exc() )
449+ test_ok = True
450+ assert test_ok, "Test failed."
451+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
452+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
453+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
454+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
455+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
456+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
457+ ###############################################################################################
458+ # Project privacy_visibility: Followers #
459+ # follower_project: False, follower_task: True #
460+ ###############################################################################################
461+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(3, user_partner_id)]})
462+ self.pool.get('project.task').write(cr, uid, ref("project_task_test_vauxoo"), {'message_follower_ids': [(4, user_partner_id)]})
463+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
464+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
465+ log( '----------------7---------------------------' )
466+ try:
467+ with mute_logger('openerp.osv.orm'):
468+ with mute_logger('openerp.addons.base.ir.ir_model'):
469+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
470+ except except_orm:
471+ error = tools.ustr( traceback.format_exc() )
472+ test_ok = True
473+ assert test_ok, "Test failed."
474+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
475+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
476+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
477+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
478+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
479+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
480+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
481+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
482+ log( '----------------8---------------------------' )
483+ try:
484+ with mute_logger('openerp.osv.orm'):
485+ with mute_logger('openerp.addons.base.ir.ir_model'):
486+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
487+ except except_orm:
488+ error = tools.ustr( traceback.format_exc() )
489+ test_ok = True
490+ assert test_ok, "Test failed."
491+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
492+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
493+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
494+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
495+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
496+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
497+ ###############################################################################################
498+ # Project privacy_visibility: Followers #
499+ # follower_project: True, follower_task: True #
500+ ###############################################################################################
501+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(4, user_partner_id)]})
502+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
503+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
504+ log( '----------------9---------------------------' )
505+ try:
506+ with mute_logger('openerp.osv.orm'):
507+ with mute_logger('openerp.addons.base.ir.ir_model'):
508+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
509+ except except_orm:
510+ error = tools.ustr( traceback.format_exc() )
511+ test_ok = True
512+ assert test_ok, "Test failed."
513+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
514+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
515+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
516+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
517+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
518+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
519+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
520+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
521+ log( '----------------10---------------------------' )
522+ try:
523+ with mute_logger('openerp.osv.orm'):
524+ with mute_logger('openerp.addons.base.ir.ir_model'):
525+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
526+ except except_orm:
527+ error = tools.ustr( traceback.format_exc() )
528+ test_ok = True
529+ assert test_ok, "Test failed."
530+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
531+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
532+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
533+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
534+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
535+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
536+ ###############################################################################################
537+ # Project privacy_visibility: Employees #
538+ # follower_project: False, follower_task: False #
539+ ###############################################################################################
540+ log("Testing task permissions when visibility project is Employees Only ")
541+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'privacy_visibility': 'employees'})
542+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(3, user_partner_id)]})
543+ self.pool.get('project.task').write(cr, uid, ref("project_task_test_vauxoo"), {'message_follower_ids': [(3, user_partner_id)]})
544+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
545+ # HR-Employee, Lectura proyecto- siendo seguidor de tarea
546+ log( '----------------11---------------------------' )
547+ try:
548+ with mute_logger('openerp.osv.orm'):
549+ with mute_logger('openerp.addons.base.ir.ir_model'):
550+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
551+ except except_orm:
552+ error = tools.ustr( traceback.format_exc() )
553+ test_ok = True
554+ assert test_ok, "Test failed."
555+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
556+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
557+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
558+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
559+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
560+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
561+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
562+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
563+ log( '----------------12---------------------------' )
564+ try:
565+ with mute_logger('openerp.osv.orm'):
566+ with mute_logger('openerp.addons.base.ir.ir_model'):
567+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
568+ except except_orm:
569+ error = tools.ustr( traceback.format_exc() )
570+ test_ok = True
571+ assert test_ok, "Test failed."
572+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
573+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
574+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
575+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
576+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
577+ ###############################################################################################
578+ # Project privacy_visibility: Employees #
579+ # follower_project: True, follower_task: False #
580+ ###############################################################################################
581+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
582+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(4, user_partner_id)]})
583+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
584+ log( '----------------13---------------------------' )
585+ try:
586+ with mute_logger('openerp.osv.orm'):
587+ with mute_logger('openerp.addons.base.ir.ir_model'):
588+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
589+ except except_orm:
590+ error = tools.ustr( traceback.format_exc() )
591+ test_ok = True
592+ assert test_ok, "Test failed."
593+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
594+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
595+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
596+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
597+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
598+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
599+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
600+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
601+ log( '----------------14---------------------------')
602+ try:
603+ with mute_logger('openerp.osv.orm'):
604+ with mute_logger('openerp.addons.base.ir.ir_model'):
605+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
606+ except except_orm:
607+ error = tools.ustr( traceback.format_exc() )
608+ test_ok = True
609+ assert test_ok, "Test failed."
610+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
611+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
612+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
613+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
614+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
615+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
616+ ###############################################################################################
617+ # Project privacy_visibility: Employees #
618+ # follower_project: False, follower_task: True #
619+ ###############################################################################################
620+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(3, user_partner_id)]})
621+ self.pool.get('project.task').write(cr, uid, ref("project_task_test_vauxoo"), {'message_follower_ids': [(4, user_partner_id)]})
622+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
623+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
624+ log( '----------------15---------------------------' )
625+ try:
626+ with mute_logger('openerp.osv.orm'):
627+ with mute_logger('openerp.addons.base.ir.ir_model'):
628+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
629+ except except_orm:
630+ error = tools.ustr( traceback.format_exc() )
631+ test_ok = True
632+ assert test_ok, "Test failed."
633+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
634+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
635+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
636+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
637+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
638+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
639+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
640+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
641+ log( '----------------16---------------------------' )
642+ try:
643+ with mute_logger('openerp.osv.orm'):
644+ with mute_logger('openerp.addons.base.ir.ir_model'):
645+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
646+ except except_orm:
647+ error = tools.ustr( traceback.format_exc() )
648+ test_ok = True
649+ assert test_ok, "Test failed."
650+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
651+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
652+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
653+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
654+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
655+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
656+ ###############################################################################################
657+ # Project privacy_visibility: Employees #
658+ # follower_project: True, follower_task: True #
659+ ###############################################################################################
660+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(4, user_partner_id)]})
661+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
662+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
663+ log( '----------------17---------------------------' )
664+ try:
665+ with mute_logger('openerp.osv.orm'):
666+ with mute_logger('openerp.addons.base.ir.ir_model'):
667+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
668+ except except_orm:
669+ error = tools.ustr( traceback.format_exc() )
670+ test_ok = True
671+ assert test_ok, "Test failed."
672+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
673+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
674+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
675+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
676+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
677+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
678+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
679+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
680+ log( '----------------18---------------------------' )
681+ try:
682+ with mute_logger('openerp.osv.orm'):
683+ with mute_logger('openerp.addons.base.ir.ir_model'):
684+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
685+ except except_orm:
686+ error = tools.ustr( traceback.format_exc() )
687+ test_ok = True
688+ assert test_ok, "Test failed."
689+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
690+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
691+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
692+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
693+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
694+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
695+
696+ ###############################################################################################
697+ # Project privacy_visibility: Portal #
698+ # follower_project: False, follower_task: False #
699+ ###############################################################################################
700+ log("Testing task permissions when visibility project is Portal Users and Employees ")
701+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'privacy_visibility': 'portal'})
702+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(3, user_partner_id)]})
703+ self.pool.get('project.task').write(cr, uid, ref("project_task_test_vauxoo"), {'message_follower_ids': [(3, user_partner_id)]})
704+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
705+ # HR-Employee, Lectura proyecto- siendo seguidor de tarea
706+ log( '----------------19---------------------------')
707+ try:
708+ with mute_logger('openerp.osv.orm'):
709+ with mute_logger('openerp.addons.base.ir.ir_model'):
710+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
711+ except except_orm:
712+ error = tools.ustr( traceback.format_exc() )
713+ test_ok = True
714+ assert test_ok, "Test failed."
715+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
716+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
717+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
718+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
719+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
720+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
721+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
722+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
723+ log( '----------------20---------------------------' )
724+ try:
725+ with mute_logger('openerp.osv.orm'):
726+ with mute_logger('openerp.addons.base.ir.ir_model'):
727+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
728+ except except_orm:
729+ error = tools.ustr( traceback.format_exc() )
730+ test_ok = True
731+ assert test_ok, "Test failed."
732+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
733+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
734+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
735+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
736+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
737+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
738+ ###############################################################################################
739+ # Project privacy_visibility: Portal #
740+ # follower_project: True, follower_task: False #
741+ ###############################################################################################
742+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
743+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(4, user_partner_id)]})
744+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
745+ log( '----------------21---------------------------' )
746+ try:
747+ with mute_logger('openerp.osv.orm'):
748+ with mute_logger('openerp.addons.base.ir.ir_model'):
749+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
750+ except except_orm:
751+ error = tools.ustr( traceback.format_exc() )
752+ test_ok = True
753+ assert test_ok, "Test failed."
754+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
755+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
756+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
757+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
758+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
759+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
760+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
761+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
762+ log( '----------------22---------------------------' )
763+ try:
764+ with mute_logger('openerp.osv.orm'):
765+ with mute_logger('openerp.addons.base.ir.ir_model'):
766+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
767+ except except_orm:
768+ error = tools.ustr( traceback.format_exc() )
769+ test_ok = True
770+ assert test_ok, "Test failed."
771+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
772+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
773+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
774+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
775+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
776+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
777+ ###############################################################################################
778+ # Project privacy_visibility: Portal #
779+ # follower_project: False, follower_task: True #
780+ ###############################################################################################
781+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(3, user_partner_id)]})
782+ self.pool.get('project.task').write(cr, uid, ref("project_task_test_vauxoo"), {'message_follower_ids': [(4, user_partner_id)]})
783+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
784+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
785+ log( '----------------23---------------------------' )
786+ try:
787+ with mute_logger('openerp.osv.orm'):
788+ with mute_logger('openerp.addons.base.ir.ir_model'):
789+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
790+ except except_orm:
791+ error = tools.ustr( traceback.format_exc() )
792+ test_ok = True
793+ assert test_ok, "Test failed."
794+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
795+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
796+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
797+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
798+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
799+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
800+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
801+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
802+ log( '----------------24---------------------------' )
803+ try:
804+ with mute_logger('openerp.osv.orm'):
805+ with mute_logger('openerp.addons.base.ir.ir_model'):
806+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
807+ except except_orm:
808+ error = tools.ustr( traceback.format_exc() )
809+ test_ok = True
810+ assert test_ok, "Test failed."
811+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
812+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
813+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
814+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
815+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
816+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
817+ ###############################################################################################
818+ # Project privacy_visibility: Portal #
819+ # follower_project: True, follower_task: True #
820+ ###############################################################################################
821+ self.pool.get('project.project').write(cr, uid, ref("project_vauxoo_test"), {'message_follower_ids': [(4, user_partner_id)]})
822+ # HR-Employee, Project-False, Lectura proyecto- siendo seguidor de tarea
823+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("group_followers_project")])]} )
824+ log( '----------------25---------------------------' )
825+ try:
826+ with mute_logger('openerp.osv.orm'):
827+ with mute_logger('openerp.addons.base.ir.ir_model'):
828+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
829+ except except_orm:
830+ error = tools.ustr( traceback.format_exc() )
831+ test_ok = True
832+ assert test_ok, "Test failed."
833+ # HR-Employee, Project-User, Lectura proyecto- siendo seguidor de tarea
834+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_user"), ref("project.group_project_user"), ref("group_followers_project")])]} )
835+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
836+ # HR-Employee, Project-Manager, Lectura proyecto- siendo seguidor de tarea
837+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_user"), ref("group_followers_project")])]} )
838+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
839+ # HR-Manager, Lectura proyecto- siendo seguidor de tarea
840+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("base.group_hr_manager"), ref("group_followers_project")])]} )
841+ log( '----------------26--------------------------' )
842+ try:
843+ with mute_logger('openerp.osv.orm'):
844+ with mute_logger('openerp.addons.base.ir.ir_model'):
845+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
846+ except except_orm:
847+ error = tools.ustr( traceback.format_exc() )
848+ test_ok = True
849+ assert test_ok, "Test failed."
850+ # HR-Manager, Project-User, Lectura proyecto- siendo seguidor de tarea
851+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_user"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
852+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
853+ # HR-Manager, Project-Manager, Lectura proyecto- siendo seguidor de tarea
854+ obj_user.write(cr, uid, [ref("res_user_demo_task_rule0")], {'groups_id': [(6, 0, [ref("project.group_project_manager"), ref("base.group_hr_manager"), ref("group_followers_project")])]} )
855+ self.write(cr, ref("res_user_demo_task_rule0"), ref("project_task_test_vauxoo"), {'name':'write task'})
856
857=== added directory 'project_followers_rule/view'
858=== added file 'project_followers_rule/view/project_project_view.xml'
859--- project_followers_rule/view/project_project_view.xml 1970-01-01 00:00:00 +0000
860+++ project_followers_rule/view/project_project_view.xml 2014-06-09 16:41:47 +0000
861@@ -0,0 +1,15 @@
862+<?xml version="1.0" encoding="UTF-8"?>
863+<openerp>
864+ <data>
865+ <record model="ir.ui.view" id="project_project_form_follow_taks">
866+ <field name="name">project.project.form.follow_taks</field>
867+ <field name="model">project.project</field>
868+ <field name="inherit_id" ref="project.edit_project"/>
869+ <field name="arch" type="xml">
870+ <xpath expr="//field[@name='partner_id']" position="after">
871+ <field name="followers_tasks_ids" invisible='True'/>
872+ </xpath>
873+ </field>
874+ </record>
875+ </data>
876+</openerp>