54 lines
2.3 KiB
Python
54 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class KSduplicateDashboardWizard(models.TransientModel):
|
|
_name = 'ks.dashboard.duplicate.wizard'
|
|
_description = 'Dashboard Duplicate Wizard'
|
|
|
|
ks_top_menu_id = fields.Many2one('ir.ui.menu', string="Show Under Menu", required=True, domain="[('parent_id','=',False)]",
|
|
default=lambda self: self.env['ir.ui.menu'].search(
|
|
[('name', '=', 'My Dashboards')]))
|
|
|
|
def DuplicateDashBoard(self):
|
|
'''this function returns acion id of ks.dashboard.duplicate.wizard'''
|
|
action = self.env['ir.actions.act_window']._for_xml_id(
|
|
'ks_dashboard_ninja.ks_duplicate_dashboard_wizard')
|
|
action['context'] = {'dashboard_id': self.id}
|
|
return action
|
|
|
|
def ks_duplicate_record(self):
|
|
'''this function creats record of ks_dashboard_ninja.board and return dashboard action_id'''
|
|
dashboard_id = self._context.get('dashboard_id')
|
|
dup_dash = self.env['ks_dashboard_ninja.board'].browse(dashboard_id).copy({'ks_dashboard_top_menu_id': self.ks_top_menu_id.id})
|
|
context = {'ks_reload_menu': True, 'ks_menu_id': dup_dash.ks_dashboard_menu_id.id}
|
|
dash_id = self.env['ks_dashboard_ninja.board'].browse(dashboard_id)
|
|
length_to_skip = len(dup_dash.ks_dashboard_items_ids.ids)
|
|
|
|
count = 0
|
|
|
|
if dup_dash.ks_dashboard_items_ids or length_to_skip == 0:
|
|
for item in dash_id.ks_dashboard_items_ids:
|
|
if count < length_to_skip:
|
|
count += 1
|
|
continue
|
|
item.sudo().copy({'ks_dashboard_ninja_board_id': dup_dash.id})
|
|
return {
|
|
'type': 'ir.actions.client',
|
|
'tag': 'reload',
|
|
}
|
|
|
|
|
|
class KSDeleteDashboardWizard(models.TransientModel):
|
|
_name = 'ks.dashboard.delete.wizard'
|
|
_description = 'Dashboard Delete Wizard'
|
|
|
|
|
|
def ks_delete_record(self, **kwargs):
|
|
'''this function creats record of ks_dashboard_ninja.board and return dashboard action_id'''
|
|
dashboard_id = kwargs.get('dashboard_id')
|
|
self.env['ks_dashboard_ninja.board'].browse(dashboard_id).unlink()
|
|
menu_action_id = self.env.ref('ks_dashboard_ninja.board_menu_root').id
|
|
return menu_action_id
|