Files
odoo_source/addons/survey/security/survey_security.xml
T
Aurélien Warnon dba4783326 [REF] survey: convert survey.page to survey.question -> is_page=True
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.
2019-02-06 09:37:59 +00:00

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>