- 新增5张CMS表的模型定义(models/)和CRUD定义(json/) - 新增17个.dspy API端点(create/update/delete + search) - 新增load_path.py RBAC权限注册脚本 - xls2crud生成5个CRUD管理页面目录 - 修复bricks默认灰色背景覆盖暗色主题(.site-root全局override) - user_menu.ui添加管理后台入口(按权限显示) - 初始化CMS种子数据(栏目/分类/内容)
25 lines
1014 B
Plaintext
25 lines
1014 B
Plaintext
user_id = await get_user()
|
|
if not user_id:
|
|
return json.dumps({'status': 'error', 'message': '未登录'}, ensure_ascii=False)
|
|
|
|
rec_id = params_kw.get('id', '')
|
|
if not rec_id:
|
|
return json.dumps({'status': 'error', 'message': '缺少id'}, ensure_ascii=False)
|
|
|
|
data = {'id': rec_id, 'updated_at': curDateString()}
|
|
for field in ['content_type', 'category_id', 'title', 'subtitle', 'summary_text',
|
|
'body', 'image_url', 'tags', 'status', 'approval_id', 'extra_json']:
|
|
if field in params_kw:
|
|
data[field] = params_kw[field]
|
|
if 'sort_order' in params_kw:
|
|
data['sort_order'] = int(params_kw['sort_order'] or '0')
|
|
if 'published_at' in params_kw:
|
|
data['published_at'] = params_kw['published_at'] or None
|
|
|
|
try:
|
|
async with get_sor_context(request._run_ns, 'ocai_cms') as sor:
|
|
await sor.U('cms_content', data)
|
|
return json.dumps({'status': 'ok'}, ensure_ascii=False)
|
|
except Exception as e:
|
|
return json.dumps({'status': 'error', 'message': str(e)}, ensure_ascii=False)
|