Browse Source

[ADD] survey_select_input module

12.0
Rémi FRANÇOIS 5 years ago
parent
commit
491816bed7
  1. 1
      survey_select_input/__init__.py
  2. 33
      survey_select_input/__manifest__.py
  3. 52
      survey_select_input/i18n/fr.po
  4. 52
      survey_select_input/i18n/survey_select_input.pot
  5. 2
      survey_select_input/models/__init__.py
  6. 27
      survey_select_input/models/survey_survey.py
  7. 13
      survey_select_input/models/survey_user_input.py
  8. 21
      survey_select_input/views/survey_survey.xml
  9. 60
      survey_select_input/views/survey_user_input.xml

1
survey_select_input/__init__.py

@ -0,0 +1 @@
from . import models

33
survey_select_input/__manifest__.py

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Survey answer selection',
'version': '1.0.0',
'summary': """
This module adds the mossibility to select some of the surveys answers.
""",
'description': """ """,
'author': 'Sudokeys',
'website': 'http://www.sudokeys.com',
'license': 'AGPL-3',
'category': 'Marketing',
'depends': [
'survey',
],
'data': [
'views/survey_survey.xml',
'views/survey_user_input.xml',
],
'demo': [],
'auto_install': False,
'external_dependencies': [],
'application': False,
'css': [],
'images': [],
'js': [],
'installable': True,
'maintainer': 'Sudokeys',
'pre_init_hook': '',
'post_init_hook': '',
'uninstall_hook': '',
}

52
survey_select_input/i18n/fr.po

@ -0,0 +1,52 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * survey_select_input
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-23 10:26+0000\n"
"PO-Revision-Date: 2020-03-23 10:26+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: survey_select_input
#: code:addons/survey_select_input/models/survey_survey.py:26
#, python-format
msgid " from all ones"
msgstr " de tous les sondés"
#. module: survey_select_input
#: code:addons/survey_select_input/models/survey_survey.py:24
#, python-format
msgid " selected"
msgstr " retenues"
#. module: survey_select_input
#: model:ir.model.fields,field_description:survey_select_input.field_survey_survey__tot_selected_survey
msgid "Number of selected surveys"
msgstr "Nombre de réponses retenues"
#. module: survey_select_input
#: model:ir.model.fields,field_description:survey_select_input.field_survey_user_input__selected
#: model_terms:ir.ui.view,arch_db:survey_select_input.survey_survey_form
#: model_terms:ir.ui.view,arch_db:survey_select_input.survey_user_input_search
#: model_terms:ir.ui.view,arch_db:survey_select_input.view_survey_user_input_kanban
msgid "Selected"
msgstr "Retenue"
#. module: survey_select_input
#: model:ir.model,name:survey_select_input.model_survey_survey
msgid "Survey"
msgstr "Sondage"
#. module: survey_select_input
#: model:ir.model,name:survey_select_input.model_survey_user_input
msgid "Survey User Input"
msgstr "Saisie utilisateur du sondage"

52
survey_select_input/i18n/survey_select_input.pot

@ -0,0 +1,52 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * survey_select_input
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-23 10:27+0000\n"
"PO-Revision-Date: 2020-03-23 10:27+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: survey_select_input
#: code:addons/survey_select_input/models/survey_survey.py:26
#, python-format
msgid " from all ones"
msgstr ""
#. module: survey_select_input
#: code:addons/survey_select_input/models/survey_survey.py:24
#, python-format
msgid " selected"
msgstr ""
#. module: survey_select_input
#: model:ir.model.fields,field_description:survey_select_input.field_survey_survey__tot_selected_survey
msgid "Number of selected surveys"
msgstr ""
#. module: survey_select_input
#: model:ir.model.fields,field_description:survey_select_input.field_survey_user_input__selected
#: model_terms:ir.ui.view,arch_db:survey_select_input.survey_survey_form
#: model_terms:ir.ui.view,arch_db:survey_select_input.survey_user_input_search
#: model_terms:ir.ui.view,arch_db:survey_select_input.view_survey_user_input_kanban
msgid "Selected"
msgstr ""
#. module: survey_select_input
#: model:ir.model,name:survey_select_input.model_survey_survey
msgid "Survey"
msgstr ""
#. module: survey_select_input
#: model:ir.model,name:survey_select_input.model_survey_user_input
msgid "Survey User Input"
msgstr ""

2
survey_select_input/models/__init__.py

@ -0,0 +1,2 @@
from . import survey_survey
from . import survey_user_input

27
survey_select_input/models/survey_survey.py

@ -0,0 +1,27 @@
from odoo import models, fields, api, _
class SurveySurvey(models.Model):
_inherit = 'survey.survey'
tot_selected_survey = fields.Integer("Number of selected surveys", compute="_get_selected_input")
@api.depends('user_input_ids', 'user_input_ids.selected')
def _get_selected_input(self):
selected_survey = self.env['survey.user_input'].search([
('survey_id', 'in', self.ids),
('selected', '=', True)
])
for survey in self:
survey.tot_selected_survey = len(selected_survey.filtered(lambda user_input: user_input.survey_id == survey))
# ACTIONS
@api.multi
def action_survey_user_input(self):
action = super(SurveySurvey, self).action_survey_user_input()
if self.env.context.get('search_default_selected', False):
action['display_name'] += _(" selected")
else:
action['display_name'] += _(" from all ones")
return action

13
survey_select_input/models/survey_user_input.py

@ -0,0 +1,13 @@
from odoo import models, fields, api
class SurveyUserInput(models.Model):
_inherit = 'survey.user_input'
selected = fields.Boolean(string="Selected", default=False)
@api.multi
def toggle_selected(self):
unselect = self.filtered('selected')
unselect.write({'selected': False})
(self - unselect).write({'selected': True})

21
survey_select_input/views/survey_survey.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="survey_survey_form" model="ir.ui.view">
<field name="name">survey_select_input survey.survey form</field>
<field name="model">survey.survey</field>
<field name="inherit_id" ref="survey.survey_form"/>
<field name="priority">23</field>
<field name="arch" type="xml">
<button name="action_survey_user_input" position="after">
<button type="object" name="action_survey_user_input"
attrs="{'invisible': [('tot_selected_survey','=',0)]}"
context="{'search_default_selected':1}"
class="oe_stat_button text-success" icon="fa-pencil-square-o">
<field name="tot_selected_survey" string="Selected" widget="statinfo"/>
</button>
</button>
</field>
</record>
</odoo>

60
survey_select_input/views/survey_user_input.xml

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="survey_user_input_form" model="ir.ui.view">
<field name="name">survey_select_input survey.user_input form</field>
<field name="model">survey.user_input</field>
<field name="inherit_id" ref="survey.survey_user_input_form"/>
<field name="priority">23</field>
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button type="object" name="toggle_selected" class="oe_stat_button" icon="fa-check"
attrs="{'invisible':['|','|',('test_entry','=',True),('state','!=','done')]}">
<field name="selected" widget="boolean_button"
options="{'terminology': {'string_true': 'Selected', 'string_false': 'Not selected', 'hover_false': 'Select', 'hover_true': 'Unselect'}}"/>
</button>
</div>
</field>
</record>
<record id="survey_user_input_tree" model="ir.ui.view">
<field name="name">survey_select_input survey.user_input tree</field>
<field name="model">survey.user_input</field>
<field name="inherit_id" ref="survey.survey_user_input_tree"/>
<field name="priority">23</field>
<field name="arch" type="xml">
<field name="state" position="after">
<field name="selected" widget="boolean_toggle" attrs="{'invisible':['|',('test_entry','=',True),('state','!=','done')]}"/>
</field>
</field>
</record>
<record id="view_survey_user_input_kanban" model="ir.ui.view">
<field name="name">survey_select_input survey.user_input kanban</field>
<field name="model">survey.user_input</field>
<field name="inherit_id" ref="survey.view_survey_user_input_kanban"/>
<field name="priority">23</field>
<field name="arch" type="xml">
<field name="state" position="after">
<field name="selected"/>
</field>
<xpath expr="//div[hasclass('o_kanban_record_top')]" position="inside">
<span t-if="record.selected.raw_value" class="badge-pill badge-success">Selected</span>
</xpath>
</field>
</record>
<record id="survey_user_input_search" model="ir.ui.view">
<field name="name">survey_select_input survey.user_input search</field>
<field name="model">survey.user_input</field>
<field name="inherit_id" ref="survey.survey_user_input_search"/>
<field name="priority">23</field>
<field name="arch" type="xml">
<filter name="new" position="after">
<separator/>
<filter string="Selected" name="selected" domain="[('selected','=', True)]"/>
</filter>
</field>
</record>
</odoo>
Loading…
Cancel
Save