Merge lp:~therp-nl/ocb-addons/7.0_make_survey_module_usable_for_external_users into lp:ocb-addons

Proposed by Holger Brunn (Therp)
Status: Merged
Approved by: Ronald Portier (Therp)
Approved revision: no longer in the source branch.
Merged at revision: 9459
Proposed branch: lp:~therp-nl/ocb-addons/7.0_make_survey_module_usable_for_external_users
Merge into: lp:ocb-addons
Diff against target: 304 lines (+126/-20)
8 files modified
survey/__openerp__.py (+2/-2)
survey/security/ir.model.access.csv (+10/-0)
survey/security/survey_security.xml (+54/-1)
survey/survey_report.xml (+6/-3)
survey/survey_view.xml (+36/-4)
survey/wizard/survey_answer.py (+5/-5)
survey/wizard/survey_send_invitation.py (+11/-4)
survey/wizard/survey_send_invitation.xml (+2/-1)
To merge this branch: bzr merge lp:~therp-nl/ocb-addons/7.0_make_survey_module_usable_for_external_users
Reviewer Review Type Date Requested Status
Lara (Therp) (community) test Approve
Stefan Rijnhart (Opener) code review Approve
Review via email: mp+180325@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Great work, thanks!

review: Approve (code review)
Revision history for this message
Lara (Therp) (lfreeke) wrote :

Tested works fine

review: Approve (test)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'survey/__openerp__.py'
2--- survey/__openerp__.py 2012-10-23 16:05:04 +0000
3+++ survey/__openerp__.py 2013-08-15 12:01:16 +0000
4@@ -36,12 +36,12 @@
5 'author': 'OpenERP SA',
6 'depends': ['mail'],
7 'data': [
8+ 'security/survey_security.xml',
9+ 'security/ir.model.access.csv',
10 'survey_report.xml',
11 'survey_data.xml',
12 'wizard/survey_selection.xml',
13 'wizard/survey_answer.xml',
14- 'security/survey_security.xml',
15- 'security/ir.model.access.csv',
16 'survey_view.xml',
17 'wizard/survey_print_statistics.xml',
18 'wizard/survey_print_answer.xml',
19
20=== modified file 'survey/security/ir.model.access.csv'
21--- survey/security/ir.model.access.csv 2012-03-07 05:47:59 +0000
22+++ survey/security/ir.model.access.csv 2013-08-15 12:01:16 +0000
23@@ -22,3 +22,13 @@
24 access_survey_response_line_survey_user,survey.response.line.survey.user,model_survey_response_line,base.group_survey_user,1,1,1,1
25 access_survey_question_column_heading_survey_user,survey.question.column.heading.survey.user,model_survey_question_column_heading,base.group_survey_user,1,0,0,0
26 access_survey_question_column_heading_user,survey.question.column.heading user,model_survey_question_column_heading,base.group_tool_user,1,1,1,1
27+access_survey_invitee,survey.invitee,model_survey,base.group_survey_invitee,1,0,0,0
28+access_survey_page_invitee,survey.page.invitee,model_survey_page,base.group_survey_invitee,1,0,0,0
29+access_survey_question_invitee,survey.question.invitee,model_survey_question,base.group_survey_invitee,1,0,0,0
30+access_survey_answer_invitee,survey.answer.invitee,model_survey_answer,base.group_survey_invitee,1,0,0,0
31+access_survey_response_invitee,survey.response.invitee,model_survey_response,base.group_survey_invitee,1,1,1,0
32+access_survey_response_line_invitee,survey.response.line.invitee,model_survey_response_line,base.group_survey_invitee,1,1,1,0
33+access_survey_response_answer_invitee,survey.response.answer.invitee,model_survey_response_answer,base.group_survey_invitee,1,1,1,0
34+access_survey_history_invitee,survey.history.invitee,model_survey_history,base.group_survey_invitee,1,0,1,0
35+access_survey_question_column_heading_invitee,survey.question.column.heading.invitee,model_survey_question_column_heading,base.group_survey_invitee,1,0,0,0
36+access_res_partner_invitee,res.partner.invitee,base.model_res_partner,base.group_survey_invitee,1,0,0,0
37
38=== modified file 'survey/security/survey_security.xml'
39--- survey/security/survey_security.xml 2012-04-04 09:08:30 +0000
40+++ survey/security/survey_security.xml 2013-08-15 12:01:16 +0000
41@@ -15,5 +15,58 @@
42 <field name="name">Survey / User</field>
43 <field name="users" eval="[(4, ref('base.user_root'))]"/>
44 </record>
45- </data>
46+ <record model="res.groups" id="base.group_survey_invitee">
47+ <field name="name">Survey / Invitee</field>
48+ </record>
49+ <record id="rule_survey_invitee" model="ir.rule">
50+ <field name="model_id" ref="model_survey" />
51+ <field name="domain_force">[("invited_user_ids", "=", user.id)]</field>
52+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
53+ </record>
54+ <record id="rule_survey_page_invitee" model="ir.rule">
55+ <field name="model_id" ref="model_survey_page" />
56+ <field name="domain_force">[("survey_id.invited_user_ids", "=", user.id)]</field>
57+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
58+ </record>
59+ <record id="rule_survey_question_invitee" model="ir.rule">
60+ <field name="model_id" ref="model_survey_question" />
61+ <field name="domain_force">[("survey.invited_user_ids", "=", user.id)]</field>
62+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
63+ </record>
64+ <record id="rule_survey_answer_invitee" model="ir.rule">
65+ <field name="model_id" ref="model_survey_answer" />
66+ <field name="domain_force">[("question_id.survey.invited_user_ids", "=", user.id)]</field>
67+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
68+ </record>
69+ <record id="rule_survey_response_invitee" model="ir.rule">
70+ <field name="model_id" ref="model_survey_response" />
71+ <field name="domain_force">[("user_id", "=", user.id)]</field>
72+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
73+ </record>
74+ <record id="rule_survey_response_line_invitee" model="ir.rule">
75+ <field name="model_id" ref="model_survey_response_line" />
76+ <field name="domain_force">[("response_id.user_id", "=", user.id)]</field>
77+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
78+ </record>
79+ <record id="rule_survey_response_answer_invitee" model="ir.rule">
80+ <field name="model_id" ref="model_survey_response_answer" />
81+ <field name="domain_force">[("response_id.response_id.user_id", "=", user.id)]</field>
82+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
83+ </record>
84+ <record id="rule_survey_history_invitee" model="ir.rule">
85+ <field name="model_id" ref="model_survey_history" />
86+ <field name="domain_force">[("survey_id.invited_user_ids", "=", user.id)]</field>
87+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
88+ </record>
89+ <record id="rule_survey_question_column_heading_invitee" model="ir.rule">
90+ <field name="model_id" ref="model_survey_question_column_heading" />
91+ <field name="domain_force">[("question_id.survey.invited_user_ids", "=", user.id)]</field>
92+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
93+ </record>
94+ <record id="rule_res_partner_invitee" model="ir.rule">
95+ <field name="model_id" ref="base.model_res_partner" />
96+ <field name="domain_force">[("id", "=", user.id)]</field>
97+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
98+ </record>
99+ </data>
100 </openerp>
101
102=== modified file 'survey/survey_report.xml'
103--- survey/survey_report.xml 2012-06-28 06:40:05 +0000
104+++ survey/survey_report.xml 2013-08-15 12:01:16 +0000
105@@ -6,20 +6,23 @@
106 id="report_survey_form"
107 model="survey"
108 name="survey.form"
109- string="Survey"/>
110+ string="Survey"
111+ groups="base.group_survey_user" />
112
113 <report auto="True"
114 id="survey_analysis"
115 model="survey"
116 name="survey.analysis"
117 rml=""
118- string="Survey Statistics"/>
119+ string="Survey Statistics"
120+ groups="base.group_survey_user" />
121
122 <report auto="True"
123 id="survey_browse_response"
124 model="survey"
125 name="survey.browse.response"
126 rml=""
127- string="Survey Answers"/>
128+ string="Survey Answers"
129+ groups="base.group_survey_user" />
130 </data>
131 </openerp>
132
133=== modified file 'survey/survey_view.xml'
134--- survey/survey_view.xml 2012-10-23 16:05:04 +0000
135+++ survey/survey_view.xml 2013-08-15 12:01:16 +0000
136@@ -268,6 +268,35 @@
137 </field>
138 </record>
139
140+ <record model="ir.ui.view" id="survey_form_invitee">
141+ <field name="name">survey_form_invitee</field>
142+ <field name="model">survey</field>
143+ <field name="groups_id" eval="[(6, 0, [ref('base.group_survey_invitee')])]" />
144+ <field name="priority" eval="1" />
145+ <field name="inherit_id" ref="survey_form" />
146+ <field name="arch" type="xml">
147+ <data>
148+ <form position="replace">
149+ <form string="Survey" version="7.0">
150+ <sheet>
151+ <field name="state" invisible="True" />
152+ <div class="oe_button_box oe_right">
153+ <button name="fill_survey" states="open" string="Answer Survey" type="object" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
154+ </div>
155+ <div class="oe_title">
156+ <label for="title" class="oe_edit_only"/>
157+ <h1>
158+ <field name="title" attrs="{'readonly':[('state','=','close')]}"/>
159+ </h1>
160+ </div>
161+ <field name="note" />
162+ </sheet>
163+ </form>
164+ </form>
165+ </data>
166+ </field>
167+ </record>
168+
169 <record id="survey_search" model="ir.ui.view">
170 <field name="name">survey_search</field>
171 <field name="model">survey</field>
172@@ -1224,14 +1253,16 @@
173 id="act_survey_pages"
174 name="Pages"
175 res_model="survey.page"
176- src_model="survey"/>
177+ src_model="survey"
178+ groups="base.group_survey_user"/>
179
180 <act_window
181 context="{'search_default_survey': active_id, 'default_survey': active_id}"
182 id="act_survey_question"
183 name="Questions"
184 res_model="survey.question"
185- src_model="survey"/>
186+ src_model="survey"
187+ groups="base.group_survey_user"/>
188
189
190 <act_window
191@@ -1239,7 +1270,7 @@
192 id="act_survey_page_question"
193 name="Questions"
194 res_model="survey.question"
195- src_model="survey.page"/>
196+ src_model="survey.page" />
197
198 <act_window domain="[('question_id', '=', active_id)]"
199 id="act_survey_answer"
200@@ -1252,7 +1283,8 @@
201 id="act_survey_request"
202 name="Survey Requests"
203 res_model="survey.request"
204- src_model="survey"/>
205+ src_model="survey"
206+ groups="base.group_survey_user"/>
207
208 </data>
209 </openerp>
210
211=== modified file 'survey/wizard/survey_answer.py'
212--- survey/wizard/survey_answer.py 2012-10-23 16:05:04 +0000
213+++ survey/wizard/survey_answer.py 2013-08-15 12:01:16 +0000
214@@ -27,7 +27,7 @@
215
216 from openerp import addons, netsvc, tools
217 from openerp.osv import fields, osv
218-from openerp.tools import to_xml
219+from openerp.tools import to_xml, SUPERUSER_ID
220 from openerp.tools.translate import _
221 from openerp.tools.safe_eval import safe_eval
222
223@@ -124,7 +124,7 @@
224 raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
225
226 if sur_rec.max_response_limit and sur_rec.max_response_limit <= sur_rec.tot_start_survey and not sur_name_rec.page_no + 1:
227- survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
228+ survey_obj.write(cr, SUPERUSER_ID, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
229
230 p_id = p_id[sur_name_rec.page_no + 1]
231 surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
232@@ -397,8 +397,8 @@
233 result['fields'] = fields
234 result['context'] = context
235 else:
236- survey_obj.write(cr, uid, survey_id, {'tot_comp_survey' : sur_rec.tot_comp_survey + 1})
237- sur_response_obj.write(cr, uid, [sur_name_read.response], {'state' : 'done'})
238+ survey_obj.write(cr, SUPERUSER_ID, survey_id, {'tot_comp_survey' : sur_rec.tot_comp_survey + 1})
239+ sur_response_obj.write(cr, uid, int(sur_name_read.response), {'state' : 'done'})
240
241 # mark the survey request as done; call 'survey_req_done' on its actual model
242 survey_req_obj = self.pool.get(context.get('active_model'))
243@@ -606,7 +606,7 @@
244 'date': strftime('%Y-%m-%d %H:%M:%S'), 'survey_id': sur_name_read['survey_id'][0]})
245 survey_id = sur_name_read['survey_id'][0]
246 sur_rec = survey_obj.read(cr, uid, survey_id)
247- survey_obj.write(cr, uid, survey_id, {'tot_start_survey' : sur_rec['tot_start_survey'] + 1})
248+ survey_obj.write(cr, SUPERUSER_ID, survey_id, {'tot_start_survey' : sur_rec['tot_start_survey'] + 1})
249 if context.has_key('cur_id'):
250 if context.has_key('request') and context.get('request',False):
251 self.pool.get(context.get('object',False)).write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id})
252
253=== modified file 'survey/wizard/survey_send_invitation.py'
254--- survey/wizard/survey_send_invitation.py 2012-10-23 16:05:04 +0000
255+++ survey/wizard/survey_send_invitation.py 2013-08-15 12:01:16 +0000
256@@ -77,7 +77,12 @@
257 Your login ID: %%(login)s\n
258 Your password: %%(passwd)s\n
259 \n\n
260-Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
261+Thanks,''') % (
262+ name,
263+ self.pool.get('ir.config_parameter').get_param(
264+ cr, uid, 'web.base.url', default='http://localhost:8069',
265+ context=context)
266+ + '#id=%d&view_type=form&model=survey' % sur.id)
267 return data
268
269 def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
270@@ -108,8 +113,8 @@
271 mail_message = self.pool.get('mail.message')
272
273 model_data_obj = self.pool.get('ir.model.data')
274- group_id = model_data_obj._get_id(cr, uid, 'base', 'group_survey_user')
275- group_id = model_data_obj.browse(cr, uid, group_id, context=context).res_id
276+ group_id = model_data_obj.get_object_reference(
277+ cr, uid, 'base', 'group_survey_invitee')[1]
278
279 act_id = self.pool.get('ir.actions.act_window')
280 act_id = act_id.search(cr, uid, [('res_model', '=' , 'survey.name.wiz'), \
281@@ -188,7 +193,9 @@
282 'address_id': partner.id,
283 'groups_id': [[6, 0, [group_id]]],
284 'action_id': act_id[0],
285- 'survey_id': [[6, 0, survey_ids]]
286+ 'survey_id': [[6, 0, survey_ids]],
287+ 'partner_id': partner.id,
288+ 'tz': context.get('tz'),
289 }
290 user = user_ref.create(cr, uid, res_data)
291 if user not in new_user:
292
293=== modified file 'survey/wizard/survey_send_invitation.xml'
294--- survey/wizard/survey_send_invitation.xml 2012-10-23 16:05:04 +0000
295+++ survey/wizard/survey_send_invitation.xml 2013-08-15 12:01:16 +0000
296@@ -45,7 +45,8 @@
297 <act_window id="action_act_view_survey_send_invitation"
298 key2="client_action_multi" name="Send Invitations"
299 res_model="survey.send.invitation" src_model="survey"
300- view_mode="form" target="new" view_type="form" />
301+ view_mode="form" target="new" view_type="form"
302+ groups="base.group_survey_user"/>
303
304 <!-- Survey send invitation Display Log Form View -->
305