优化create记录的字典

This commit is contained in:
mgw
2023-06-01 16:31:11 +08:00
parent 1c5d135e48
commit 8b19e0be38

View File

@@ -58,6 +58,47 @@ class WxSettings(models.Model):
property_data = control_data['property'] property_data = control_data['property']
config_values = {} 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) # # print(property_data)
# # 准备用于创建记录的字段值 # # 准备用于创建记录的字段值
# property_values = { # property_values = {
@@ -126,46 +167,29 @@ class WxSettings(models.Model):
# 'property_id': [(0, 0, property_values)], # 'property_id': [(0, 0, property_values)],
# # 'config_id': [(0, 0, config_values)], # # 'config_id': [(0, 0, config_values)],
# })) # }))
# 准备用于创建记录的字段值 # # 准备用于创建记录的字段值
property_values = { # property_values = {
'control_type': property_data.get('control', ''), # 'control_type': property_data.get('control', ''),
'unique_control_id': property_data.get('id', ''), # 'unique_control_id': property_data.get('id', ''),
'title': property_data['title'][0]['text'] if 'title' in property_data else '', # 'title': property_data['title'][0]['text'] if 'title' in property_data else '',
'placeholder': property_data['placeholder'][0]['text'] if 'placeholder' in property_data else '', # 'placeholder': property_data['placeholder'][0]['text'] if 'placeholder' in property_data else '',
'require': property_data.get('require', None), # 'require': property_data.get('require', None),
'un_print': property_data.get('un_print', None), # 'un_print': property_data.get('un_print', None),
'un_replace': property_data.get('un_replace', None), # 'un_replace': property_data.get('un_replace', None),
'display': property_data.get('display', None), # 'display': property_data.get('display', None),
} # }
#
if 'config' in control_data: # if 'config' in control_data:
config_data = control_data['config'] # config_data = control_data['config']
#
# 根据config_data为config.model的One2many字段如options和table_children构建命令列表 # # 根据config_data为config.model的One2many字段如options和table_children构建命令列表
option_vals = [ # option_vals = [
(0, 0, {'key': 'option_key_1', 'text': 'option_text_1', 'lang': 'zh_CN'}), # (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'}) # (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'}, # vacation_vals = [{'key': 'vacation_key_1', 'text': 'vacation_text_1', 'lang': 'zh_CN'},
{'key': 'vacation_key_2', 'text': 'vacation_text_2', 'lang': 'zh_CN'}] # {'key': 'vacation_key_2', 'text': 'vacation_text_2', 'lang': 'zh_CN'}]
table_children_vals = [ # 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, { # (0, 0, {
# 'control_type': 'Text', # 'control_type': 'Text',
# 'unique_control_id': 'control_id_1', # 'unique_control_id': 'control_id_1',
@@ -181,32 +205,49 @@ class WxSettings(models.Model):
# 'require': False # 'require': False
# }) # })
# ] # ]
#
config_values = { # # property_vals = [
'date_type': config_data.get('type', '') if '"date":' in config_data else '', # # (0, 0, {
'selector_type': config_data.get('type', '') if '"selector":' in config_data else '', # # 'control_type': 'Text',
'contact_type': config_data.get('type', '') if '"contact":' in config_data else '', # # 'unique_control_id': 'control_id_1',
'contact_mode': config_data.get('mode', '') if '"contact":' in config_data else '', # # 'title': '控件名称1',
'options': option_vals if '"selector":' in config_data else [(6, 0, [])], # 使用示例中的option_vals # # 'placeholder': '控件说明1',
'table_children': table_children_vals if '"table":' in config_data else [(6, 0, [])], # # 'require': True
# 使用示例中的property_vals # # }),
'vacation_list': vacation_vals if '"vacation_list":' in config_data else [] # 添加vacation_vals # # (0, 0, {
} # # 'control_type': 'Number',
# # 'unique_control_id': 'control_id_2',
content_data_list.append((0, 0, { # # 'title': '控件名称2',
'property_id': [(0, 0, property_values)], # # 'placeholder': '控件说明2',
'config_id': [(0, 0, config_values)] if 'config' in control_data else [(6, 0, [])], # # 'require': False
})) # # })
# # ]
# 准备用于创建记录的字段值包括content_ids数据 #
values = { # config_values = {
'process_code': template, # 'date_type': config_data.get('type', '') if '"date":' in config_data else '',
'name': template_detail['template_names'][0]['text'], # 'selector_type': config_data.get('type', '') if '"selector":' in config_data else '',
'content_ids': content_data_list, # '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
# 使用create方法创建记录 # 'table_children': table_children_vals if '"table":' in config_data else [(6, 0, [])],
new_record = self.env['wxwork.approval.template'].create(values) # # 使用示例中的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): class WxTemplateSettings(models.Model):