Rémi FRANÇOIS
5 years ago
22 changed files with 720 additions and 231 deletions
-
2custom_matrix_survey/__init__.py
-
11custom_matrix_survey/__manifest__.py
-
2custom_matrix_survey/controllers/__init__.py
-
4custom_matrix_survey/controllers/main.py
-
187custom_matrix_survey/i18n/custom_matrix_survey.pot
-
186custom_matrix_survey/i18n/fr.po
-
5custom_matrix_survey/models/__init__.py
-
16custom_matrix_survey/models/survey_label.py
-
8custom_matrix_survey/models/survey_label_value.py
-
30custom_matrix_survey/models/survey_question.py
-
91custom_matrix_survey/models/survey_user_input_line.py
-
88custom_matrix_survey/reports/user_input.xml
-
2custom_matrix_survey/security/ir.model.access.csv
-
22custom_matrix_survey/security/ir_model_access.xml
-
7custom_matrix_survey/static/src/js/custom.js
-
53custom_matrix_survey/templates/matrix.xml
-
11custom_matrix_survey/views/assets.xml
-
127custom_matrix_survey/views/custom_survey.xml
-
16custom_matrix_survey/views/survey_question.xml
-
15custom_matrix_survey/views/survey_user_input.xml
-
19custom_matrix_survey/views/survey_user_input_line.xml
-
49custom_matrix_survey/views/survey_views.xml
@ -1,3 +1,3 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import models |
|||
from . import controllers |
@ -1,3 +1 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import main |
@ -0,0 +1,187 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * custom_matrix_survey |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 12.0+e\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2020-04-06 15:07+0000\n" |
|||
"PO-Revision-Date: 2020-04-06 15:07+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_user_input_line__answer_type |
|||
msgid "Answer Type" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.actions.report,name:custom_matrix_survey.action_view_pdf_answers |
|||
msgid "Answers" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Attachment" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Checkbox" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__create_uid |
|||
msgid "Created by" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__create_date |
|||
msgid "Created on" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.question,matrix_subtype:0 |
|||
msgid "Custom Matrix" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Date" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__display_name |
|||
msgid "Display Name" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Dropdown" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Free Text" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__id |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value____last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__write_date |
|||
msgid "Last Updated on" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_question__matrix_subtype |
|||
msgid "Matrix Type" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_user_input_line__matrix_subtype_id |
|||
msgid "Matrix subtype" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Multiple Lines Text Box" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.question,matrix_subtype:0 |
|||
msgid "Multiple choices per row" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__name |
|||
msgid "Name" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Number" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Numerical Value" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.question,matrix_subtype:0 |
|||
msgid "One choice per row" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model_terms:ir.ui.view,arch_db:custom_matrix_survey.survey_user_input_custom_form |
|||
msgid "Print PDF Answers" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Single Line Text Box" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Suggestion" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_survey_label |
|||
msgid "Survey Label" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_survey_question |
|||
msgid "Survey Question" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_survey_user_input_line |
|||
msgid "Survey User Input Line" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Text" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_label__type |
|||
msgid "Type of Question" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_user_input_line__value_dropdown |
|||
msgid "Value Dropdown" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_dp_attributes_value |
|||
msgid "survey.label.value" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_label__dpvalues |
|||
msgid "values" |
|||
msgstr "" |
|||
|
@ -0,0 +1,186 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * custom_matrix_survey |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 12.0+e\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2020-04-06 15:06+0000\n" |
|||
"PO-Revision-Date: 2020-04-06 15:06+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_user_input_line__answer_type |
|||
msgid "Answer Type" |
|||
msgstr "Type de réponse" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.actions.report,name:custom_matrix_survey.action_view_pdf_answers |
|||
msgid "Answers" |
|||
msgstr "Réponses" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Attachment" |
|||
msgstr "Pièce jointe" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Checkbox" |
|||
msgstr "Case à cocher" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__create_uid |
|||
msgid "Created by" |
|||
msgstr "Créé par" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__create_date |
|||
msgid "Created on" |
|||
msgstr "Créé le" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.question,matrix_subtype:0 |
|||
msgid "Custom Matrix" |
|||
msgstr "Matrice personnalisée" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Date" |
|||
msgstr "Date" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__display_name |
|||
msgid "Display Name" |
|||
msgstr "Nom affiché" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Dropdown" |
|||
msgstr "Liste déroulante" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Free Text" |
|||
msgstr "Texte libre" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__id |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value____last_update |
|||
msgid "Last Modified on" |
|||
msgstr "Dernière modification le" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "Dernière mise à jour par" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__write_date |
|||
msgid "Last Updated on" |
|||
msgstr "Dernière mise à jour le" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_question__matrix_subtype |
|||
msgid "Matrix Type" |
|||
msgstr "Type de matrice" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_user_input_line__matrix_subtype_id |
|||
msgid "Matrix subtype" |
|||
msgstr "Sous-type de matrice" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Multiple Lines Text Box" |
|||
msgstr "Plusieurs lignes de texte" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.question,matrix_subtype:0 |
|||
msgid "Multiple choices per row" |
|||
msgstr "Plusieurs choix par ligne" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_dp_attributes_value__name |
|||
msgid "Name" |
|||
msgstr "Nom" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Number" |
|||
msgstr "Numéro" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Numerical Value" |
|||
msgstr "Valeur numérique" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.question,matrix_subtype:0 |
|||
msgid "One choice per row" |
|||
msgstr "Un choix par ligne" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model_terms:ir.ui.view,arch_db:custom_matrix_survey.survey_user_input_custom_form |
|||
msgid "Print PDF Answers" |
|||
msgstr "Imprimer les réponses en PDF" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.label,type:0 |
|||
msgid "Single Line Text Box" |
|||
msgstr "Ligne de texte unique" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Suggestion" |
|||
msgstr "Suggestion" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_survey_label |
|||
msgid "Survey Label" |
|||
msgstr "Étiquette du sondage" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_survey_question |
|||
msgid "Survey Question" |
|||
msgstr "Question du sondage" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_survey_user_input_line |
|||
msgid "Survey User Input Line" |
|||
msgstr "Ligne de saisie pour l'utilisateur du sondage" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: selection:survey.user_input_line,answer_type:0 |
|||
msgid "Text" |
|||
msgstr "Texte" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_label__type |
|||
msgid "Type of Question" |
|||
msgstr "Type de question" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_user_input_line__value_dropdown |
|||
msgid "Value Dropdown" |
|||
msgstr "Valeur possible" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model,name:custom_matrix_survey.model_dp_attributes_value |
|||
msgid "survey.label.value" |
|||
msgstr "" |
|||
|
|||
#. module: custom_matrix_survey |
|||
#: model:ir.model.fields,field_description:custom_matrix_survey.field_survey_label__dpvalues |
|||
msgid "values" |
|||
msgstr "Valeurs" |
@ -1 +1,4 @@ |
|||
from . import survey |
|||
from . import survey_label |
|||
from . import survey_label_value |
|||
from . import survey_question |
|||
from . import survey_user_input_line |
@ -0,0 +1,16 @@ |
|||
|
|||
from odoo import models, fields, _ |
|||
|
|||
TYPES = [ |
|||
('free_text', _('Multiple Lines Text Box')), |
|||
('textbox', _('Single Line Text Box')), |
|||
('numerical_box', _('Numerical Value')), |
|||
('dropdown', _('Dropdown')), |
|||
('checkbox', _('Checkbox')), |
|||
] |
|||
|
|||
class SurveyLabel(models.Model): |
|||
_inherit = 'survey.label' |
|||
|
|||
type = fields.Selection(selection=TYPES, string='Type of Question', default="checkbox") |
|||
dpvalues = fields.Many2many(comodel_name='survey.label.value', string="values") |
@ -0,0 +1,8 @@ |
|||
from odoo import models, fields |
|||
|
|||
|
|||
class SurveyLabelValue(models.Model): |
|||
_name = 'survey.label.value' |
|||
_description = "Valeur" |
|||
|
|||
name = fields.Char(strring="Name") |
@ -0,0 +1,91 @@ |
|||
from odoo import models, fields, api |
|||
|
|||
def dict_keys_startswith(dictionary, string): |
|||
"""Returns a dictionary containing the elements of <dict> whose keys start with <string>. |
|||
.. note:: |
|||
This function uses dictionary comprehensions (Python >= 2.7) |
|||
""" |
|||
return {k: v for k, v in dictionary.items() if k.startswith(string)} |
|||
|
|||
|
|||
class SurveyUserInputLine(models.Model): |
|||
_inherit = 'survey.user_input_line' |
|||
|
|||
answer_type = fields.Selection([ |
|||
('text', 'Text'), |
|||
('number', 'Number'), |
|||
('date', 'Date'), |
|||
('free_text', 'Free Text'), |
|||
('suggestion', 'Suggestion'), ('dropdown', 'Dropdown')], string='Answer Type') |
|||
|
|||
value_dropdown = fields.Many2one('survey.label.value', string="Value Dropdown") |
|||
matrix_subtype_id = fields.Selection(related='question_id.matrix_subtype', string="Matrix subtype") |
|||
|
|||
@api.model |
|||
def save_line_matrix(self, user_input_id, question, post, answer_tag): |
|||
vals = { |
|||
'user_input_id': user_input_id, |
|||
'question_id': question.id, |
|||
'survey_id': question.survey_id.id, |
|||
'skipped': False |
|||
} |
|||
old_uil = self.search([ |
|||
('user_input_id', '=', user_input_id), |
|||
('survey_id', '=', question.survey_id.id), |
|||
('question_id', '=', question.id) |
|||
]) |
|||
old_uil.sudo().unlink() |
|||
|
|||
no_answers = True |
|||
ca_dict = dict_keys_startswith(post, answer_tag + '_') |
|||
|
|||
comment_answer = ca_dict.pop(("%s_%s" % (answer_tag, 'comment')), '').strip() |
|||
if comment_answer: |
|||
vals.update({'answer_type': 'text', 'value_text': comment_answer}) |
|||
self.create(vals) |
|||
no_answers = False |
|||
|
|||
if question.matrix_subtype == 'simple': |
|||
for row in question.labels_ids_2: |
|||
a_tag = "%s_%s" % (answer_tag, row.id) |
|||
if a_tag in ca_dict: |
|||
no_answers = False |
|||
vals.update({'answer_type': 'suggestion', 'value_suggested': ca_dict[a_tag], 'value_suggested_row': row.id}) |
|||
self.create(vals) |
|||
|
|||
elif question.matrix_subtype == 'multiple': |
|||
for col in question.labels_ids: |
|||
for row in question.labels_ids_2: |
|||
a_tag = "%s_%s_%s" % (answer_tag, row.id, col.id) |
|||
if a_tag in ca_dict: |
|||
no_answers = False |
|||
vals.update({'answer_type': 'suggestion', 'value_suggested': col.id, 'value_suggested_row': row.id}) |
|||
self.create(vals) |
|||
|
|||
elif question.matrix_subtype == 'custom_row': |
|||
for col in question.labels_ids: |
|||
for row in question.labels_ids_2: |
|||
a_tag = "%s_%s_%s" % (answer_tag, row.id, col.id) |
|||
if a_tag in ca_dict: |
|||
no_answers = False |
|||
if post.get(a_tag): |
|||
sline = a_tag.split('_')[-1] |
|||
label_obj = question.labels_ids.browse(int(sline)) |
|||
if label_obj.type == 'textbox': |
|||
vals.update({'answer_type': 'text', 'value_suggested': col.id, 'value_suggested_row': row.id, 'value_text': post.get(a_tag)}) |
|||
elif label_obj.type == 'free_text': |
|||
vals.update({'answer_type': 'free_text', 'value_suggested': col.id, 'value_suggested_row': row.id, 'value_free_text': post.get(a_tag)}) |
|||
elif label_obj.type == 'numerical_box': |
|||
vals.update({'answer_type': 'number', 'value_suggested': col.id, 'value_suggested_row': row.id, 'value_number': post.get(a_tag)}) |
|||
elif label_obj.type == 'date': |
|||
vals.update({'answer_type': 'date', 'value_suggested': col.id, 'value_suggested_row': row.id, 'value_date': post.get(a_tag)}) |
|||
elif label_obj.type == 'dropdown': |
|||
vals.update({'answer_type': 'dropdown', 'value_suggested': col.id, 'value_suggested_row': row.id, 'value_dropdown': int(post.get(a_tag))}) |
|||
else: |
|||
vals.update({'answer_type': 'suggestion', 'value_suggested': col.id, 'value_suggested_row': row.id}) |
|||
self.create(vals) |
|||
|
|||
if no_answers: |
|||
vals.update({'answer_type': None, 'skipped': True}) |
|||
self.create(vals) |
|||
return True |
@ -0,0 +1,88 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
|
|||
<template id="report_survey_answers_document"> |
|||
<t t-call="web.internal_layout"> |
|||
<t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})"/> |
|||
<div class="page"> |
|||
<div class="oe_structure"/> |
|||
<div class="row mt32 mb32" style="display: inherit;"> |
|||
<h3 class="text-center"><t t-esc="doc.survey_id.title"/></h3> |
|||
<t t-set="questions" t-value="doc.user_input_line_ids.mapped('question_id')"/> |
|||
<!-- <h3 class="text-center"><t t-esc="doc."/></h3> --> |
|||
<t t-foreach="questions" t-as="qs"> |
|||
<t t-if="qs.matrix_subtype == 'custom_row'"> |
|||
<h4 class="text-center mt16 mb16" t-field="qs.question"/> |
|||
<table class="table" style="width:100%;"> |
|||
<thead> |
|||
<tr style="width:100%;text-align: center"> |
|||
<th style="text-align: center">#</th> |
|||
<t t-foreach="qs.labels_ids" t-as="lb"> |
|||
<th style="text-align: center"> <span t-field="lb.value"/></th> |
|||
</t> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<t t-foreach="qs.labels_ids_2" t-as="lb2"> |
|||
<tr style="text-align: center"> |
|||
<td style="text-align: center"><strong t-field="lb2.value"></strong></td> |
|||
<t t-foreach="qs.labels_ids" t-as="lb"> |
|||
<t t-set="flag" t-value="false"/> |
|||
<t t-foreach="doc.user_input_line_ids" t-as="ans"> |
|||
<t t-if="ans.value_suggested_row.id == lb2.id"> |
|||
<t t-if="ans.value_suggested.id == lb.id"> |
|||
<td class="text-center"> |
|||
<t t-if="ans.answer_type == 'text'"> |
|||
<span t-field="ans.value_text"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'number'"> |
|||
<span t-field="ans.value_number"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'free_text'"> |
|||
<span t-field="ans.value_free_text"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'suggestion'"> |
|||
<span class="fa fa-check"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'dropdown'"> |
|||
<span t-field="ans.value_dropdown"/> |
|||
</t> |
|||
</td> |
|||
<t t-set="flag" t-value="true"/> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
<t t-if="not flag"> |
|||
<td style="text-align: center"> |
|||
</td> |
|||
</t> |
|||
</t> |
|||
</tr> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
</t> |
|||
</t> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
|
|||
<template id="report_survey_answers"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="doc"> |
|||
<t t-call="custom_matrix_survey.report_survey_answers_document"/> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
|
|||
<report |
|||
id="action_view_pdf_answers" |
|||
string="Answers" |
|||
model="survey.user_input" |
|||
report_type="qweb-pdf" |
|||
file="custom_matrix_survey.report_survey_answers" |
|||
name="custom_matrix_survey.report_survey_answers" |
|||
print_report_name="'answer - %s' % (object.survey_id.title)"/> |
|||
|
|||
</odoo> |
@ -1,2 +0,0 @@ |
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink |
|||
access_dp_attributes_value,access_dp_attributes_value,model_dp_attributes_value,,1,1,1,1 |
@ -0,0 +1,22 @@ |
|||
<odoo> |
|||
|
|||
<record id="survey_label_value_all_r" model="ir.model.access"> |
|||
<field name="name">survey.label.value All R</field> |
|||
<field name="model_id" ref="custom_matrix_survey.model_survey_label_value"/> |
|||
<field name="perm_read">1</field> |
|||
<field name="perm_write">0</field> |
|||
<field name="perm_create">0</field> |
|||
<field name="perm_unlink">0</field> |
|||
</record> |
|||
|
|||
<record id="survey_label_value_manager_rwcu" model="ir.model.access"> |
|||
<field name="name">survey.label.value Survey Manager RWCU</field> |
|||
<field name="model_id" ref="custom_matrix_survey.model_survey_label_value"/> |
|||
<field name="group_id" ref="survey.group_survey_manager"/> |
|||
<field name="perm_read">1</field> |
|||
<field name="perm_write">1</field> |
|||
<field name="perm_create">1</field> |
|||
<field name="perm_unlink">1</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -1,7 +0,0 @@ |
|||
odoo.define('custom_matrix_survey.custom', function(require) { |
|||
"use strict"; |
|||
// var ajax = require('web.ajax');
|
|||
$(document).ready(function() { |
|||
|
|||
}); |
|||
}); |
@ -0,0 +1,53 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
|
|||
<template id="matrix" inherit_id="survey.matrix"> |
|||
<xpath expr="//table" position="replace"> |
|||
<table class="table table-hover"> |
|||
<thead> |
|||
<tr> |
|||
<th></th> |
|||
<th t-foreach="question.labels_ids" t-as="col_label"><span t-field="col_label.value"/></th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr t-foreach="question.labels_ids_2" t-as="row_label"> |
|||
<th><span t-field="row_label.value"/></th> |
|||
<td t-foreach="question.labels_ids" t-as="col_label"> |
|||
<input t-if="question.matrix_subtype == 'simple'" type="radio" t-att-name="'%s_%s' % (prefix, row_label.id)" t-att-value='col_label.id'/> |
|||
<t t-if="question.matrix_subtype == 'custom_row'"> |
|||
<t t-if="col_label.type == 'textbox'"> |
|||
<input type="text" class="form-control" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"/> |
|||
</t> |
|||
<t t-if="col_label.type == 'free_text'"> |
|||
<textarea class="form-control" rows="3" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"></textarea> |
|||
</t> |
|||
<t t-if="col_label.type == 'numerical_box'"> |
|||
<input type="number" step="any" class="form-control" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"/> |
|||
</t> |
|||
<t t-if="col_label.type == 'date'"> |
|||
<div class='input-group date'> |
|||
<input type="text" date="true" class="form-control date" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"/> |
|||
</div> |
|||
</t> |
|||
<t t-if="col_label.type == 'dropdown'"> |
|||
<select t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)" class="form-control" id="seldpbox1"> |
|||
<option></option> |
|||
<t t-foreach="col_label.dpvalues" t-as="dpv"> |
|||
<option t-att-value="dpv.id"><t t-esc="dpv.name"/></option> |
|||
</t> |
|||
</select> |
|||
</t> |
|||
<t t-if="col_label.type == 'checkbox'"> |
|||
<input type="checkbox" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)" t-att-value='col_label.id'/> |
|||
</t> |
|||
</t> |
|||
<input t-if="question.matrix_subtype == 'multiple'" type="checkbox" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)" t-att-value='col_label.id'/> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</xpath> |
|||
</template> |
|||
|
|||
</odoo> |
@ -1,11 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<template id="assets_frontend" inherit_id="website.assets_frontend" name="Website Custom Survey Assest"> |
|||
<xpath expr="//link[last()]" position="after"> |
|||
<link href="/custom_matrix_survey/static/src/css/custom.css" rel="stylesheet" type="text/css" /> |
|||
</xpath> |
|||
<xpath expr="//script[last()]" position="after"> |
|||
<script src="/custom_matrix_survey/static/src/js/custom.js"></script> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |
@ -1,127 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<template id="matrix_custom" inherit_id="survey.matrix"> |
|||
<xpath expr="//table" position="replace"> |
|||
<table class="table table-hover"> |
|||
<thead> |
|||
<tr> |
|||
<th> </th> |
|||
<th t-foreach="question.labels_ids" t-as="col_label"><span t-field="col_label.value" /></th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr t-foreach="question.labels_ids_2" t-as="row_label"> |
|||
<th><span t-field="row_label.value" /></th> |
|||
<td t-foreach="question.labels_ids" t-as="col_label"> |
|||
<input t-if="question.matrix_subtype == 'simple'" type="radio" t-att-name="'%s_%s' % (prefix, row_label.id)" t-att-value='col_label.id' /> |
|||
<t t-if="question.matrix_subtype == 'custom_row'"> |
|||
<t t-if="col_label.type == 'textbox'"> |
|||
<input type="text" class="form-control" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"/> |
|||
</t> |
|||
<t t-if="col_label.type == 'free_text'"> |
|||
<textarea class="form-control" rows="3" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"></textarea> |
|||
</t> |
|||
<t t-if="col_label.type == 'numerical_box'"> |
|||
<input type="number" step="any" class="form-control" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"/> |
|||
</t> |
|||
<t t-if="col_label.type == 'date'"> |
|||
<div class='input-group date'> |
|||
<input type="text" date="true" class="form-control date" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)"/> |
|||
</div> |
|||
</t> |
|||
<t t-if="col_label.type == 'dropdown'"> |
|||
<select t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)" class="form-control" id="seldpbox1"> |
|||
<option></option> |
|||
<t t-foreach="col_label.dpvalues" t-as="dpv"> |
|||
<option t-att-value="dpv.id"><t t-esc="dpv.name"/></option> |
|||
</t> |
|||
</select> |
|||
</t> |
|||
<t t-if="col_label.type == 'checkbox'"> |
|||
<input type="checkbox" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)" t-att-value='col_label.id' /> |
|||
</t> |
|||
</t> |
|||
<input t-if="question.matrix_subtype == 'multiple'" type="checkbox" t-att-name="'%s_%s_%s' % (prefix, row_label.id, col_label.id)" t-att-value='col_label.id' /> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</xpath> |
|||
</template> |
|||
|
|||
<template id="report_survey_answers_document"> |
|||
<t t-call="web.internal_layout"> |
|||
<t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})" /> |
|||
<div class="page"> |
|||
<div class="oe_structure"/> |
|||
<div class="row mt32 mb32" style="display: inherit;"> |
|||
<h3 class="text-center"><t t-esc="doc.survey_id.title"/></h3> |
|||
<t t-set="questions" t-value="doc.user_input_line_ids.mapped('question_id')"/> |
|||
<!-- <h3 class="text-center"><t t-esc="doc."/></h3> --> |
|||
<t t-foreach="questions" t-as="qs"> |
|||
<t t-if="qs.matrix_subtype == 'custom_row'"> |
|||
<h4 class="text-center mt16 mb16" t-field="qs.question"/> |
|||
<table class="table" style="width:100%;"> |
|||
<thead> |
|||
<tr style="width:100%;text-align: center"> |
|||
<th style="text-align: center">#</th> |
|||
<t t-foreach="qs.labels_ids" t-as="lb"> |
|||
<th style="text-align: center"> <span t-field="lb.value"/></th> |
|||
</t> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<t t-foreach="qs.labels_ids_2" t-as="lb2"> |
|||
<tr style="text-align: center"> |
|||
<td style="text-align: center"><strong t-field="lb2.value"></strong></td> |
|||
<t t-foreach="qs.labels_ids" t-as="lb"> |
|||
<t t-set="flag" t-value="false"/> |
|||
<t t-foreach="doc.user_input_line_ids" t-as="ans"> |
|||
<t t-if="ans.value_suggested_row.id == lb2.id"> |
|||
<t t-if="ans.value_suggested.id == lb.id"> |
|||
<td class="text-center"> |
|||
<t t-if="ans.answer_type == 'text'"> |
|||
<span t-field="ans.value_text"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'number'"> |
|||
<span t-field="ans.value_number"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'free_text'"> |
|||
<span t-field="ans.value_free_text"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'suggestion'"> |
|||
<span class="fa fa-check"/> |
|||
</t> |
|||
<t t-if="ans.answer_type == 'dropdown'"> |
|||
<span t-field="ans.value_dropdown"/> |
|||
</t> |
|||
</td> |
|||
<t t-set="flag" t-value="true"/> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
<t t-if="not flag"> |
|||
<td style="text-align: center"> |
|||
</td> |
|||
</t> |
|||
</t> |
|||
</tr> |
|||
</t> |
|||
</tbody> |
|||
</table> |
|||
</t> |
|||
</t> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</template> |
|||
<template id="report_survey_answers"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="doc"> |
|||
<t t-call="custom_matrix_survey.report_survey_answers_document"/> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,16 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
|
|||
<record id="survey_question_form" model="ir.ui.view"> |
|||
<field name="name">custom_matrix_survey survey.question form</field> |
|||
<field name="model">survey.question</field> |
|||
<field name="inherit_id" ref="survey.survey_question_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//notebook//page//field[@name='labels_ids']//tree" position="inside"> |
|||
<field name="type"/> |
|||
<field name="dpvalues" widget="many2many_tags" attrs="{'invisible': [('type', '!=', 'dropdown')]}"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -0,0 +1,15 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
|
|||
<record id="survey_user_input_form" model="ir.ui.view"> |
|||
<field name="name">custom_matrix_survey survey.user_input form</field> |
|||
<field name="model">survey.user_input</field> |
|||
<field name="inherit_id" ref="survey.survey_user_input_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//form//header//button[@name='action_view_answers']" position="after"> |
|||
<button name="%(action_view_pdf_answers)d" states="done" string="Print PDF Answers" type="action" class="oe_highlight"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -0,0 +1,19 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
|
|||
<record id="survey_user_input_line_form" model="ir.ui.view"> |
|||
<field name="name">custom_matrix_survey survey.user_input_line form</field> |
|||
<field name="model">survey.user_input_line</field> |
|||
<field name="inherit_id" ref="survey.survey_user_input_line_form"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="value_text" position="after"> |
|||
<field name="value_dropdown" attrs="{'invisible': [('answer_type','!=','dropdown')]}"/> |
|||
<field name="matrix_subtype_id"/> |
|||
</field> |
|||
<field name="value_suggested" position="replace"> |
|||
<field name="value_suggested" colspan='2' attrs="{'invisible': [ ('answer_type','!=','suggestion'), ('matrix_subtype_id', '!=', 'custom_row')]}"/> |
|||
</field> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -1,49 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<record model="ir.ui.view" id="survey_question_custom_form"> |
|||
<field name="name">Form view for survey custom question</field> |
|||
<field name="model">survey.question</field> |
|||
<field name="inherit_id" ref="survey.survey_question_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//notebook//page//field[@name='labels_ids']//tree" position="inside"> |
|||
<field name="type"/> |
|||
<field name="dpvalues" widget="many2many_tags" attrs="{'invisible': [('type', '!=', 'dropdown')]}"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.ui.view" id="survey_user_input_line_custom_form"> |
|||
<field name="name">survey_user_input_line_custom_form</field> |
|||
<field name="model">survey.user_input_line</field> |
|||
<field name="inherit_id" ref="survey.survey_user_input_line_form"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="value_text" position="after"> |
|||
<field name="value_dropdown" attrs="{'invisible': [('answer_type','!=','dropdown')]}"/> |
|||
<field name="matrix_subtype_id"/> |
|||
</field> |
|||
<field name="value_suggested" position="replace"> |
|||
<field name="value_suggested" colspan='2' attrs="{'invisible': [ ('answer_type','!=','suggestion'), ('matrix_subtype_id', '!=', 'custom_row')]}"/> |
|||
</field> |
|||
</field> |
|||
</record> |
|||
<report |
|||
id="action_view_pdf_answers" |
|||
string="Answers" |
|||
model="survey.user_input" |
|||
report_type="qweb-pdf" |
|||
file="custom_matrix_survey.report_survey_answers" |
|||
name="custom_matrix_survey.report_survey_answers" |
|||
print_report_name="'answer - %s' % (object.survey_id.title)" |
|||
/> |
|||
|
|||
<record model="ir.ui.view" id="survey_user_input_custom_form"> |
|||
<field name="name">survey_user_input_custom_form</field> |
|||
<field name="model">survey.user_input</field> |
|||
<field name="inherit_id" ref="survey.survey_user_input_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//form//header//button[@name='action_view_answers']" position="after"> |
|||
<button name="%(action_view_pdf_answers)d" states="done" string="Print PDF Answers" type="action" class="oe_highlight" /> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue