修改badge

This commit is contained in:
sunjie
2025-09-02 22:41:05 +08:00
parent eb053e546e
commit a3ec20bf2b
4 changed files with 25 additions and 13 deletions
+12 -9
View File
@@ -1,25 +1,28 @@
import logging
from odoo import fields, models, api
from odoo.addons.bus.models.bus import channel_with_db
_logger = logging.getLogger(__name__)
class SunBadgeMenuMixin(models.AbstractModel):
_name = 'sun.badge.menu.mixin'
_description = '菜单徽章'
def get_menu_badge_count(self, action_record):
"""
获取当前用户的菜单徽章数
"""
self.ensure_one()
# 这里应该根据具体业务逻辑来计算徽章数
# 作为示例,我们返回一个默认值
return 0
# def get_menu_badge_count(self, action_record):
# """
# 获取当前用户的菜单徽章数
# """
# self.ensure_one()
# # 这里应该根据具体业务逻辑来计算徽章数
# # 作为示例,我们返回一个默认值
# return 0
def trigger_menu_reload(self):
"""
通过bus触发所有用户重新加载菜单数据
"""
# reload_menu_data
_logger.info('触发菜单重新加载')
self.env['bus.bus']._sendone(self.env.user.partner_id, 'sun_badge_menu.reload_menu_data',
{'type': 'reload_menu_data'})
@@ -2,11 +2,13 @@
import {NavBar} from "@web/webclient/navbar/navbar";
import {patch} from "@web/core/utils/patch";
import { useService } from "@web/core/utils/hooks";
patch(NavBar.prototype, {
setup() {
super.setup();
this.busService = this.env.services.bus_service;
this.busService = this.env.services.bus_service
console.log(this.env.services.bus_service)
// 监听后端发送的信号,重新加载菜单数据
this.busService.subscribe("sun_badge_menu.reload_menu_data", () => {
//
+1 -1
View File
@@ -6,7 +6,7 @@
'category': 'zhou',
'version': '0.1',
'license': 'LGPL-3',
'depends': ['base', 'soong_workflow', 'hr', 'product', 'documents', 'purchase'],
'depends': ['base', 'soong_workflow', 'hr', 'product', 'documents', 'purchase','sun_badge_menu'],
'data': [
'security/ir.model.access.csv',
'views/inherit_product_product_views.xml',
@@ -5,7 +5,9 @@ from odoo.exceptions import UserError, ValidationError
class InheritPurchaseOrder(models.Model):
_inherit = 'purchase.order'
# _inherit = 'purchase.order'
_name = 'purchase.order'
_inherit = ['purchase.order','sun.badge.menu.mixin']
json_display = fields.Char(
string="物品详情",
@@ -48,10 +50,15 @@ class InheritPurchaseOrder(models.Model):
def get_no_read_count(self):
domain = [
('company_id', '=', self.env.user.company_id.id),
# ('company_id', '=', self.env.user.company_id.id),
('state','=','draft')
]
return self.search_count(domain)
def button_confirm(self):
self.trigger_menu_reload()
return super(InheritPurchaseOrder, self).button_confirm()
def action_view_picking(self):
if self.user_id == self.env.user:
raise UserError("您不能接收自己创建的采购订单产品")