'author': 'OpenERP SA',
'depends': ['mail'],
'data': [
+ 'security/survey_security.xml',
+ 'security/ir.model.access.csv',
'survey_report.xml',
'survey_data.xml',
'wizard/survey_selection.xml',
'wizard/survey_answer.xml',
- 'security/survey_security.xml',
- 'security/ir.model.access.csv',
'survey_view.xml',
'wizard/survey_print_statistics.xml',
'wizard/survey_print_answer.xml',
access_survey_response_line_survey_user,survey.response.line.survey.user,model_survey_response_line,base.group_survey_user,1,1,1,1\r
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\r
access_survey_question_column_heading_user,survey.question.column.heading user,model_survey_question_column_heading,base.group_tool_user,1,1,1,1\r
+access_survey_invitee,survey.invitee,model_survey,base.group_survey_invitee,1,0,0,0\r
+access_survey_page_invitee,survey.page.invitee,model_survey_page,base.group_survey_invitee,1,0,0,0\r
+access_survey_question_invitee,survey.question.invitee,model_survey_question,base.group_survey_invitee,1,0,0,0\r
+access_survey_answer_invitee,survey.answer.invitee,model_survey_answer,base.group_survey_invitee,1,0,0,0\r
+access_survey_response_invitee,survey.response.invitee,model_survey_response,base.group_survey_invitee,1,1,1,0\r
+access_survey_response_line_invitee,survey.response.line.invitee,model_survey_response_line,base.group_survey_invitee,1,1,1,0\r
+access_survey_response_answer_invitee,survey.response.answer.invitee,model_survey_response_answer,base.group_survey_invitee,1,1,1,0\r
+access_survey_history_invitee,survey.history.invitee,model_survey_history,base.group_survey_invitee,1,0,1,0\r
+access_survey_question_column_heading_invitee,survey.question.column.heading.invitee,model_survey_question_column_heading,base.group_survey_invitee,1,0,0,0\r
+access_res_partner_invitee,res.partner.invitee,base.model_res_partner,base.group_survey_invitee,1,0,0,0\r
<field name="name">Survey / User</field>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
- </data>
+ <record model="res.groups" id="base.group_survey_invitee">
+ <field name="name">Survey / Invitee</field>
+ </record>
+ <record id="rule_survey_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey" />
+ <field name="domain_force">[("invited_user_ids", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_page_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_page" />
+ <field name="domain_force">[("survey_id.invited_user_ids", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_question_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_question" />
+ <field name="domain_force">[("survey.invited_user_ids", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_answer_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_answer" />
+ <field name="domain_force">[("question_id.survey.invited_user_ids", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_response_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_response" />
+ <field name="domain_force">[("user_id", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_response_line_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_response_line" />
+ <field name="domain_force">[("response_id.user_id", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_response_answer_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_response_answer" />
+ <field name="domain_force">[("response_id.response_id.user_id", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_history_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_history" />
+ <field name="domain_force">[("survey_id.invited_user_ids", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_survey_question_column_heading_invitee" model="ir.rule">
+ <field name="model_id" ref="model_survey_question_column_heading" />
+ <field name="domain_force">[("question_id.survey.invited_user_ids", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ <record id="rule_res_partner_invitee" model="ir.rule">
+ <field name="model_id" ref="base.model_res_partner" />
+ <field name="domain_force">[("id", "=", user.id)]</field>
+ <field name="groups" eval="[(6, 0,[ref('base.group_survey_invitee')])]" />
+ </record>
+ </data>
</openerp>
id="report_survey_form"
model="survey"
name="survey.form"
- string="Survey"/>
+ string="Survey"
+ groups="base.group_survey_user" />
<report auto="True"
id="survey_analysis"
model="survey"
name="survey.analysis"
rml=""
- string="Survey Statistics"/>
+ string="Survey Statistics"
+ groups="base.group_survey_user" />
<report auto="True"
id="survey_browse_response"
model="survey"
name="survey.browse.response"
rml=""
- string="Survey Answers"/>
+ string="Survey Answers"
+ groups="base.group_survey_user" />
</data>
</openerp>
</field>
</record>
+ <record model="ir.ui.view" id="survey_form_invitee">
+ <field name="name">survey_form_invitee</field>
+ <field name="model">survey</field>
+ <field name="groups_id" eval="[(6, 0, [ref('base.group_survey_invitee')])]" />
+ <field name="priority" eval="1" />
+ <field name="inherit_id" ref="survey_form" />
+ <field name="arch" type="xml">
+ <data>
+ <form position="replace">
+ <form string="Survey" version="7.0">
+ <sheet>
+ <field name="state" invisible="True" />
+ <div class="oe_button_box oe_right">
+ <button name="fill_survey" states="open" string="Answer Survey" type="object" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
+ </div>
+ <div class="oe_title">
+ <label for="title" class="oe_edit_only"/>
+ <h1>
+ <field name="title" attrs="{'readonly':[('state','=','close')]}"/>
+ </h1>
+ </div>
+ <field name="note" />
+ </sheet>
+ </form>
+ </form>
+ </data>
+ </field>
+ </record>
+
<record id="survey_search" model="ir.ui.view">
<field name="name">survey_search</field>
<field name="model">survey</field>
id="act_survey_pages"
name="Pages"
res_model="survey.page"
- src_model="survey"/>
+ src_model="survey"
+ groups="base.group_survey_user"/>
<act_window
context="{'search_default_survey': active_id, 'default_survey': active_id}"
id="act_survey_question"
name="Questions"
res_model="survey.question"
- src_model="survey"/>
+ src_model="survey"
+ groups="base.group_survey_user"/>
<act_window
id="act_survey_page_question"
name="Questions"
res_model="survey.question"
- src_model="survey.page"/>
+ src_model="survey.page" />
<act_window domain="[('question_id', '=', active_id)]"
id="act_survey_answer"
id="act_survey_request"
name="Survey Requests"
res_model="survey.request"
- src_model="survey"/>
+ src_model="survey"
+ groups="base.group_survey_user"/>
</data>
</openerp>
from openerp import addons, netsvc, tools
from openerp.osv import fields, osv
-from openerp.tools import to_xml
+from openerp.tools import to_xml, SUPERUSER_ID
from openerp.tools.translate import _
from openerp.tools.safe_eval import safe_eval
raise osv.except_osv(_('Warning!'),_("You cannot answer this survey more than %s times.") % (user_limit))
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:
- survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
+ survey_obj.write(cr, SUPERUSER_ID, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
p_id = p_id[sur_name_rec.page_no + 1]
surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
result['fields'] = fields
result['context'] = context
else:
- survey_obj.write(cr, uid, survey_id, {'tot_comp_survey' : sur_rec.tot_comp_survey + 1})
- sur_response_obj.write(cr, uid, [sur_name_read.response], {'state' : 'done'})
+ survey_obj.write(cr, SUPERUSER_ID, survey_id, {'tot_comp_survey' : sur_rec.tot_comp_survey + 1})
+ sur_response_obj.write(cr, uid, int(sur_name_read.response), {'state' : 'done'})
# mark the survey request as done; call 'survey_req_done' on its actual model
survey_req_obj = self.pool.get(context.get('active_model'))
'date': strftime('%Y-%m-%d %H:%M:%S'), 'survey_id': sur_name_read['survey_id'][0]})
survey_id = sur_name_read['survey_id'][0]
sur_rec = survey_obj.read(cr, uid, survey_id)
- survey_obj.write(cr, uid, survey_id, {'tot_start_survey' : sur_rec['tot_start_survey'] + 1})
+ survey_obj.write(cr, SUPERUSER_ID, survey_id, {'tot_start_survey' : sur_rec['tot_start_survey'] + 1})
if context.has_key('cur_id'):
if context.has_key('request') and context.get('request',False):
self.pool.get(context.get('object',False)).write(cr, uid, [int(context.get('cur_id',False))], {'response' : response_id})
Your login ID: %%(login)s\n
Your password: %%(passwd)s\n
\n\n
-Thanks,''') % (name, self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context))
+Thanks,''') % (
+ name,
+ self.pool.get('ir.config_parameter').get_param(
+ cr, uid, 'web.base.url', default='http://localhost:8069',
+ context=context)
+ + '#id=%d&view_type=form&model=survey' % sur.id)
return data
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False):
mail_message = self.pool.get('mail.message')
model_data_obj = self.pool.get('ir.model.data')
- group_id = model_data_obj._get_id(cr, uid, 'base', 'group_survey_user')
- group_id = model_data_obj.browse(cr, uid, group_id, context=context).res_id
+ group_id = model_data_obj.get_object_reference(
+ cr, uid, 'base', 'group_survey_invitee')[1]
act_id = self.pool.get('ir.actions.act_window')
act_id = act_id.search(cr, uid, [('res_model', '=' , 'survey.name.wiz'), \
'address_id': partner.id,
'groups_id': [[6, 0, [group_id]]],
'action_id': act_id[0],
- 'survey_id': [[6, 0, survey_ids]]
+ 'survey_id': [[6, 0, survey_ids]],
+ 'partner_id': partner.id,
+ 'tz': context.get('tz'),
}
user = user_ref.create(cr, uid, res_data)
if user not in new_user:
<act_window id="action_act_view_survey_send_invitation"
key2="client_action_multi" name="Send Invitations"
res_model="survey.send.invitation" src_model="survey"
- view_mode="form" target="new" view_type="form" />
+ view_mode="form" target="new" view_type="form"
+ groups="base.group_survey_user"/>
<!-- Survey send invitation Display Log Form View -->