Browse Source
[FIX] count needactions from the same model only once
pull/1028/head
Holger Brunn
9 years ago
No known key found for this signature in database
GPG Key ID: 1C9760FECA3AE18
1 changed files with
11 additions and
6 deletions
-
web_menu_navbar_needaction/models/ir_ui_menu.py
|
|
@ -27,10 +27,15 @@ class IrUiMenu(models.Model): |
|
|
|
def get_navbar_needaction_data(self): |
|
|
|
result = {} |
|
|
|
for this in self: |
|
|
|
result[this.id] = sum(map( |
|
|
|
lambda x: x['needaction_counter'], |
|
|
|
self.search([('id', 'child_of', this.ids)]) |
|
|
|
._filter_visible_menus().get_needaction_data() |
|
|
|
.itervalues()) |
|
|
|
) |
|
|
|
count_per_model = {} |
|
|
|
for menu_id, needaction in self.search( |
|
|
|
[('id', 'child_of', this.ids)])._filter_visible_menus()\ |
|
|
|
.get_needaction_data().iteritems(): |
|
|
|
if needaction['needaction_enabled']: |
|
|
|
model = self.env['ir.ui.menu'].browse(menu_id).action\ |
|
|
|
.res_model |
|
|
|
count_per_model[model] = max( |
|
|
|
count_per_model.get(model), |
|
|
|
needaction['needaction_counter']) |
|
|
|
result[this.id] = sum(count_per_model.itervalues()) |
|
|
|
return result |