1 Commits

Author SHA1 Message Date
220ab8fab1 wip added first test on record creation 2025-08-21 16:01:23 +02:00
5 changed files with 59 additions and 19 deletions

View File

@@ -33,7 +33,7 @@ class SurveyRecordCreationFieldValues(models.Model):
field_id = fields.Many2one(
'ir.model.fields',
domain="[('model_id','=',model_id),('readonly','=',False),('ttype','in',['char','selection','text','html','integer','float','date','datetime','many2one','many2many', 'boolean'])]",
domain="[('model_id','=',model_id),('readonly','=',False),('ttype','in',['char','selection','text','html','integer','float','date','datetime','many2one','many2many'])]",
ondelete="cascade")
field_relation = fields.Char(related='field_id.relation')
field_type = fields.Selection(related="field_id.ttype")
@@ -58,7 +58,6 @@ class SurveyRecordCreationFieldValues(models.Model):
fixed_value_float = fields.Float("Value")
fixed_value_date = fields.Date("Value")
fixed_value_datetime = fields.Datetime("Value")
fixed_value_boolean = fields.Boolean("Value")
displayed_value = fields.Char("Value", compute="_compute_displayed_value")
other_created_record_id = fields.Many2one("survey.record.creation", string="Other record", domain="[('survey_id','=',survey_id),('model_id.model','=',field_relation)]")

View File

@@ -63,11 +63,7 @@ class SurveyUserInput(models.Model):
else:
vals[field_value.field_id.name] = record_ids
if field_value.question_id.answer_values_type == 'value':
if field_value.field_id.ttype == "boolean":
boolean_value = user_input_lines[0].suggested_answer_id.value_char in [True, 1, "1", "True", "true", "Oui", "oui"]
vals[field_value.field_id.name] = boolean_value
else:
vals[field_value.field_id.name] = user_input_lines[0].suggested_answer_id.value_char
vals[field_value.field_id.name] = user_input_lines[0].suggested_answer_id.value_char
elif user_input_lines[0].answer_type: # if value not filled by user, answer_type not set
vals[field_value.field_id.name] = user_input_lines[0][f"value_{user_input_lines[0].answer_type}"]
else:

View File

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

View File

@@ -0,0 +1,48 @@
from odoo.addons.survey.tests.common import SurveyCase
class TestSurveyRecordCreation(SurveyCase):
def setUp(self):
super(TestSurveyRecordCreation, self).setUp()
self.survey = self.env["survey.survey"].create({
"title": "Test Survey",
})
self.question_name = self._add_question(
page=None,
name="Name",
qtype="char_box",
survey_id=self.survey.id,
sequence=1
)
self.answer = self._add_answer(survey=self.survey, partner=False, email="jean@test.fr")
self._add_answer_line(question=self.question_name, answer=self.answer, answer_value="Jean")
def test_record_is_created(self):
self.model_id = self.env["ir.model"]._get("res.partner")
self.survey_record_creation = self.env["survey.record.creation"].create(
{
"name": "Contact",
"survey_id": self.survey.id,
"model_id": self.model_id.id,
}
)
name_field = self.env["ir.model.fields"].search([("model", "=", "res.partner"), ("name", "=", "name")])
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.model_id.id,
"field_id": name_field.id,
"value_origin": "question",
"question_id": self.question_name.id
}
)
self.answer._mark_done()
partner = self.env["res.partner"].search(
[("name", "=", "Jean")]
)
self.assertTrue(partner.name == "Jean")

View File

@@ -43,39 +43,35 @@
<field name="displayed_value" invisible="1" />
<field
name="fixed_value_char"
attrs="{'invisible':[('field_type','!=','char')]}"
attrs="{'invisible':[('field_type','in',['selection','text','html','integer','float','date','datetime','many2one','many2many'])]}"
/>
<field
name="fixed_value_selection"
attrs="{'invisible':[('field_type','!=','selection')]}"
attrs="{'invisible':[('field_type','in',['char','text','html','integer','float','date','datetime','many2one','many2many'])]}"
/>
<field
name="fixed_value_text"
attrs="{'invisible':[('field_type','!=','text')]}"
attrs="{'invisible':[('field_type','in',['char','selection','html','integer','float','date','datetime','many2one','many2many'])]}"
/>
<field
name="fixed_value_html"
attrs="{'invisible':[('field_type','!=', 'html')]}"
attrs="{'invisible':[('field_type','in',['char','selection','text','integer','float','date','datetime','many2one','many2many'])]}"
/>
<field
name="fixed_value_integer"
attrs="{'invisible':[('field_type','!=', 'integer')]}"
attrs="{'invisible':[('field_type','in',['char','selection','text','html','float','date','datetime','many2one','many2many'])]}"
/>
<field
name="fixed_value_float"
attrs="{'invisible':[('field_type','!=', 'float')]}"
attrs="{'invisible':[('field_type','in',['char','selection','text','html','integer','date','datetime','many2one','many2many'])]}"
/>
<field
name="fixed_value_date"
attrs="{'invisible':[('field_type','!=', 'date')]}"
attrs="{'invisible':[('field_type','in',['char','selection','text','html','integer','float','datetime','many2one','many2many'])]}"
/>
<field
name="fixed_value_datetime"
attrs="{'invisible':[('field_type','!=', 'datetime')]}"
/>
<field
name="fixed_value_boolean"
attrs="{'invisible':[('field_type','!=','boolean')]}"
attrs="{'invisible':[('field_type','in',['char','selection','text','html','integer','float','date','many2one','many2many'])]}"
/>
<field
name="fixed_value_many2one"