pengyuthon wechat

This commit is contained in:
李鹏宇
2024-11-16 19:42:51 +08:00
parent f99bda43f7
commit 4fb0ab5e02
9 changed files with 28 additions and 30 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ class SoongWorkflow(models.Model):
current_stage_highlight_color = fields.Char(string="当前阶段颜色", default="rgb(0, 255, 255)", help="The color to highlight the current stage on flow", )
start_date = fields.Date(string="生效日期", copy=False, default=fields.Date.today())
end_date = fields.Date(string="失效日期", copy=False, default=fields.Date.from_string('2099-01-01'))
is_enable = fields.Boolean(string="是否启用", default="False", compute="compute_is_enable", store=True)
is_enable = fields.Boolean(string="是否启用", compute="compute_is_enable", store=True)
is_enable_return_button = fields.Boolean(string="是否启用收回", default=True)
is_enable_transmitted_button = fields.Boolean(string="是否启用转交", default=True)
approvals_group_id = fields.Many2one('soong.approval.group', string="审批分组")
@@ -21,7 +21,7 @@ class SoongWorkflowMixin(models.AbstractModel):
wkf_obj = self.env["soong.workflow"]
rec_model = self._name
# Get Flow Start
wkf_recs = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', 'yes')])
wkf_recs = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', True)])
for wkf_rec in wkf_recs:
for node in wkf_rec.node_ids:
if node.flow_start:
@@ -35,7 +35,7 @@ class SoongWorkflowMixin(models.AbstractModel):
rec_model = self._name
ret = []
# Get Status
wkf_recs = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', 'yes')])
wkf_recs = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', True)])
for rec in wkf_recs:
for node in rec.node_ids:
ret.append((node.node_name, node.name))
@@ -76,7 +76,7 @@ class SoongWorkflowMixin(models.AbstractModel):
# Variables
rec_model = rec._name
# Get Workflow
rec.workflow_id = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', 'yes')])
rec.workflow_id = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', True)])
node_id = fields.Many2one(
comodel_name="soong.workflow.node",
@@ -93,7 +93,7 @@ class SoongWorkflowMixin(models.AbstractModel):
rec_model = rec._name
# Get Workflow Node
rec.node_id = wkf_obj.search(
[("model_id", "=", rec_model), ('is_enable', '=', 'yes')]
[("model_id", "=", rec_model), ('is_enable', '=', True)]
).node_ids.filtered(lambda n: n.node_name == rec.state)
if rec.node_id.flow_start:
rec.approve_state = "start"
+4 -1
View File
@@ -83,6 +83,9 @@ class SoongWorkflowNode(models.Model):
res_bg_color = fields.Char(compute="_compute_custom_colors", readonly=True, string="Backgroung Color")
res_label_color = fields.Char(compute="_compute_custom_colors", readonly=True, string="Label Color")
is_carbon_copy = fields.Boolean(string="是否抄送")
employee_ids = fields.Many2many('hr.employee', string='抄送人员')
@api.model_create_multi
def create(self, values):
for val in values:
@@ -309,7 +312,7 @@ class SoongWorkflowNodeButton(models.Model):
rec.workflow_id = (
self.env["soong.workflow"]
.sudo()
.search([("model_id", "=", model_id), ('is_enable', '=', 'yes')])
.search([("model_id", "=", model_id), ('is_enable', '=', True)])
)
@api.constrains("btn_key")
@@ -1,8 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--
Workflow Nodes
-->
<record id="view_form_soong_workflow_node" model="ir.ui.view">
<field name="name">soong.workflow.node.form</field>
<field name="model">soong.workflow.node</field>
@@ -37,6 +34,8 @@
<group>
<field name="flow_start"/>
<field name="flow_end"/>
<field name="is_carbon_copy"/>
<field name="employee_ids" widget="many2many_tags" invisible="not is_carbon_copy"/>
</group>
</group>
<notebook>
@@ -82,9 +81,6 @@
</field>
</record>
<!--
Workflow Nodes Fields
-->
<record id="view_form_soong_workflow_node_field" model="ir.ui.view">
<field name="name">soong.workflow.node.field.form</field>
<field name="model">soong.workflow.node.field</field>
@@ -128,9 +124,6 @@
</field>
</record>
<!--
Workflow Node Buttons
-->
<record id="view_form_soong_workflow_node_button" model="ir.ui.view">
<field name="name">soong.workflow.node.button.form</field>
<field name="model">soong.workflow.node.button</field>
@@ -69,7 +69,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
record_id = self.env[self.res_model].search([('id', '=', self.res_id)])
for ret in self.return_link_id:
if ret.name == '拟办':
self.employee_ids = record_id.user_id.employee_id
self.employee_ids = record_id.users_id.employee_id
elif self.node_btn_name == '退回':
workflow_id = self.return_link_id.node_button_id.workflow_id
state_list = ['拟办' if i.node_name == 'start' else i.node_name for i in workflow_id.node_ids]
@@ -88,6 +88,17 @@ class SoongWorkflowCommentWizard(models.TransientModel):
self.ensure_one()
cx = self.env.context.copy() or {}
record_id = self.env[self.res_model].search([('id', '=', self.res_id)])
# 抄送人员
if self.node_btn_name == '转交':
self_node_id = record_id.workflow_id.node_ids.search([('name', '=', record_id.state), ('workflow_id', '=', record_id.workflow_id.id)])
if self_node_id.is_carbon_copy:
for employee in self_node_id.employee_ids:
if not employee.wecom_userid:
raise ("请同步{}的企业微信".format(employee.name))
url = "https://oa.thtzjt.com/mail/view?model={}&res_id={}".format(self.res_model, record_id.id)
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='oa', user_id=employee.wecom_userid,
title="审批抄送提醒", description="您有新的抄送提醒请及时查看",
url=url, btntxt="详细信息")
# 转交逻辑--单线
if not self.node_link_len and self.node_btn_name == '转交':
state = self.node_btn_id.node_id.out_link_ids.name.split('-> ')[-1]
@@ -104,7 +115,4 @@ class SoongWorkflowCommentWizard(models.TransientModel):
if self.node_btn_name == '加签':
record_id.approval_sign_ids = self.approval_users_ids
# self.sudo().env["wecom.apps"].sync_send_message_textcard(category='default', user_id="18562027762",
# title="测试", description="测试",
# url="https://oa.thtzjt.com", btntxt="详情")
return self.node_btn_id.with_context(cx).run()
@@ -27,7 +27,8 @@ class YuthonOfficialIncomingNormal(models.Model):
urgency = fields.Selection([('normal', '一般'), ('urgent', '紧急'), ('extra_urgent', '特急')], string="紧急程度")
secret_level = fields.Selection([('normal', '一般'), ('urgent', '秘密'), ('secret', '机密'), ('so_secret', '绝密')], string="密级")
time_date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="拟办部门")
users_id = fields.Many2one('res.users', string="拟办人", default=lambda self: self.env.user.id)
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="拟办部门")
department_data = fields.Html(string="拟办意见")
red_suit = fields.Char(string="套红")
official_statu = fields.Selection([('done', '办结'), ('approval', '审核')], string="公文环节")
@@ -31,6 +31,7 @@
<group>
<field name="code"/>
<field name="yuthon_company"/>
<field name="users_id"/>
<field name="department_id"/>
<field name="main_flats"/>
<field name="servings_number"/>
@@ -43,7 +44,7 @@
</group>
</group>
<group string="审批事项">
<field name="name"/>
<field name="name" required="1"/>
<field name="main_text"/>
<field name="official_documents_ids" widget="many2many_tags"/>
</group>
+1 -1
View File
@@ -13,7 +13,7 @@
'version': '0.1',
'license': 'LGPL-3',
'depends': ['base', 'base_setup', 'web', 'website_slides', 'website'],
'depends': ['base', 'base_setup', 'web', 'website'],
'assets': {
'web.assets_frontend': [
-8
View File
@@ -74,14 +74,6 @@ msgstr "办公用品管理"
msgid "Fleet"
msgstr "车辆管理"
#. module: website_slides
#. odoo-javascript
#. odoo-python
#: model:ir.ui.menu,name:website_slides.website_slides_menu_root
#, python-format
msgid "eLearning"
msgstr "培训学习"
#. module: website
#. odoo-javascript
#. odoo-python