Task #1902306 Purpose ======= survey.question is now also the model used for the survey's pages (with the "is_page" field set to True). This allows to put all the pages and questions together in a o2m field on the view side and easily reorganize your survey by dragging the items around. It also removes one level of encoding by directly having 'Add a page' and 'Add a question' links on the tree view of questions, enabling a faster encoding. However, this has the downside of making the code reading a little bit more complicated. Efforts were made at the model level to create computed fields so that the use of these models still seems somewhat logical. That means: - A survey still has "page_ids" (question_and_page_ids filtered on is_page = True) - These "page_ids" still have question_ids (questions located between this page and the next) - These "question_ids" still have a "page_id" That makes the use and display of these information at view and controller levels easier to understand.
202 lines
11 KiB
XML
202 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data noupdate="1">
|
|
<!-- Survey users -->
|
|
<record model="res.groups" id="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="group_survey_manager">
|
|
<field name="name">Manager</field>
|
|
<field name="category_id" ref="base.module_category_survey"/>
|
|
<field name="implied_ids" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
|
|
</record>
|
|
|
|
<record id="base.default_user" model="res.users">
|
|
<field name="groups_id" eval="[(4,ref('group_survey_manager'))]"/>
|
|
</record>
|
|
|
|
<!-- SURVEY: SURVEY, PAGE, STAGE, QUESTION, LABEL -->
|
|
<record id="survey_survey_rule_survey_manager" model="ir.rule">
|
|
<field name="name">Survey: manager: all</field>
|
|
<field name="model_id" ref="survey.model_survey_survey"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
<record id="survey_survey_rule_survey_user_read" model="ir.rule">
|
|
<field name="name">Survey: officer: read all</field>
|
|
<field name="model_id" ref="survey.model_survey_survey"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
<record id="survey_survey_rule_survey_user_cwu" model="ir.rule">
|
|
<field name="name">Survey: officer: create/write/unlink own only</field>
|
|
<field name="model_id" ref="survey.model_survey_survey"/>
|
|
<field name="domain_force">[('create_uid', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="survey_stage_rule_survey_manager" model="ir.rule">
|
|
<field name="name">Survey stage: manager: all</field>
|
|
<field name="model_id" ref="survey.model_survey_stage"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="survey_stage_rule_survey_user_read" model="ir.rule">
|
|
<field name="name">Survey stage: officer: read all</field>
|
|
<field name="model_id" ref="survey.model_survey_stage"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
|
|
<record id="survey_question_rule_survey_manager" model="ir.rule">
|
|
<field name="name">Survey question: manager: all</field>
|
|
<field name="model_id" ref="survey.model_survey_question"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
<record id="survey_question_rule_survey_user_read" model="ir.rule">
|
|
<field name="name">Survey question: officer: read all</field>
|
|
<field name="model_id" ref="survey.model_survey_question"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
<record id="survey_question_rule_survey_user_cw" model="ir.rule">
|
|
<field name="name">Survey question: officer: create/write/unlink linked to own survey only</field>
|
|
<field name="model_id" ref="survey.model_survey_question"/>
|
|
<field name="domain_force">[('survey_id.create_uid', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="survey_label_rule_survey_manager" model="ir.rule">
|
|
<field name="name">Survey label: manager: all</field>
|
|
<field name="model_id" ref="survey.model_survey_label"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
<record id="survey_label_rule_survey_user_read" model="ir.rule">
|
|
<field name="name">Survey label: officer: read all</field>
|
|
<field name="model_id" ref="survey.model_survey_label"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
<record id="survey_label_rule_survey_user_cw" model="ir.rule">
|
|
<field name="name">Survey label: officer: create/write/unlink linked to own survey only</field>
|
|
<field name="model_id" ref="survey.model_survey_question"/>
|
|
<field name="domain_force">[('survey_id.create_uid', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<!-- SURVEY: USER_INPUT, USER_INPUT_LINE -->
|
|
<record id="survey_user_input_rule_survey_manager" model="ir.rule">
|
|
<field name="name">Survey user input: manager: all</field>
|
|
<field name="model_id" ref="survey.model_survey_user_input"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
<record id="survey_user_input_rule_survey_user_read" model="ir.rule">
|
|
<field name="name">Survey user input: officer: read all</field>
|
|
<field name="model_id" ref="survey.model_survey_user_input"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
<record id="survey_user_input_rule_survey_user_cw" model="ir.rule">
|
|
<field name="name">Survey user input: officer: create/write/unlink linked to own survey only</field>
|
|
<field name="model_id" ref="survey.model_survey_user_input"/>
|
|
<field name="domain_force">[('survey_id.create_uid', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="survey_user_input_line_rule_survey_manager" model="ir.rule">
|
|
<field name="name">Survey user input line: manager: all</field>
|
|
<field name="model_id" ref="survey.model_survey_user_input_line"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
<record id="survey_user_input_line_rule_survey_user_read" model="ir.rule">
|
|
<field name="name">Survey user input line: officer: read all</field>
|
|
<field name="model_id" ref="survey.model_survey_user_input_line"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
<record id="survey_user_input_line_rule_survey_user_cw" model="ir.rule">
|
|
<field name="name">Survey user input line: officer: create/write/unlink linked to own survey only</field>
|
|
<field name="model_id" ref="survey.model_survey_user_input_line"/>
|
|
<field name="domain_force">[('user_input_id.survey_id.create_uid', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_survey_user'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
</data>
|
|
</odoo>
|