[IMP] survey_record_generation : fill up user_input.partner_id when creating a res.partner
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m34s
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m34s
This commit is contained in:
@@ -82,6 +82,8 @@ class SurveyUserInput(models.Model):
|
|||||||
try:
|
try:
|
||||||
with self.env.cr.savepoint():
|
with self.env.cr.savepoint():
|
||||||
record = self.env[model].create(vals)
|
record = self.env[model].create(vals)
|
||||||
|
if model == "res.partner" and not self.partner_id:
|
||||||
|
self.partner_id = record.id
|
||||||
except Exception:
|
except Exception:
|
||||||
# This a broad exception because it could be IntegrityError,
|
# This a broad exception because it could be IntegrityError,
|
||||||
# EmptyNamesError in case partner_firstname is installed etc...
|
# EmptyNamesError in case partner_firstname is installed etc...
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ class TestSurveyRecordCreation(SurveyCase):
|
|||||||
|
|
||||||
self.second_contact_creation = self.env["survey.record.creation"].create(
|
self.second_contact_creation = self.env["survey.record.creation"].create(
|
||||||
{
|
{
|
||||||
"name": "Second contact",
|
"name": "Contact 2",
|
||||||
"survey_id": self.survey.id,
|
"survey_id": self.survey.id,
|
||||||
"model_id": self.res_partner_model.id,
|
"model_id": self.res_partner_model.id,
|
||||||
}
|
}
|
||||||
@@ -828,3 +828,66 @@ class TestSurveyRecordCreation(SurveyCase):
|
|||||||
# No partner has been created, and no IntegrityError has been raised
|
# No partner has been created, and no IntegrityError has been raised
|
||||||
partner = self.env["res.partner"].search([("name", "=", "Jean")])
|
partner = self.env["res.partner"].search([("name", "=", "Jean")])
|
||||||
self.assertEqual(len(partner), 0)
|
self.assertEqual(len(partner), 0)
|
||||||
|
|
||||||
|
def test_fill_up_partner_id_in_survey_input(self):
|
||||||
|
# In this test, we check that the field partner_id is filled up
|
||||||
|
# when we create a res.partner
|
||||||
|
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.answer._mark_done()
|
||||||
|
|
||||||
|
partner = self.env["res.partner"].search([("name", "=", "Jean")])
|
||||||
|
self.assertEqual(self.answer.partner_id, partner)
|
||||||
|
|
||||||
|
def test_partner_id_in_survey_input_is_filled_up_by_first_contact_record_creation(self):
|
||||||
|
# In this test, we verify that when creating several contacts with the same survey,
|
||||||
|
# the 1st created contact is used to fill up survey_input.partner_id
|
||||||
|
self.second_question_name = self._add_question(
|
||||||
|
page=None,
|
||||||
|
name="Name of second person",
|
||||||
|
qtype="char_box",
|
||||||
|
survey_id=self.survey.id,
|
||||||
|
sequence=1,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.second_contact_creation = self.env["survey.record.creation"].create(
|
||||||
|
{
|
||||||
|
"name": "Contact 2",
|
||||||
|
"survey_id": self.survey.id,
|
||||||
|
"model_id": self.res_partner_model.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
self.env["survey.record.creation.field.values"].create(
|
||||||
|
{
|
||||||
|
"survey_record_creation_id": self.second_contact_creation.id,
|
||||||
|
"survey_id": self.survey.id,
|
||||||
|
"model_id": self.res_partner_model.id,
|
||||||
|
"field_id": self.name_field.id,
|
||||||
|
"value_origin": "question",
|
||||||
|
"question_id": self.second_question_name.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
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",
|
||||||
|
)
|
||||||
|
self._add_answer_line(
|
||||||
|
question=self.second_question_name,
|
||||||
|
answer=self.answer,
|
||||||
|
answer_value="Jeanne",
|
||||||
|
)
|
||||||
|
self.answer._mark_done()
|
||||||
|
|
||||||
|
partner = self.env["res.partner"].search([("name", "=", "Jean")])
|
||||||
|
self.assertEqual(self.answer.partner_id, partner)
|
||||||
|
|||||||
Reference in New Issue
Block a user