47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
|
|
import logging
|
|
import textwrap
|
|
import uuid
|
|
|
|
from dateutil.relativedelta import relativedelta
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo.exceptions import ValidationError
|
|
from odoo.tools import float_is_zero
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class SurveyUserInput(models.Model):
|
|
_inherit = 'survey.user_input'
|
|
|
|
def save_lines(self, question, answer, comment=None):
|
|
old_answers = self.env['survey.user_input.line'].search([
|
|
('user_input_id', '=', self.id),
|
|
('question_id', '=', question.id)
|
|
])
|
|
if question.question_type == 'event_product':
|
|
self._save_event_product(question, old_answers, answer)
|
|
elif question.question_type == 'event':
|
|
self._save_event(question, old_answers, answer)
|
|
else:
|
|
return super().save_lines(question, answer, comment)
|
|
|
|
|
|
def _save_event_product(self, question, old_answers, answer):
|
|
vals = self._get_line_answer_values(question, answer, question.question_type)
|
|
vals['value_event_product'] = int(vals['value_event_product'])
|
|
if old_answers:
|
|
old_answers.write(vals)
|
|
return old_answers
|
|
else:
|
|
return self.env['survey.user_input.line'].create(vals)
|
|
|
|
def _save_event(self, question, old_answers, answer):
|
|
vals = self._get_line_answer_values(question, answer, question.question_type)
|
|
vals['value_event'] = int(vals['value_event'])
|
|
if old_answers:
|
|
old_answers.write(vals)
|
|
return old_answers
|
|
else:
|
|
return self.env['survey.user_input.line'].create(vals) |