[IMP] Code improvements

bzr revid: rim@openerp.com-20131206091744-ry1bnwisj0vwmj9o
This commit is contained in:
Richard Mathot (OpenERP) 2013-12-06 10:17:44 +01:00
parent c670ab2bc0
commit 32876beec7
7 changed files with 57 additions and 52 deletions

View File

@ -22,7 +22,7 @@
{ {
'name': 'Survey', 'name': 'Survey',
'version': '2.0', 'version': '2.0',
'category': 'Survey', 'category': 'Marketing',
'description': """ 'description': """
This module is used for surveying. This module is used for surveying.
================================== ==================================
@ -35,7 +35,7 @@ sent mails with user name and password for the invitation of the survey.
""", """,
'summary': 'Create surveys, collect answers and print statistics', 'summary': 'Create surveys, collect answers and print statistics',
'author': 'OpenERP SA', 'author': 'OpenERP SA',
'website': 'https://www.openerp.com/', 'website': 'https://www.openerp.com/apps/survey/',
'depends': ['email_template', 'mail', 'website'], 'depends': ['email_template', 'mail', 'website'],
'data': [ 'data': [
'survey_cron.xml', 'survey_cron.xml',

View File

@ -61,7 +61,7 @@ class WebsiteSurvey(http.Controller):
return werkzeug.utils.redirect("/survey/") return werkzeug.utils.redirect("/survey/")
# In case of auth required, block public user # In case of auth required, block public user
if survey.auth_required and uid == request.registry['website'].get_public_user(request.cr, SUPERUSER_ID, request.context).id: if survey.auth_required and uid == request.registry['website'].get_public_user(request.cr, SUPERUSER_ID, request.context):
return request.website.render("website.401") return request.website.render("website.401")
# In case of non open surveys # In case of non open surveys
@ -118,7 +118,7 @@ class WebsiteSurvey(http.Controller):
return werkzeug.utils.redirect("/survey/") return werkzeug.utils.redirect("/survey/")
# In case of auth required, block public user # In case of auth required, block public user
if survey.auth_required and uid == request.registry['website'].get_public_user(request.cr, SUPERUSER_ID, request.context).id: if survey.auth_required and uid == request.registry['website'].get_public_user(request.cr, SUPERUSER_ID, request.context):
return request.website.render("website.401") return request.website.render("website.401")
# In case of non open surveys # In case of non open surveys

View File

@ -13,7 +13,6 @@
<field name="users" eval="[(4, ref('base.user_root'))]"/> <field name="users" eval="[(4, ref('base.user_root'))]"/>
</record> </record>
<!-- Record rules --> <!-- Record rules -->
<record id="survey_public_access" model="ir.rule"> <record id="survey_public_access" model="ir.rule">
<field name="name">Public access to surveys</field> <field name="name">Public access to surveys</field>

View File

@ -37,9 +37,9 @@
} }
.openerp .oe_kanban_survey .oe_stats_box { .openerp .oe_kanban_survey .oe_stats_box {
width: 105px; width: 90px;
display: inline-block; display: inline-block;
margin: 2px 5px 0px 5px; margin: 2px 2px 0px 0px;
text-align: center; text-align: center;
border: 1px solid rgba(0, 0, 0, 0.16); border: 1px solid rgba(0, 0, 0, 0.16);
background-color: #FFFFFF; background-color: #FFFFFF;

View File

@ -28,7 +28,6 @@ import datetime
import logging import logging
import re import re
import uuid import uuid
import traceback
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@ -387,7 +386,7 @@ class survey_question(osv.osv):
oldname='validation_valid_err_msg', oldname='validation_valid_err_msg',
translate=True), translate=True),
# Constraints on number of answers # Constraints on number of answers (matrices)
'constr_mandatory': fields.boolean('Mandatory question', 'constr_mandatory': fields.boolean('Mandatory question',
oldname="is_require_answer"), oldname="is_require_answer"),
'constr_type': fields.selection([('all', 'all'), 'constr_type': fields.selection([('all', 'all'),
@ -411,6 +410,7 @@ class survey_question(osv.osv):
'display_mode': 'dropdown', 'display_mode': 'dropdown',
'constr_type': 'at least', 'constr_type': 'at least',
'constr_minimum_req_ans': 1, 'constr_minimum_req_ans': 1,
'constr_maximum_req_ans': 1,
'constr_error_msg': lambda s, cr, uid, c: 'constr_error_msg': lambda s, cr, uid, c:
_('This question requires an answer.'), _('This question requires an answer.'),
'validation_error_msg': lambda s, cr, uid, c: _('The answer you entered has an invalid format.'), 'validation_error_msg': lambda s, cr, uid, c: _('The answer you entered has an invalid format.'),
@ -422,7 +422,8 @@ class survey_question(osv.osv):
('validation_length', 'CHECK (validation_length_min <= validation_length_max)', 'Max length cannot be smaller than min length!'), ('validation_length', 'CHECK (validation_length_min <= validation_length_max)', 'Max length cannot be smaller than min length!'),
('validation_float', 'CHECK (validation_min_float_value <= validation_max_float_value)', 'Max value cannot be smaller than min value!'), ('validation_float', 'CHECK (validation_min_float_value <= validation_max_float_value)', 'Max value cannot be smaller than min value!'),
('validation_int', 'CHECK (validation_min_int_value <= validation_max_int_value)', 'Max value cannot be smaller than min value!'), ('validation_int', 'CHECK (validation_min_int_value <= validation_max_int_value)', 'Max value cannot be smaller than min value!'),
('validation_date', 'CHECK (validation_min_date <= validation_max_date)', 'Max date cannot be smaller than min date!') ('validation_date', 'CHECK (validation_min_date <= validation_max_date)', 'Max date cannot be smaller than min date!'),
('constr_number', 'CHECK (constr_minimum_req_ans <= constr_maximum_req_ans)', 'Max number of answers cannot be smaller than min number!')
] ]
# def write(self, cr, uid, ids, vals, context=None): # def write(self, cr, uid, ids, vals, context=None):
@ -641,12 +642,19 @@ class survey_question(osv.osv):
return errors return errors
# def validate_multiple_choice(self, cr, uid, question, post, answer_tag, context=None): # def validate_multiple_choice(self, cr, uid, question, post, answer_tag, context=None):
# problems = [] # errors = {}
# return problems # if question.constr_mandatory:
# # extraire les réponses
# # vérifier qu'elles sont ok
# return errors
# def validate_matrix(self, cr, uid, question, post, answer_tag, context=None): # def validate_matrix(self, cr, uid, question, post, answer_tag, context=None):
# problems = [] # errors = {}
# return problems # if question.constr_mandatory:
# # compter le nombre de lignes qui ont une réponse (cas des matrices à choix multiple)
# # valider selon les contraintes de lignes
# # retourner des erreurs si c'est caca
# return errors
class survey_label(osv.osv): class survey_label(osv.osv):
@ -717,7 +725,7 @@ class survey_user_input(osv.osv):
# return werkzeug.utils.redirect("/survey/") # return werkzeug.utils.redirect("/survey/")
# # In case of auth required, block public user # # In case of auth required, block public user
# if survey.auth_required and uid == request.registry['website'].get_public_user(request.cr, SUPERUSER_ID, request.context).id: # if survey.auth_required and uid == request.registry['website'].get_public_user(request.cr, SUPERUSER_ID, request.context):
# return request.website.render("website.401") # return request.website.render("website.401")
# # In case of non open surveys # # In case of non open surveys
@ -810,7 +818,7 @@ class survey_user_input(osv.osv):
}) })
return { return {
'view_type': 'form', 'view_type': 'form',
"view_mode": 'form', 'view_mode': 'form',
'res_model': 'survey.question.wiz', 'res_model': 'survey.question.wiz',
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'target': 'new', 'target': 'new',

View File

@ -219,7 +219,7 @@
<filter string="Closed" domain="[('state','=','close')]"/> <filter string="Closed" domain="[('state','=','close')]"/>
<filter string="Cancelled" domain="[('state','=','cancel')]"/> <filter string="Cancelled" domain="[('state','=','cancel')]"/>
<separator/> <separator/>
<filter string="Not completed yet" name="unread_message" domain="['&amp;', ('response_ids.state', 'in', ['new', 'skip']), ('response_ids.partner_id.user_id', '=', uid)]"/> <filter string="Not completed yet" name="unread_message" domain="[('user_input_ids.state', 'in', ['new', 'skip'])]"/>
<group expand="1" string="Group by..."> <group expand="1" string="Group by...">
<filter string="Status" name="group_status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <filter string="Status" name="group_status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
</group> </group>
@ -541,31 +541,29 @@
</record> </record>
<!-- <!--
Survey Response Line Survey User Input Line
.. note:: these views are useful mainly for technical users/administrators
--> -->
<record model="ir.ui.view" id="survey_user_input_line_form">
<!-- <record model="ir.ui.view" id= "survey_response_line_form"> <field name="name">survey_user_input_line_form</field>
<field name="name">survey_response_line_form</field>
<field name="model">survey.user_input_line</field> <field name="model">survey.user_input_line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Survey Answer"> <form string="User input line details" version="7.0">
<field name="question_id"/> <sheet>
<field name="date_create"/> <group col="4">
<notebook colspan="4"> <field name="question_id"/>
<page string="Answer"> <field name="date_create"/>
<field name="response_answer_ids" colspan="4" nolabel="1"/> <field name="answer_type"/>
<group col="5" colspan="4"> <field name="skipped" />
<field name="state"/> </group>
</group> <group>
</page> <field name="value_text" colspan='2' attrs="{'invisible': [('answer_type','!=','text')]}"/>
<page string="Single Textboxes"> <field name="value_number" colspan='2' attrs="{'invisible': [('answer_type','!=','number')]}"/>
<field name="single_text" colspan="4"/> <field name="value_date" colspan='2' attrs="{'invisible': [('answer_type','!=','date')]}"/>
</page> <field name="value_free_text" colspan='2' attrs="{'invisible': [('answer_type','!=','free_text')]}"/>
<page string="Comment"> <field name="value_suggested" colspan='2' attrs="{'invisible': [('answer_type','!=','suggested')]}"/>
<separator string="Description" colspan="4"/> </group>
<field name="comment" nolabel="1" colspan="4"/> </sheet>
</page>
</notebook>
</form> </form>
</field> </field>
</record> </record>
@ -575,20 +573,21 @@
<field name="model">survey.user_input_line</field> <field name="model">survey.user_input_line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Survey Answer Line"> <tree string="Survey Answer Line">
<field name="survey_id"/>
<field name="user_input_id"/>
<field name="page_id"/> <field name="page_id"/>
<field name="question_id"/> <field name="question_id"/>
<field name="date_create"/> <field name="date_create"/>
<field name="state"/> <field name="answer_type"/>
<field name="skipped"/>
</tree> </tree>
</field> </field>
</record> </record>
<record model="ir.actions.act_window" id="action_survey_user_input_form"> <record model="ir.actions.act_window" id="action_survey_user_input_line">
<field name="name">Survey User Input lines</field> <field name="name">Survey User Input lines</field>
<field name="res_model">survey.user_input_line</field> <field name="res_model">survey.user_input_line</field>
<field name="view_type">tree</field> <field name="view_mode">tree,form</field>
<field name="view_mode">tree</field>
<field name="context">{'default_group_by_question': True}</field>
</record> --> </record> -->
@ -610,7 +609,7 @@
<!-- Left menu categories--> <!-- Left menu categories-->
<menuitem name="Surveys" id="menu_surveys" parent="survey_main" sequence="10" groups="base.group_survey_user"/> <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="Statistics" id="menu_statistics" parent="survey_main" sequence="20" groups="base.group_survey_manager"/>
<menuitem name="Advanced Configuration" id="menu_surveys_configuration" parent="survey_main" sequence="30" groups="base.group_no_one"/> <menuitem name="Technical Settings" id="menu_surveys_configuration" parent="survey_main" sequence="30" groups="base.group_no_one"/>
<!-- Left menu elements: Survey --> <!-- Left menu elements: Survey -->
<menuitem name="Surveys" id="menu_survey_form" action="action_survey_form" parent="menu_surveys" sequence="1"/> <menuitem name="Surveys" id="menu_survey_form" action="action_survey_form" parent="menu_surveys" sequence="1"/>
@ -618,14 +617,14 @@
<!-- Left menu elements: Statistics --> <!-- Left menu elements: Statistics -->
<menuitem name="Survey User inputs" id="menu_survey_type_form1" action="action_survey_user_input" parent="menu_statistics" sequence="1"/> <menuitem name="Survey User inputs" id="menu_survey_type_form1" action="action_survey_user_input" parent="menu_statistics" sequence="1"/>
<!-- Left menu elements: Advanced Configuration --> <!-- Left menu elements: Technical Configuration -->
<menuitem name="Survey Pages" id="menu_survey_page_form1" action="action_survey_page_form" parent="menu_surveys_configuration" sequence="1"/> <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 Questions" id="menu_survey_question_form1" action="action_survey_question_form" parent="menu_surveys_configuration" sequence="2"/>
<menuitem name="Survey Labels" id="menu_survey_label_form1" action="action_survey_label_form" parent="menu_surveys_configuration" sequence="3"/> <menuitem name="Survey Labels" id="menu_survey_label_form1" action="action_survey_label_form" parent="menu_surveys_configuration" sequence="3"/>
<!-- <menuitem name="Survey User input lines" id="menu_survey_response_line_form" action="action_survey_user_input_form" parent="menu_surveys_configuration" sequence="4"/> <menuitem name="Survey User Input Lines" id="menu_survey_response_line_form" action="action_survey_user_input_line" parent="menu_surveys_configuration" sequence="4"/>
-->
</data> </data>
</openerp> </openerp>

View File

@ -22,8 +22,8 @@
{ {
'name': 'Survey CRM', 'name': 'Survey CRM',
'version': '0.1', 'version': '2.0',
'category': 'Tools', 'category': 'Marketing',
'complexity': 'easy', 'complexity': 'easy',
'description': """ 'description': """
This module adds a survey mass mailing button inside the more option of lead view This module adds a survey mass mailing button inside the more option of lead view
@ -35,7 +35,6 @@ This module adds a survey mass mailing button inside the more option of lead vie
'crm_view.xml', 'crm_view.xml',
], ],
'installable': True, 'installable': True,
'auto_install': True, 'auto_install': True
'category': 'Survey',
} }
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: