import json from appPublic.uniqueID import getID config = getConfig('.') DBPools(config.databases) dbname = get_module_dbname('entcms') sor = DBPools().sqlorContext(dbname) content_id = params_kw.get('content_id', '') if not content_id: print(json.dumps({'widgettype': 'Message', 'options': {'text': '缺少内容ID', 'messagetype': 'error'}}, ensure_ascii=False)) else: # Update status to pending await sor.U('cms_content', {'id': content_id, 'status': 'pending'}) # Try to call dingdingflow try: from dingdingflow.init import submit_approval user_id = await get_user() ns_detail = {'id': content_id} rows = await sor.R('cms_content', ns_detail) title = rows[0].get('title', '内容审批') if rows else '内容审批' result = await submit_approval('content_publish', content_id, title, user_id) if result and result.get('approval_id'): await sor.U('cms_content', {'id': content_id, 'approval_id': result['approval_id']}) print(json.dumps({'widgettype': 'Message', 'options': {'text': '已提交审批', 'messagetype': 'success'}}, ensure_ascii=False)) except ImportError: print(json.dumps({'widgettype': 'Message', 'options': {'text': '审批模块未安装,状态已改为待审批', 'messagetype': 'warning'}}, ensure_ascii=False))