Merge lp:~vauxoo/addons-vauxoo/7.0-add_project_followers_rule-dev-ernesto into lp:addons-vauxoo/7.0
- 7.0-add_project_followers_rule-dev-ernesto
- Merge into 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 |
Related bugs: |
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:
|
Commit message
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
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Moisés López - http://www.vauxoo.com (moylop260) wrote : | # |
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> |
print '------ ------- ---##-- ------- ------- ------- ----' 'openerp. osv.orm' ): 'openerp. addons. base.ir. ir_model' ):
self. write(cr, ref("res_ user_demo_ task_rule0" ), ref("project_ task_test_ vauxoo" ), {'name':'write task'}) format_ exc() )
try:
with mute_logger(
with mute_logger(
except except_orm:
error = tools.ustr( traceback.
log( error )
Cambialo por ------- ---##-- ------- ------- ------- ----' ) 'openerp. osv.orm' ):
self. write(cr, ref("res_ user_demo_ task_rule0" ), ref("project_ task_test_ vauxoo" ), {'name':'write task'}) format_ exc() )
log( '------
test_ok = False
try:
with mute_logger(
except except_orm:
test_ok = True
error = tools.ustr( traceback.
#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.