diff --git a/sf_wxwork_approval/models/wxwork_settings.py b/sf_wxwork_approval/models/wxwork_settings.py index 842b5915..54cd7726 100644 --- a/sf_wxwork_approval/models/wxwork_settings.py +++ b/sf_wxwork_approval/models/wxwork_settings.py @@ -58,6 +58,47 @@ class WxSettings(models.Model): property_data = control_data['property'] config_values = {} + # 创建一个字典,包含wxwork.approval.template.controls和wxwork.approval.vacation.config记录的数据 + template_data = { + 'process_code': template, + 'name': template_detail['template_names'][0]['text'], + 'content_ids': [(0, 0, { + 'property_id': [(0, 0, { + 'control_type': property_data.get('control', ''), + 'unique_control_id': property_data.get('id', ''), + 'title': property_data['title'][0]['text'] if 'title' in property_data else '', + 'placeholder': property_data['placeholder'][0]['text'] if 'placeholder' in property_data else '', + 'require': property_data.get('require', None), + 'un_print': property_data.get('un_print', None), + 'un_replace': property_data.get('un_replace', None), + 'display': property_data.get('display', None), + })], + 'config_id': [(0, 0, { + 'date_type': [(0, 0, {'date_type': 'day'})], + 'selector_type': [(0, 0, { + 'selector_type': 'single', + 'options': [(0, 0, {'key': 'opt1', 'text': '选项1'})], + })], + 'contact_type': [(0, 0, {'contact_type': 'single', 'contact_mode': 'user'})], + 'table_type': [(0, 0, { + 'table_children': [ + (0, 0, {'control_type': 'Text', 'unique_control_id': 'text_2', 'title': '文本框2'})], + })], + 'attendance_type': [(0, 0, {'attendance_type': '1', 'attendance_date_range_type': 'hour'})], + })], + })], + 'vacation_config_id': [(0, 0, { + # 在这里添加wxwork.approval.vacation.config模型的字段数据 + 'vacation_id': 1, + 'name': 'value2', + 'lang': 'value2', + # ... + })], + } + + # 调用create方法创建记录 + template_record = self.env['wxwork.approval.template'].create(template_data) + # # print(property_data) # # 准备用于创建记录的字段值 # property_values = { @@ -126,87 +167,87 @@ class WxSettings(models.Model): # 'property_id': [(0, 0, property_values)], # # 'config_id': [(0, 0, config_values)], # })) - # 准备用于创建记录的字段值 - property_values = { - 'control_type': property_data.get('control', ''), - 'unique_control_id': property_data.get('id', ''), - 'title': property_data['title'][0]['text'] if 'title' in property_data else '', - 'placeholder': property_data['placeholder'][0]['text'] if 'placeholder' in property_data else '', - 'require': property_data.get('require', None), - 'un_print': property_data.get('un_print', None), - 'un_replace': property_data.get('un_replace', None), - 'display': property_data.get('display', None), - } - - if 'config' in control_data: - config_data = control_data['config'] - - # 根据config_data为config.model的One2many字段(如options和table_children)构建命令列表 - option_vals = [ - (0, 0, {'key': 'option_key_1', 'text': 'option_text_1', 'lang': 'zh_CN'}), - (0, 0, {'key': 'option_key_2', 'text': 'option_text_2', 'lang': 'zh_CN'}) - ] - vacation_vals = [{'key': 'vacation_key_1', 'text': 'vacation_text_1', 'lang': 'zh_CN'}, - {'key': 'vacation_key_2', 'text': 'vacation_text_2', 'lang': 'zh_CN'}] - table_children_vals = [ - (0, 0, { - 'control_type': 'Text', - 'unique_control_id': 'control_id_1', - 'title': '控件名称1', - 'placeholder': '控件说明1', - 'require': True - }), - (0, 0, { - 'control_type': 'Number', - 'unique_control_id': 'control_id_2', - 'title': '控件名称2', - 'placeholder': '控件说明2', - 'require': False - }) - ] - - # property_vals = [ - # (0, 0, { - # 'control_type': 'Text', - # 'unique_control_id': 'control_id_1', - # 'title': '控件名称1', - # 'placeholder': '控件说明1', - # 'require': True - # }), - # (0, 0, { - # 'control_type': 'Number', - # 'unique_control_id': 'control_id_2', - # 'title': '控件名称2', - # 'placeholder': '控件说明2', - # 'require': False - # }) - # ] - - config_values = { - 'date_type': config_data.get('type', '') if '"date":' in config_data else '', - 'selector_type': config_data.get('type', '') if '"selector":' in config_data else '', - 'contact_type': config_data.get('type', '') if '"contact":' in config_data else '', - 'contact_mode': config_data.get('mode', '') if '"contact":' in config_data else '', - 'options': option_vals if '"selector":' in config_data else [(6, 0, [])], # 使用示例中的option_vals - 'table_children': table_children_vals if '"table":' in config_data else [(6, 0, [])], - # 使用示例中的property_vals - 'vacation_list': vacation_vals if '"vacation_list":' in config_data else [] # 添加vacation_vals - } - - content_data_list.append((0, 0, { - 'property_id': [(0, 0, property_values)], - 'config_id': [(0, 0, config_values)] if 'config' in control_data else [(6, 0, [])], - })) - - # 准备用于创建记录的字段值,包括content_ids数据 - values = { - 'process_code': template, - 'name': template_detail['template_names'][0]['text'], - 'content_ids': content_data_list, - } - - # 使用create方法创建记录 - new_record = self.env['wxwork.approval.template'].create(values) + # # 准备用于创建记录的字段值 + # property_values = { + # 'control_type': property_data.get('control', ''), + # 'unique_control_id': property_data.get('id', ''), + # 'title': property_data['title'][0]['text'] if 'title' in property_data else '', + # 'placeholder': property_data['placeholder'][0]['text'] if 'placeholder' in property_data else '', + # 'require': property_data.get('require', None), + # 'un_print': property_data.get('un_print', None), + # 'un_replace': property_data.get('un_replace', None), + # 'display': property_data.get('display', None), + # } + # + # if 'config' in control_data: + # config_data = control_data['config'] + # + # # 根据config_data为config.model的One2many字段(如options和table_children)构建命令列表 + # option_vals = [ + # (0, 0, {'key': 'option_key_1', 'text': 'option_text_1', 'lang': 'zh_CN'}), + # (0, 0, {'key': 'option_key_2', 'text': 'option_text_2', 'lang': 'zh_CN'}) + # ] + # vacation_vals = [{'key': 'vacation_key_1', 'text': 'vacation_text_1', 'lang': 'zh_CN'}, + # {'key': 'vacation_key_2', 'text': 'vacation_text_2', 'lang': 'zh_CN'}] + # table_children_vals = [ + # (0, 0, { + # 'control_type': 'Text', + # 'unique_control_id': 'control_id_1', + # 'title': '控件名称1', + # 'placeholder': '控件说明1', + # 'require': True + # }), + # (0, 0, { + # 'control_type': 'Number', + # 'unique_control_id': 'control_id_2', + # 'title': '控件名称2', + # 'placeholder': '控件说明2', + # 'require': False + # }) + # ] + # + # # property_vals = [ + # # (0, 0, { + # # 'control_type': 'Text', + # # 'unique_control_id': 'control_id_1', + # # 'title': '控件名称1', + # # 'placeholder': '控件说明1', + # # 'require': True + # # }), + # # (0, 0, { + # # 'control_type': 'Number', + # # 'unique_control_id': 'control_id_2', + # # 'title': '控件名称2', + # # 'placeholder': '控件说明2', + # # 'require': False + # # }) + # # ] + # + # config_values = { + # 'date_type': config_data.get('type', '') if '"date":' in config_data else '', + # 'selector_type': config_data.get('type', '') if '"selector":' in config_data else '', + # 'contact_type': config_data.get('type', '') if '"contact":' in config_data else '', + # 'contact_mode': config_data.get('mode', '') if '"contact":' in config_data else '', + # 'options': option_vals if '"selector":' in config_data else [(6, 0, [])], # 使用示例中的option_vals + # 'table_children': table_children_vals if '"table":' in config_data else [(6, 0, [])], + # # 使用示例中的property_vals + # 'vacation_list': vacation_vals if '"vacation_list":' in config_data else [] # 添加vacation_vals + # } + # + # content_data_list.append((0, 0, { + # 'property_id': [(0, 0, property_values)], + # 'config_id': [(0, 0, config_values)] if 'config' in control_data else [(6, 0, [])], + # })) + # + # # 准备用于创建记录的字段值,包括content_ids数据 + # values = { + # 'process_code': template, + # 'name': template_detail['template_names'][0]['text'], + # 'content_ids': content_data_list, + # } + # + # # 使用create方法创建记录 + # new_record = self.env['wxwork.approval.template'].create(values) class WxTemplateSettings(models.Model):