修改模板模型结构

This commit is contained in:
mgw
2023-06-01 15:45:00 +08:00
parent 48e0809bd7
commit 1c5d135e48
4 changed files with 245 additions and 91 deletions

View File

@@ -38,7 +38,7 @@ class WxSettings(models.Model):
# print(json.dumps(temp_dict))
# aa = json.dumps(temp_dict)
template_detail = wx.get_template_detail(temp_dict)
# print('template_detail%s' % template_detail)
print('template_detail%s' % template_detail)
#
# # 准备用于创建记录的字段值
# values = {
@@ -54,11 +54,78 @@ class WxSettings(models.Model):
# print('jjjjjjjj', template_detail['template_content'])
# print('jjjjjjjjjj', template_detail['template_content']['controls'])
for control_data in template_detail['template_content']['controls']:
print('control_data', control_data)
# print('control_data', control_data)
property_data = control_data['property']
config_values = {}
# print(property_data)
# # print(property_data)
# # 准备用于创建记录的字段值
# 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),
# # 'un_replace': template_detail['template_names'][0]['text'],
# # 如果需要设置content_ids请按照正确格式添加关联数据
# }
# # print('property_values', property_values)
# # config_data = None
#
# if 'config' in control_data:
#
# config_data = control_data['config']
# # print('config_data===', config_data)
# if '"date":' in config_data:
# # config_values = {
# # 'date_type': config_data.get('type', ''),
# # }
# config_values['date_type'] = config_data.get('type', '')
# if '"selector":' in config_data:
# # config_values = {
# # 'selector_type': config_data.get('type', ''),
# # # 'options': config_data['title'][0]['text'] if 'title' in property_data else '',
# # }
# config_values['selector_type'] = config_data.get('type', '')
# if '"contact":' in config_data:
# # config_values = {
# # 'contact_type': config_data.get('type', ''),
# # 'contact_mode': config_data.get('mode', ''),
# #
# # }
# config_values['contact_type'] = config_data.get('type', '')
# config_values['contact_mode'] = config_data.get('mode', '')
# if '"table":' in config_data:
# pass
# # config_values = {
# # 'table_children': config_data.get('un_print', None),
# # }
# if '"attendance":' in config_data:
# pass
# # config_values = {
# # 'attendance_type': config_data.get('un_replace', None),
# # 'attendance_date_range_type': config_data.get('display', None),
# # # 如果需要设置content_ids请按照正确格式添加关联数据
# # }
# if '"vacation_list":' in config_data:
# pass
# # config_values = {
# # 'vacation_list': config_data['template_names'][0]['text'],
# # # 如果需要设置content_ids请按照正确格式添加关联数据
# # }
#
# content_data_list.append((0, 0, {
# 'property_id': [(0, 0, property_values)],
# 'config_id': [(0, 0, config_values)],
# }))
# else:
# content_data_list.append((0, 0, {
# 'property_id': [(0, 0, property_values)],
# # 'config_id': [(0, 0, config_values)],
# }))
# 准备用于创建记录的字段值
property_values = {
'control_type': property_data.get('control', ''),
@@ -69,63 +136,67 @@ class WxSettings(models.Model):
'un_print': property_data.get('un_print', None),
'un_replace': property_data.get('un_replace', None),
'display': property_data.get('display', None),
# 'un_replace': template_detail['template_names'][0]['text'],
# 如果需要设置content_ids请按照正确格式添加关联数据
}
# print('property_values', property_values)
# config_data = None
if 'config' in control_data:
config_data = control_data['config']
# print('config_data===', config_data)
if '"date":' in config_data:
# config_values = {
# 'date_type': config_data.get('type', ''),
# }
config_values['date_type'] = config_data.get('type', '')
if '"selector":' in config_data:
# config_values = {
# 'selector_type': config_data.get('type', ''),
# # 'options': config_data['title'][0]['text'] if 'title' in property_data else '',
# }
config_values['selector_type'] = config_data.get('type', '')
if '"contact":' in config_data:
# config_values = {
# 'contact_type': config_data.get('type', ''),
# 'contact_mode': config_data.get('mode', ''),
#
# }
config_values['contact_type'] = config_data.get('type', '')
config_values['contact_mode'] = config_data.get('mode', '')
if '"table":' in config_data:
pass
# config_values = {
# 'table_children': config_data.get('un_print', None),
# }
if '"attendance":' in config_data:
pass
# config_values = {
# 'attendance_type': config_data.get('un_replace', None),
# 'attendance_date_range_type': config_data.get('display', None),
# # 如果需要设置content_ids请按照正确格式添加关联数据
# }
if '"vacation_list":' in config_data:
pass
# config_values = {
# 'vacation_list': config_data['template_names'][0]['text'],
# # 如果需要设置content_ids请按照正确格式添加关联数据
# }
content_data_list.append((0, 0, {
'property_id': [(0, 0, property_values)],
'config_id': [(0, 0, config_values)],
}))
else:
content_data_list.append((0, 0, {
'property_id': [(0, 0, property_values)],
# 'config_id': [(0, 0, config_values)],
}))
# 根据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 = {