diff --git a/ks_dashboard_ninja/static/src/js/ks_dashboard_ninja_new.js b/ks_dashboard_ninja/static/src/js/ks_dashboard_ninja_new.js
index 0e7d5aedd..4edd4213a 100644
--- a/ks_dashboard_ninja/static/src/js/ks_dashboard_ninja_new.js
+++ b/ks_dashboard_ninja/static/src/js/ks_dashboard_ninja_new.js
@@ -216,7 +216,7 @@ export class KsDashboardNinja extends Component {
grid_initiate(){
var self=this;
const ks_element = this.main_body.el;
- var $gridstackContainer = $(".grid-stack");
+ var $gridstackContainer = $(`.grid-stack-${this.ks_dashboard_id}`);
if($gridstackContainer.length){
this.grid = GridStack.init(this.gridstack_options,$gridstackContainer[0]);
var item = self.ksSortItems(self.ks_dashboard_data.ks_item_data)
diff --git a/ks_dashboard_ninja/static/src/xml/ks_dashboard_ninja_templates.xml b/ks_dashboard_ninja/static/src/xml/ks_dashboard_ninja_templates.xml
index b06b4cc86..e6f5ad444 100644
--- a/ks_dashboard_ninja/static/src/xml/ks_dashboard_ninja_templates.xml
+++ b/ks_dashboard_ninja/static/src/xml/ks_dashboard_ninja_templates.xml
@@ -398,7 +398,7 @@
diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py
index 732ed99c0..36664612f 100644
--- a/soong_workflow/models/soong_workflow_mixin.py
+++ b/soong_workflow/models/soong_workflow_mixin.py
@@ -869,7 +869,7 @@ class SoongWorkflowMixin(models.AbstractModel):
id_el = etree.Element("field")
id_el.set("name", "log_ids")
id_el.set("invisible", "1")
- field_inst.set("readonly", "state in %s and log_ids" % readonly_arr)
+ field_inst.set("readonly", "state in %s" % readonly_arr)
if required_arr:
field_inst.set("required", "state in %s" % required_arr)
if invisible_arr:
@@ -991,6 +991,7 @@ class SoongWorkflowLine(models.Model):
"view_mode": "form",
}
+
class ProjectProjectLine(models.Model):
_name = "project.project.line"
diff --git a/soong_workflow/templates/soong_workflow_templates.xml b/soong_workflow/templates/soong_workflow_templates.xml
index b2de86f7c..af88ca38e 100644
--- a/soong_workflow/templates/soong_workflow_templates.xml
+++ b/soong_workflow/templates/soong_workflow_templates.xml
@@ -28,14 +28,13 @@
-
+
-
-
+
diff --git a/yuthon_notice/__init__.py b/yuthon_notice/__init__.py
index cde864bae..a0fdc10fe 100644
--- a/yuthon_notice/__init__.py
+++ b/yuthon_notice/__init__.py
@@ -1,3 +1,2 @@
# -*- coding: utf-8 -*-
-
from . import models
diff --git a/yuthon_notice/__manifest__.py b/yuthon_notice/__manifest__.py
index e2cab36a4..4effe9597 100644
--- a/yuthon_notice/__manifest__.py
+++ b/yuthon_notice/__manifest__.py
@@ -13,7 +13,6 @@
'depends': ['base', 'documents', 'soong_workflow', 'yuthon_wechat', 'hr'],
'data': [
'security/ir.model.access.csv',
- 'security/yuthon_notice_group.xml',
'data/notice_code_data.xml',
'data/notice_cron_data.xml',
'data/notice_type_data.xml',
diff --git a/yuthon_notice/models/__init__.py b/yuthon_notice/models/__init__.py
index c2eda8c8e..b3a43c581 100644
--- a/yuthon_notice/models/__init__.py
+++ b/yuthon_notice/models/__init__.py
@@ -3,4 +3,4 @@
from . import yuthon_notice
from . import yuthon_notice_type
from . import yuthon_confirm_users
-from . import yuthon_cs_tree
+
diff --git a/yuthon_notice/models/yuthon_cs_tree.py b/yuthon_notice/models/yuthon_cs_tree.py
deleted file mode 100644
index 17cdda562..000000000
--- a/yuthon_notice/models/yuthon_cs_tree.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from odoo import api, fields, models, tools, _
-from odoo.exceptions import ValidationError, UserError
-
-
-class YuthonCsTree(models.Model):
- _name = 'yuthon.cs.tree'
- _description = 'Yuthon Customer Service Tree'
-
- name = fields.Char(string='Name', required=True)
\ No newline at end of file
diff --git a/yuthon_notice/models/yuthon_notice.py b/yuthon_notice/models/yuthon_notice.py
index 02bf39ba7..e52bb53f6 100644
--- a/yuthon_notice/models/yuthon_notice.py
+++ b/yuthon_notice/models/yuthon_notice.py
@@ -5,6 +5,7 @@ import logging
_logger = logging.getLogger(__name__)
+
class YuthonNotice(models.Model):
_name = "yuthon.notice"
_description = '通知公告'
@@ -25,8 +26,7 @@ class YuthonNotice(models.Model):
department_ids = fields.Many2many('hr.department', string='部门范围')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
users_role_group_ids = fields.Many2many('soong.user.role.group', string='角色组')
- notice_state = fields.Selection([('no', '未发布'), ('yes', '已发布'), ('stop', '已终止')], default='no',
- string="公告状态")
+ notice_state = fields.Selection([('no', '未发布'), ('yes', '已发布'), ('stop', '已终止')], default='no', string="公告状态")
notice_documents_ids = fields.Many2many('ir.attachment', string="附件")
is_notice_roger = fields.Selection([('yes', '已读'), ('no', '未读')], default='no', string="确认状态")
is_change_notice = fields.Boolean(string="是否发送通知", default=True)
@@ -44,7 +44,7 @@ class YuthonNotice(models.Model):
@api.model_create_multi
def create(self, vals_list):
for i in vals_list:
- if i['department_ids'] == i['employee_ids'] == i['users_role_ids']:
+ if i['department_ids'] == i['employee_ids'] == i['users_role_ids'] == i['users_role_group_ids']:
raise UserError('请填写发布的范围')
return super().create(vals_list)
@@ -158,3 +158,10 @@ class YuthonNotice(models.Model):
'notice_state': 'stop',
'end_date': fields.Date.today(),
})
+
+
+class YuthonCsTree(models.Model):
+ _name = 'yuthon.cs.tree'
+ _description = 'Yuthon Customer Service Tree'
+
+ name = fields.Char(string='Name', required=True)
diff --git a/yuthon_notice/security/yuthon_notice_group.xml b/yuthon_notice/security/yuthon_notice_group.xml
deleted file mode 100644
index 6ec98181b..000000000
--- a/yuthon_notice/security/yuthon_notice_group.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- 通知公告组
-
-
- 通知管理员
-
-
-
-
\ No newline at end of file
diff --git a/yuthon_notice/views/yuthon_notice_type_views.xml b/yuthon_notice/views/yuthon_notice_type_views.xml
index 2aecedb15..4b32bc20f 100644
--- a/yuthon_notice/views/yuthon_notice_type_views.xml
+++ b/yuthon_notice/views/yuthon_notice_type_views.xml
@@ -22,7 +22,6 @@
id="yuthon_notice_type_setting"
parent="yuthon_notice_menu_config_root"
name="配置"
- groups="group_notice_admin"
sequence="7"/>