diff --git a/survey_record_generation/models/survey_question.py b/survey_record_generation/models/survey_question.py index 7e0f9ff..6767727 100644 --- a/survey_record_generation/models/survey_question.py +++ b/survey_record_generation/models/survey_question.py @@ -1,7 +1,8 @@ import logging +import ast -from odoo import api, fields, models, _ +from odoo import api, fields, models, _, Command from odoo.exceptions import UserError _logger = logging.getLogger(__name__) @@ -11,10 +12,13 @@ class SurveyQuestion(models.Model): _inherit = 'survey.question' model_id = fields.Many2one('ir.model', string="Model") - answer_values_type = fields.Selection([('no', 'No values'),('value','Value'),('record','Record')], string="Associate value to answer", default="no", required=True) + model_name = fields.Char(related="model_id.model") + fill_domain = fields.Char("Domain", default="[]") + answer_values_type = fields.Selection([('no', 'No values'),('value','Value'),('record','Record')], string="Associate value to answer", default="no", required=True) @api.onchange('model_id') def onchange_model_id(self): + self.fill_domain = "[]" if self.model_id: rec = self.env[self.model_id.model].search([], limit=1) if not rec: @@ -23,3 +27,21 @@ class SurveyQuestion(models.Model): for answer in self.suggested_answer_ids: answer.record_id = f"{self.model_id.model},{rec.id}" + + def fill(self): + for question in self: + if question.model_id: + new_suggested_answer_ids = [Command.clear()] + record_model = question.model_id.model + + if question.fill_domain: + domain = ast.literal_eval(question.fill_domain) + else: + domain = [] + + records = self.env[record_model].search(domain) + + new_suggested_answer_ids += [Command.create({'value':record.display_name, 'record_id':f"{record_model},{record.id}" +}) for record in records] + question.suggested_answer_ids = new_suggested_answer_ids + diff --git a/survey_record_generation/views/survey_question_views.xml b/survey_record_generation/views/survey_question_views.xml index 5366994..992f49a 100644 --- a/survey_record_generation/views/survey_question_views.xml +++ b/survey_record_generation/views/survey_question_views.xml @@ -8,6 +8,13 @@ + + +