[IMP] Fixing first view of survey + logic bugs
bzr revid: rim@openerp.com-20131028144314-cjy5rexani70ikhc
This commit is contained in:
parent
e9d28d5686
commit
0e45d81546
|
@ -1,9 +1,8 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_survey_manager,survey.manager,model_survey,base.group_survey_manager,1,1,1,1
|
||||
access_survey_user,survey.user,model_survey,base.group_survey_user,1,0,0,0
|
||||
access_survey_page_manager,survey.page user,model_survey_page,base.group_survey_manager,1,1,1,1
|
||||
access_survey_question_manager,survey.question user,model_survey_question,base.group_survey_manager,1,1,1,1
|
||||
access_survey_answer_manager,survey.answer user,model_survey_answer,base.group_survey_manager,1,1,1,1
|
||||
access_survey_response_manager,survey.response user,model_survey_response,base.group_survey_manager,1,1,1,1
|
||||
access_survey_response_answer_manager,survey.response.answer user,model_survey_response_answer,base.group_survey_manager,1,1,1,1
|
||||
access_survey_response_line_manager,survey.response.line user,model_survey_response_line,base.group_survey_manager,1,1,1,1
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_survey_user,survey.user,model_survey_survey,base.group_survey_user,1,0,0,0
|
||||
access_survey_manager,survey.manager,model_survey_survey,base.group_survey_manager,1,1,1,1
|
||||
access_survey_page_manager,survey.page manager,model_survey_page,base.group_survey_manager,1,1,1,1
|
||||
access_survey_question_manager,survey.question manager,model_survey_question,base.group_survey_manager,1,1,1,1
|
||||
access_survey_suggestion_manager,survey.suggestion manager,model_survey_suggestion,base.group_survey_manager,1,1,1,1
|
||||
access_survey_user_input_manager,survey.user_input manager,model_survey_user_input,base.group_survey_manager,1,1,1,1
|
||||
access_survey_user_input_line_manager,survey.user_input_line manager,model_survey_user_input_line,base.group_survey_manager,1,1,1,1
|
||||
|
|
|
|
@ -1,10 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- Survey users -->
|
||||
<record model="res.groups" id="base.group_survey_user">
|
||||
<field name="name">User</field>
|
||||
<field name="category_id" ref="base.module_category_survey"/>
|
||||
</record>
|
||||
<!-- Survey managers -->
|
||||
<record model="res.groups" id="base.group_survey_manager">
|
||||
<field name="name">Manager</field>
|
||||
<field name="category_id" ref="base.module_category_survey"/>
|
||||
|
@ -14,7 +16,7 @@
|
|||
|
||||
<record id="survey_rule" model="ir.rule">
|
||||
<field name="name">Survey</field>
|
||||
<field ref="survey.model_survey" name="model_id"/>
|
||||
<field name="model_id" ref="survey.model_survey_survey"/>
|
||||
<field name="domain_force">[('state', '=', 'open'), ('visible_to_user', '=', True)]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_survey_user'))]"/>
|
||||
<field eval="0" name="perm_unlink"/>
|
||||
|
@ -25,7 +27,7 @@
|
|||
|
||||
<record id="survey_rule_manager" model="ir.rule">
|
||||
<field name="name">Survey</field>
|
||||
<field ref="survey.model_survey" name="model_id"/>
|
||||
<field name="model_id" ref="survey.model_survey_survey"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_survey_manager'))]"/>
|
||||
<field eval="1" name="perm_unlink"/>
|
||||
|
|
|
@ -87,7 +87,7 @@ class survey_survey(osv.osv):
|
|||
fragment = {
|
||||
'active_id': survey_browse.id,
|
||||
'action': 'survey.action_filling',
|
||||
'params': survey_browse.uuid,
|
||||
'params': survey_browse.token,
|
||||
}
|
||||
res[survey_browse.id] = urljoin(base_url, "?%s#%s"
|
||||
% (urlencode(query), urlencode(fragment)))
|
||||
|
@ -100,8 +100,8 @@ class survey_survey(osv.osv):
|
|||
translate=True),
|
||||
'category': fields.char('Category', size=128),
|
||||
'page_ids': fields.one2many('survey.page', 'survey_id', 'Pages'),
|
||||
'date_open': fields.datetime('Opening date', readonly=1),
|
||||
'date_close': fields.datetime('Closing date', readonly=1),
|
||||
'date_open': fields.datetime('Opening date'),
|
||||
'date_close': fields.datetime('Closing date'),
|
||||
'user_input_limit': fields.integer('Automatic closing limit',
|
||||
help="Limits the number of instances of this survey that can be \
|
||||
completed (if set to 0, no limit is applied",
|
||||
|
@ -125,8 +125,8 @@ class survey_survey(osv.osv):
|
|||
'User responses', readonly=1,),
|
||||
'public_url': fields.function(_get_public_url,
|
||||
string="Public link", type="char"),
|
||||
'uuid': fields.char('Public token', size=8, required=1,
|
||||
oldname="token"),
|
||||
'token': fields.char('Public token', size=36, required=True, readonly=True,
|
||||
hidden=True),
|
||||
'email_template_id': fields.many2one('email.template',
|
||||
'Email Template', ondelete='set null'),
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ class survey_survey(osv.osv):
|
|||
'state': 'draft',
|
||||
'visible_to_user': True,
|
||||
'auth_required': True,
|
||||
'uuid': lambda s, cr, uid, c: uuid.uuid4(),
|
||||
'token': lambda s, cr, uid, c: uuid.uuid4().__str__(),
|
||||
}
|
||||
|
||||
# Public methods #
|
||||
|
@ -148,15 +148,15 @@ class survey_survey(osv.osv):
|
|||
|
||||
def survey_open(self, cr, uid, ids, arg):
|
||||
return self.write(cr, uid, ids, {'state': 'open',
|
||||
'date_open': datetime.now()})
|
||||
'date_open': fields.datetime.now})
|
||||
|
||||
def survey_close(self, cr, uid, ids, arg):
|
||||
return self.write(cr, uid, ids, {'state': 'close',
|
||||
'date_close': datetime.now()})
|
||||
'date_close': fields.datetime.now})
|
||||
|
||||
def survey_cancel(self, cr, uid, ids, arg):
|
||||
return self.write(cr, uid, ids, {'state': 'cancel',
|
||||
'date_close': datetime.now()})
|
||||
'date_close': fields.datetime.now})
|
||||
|
||||
## Actions ##
|
||||
|
||||
|
@ -165,7 +165,7 @@ class survey_survey(osv.osv):
|
|||
current_rec = self.read(cr, uid, ids, context=context)
|
||||
title = _("%s (copy)") % (current_rec.get('title'))
|
||||
vals['title'] = title
|
||||
return super(survey, self).copy(cr, uid, ids, vals, context=context)
|
||||
return super(survey_survey, self).copy(cr, uid, ids, vals, context=context)
|
||||
|
||||
def action_print_survey_questions(self, cr, uid, ids, context=None):
|
||||
''' Generates a printable view of an empty survey '''
|
||||
|
@ -183,7 +183,9 @@ class survey_survey(osv.osv):
|
|||
''' Open a survey in filling view '''
|
||||
id = ids[0]
|
||||
survey = self.browse(cr, uid, id, context=context)
|
||||
context.update({'edit': False, 'survey_id': id, 'survey_token': survey.token, 'ir_actions_act_window_target': 'inline'})
|
||||
context.update({'edit': False, 'survey_id': id,
|
||||
'survey_token': survey.token,
|
||||
'ir_actions_act_window_target': 'inline'})
|
||||
return {
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
|
@ -258,13 +260,13 @@ class survey_survey(osv.osv):
|
|||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
''' Delete survey and linked email templates (if any) '''
|
||||
email_template_ids = list()
|
||||
for survey in self.browse(cr, uid, ids, context=context):
|
||||
email_template_ids.append(survey.email_template_id.id)
|
||||
if email_template_ids:
|
||||
self.pool.get('email.template').unlink(cr, uid, email_template_ids,
|
||||
context=context)
|
||||
return super(survey, self).unlink(cr, uid, ids, context=context)
|
||||
# email_template_ids = list()
|
||||
# for survey in self.browse(cr, uid, ids, context=context):
|
||||
# email_template_ids.append(survey.email_template_id.id)
|
||||
# if email_template_ids:
|
||||
# self.pool.get('email.template').unlink(cr, uid, email_template_ids,
|
||||
# context=context)
|
||||
return super(survey_survey, self).unlink(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
class survey_page(osv.osv):
|
||||
|
@ -274,7 +276,7 @@ class survey_page(osv.osv):
|
|||
screens.
|
||||
|
||||
.. note::
|
||||
A page should be deleted if the survey it belongs is deleted. '''
|
||||
A page should be deleted if the survey it belongs to is deleted. '''
|
||||
|
||||
_name = 'survey.page'
|
||||
_description = 'Survey Page'
|
||||
|
@ -328,6 +330,8 @@ class survey_page(osv.osv):
|
|||
class survey_question(osv.osv):
|
||||
''' Questions that will be asked in a survey.
|
||||
|
||||
Each question can have one of more suggested answers (eg. in case of
|
||||
dropdown choices, multi-answer checkboxes, radio buttons...)
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
@ -340,16 +344,6 @@ class survey_question(osv.osv):
|
|||
_rec_name = 'question'
|
||||
_order = 'sequence'
|
||||
|
||||
# Private methods #
|
||||
|
||||
## Function fields ##
|
||||
|
||||
def _gen_constr_error_msg(self, cr, uid, ids, name, arg, context=None):
|
||||
return "constraint failed"
|
||||
|
||||
def _gen_val_error_msg(self, cr, uid, ids, name, arg, context=None):
|
||||
return "validation failed"
|
||||
|
||||
# Model fields #
|
||||
|
||||
_columns = {
|
||||
|
@ -385,20 +379,10 @@ class survey_question(osv.osv):
|
|||
('matrix', 'Container of containers of questions')
|
||||
], 'Question Type', required=1),
|
||||
|
||||
'suggested_answer_textbox': fields.char("Suggested answer",
|
||||
translate=True),
|
||||
'suggested_answer_num': fields.float("Suggested answer"),
|
||||
'suggested_answer_num': fields.float("Suggested answer"),
|
||||
'suggested_answer_num': fields.float("Suggested answer"),
|
||||
'suggested_answer_num': fields.float("Suggested answer"),
|
||||
'suggested_answer_num': fields.float("Suggested answer"),
|
||||
'suggested_answer_num': fields.float("Suggested answer"),
|
||||
|
||||
|
||||
|
||||
'suggested_answers': fields.one2many('survey.suggestion',
|
||||
'question_id', 'Suggested answers'),
|
||||
|
||||
# Comments
|
||||
# Replace comment by a special child question?
|
||||
'comments_allowed': fields.boolean('Allow comments',
|
||||
oldname="allow_comment"),
|
||||
'comment_children_ids': fields.one2many('survey.question_id',
|
||||
|
@ -422,11 +406,12 @@ class survey_question(osv.osv):
|
|||
'validation_max_value': fields.float('Maximum value'),
|
||||
'validation_min_date': fields.date('Start date range'),
|
||||
'validation_max_date': fields.date('End date range'),
|
||||
'validation_error_msg': fields.function(_gen_val_error_msg,
|
||||
type="char", string="Error message if validation fails"),
|
||||
'validation_error_msg': fields.char("Error message if validation \
|
||||
fails"),
|
||||
|
||||
'numeric_required_sum': fields.integer('Sum of all choices'),
|
||||
'numeric_required_sum_err_msg': fields.text('Error message', translate=True),
|
||||
'numeric_required_sum_err_msg': fields.text('Error message',
|
||||
translate=True),
|
||||
|
||||
#'in_visible_rating_weight': fields.boolean('Is Rating Scale Invisible?'),
|
||||
#'in_visible_menu_choice': fields.boolean('Is Menu Choice Invisible?'),
|
||||
|
@ -443,12 +428,11 @@ class survey_question(osv.osv):
|
|||
('at most', 'At Most'),
|
||||
('exactly', 'Exactly'),
|
||||
('a range', 'A Range')],
|
||||
'Respondent must answer'),
|
||||
'constr_req_ans': fields.integer('#Required Answer'),
|
||||
'Constraint on answers number'),
|
||||
#'constr_req_ans': fields.integer('Number of required answers'),
|
||||
'constr_maximum_req_ans': fields.integer('Maximum Required Answer'),
|
||||
'constr_minimum_req_ans': fields.integer('Minimum Required Answer'),
|
||||
'constr_error_msg': fields.function(_gen_constr_error_msg, type="char",
|
||||
string="Error message"),
|
||||
'constr_error_msg': fields.char("Error message if constraints fails"),
|
||||
}
|
||||
_defaults = {
|
||||
'sequence': 1,
|
||||
|
@ -468,7 +452,7 @@ class survey_question(osv.osv):
|
|||
#'in_visible_answer_type': 1
|
||||
}
|
||||
|
||||
def on_change_type(self, cr, uid, ids, type, context=None):
|
||||
def on_change_type(self, cr, uid, ids, type, context=None): # useful ?
|
||||
val = {}
|
||||
val['is_require_answer'] = False
|
||||
val['is_comment_require'] = False
|
||||
|
@ -601,6 +585,18 @@ class survey_question(osv.osv):
|
|||
}
|
||||
|
||||
|
||||
class survey_suggestion(osv.osv):
|
||||
''' A suggested answer for a question '''
|
||||
_name = 'survey.suggestion'
|
||||
_rec_name = 'value'
|
||||
|
||||
_columns = {
|
||||
'question_id': fields.many2one('survey.question', 'Question',
|
||||
required=True, ondelete='cascade'),
|
||||
'value': fields.char(length=128, translate=True, required=True)
|
||||
}
|
||||
|
||||
|
||||
class survey_user_input(osv.osv):
|
||||
''' Metadata for a set of one user's answers to a particular survey '''
|
||||
_name = "survey.user_input"
|
||||
|
@ -724,27 +720,17 @@ class survey_user_input_line(osv.osv):
|
|||
'skipped': fields.boolean('Skipped'),
|
||||
'question_id': fields.many2one('survey.question', 'Question',
|
||||
ondelete='restrict'),
|
||||
'type': fields.selection([('textbox', 'Text box'),
|
||||
'answer_type': fields.selection([('textbox', 'Text box'),
|
||||
('numerical_box', 'Numerical box'),
|
||||
('free_text', 'Free Text'),
|
||||
('datetime', 'Date and Time'),
|
||||
('checkbox', 'Checkbox'),
|
||||
('simple_choice_scale', 'One choice on a scale'),
|
||||
('simple_choice_dropdown', 'One choice in a menu'),
|
||||
('multiple_choice', 'Some choices in checkboxes'),
|
||||
], 'Question Type', required=1),
|
||||
|
||||
|
||||
|
||||
## Store here the answer to the question
|
||||
#'answer_type': fields.selection(), # see types defined in question
|
||||
#'answer_value' = fields.
|
||||
|
||||
|
||||
## Comment storage
|
||||
'comment': fields.text('Notes'),
|
||||
'single_text': fields.char('Text', size=255),
|
||||
|
||||
'value_text': fields.char("Text answer"),
|
||||
'value_number': fields.float("Numerical answer"),
|
||||
'value_date': fields.datetime("Date answer"),
|
||||
'value_free_text': fields.text("Free Text answer"),
|
||||
'value_suggested': fields.many2one('survey.suggestion'),
|
||||
}
|
||||
_defaults = {
|
||||
'skipped': False,
|
||||
|
|
|
@ -1,16 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!--menuitem name="Tools" id="base.menu_tools" sequence="120"/-->
|
||||
|
||||
<!-- Top menu item -->
|
||||
<menuitem name="Survey" id="survey_main" sequence="120"/>
|
||||
<menuitem name="Survey" id="menu_surveys" parent="survey_main" sequence="10" groups="base.group_survey_user"/>
|
||||
|
||||
<menuitem name="Statistics" id="menu_reporting" parent="survey_main" sequence="20" groups="base.group_survey_manager"/>
|
||||
<menuitem id="base.next_id_10" name="Survey" parent="base.menu_reporting" sequence="1" groups="base.group_survey_manager"/>
|
||||
|
||||
<menuitem name="Configuration" id="menu_surveys_configuration" parent="survey_main" sequence="30" groups="base.group_no_one"/>
|
||||
|
||||
<!--
|
||||
Survey Response
|
||||
|
@ -90,7 +81,7 @@
|
|||
|
||||
<record model="ir.actions.act_window" id="action_survey_response">
|
||||
<field name="name">Survey Response</field>
|
||||
<field name="res_model">survey.response</field>
|
||||
<field name="res_model">survey.user_input</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="survey_response_tree"></field>
|
||||
<field name="search_view_id" ref="survey_response_search"/>
|
||||
|
@ -104,7 +95,7 @@
|
|||
|
||||
<record id="action_selected_survey_response" model="ir.actions.act_window">
|
||||
<field name="name">Survey Response</field>
|
||||
<field name="res_model">survey.response</field>
|
||||
<field name="res_model">survey.user_input</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="survey_response_tree"></field>
|
||||
<field name="search_view_id" ref="survey_response_search"/>
|
||||
|
@ -116,9 +107,6 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Surveys Responses" id="menu_survey_type_form1"
|
||||
action="action_survey_response" parent="menu_reporting"
|
||||
groups="base.group_survey_manager" sequence="2"/>
|
||||
|
||||
<!--
|
||||
Survey
|
||||
|
@ -126,7 +114,7 @@
|
|||
|
||||
<record model="ir.ui.view" id="survey_form">
|
||||
<field name="name">survey_form</field>
|
||||
<field name="model">survey</field>
|
||||
<field name="model">survey.survey</field>
|
||||
<field name="priority">1</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Survey" version="7.0">
|
||||
|
@ -144,20 +132,16 @@
|
|||
<div class="oe_title">
|
||||
<label for="title" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="title" attrs="{'readonly':[('state','=','close')]}"/>
|
||||
<field name="title" attrs="{'readonly':[('state','in',['close','cancel'])]}"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group colspan="4">
|
||||
<field name="type" attrs="{'readonly':[('state','in',['close','cancel'])]}" class="oe_inline"/>
|
||||
<field name="max_response_limit" attrs="{'readonly':[('state','=','close')]}"/>
|
||||
<field name="category" attrs="{'readonly':[('state','in',['close','cancel'])]}"/>
|
||||
<field name="user_input_limit" attrs="{'readonly':[('state','=','close')]}"/>
|
||||
<field name="visible_to_user"/>
|
||||
<field name="public_url" widget="url"/>
|
||||
<div name="authenticate" colspan="4">
|
||||
<small>
|
||||
The Public Portal is not activated; users must be authenticated to answer the survey. If you want to make the survey available to everyone, please activate the Public Portal : Settings > General Settings > Activate the public portal.
|
||||
</small>
|
||||
</div>
|
||||
<field name="auth_required" />
|
||||
</group>
|
||||
</group>
|
||||
<field name="page_ids" colspan="4" mode="tree" attrs="{'readonly':[('state','=','close')]}" context="{'default_survey_id': active_id}">
|
||||
|
@ -167,7 +151,7 @@
|
|||
<field name="question_ids"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="note" placeholder="Survey description..." attrs="{'readonly':[('state','=','close')]}"/>
|
||||
<field name="description" placeholder="Survey description..." attrs="{'readonly':[('state','=','close')]}"/>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
|
@ -179,39 +163,42 @@
|
|||
|
||||
<record model="ir.ui.view" id= "survey_tree">
|
||||
<field name="name">survey_tree</field>
|
||||
<field name="model">survey</field>
|
||||
<field name="model">survey.survey</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="gray:state == 'close'" string="Survey">
|
||||
<field name="title"/>
|
||||
<field name="type"/>
|
||||
<field name="date_open" string="Open Date"/>
|
||||
<field name="date_close" string="Open Date"/>
|
||||
<field name="tot_start_survey" string="Started"/>
|
||||
<field name="tot_comp_survey" string="Completed"/>
|
||||
<field name="state"/>
|
||||
<field name="title" />
|
||||
<field name="category"/>
|
||||
<field name="date_open" string="Opening date" />
|
||||
<field name="date_close" string="Closing date" />
|
||||
<field name="tot_start_survey" string="Started" />
|
||||
<field name="tot_comp_survey" string="Completed" />
|
||||
<field name="user_input_limit" string="Max closing limit" />
|
||||
<field name="state" />
|
||||
<!--
|
||||
<button name="action_fill_survey" states="open"
|
||||
string="Fill in Survey" type="object" icon="gtk-execute" context="{'survey_id': active_id}" attrs="{'invisible':[('state','!=','open')]}"/>
|
||||
<button name="action_print_survey" string="Print Answer" type="object" icon="gtk-print"/>
|
||||
<button name="print_statistics" string="Print Statistics" states="open,close,cancel" type="object" icon="gtk-print" groups="base.group_survey_manager"/>
|
||||
-->
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="survey_search" model="ir.ui.view">
|
||||
<field name="name">survey_search</field>
|
||||
<field name="model">survey</field>
|
||||
<field name="model">survey.survey</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Survey">
|
||||
<field name="title" string="Survey"/>
|
||||
<field name="type"/>
|
||||
<filter string="New / Draft" domain="[('state','=', 'draft')]"/>
|
||||
<field name="category"/>
|
||||
<filter string="Draft" domain="[('state','=', 'draft')]"/>
|
||||
<filter string="Open" domain="[('state','=','open')]"/>
|
||||
<filter string="Closed" domain="[('state','=','close')]"/>
|
||||
<filter string="Canceled" domain="[('state','=','cancel')]"/>
|
||||
<filter string="Cancelled" domain="[('state','=','cancel')]"/>
|
||||
<separator/>
|
||||
<filter string="Survey to fill in" name="unread_message" domain="['&', ('response_ids.state', 'in', ['new', 'skip']), ('response_ids.partner_id.user_id', '=', uid)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
|
||||
<filter string="Not completed yet" name="unread_message" domain="['&', ('response_ids.state', 'in', ['new', 'skip']), ('response_ids.partner_id.user_id', '=', uid)]"/>
|
||||
<group expand="1" string="Group by...">
|
||||
<filter string="Category" name="group_category" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'category'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
@ -220,16 +207,16 @@
|
|||
|
||||
<record model="ir.ui.view" id="view_survey_kanban">
|
||||
<field name="name">event.survey.kanban</field>
|
||||
<field name="model">survey</field>
|
||||
<field name="model">survey.survey</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban>
|
||||
<field name="title"/>
|
||||
<field name="date_open"/>
|
||||
<field name="tot_comp_survey"/>
|
||||
<field name="max_response_limit"/>
|
||||
<field name="user_input_limit"/>
|
||||
<field name="color"/>
|
||||
<field name="state"/>
|
||||
<field name="authenticate"/>
|
||||
<field name="auth_required"/>
|
||||
<field name="public_url"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
|
@ -249,8 +236,8 @@
|
|||
<div class="oe_kanban_content">
|
||||
<span class="oe_kanban_right" t-if="widget.view.is_action_enabled('edit')">
|
||||
<a t-if="record.state.raw_value === 'draft'" title="Draft" class="oe_kanban_status"> </a>
|
||||
<a t-if="record.state.raw_value === 'open' and record.authenticate.raw_value" title="Open for authentified people" class="oe_kanban_status_green"> </a>
|
||||
<a t-if="record.state.raw_value === 'open' and !record.authenticate.raw_value" title="Open to everyone" class="oe_kanban_status_green"> </a>
|
||||
<a t-if="record.state.raw_value === 'open' and record.auth_required.raw_value" title="Open for authentified people" class="oe_kanban_status_green"> </a>
|
||||
<a t-if="record.state.raw_value === 'open' and !record.auth_required.raw_value" title="Open to everyone" class="oe_kanban_status_green"> </a>
|
||||
<a t-if="record.state.raw_value === 'close'" title="Close" class="oe_kanban_status_red"> </a>
|
||||
<a t-if="record.state.raw_value === 'cancel'" title="Cancelled" class="oe_kanban_status_red"> </a>
|
||||
</span>
|
||||
|
@ -262,8 +249,8 @@
|
|||
<t t-if="record.state.raw_value !== 'open'"><span class="oe_inactive" title="You can only collect answers for the open survey">Invite people</span></t>
|
||||
</td>
|
||||
<td>
|
||||
<t t-if="record.tot_comp_survey.raw_value"><a name="%(action_selected_survey_response)d" type="action">Get responses (<field name="tot_comp_survey"/><t t-if="record.max_response_limit.raw_value > 0"> / <field name="max_response_limit"/></t>)</a></t>
|
||||
<t t-if="!record.tot_comp_survey.raw_value"><span class="oe_inactive" title="There is no answer yet">Get responses (<field name="tot_comp_survey"/><t t-if="record.max_response_limit.raw_value > 0"> / <field name="max_response_limit"/></t>)</span></t>
|
||||
<t t-if="record.tot_comp_survey.raw_value"><a name="%(action_selected_survey_response)d" type="action">Get responses (<field name="tot_comp_survey"/><t t-if="record.user_input_limit.raw_value > 0"> / <field name="user_input_limit"/></t>)</a></t>
|
||||
<t t-if="!record.tot_comp_survey.raw_value"><span class="oe_inactive" title="There is no answer yet">Get responses (<field name="tot_comp_survey"/><t t-if="record.user_input_limit.raw_value > 0"> / <field name="user_input_limit"/></t>)</span></t>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -284,13 +271,14 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_survey_form1">
|
||||
<record model="ir.actions.act_window" id="action_survey_form">
|
||||
<field name="name">Surveys</field>
|
||||
<field name="res_model">survey</field>
|
||||
<field name="res_model">survey.survey</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="view_id" ref="view_survey_kanban"></field>
|
||||
<field name="search_view_id" ref="survey_search"/>
|
||||
<field name="context">{'search_default_group_category': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new survey.
|
||||
|
@ -305,9 +293,10 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Surveys" id="menu_survey_form"
|
||||
action="action_survey_form1" parent="menu_surveys"
|
||||
sequence="1"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Survey Pages
|
||||
|
@ -378,9 +367,7 @@
|
|||
<field name="context">{'search_default_group_by_survey': True}</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Survey Pages" id="menu_survey_page_form1"
|
||||
action="action_survey_page_form" parent="menu_surveys_configuration"
|
||||
sequence="1"/>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="survey_page_wizard_test1">
|
||||
<field name="name">survey_page_wizard_test</field>
|
||||
|
@ -573,6 +560,16 @@
|
|||
<field name="context">{'search_default_group_by_survey': True, 'search_default_group_by_page': True}</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_survey_suggestion_form">
|
||||
<field name="name">Survey Suggestions</field>
|
||||
<field name="res_model">survey.suggestion</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<!--<field name="view_id" ref="survey_question_tree"></field>
|
||||
<field name="search_view_id" ref="survey_question_search"/>
|
||||
<field name="context">{'search_default_group_by_survey': True, 'search_default_group_by_page': True}</field> -->
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="survey_question_wizard_test">
|
||||
<field name="name">survey_question_wizard_test</field>
|
||||
<field name="model">survey.question</field>
|
||||
|
@ -589,9 +586,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Survey Questions" id="menu_survey_question_form1"
|
||||
action="action_survey_question_form" parent="menu_surveys_configuration"
|
||||
sequence="2"/>
|
||||
|
||||
|
||||
<!--
|
||||
Survey Answer
|
||||
|
@ -689,54 +684,19 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Survey Question Column Heading
|
||||
-->
|
||||
|
||||
<record model="ir.ui.view" id="survey_question_column_heading_form">
|
||||
<field name="name">survey_question_column_heading_form</field>
|
||||
<field name="model">survey.question.column.heading</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Column Heading">
|
||||
<field name="title"/>
|
||||
<field name="in_visible_rating_weight" invisible="1"/>
|
||||
<field name="in_visible_menu_choice" invisible="1"/>
|
||||
<group colspan="4" attrs="{'invisible':[('in_visible_rating_weight','!=',False)]}">
|
||||
<field name="rating_weight"/>
|
||||
<label align="0.0" string="Use if question type is rating_scale" />
|
||||
</group>
|
||||
<group colspan="4" attrs="{'invisible':[('in_visible_menu_choice','!=',False)]}">
|
||||
<separator string="Menu Choices (each choice on separate lines)" colspan="4"/>
|
||||
<field name="menu_choice" nolabel="1" colspan="4"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="survey_question_column_heading_tree">
|
||||
<field name="name">survey_question_column_heading_tree</field>
|
||||
<field name="model">survey.question.column.heading</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom" string="Column Heading">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="title"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
context="{'search_default_survey_id': [active_id], 'default_survey_id': active_id}"
|
||||
id="act_survey_pages"
|
||||
name="Pages"
|
||||
res_model="survey.page"
|
||||
src_model="survey"/>
|
||||
src_model="survey.survey"/>
|
||||
|
||||
<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.survey"/>
|
||||
|
||||
<act_window
|
||||
context="{'search_default_page_id': active_id, 'default_page_id': active_id}"
|
||||
|
@ -748,8 +708,47 @@
|
|||
<act_window domain="[('question_id', '=', active_id)]"
|
||||
id="act_survey_answer"
|
||||
name="Answers"
|
||||
res_model="survey.answer"
|
||||
res_model="survey.suggestion"
|
||||
src_model="survey.question"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
MENU ELEMENTS
|
||||
|
||||
-->
|
||||
|
||||
<!-- Top menubar item -->
|
||||
<menuitem name="Surveys" id="survey_main" sequence="120"/>
|
||||
|
||||
<!-- Left menu categories-->
|
||||
<menuitem name="Surveys" id="menu_surveys" parent="survey_main" sequence="10" groups="base.group_survey_user"/>
|
||||
<menuitem name="Statistics" id="menu_statistics" parent="survey_main" sequence="20" groups="base.group_survey_manager"/>
|
||||
<menuitem name="Configuration" id="menu_surveys_configuration" parent="survey_main" sequence="30" groups="base.group_survey_manager"/>
|
||||
|
||||
<!-- Left menu elements: Survey -->
|
||||
<menuitem name="Surveys" id="menu_survey_form"
|
||||
action="action_survey_form" parent="menu_surveys"
|
||||
sequence="1"/>
|
||||
|
||||
<!-- Left menu elements: Statistics -->
|
||||
<menuitem name="Surveys Answers" id="menu_survey_type_form1"
|
||||
action="action_survey_response" parent="menu_statistics"
|
||||
sequence="1"/>
|
||||
|
||||
<!-- Left menu elements: Configuration -->
|
||||
<menuitem name="Survey Pages" id="menu_survey_page_form1"
|
||||
action="action_survey_page_form" parent="menu_surveys_configuration"
|
||||
sequence="1"/>
|
||||
|
||||
<menuitem name="Survey Questions" id="menu_survey_question_form1"
|
||||
action="action_survey_question_form" parent="menu_surveys_configuration"
|
||||
sequence="2"/>
|
||||
|
||||
<menuitem name="Survey Suggestions" id="menu_survey_suggestion_form1"
|
||||
action="action_survey_suggestion_form" parent="menu_surveys_configuration"
|
||||
sequence="3"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -39,7 +39,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
_name = 'survey.question.wiz'
|
||||
|
||||
_columns = {
|
||||
'survey_id': fields.many2one('survey', 'Survey', required=True, ondelete='cascade', domain=[('state', 'in', ['draft', 'open'])]),
|
||||
'survey_id': fields.many2one('survey.survey', 'Survey', required=True, ondelete='cascade', domain=[('state', 'in', ['draft', 'open'])]),
|
||||
'page_no': fields.integer('Page Number'),
|
||||
'page': fields.char('Page Position'),
|
||||
'transfer': fields.boolean('Page Transfer'),
|
||||
|
@ -200,7 +200,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
user_browse = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context)
|
||||
val = {
|
||||
'type': 'notification',
|
||||
'model': 'survey',
|
||||
'model': 'survey.survey',
|
||||
'res_id': survey_id,
|
||||
'record_name': _("Survey N° %s") % survey_id,
|
||||
'body': _("%s have post a new response on this survey.") % user_browse.name,
|
||||
|
|
|
@ -70,7 +70,7 @@ class survey_mail_compose_message(osv.TransientModel):
|
|||
|
||||
_defaults = {
|
||||
'public': 'email_private',
|
||||
'survey_id': lambda self,cr,uid,ctx={}: ctx.get('model') == 'survey' and ctx.get('res_id') or None,
|
||||
'survey_id': lambda self,cr,uid,ctx={}: ctx.get('model') == 'survey.survey' and ctx.get('res_id') or None,
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<!--Survey send invitation Email template -->
|
||||
<record id="email_template_survey" model="email.template">
|
||||
<field name="name">Survey - Send by Email</field>
|
||||
<field name="model_id" ref="model_survey"/>
|
||||
<field name="model_id" ref="model_survey_survey"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="body_html"><![CDATA[
|
||||
<div style="font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); ">
|
||||
|
|
Loading…
Reference in New Issue