[IMP] survey_record_generation : add a param in mark_down to ignore creation when res partner mandatory fields are missing
This commit is contained in:
@@ -13,7 +13,6 @@ class SurveyUserInput(models.Model):
|
|||||||
for user_input in self:
|
for user_input in self:
|
||||||
user_input.generated_records_count = len(user_input.generated_record_ids)
|
user_input.generated_records_count = len(user_input.generated_record_ids)
|
||||||
|
|
||||||
|
|
||||||
def action_redirect_to_generated_records(self):
|
def action_redirect_to_generated_records(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
|
|
||||||
@@ -32,7 +31,7 @@ class SurveyUserInput(models.Model):
|
|||||||
|
|
||||||
return action
|
return action
|
||||||
|
|
||||||
def _mark_done(self):
|
def _mark_done(self, ignore_when_res_partner_mandatory_fields_are_missing = False):
|
||||||
# generate records
|
# generate records
|
||||||
for user_input in self:
|
for user_input in self:
|
||||||
created_records = {}
|
created_records = {}
|
||||||
@@ -94,6 +93,11 @@ class SurveyUserInput(models.Model):
|
|||||||
if duplicate:
|
if duplicate:
|
||||||
record = duplicate
|
record = duplicate
|
||||||
else:
|
else:
|
||||||
|
if model == "res.partner" and ignore_when_res_partner_mandatory_fields_are_missing:
|
||||||
|
# this part has been developed for Calim specific needs : being able to create several Contacts with the same survey
|
||||||
|
# TODO : find a way to make it generic for all models ?
|
||||||
|
if not vals.get("lastname") and not vals.get("firstname"):
|
||||||
|
continue
|
||||||
# Create record
|
# Create record
|
||||||
record = self.env[model].create(vals)
|
record = self.env[model].create(vals)
|
||||||
# Link generated records to user input
|
# Link generated records to user input
|
||||||
@@ -103,18 +107,14 @@ class SurveyUserInput(models.Model):
|
|||||||
'user_input_id':user_input.id,
|
'user_input_id':user_input.id,
|
||||||
"created_record_id":"%s,%s" % (model,record.id)
|
"created_record_id":"%s,%s" % (model,record.id)
|
||||||
})
|
})
|
||||||
|
|
||||||
created_records[record_creation.id] = record
|
|
||||||
|
|
||||||
|
created_records[record_creation.id] = record
|
||||||
|
|
||||||
# update linked records
|
# update linked records
|
||||||
for field_to_update in fields_to_update:
|
for field_to_update in fields_to_update:
|
||||||
record_to_update = created_records[field_to_update.survey_record_creation_id.id]
|
record_to_update = created_records.get(field_to_update.survey_record_creation_id.id)
|
||||||
linked_record = created_records[field_to_update.other_created_record_id.id]
|
if record_to_update:
|
||||||
record_to_update.write({field_to_update.field_id.name:linked_record.id})
|
linked_record = created_records[field_to_update.other_created_record_id.id]
|
||||||
|
record_to_update.write({field_to_update.field_id.name:linked_record.id})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return super()._mark_done()
|
return super()._mark_done()
|
||||||
|
Reference in New Issue
Block a user