Sélectionner une révision Git
survey_survey.py 2,09 Kio
# © 2020 Le Filament (<https://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models, api
class SurveyType(models.Model):
"""Ajout d'un type pour les sondages"""
_name = 'survey.type'
_description = 'Survey Type'
name = fields.Char(required=True, string="Type de sondage")
class SurveyProduct(models.Model):
"""Ajout d'un produit lié aux sondages"""
_name = 'survey.product'
_description = 'Survey Product'
name = fields.Char(required=True, string="Produit lié au sondage")
class Survey(models.Model):
_inherit = "survey.survey"
background_image = fields.Binary('Image de fond')
type_id = fields.Many2one('survey.type', string="Type", required=True)
product_id = fields.Many2one('survey.product', string="Produit", required=True)
class SurveyQuestion(models.Model):
_inherit = "survey.question"
_order = 'page_sequence,sequence,id' # Change l'ordre des questions en fonction de la séquence des pages
page_sequence = fields.Integer('Séquence de la page associée', related='page_id.sequence', store=True)
criteria = fields.Char("Critère")
num_question = fields.Char("Numéro de question")
class SurveyLabel(models.Model):
_inherit = "survey.label"
criteria = fields.Char("Critère")
num_question = fields.Char("Numéro de question")
class SurveyUserInput(models.Model):
_inherit = "survey.user_input"
@api.multi
def action_reopen_survey(self):
""" Passer le sondage à state=skip """
if self.state == 'done':
self.update({'state': 'skip', 'last_displayed_page_id': None})
@api.multi
def action_access_survey(self):
""" Permet d'accéder au sondage """
if not self.state == 'done':
if self.state == 'skip':
url_tag = "fill"
else:
url_tag = 'start'
return {
'type': 'ir.actions.act_url',
'target': 'new',
'url': '/survey/%s/%s/%s' % (url_tag, self.survey_id.id, self.token)
}