survey_scoring_extended/models/survey_question.py
2026-05-15 17:34:29 +07:00

23 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
from odoo import api, fields, models
class SurveyQuestion(models.Model):
_inherit = 'survey.question'
scale_multiplier = fields.Float("Scale Multiplier", default=1.0, help="Multiply the scale value by this number for scoring.")
@api.depends('question_type', 'scoring_type', 'answer_date', 'answer_datetime', 'answer_numerical_box', 'suggested_answer_ids.is_correct')
def _compute_is_scored_question(self):
super()._compute_is_scored_question()
for question in self:
if question.scoring_type == 'no_scoring':
question.is_scored_question = False
elif question.question_type == 'scale':
# Allow is_scored_question to be True for scale if set by user
# We don't want super() to force it to False.
# Since super() set it to False, we might want to default it to True if it's an assessment?
if question.survey_id.survey_type == 'assessment':
question.is_scored_question = True
elif question.question_type not in ['simple_choice', 'multiple_choice', 'date', 'datetime', 'numerical_box']:
question.is_scored_question = False