Tower: upload ks_dashboard_ninja 18.0.1.1.7 (was 18.0.1.1.7, via marketplace)
This commit is contained in:
2
addons/ks_dashboard_ninja/wizard/__init__.py
Normal file
2
addons/ks_dashboard_ninja/wizard/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
from . import ks_create_dashboard_wiz
|
||||
from . import ks_duplicate_dashboard_wiz
|
||||
53
addons/ks_dashboard_ninja/wizard/ks_create_dashboard_wiz.py
Normal file
53
addons/ks_dashboard_ninja/wizard/ks_create_dashboard_wiz.py
Normal file
@@ -0,0 +1,53 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class KSCreateDashboardWizard(models.TransientModel):
|
||||
_name = 'ks.dashboard.wizard'
|
||||
_description = 'Dashboard Creation Wizard'
|
||||
|
||||
name = fields.Char(string="Dashboard Name", required=True, size=35)
|
||||
ks_menu_name = fields.Char(string="Menu Name", required=True, size=35)
|
||||
ks_top_menu_id = fields.Many2one('ir.ui.menu',
|
||||
domain="['|',('action','=',False),('parent_id','=',False)]",
|
||||
string="Show Under Menu", required=True,
|
||||
default=lambda self: self.env.ref('ks_dashboard_ninja.dashboards_menu_root',False))
|
||||
ks_sequence = fields.Integer(string="Sequence", default=20)
|
||||
|
||||
ks_template = fields.Many2one('ks_dashboard_ninja.board_template',
|
||||
default=lambda self: self.env.ref('ks_dashboard_ninja.ks_blank',
|
||||
False),
|
||||
string="Dashboard Template")
|
||||
|
||||
context = {}
|
||||
|
||||
def CreateDashBoard(self):
|
||||
'''this function returns acion id of ks.dashboard.wizard'''
|
||||
action = self.env['ir.actions.act_window']._for_xml_id(
|
||||
'ks_dashboard_ninja.ks_create_dashboard_wizard')
|
||||
return action
|
||||
|
||||
def ks_create_record(self):
|
||||
'''this function creats record of ks_dashboard_ninja.board and return dashboard action_id'''
|
||||
ks_create_record = self.env['ks_dashboard_ninja.board'].create({
|
||||
'name': self.name,
|
||||
'ks_dashboard_menu_name': self.ks_menu_name,
|
||||
'ks_dashboard_menu_sequence': self.ks_sequence,
|
||||
'ks_dashboard_default_template': self.ks_template.id,
|
||||
'ks_dashboard_top_menu_id': self.ks_top_menu_id.id,
|
||||
})
|
||||
# context = {'ks_reload_menu': True, 'ks_menu_id': ks_create_record.ks_dashboard_menu_id.id}
|
||||
# return {'type': 'ir.actions.client', 'tag': 'reload'}
|
||||
return {
|
||||
'type': 'ir.actions.client',
|
||||
'name': "Dashboard Ninja",
|
||||
'res_model': 'ks_dashboard_ninja.board',
|
||||
'params': {'ks_dashboard_id': ks_create_record.id,
|
||||
'isReloadOnFirstCreate': True
|
||||
},
|
||||
'tag': 'ks_dashboard_ninja',
|
||||
'id': ks_create_record.ks_dashboard_client_action_id.id,
|
||||
'target': "main",
|
||||
# 'context': self.with_context(context)._context
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="ks_create_dashboard_wizard_form" model="ir.ui.view">
|
||||
<field name="name">ks.dashboard.wizard.form.view</field>
|
||||
<field name="model">ks.dashboard.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Dashboard Manager">
|
||||
<div class="d-flex flex-column w-100 h-100 pb-lg-3 mb-3 pb-0 ">
|
||||
<label for="name" class="form-label">Dashboard Name</label>
|
||||
<field name="name" placeholder="Enter Dashboard Name" class="form-control form-input-box validation"/>
|
||||
</div>
|
||||
<group class="row ks_dash_row">
|
||||
<group class="d-flex flex-column w-95 h-95">
|
||||
<div class="mb-3 mb-lg-0">
|
||||
<label for="ks_menu_name" class="form-label">Menu Name</label>
|
||||
<field name="ks_menu_name" placeholder="Enter Menu Name" class="form-control form-input-box validation"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="ks_top_menu_id" class="form-label">Show Under Menu</label>
|
||||
<field name="ks_top_menu_id" placeholder="Select Show Under Menu" class="form-control form-input-box validation"/>
|
||||
</div>
|
||||
</group>
|
||||
<group class="d-flex flex-column w-90 h-90">
|
||||
<div class="mb-3 mb-lg-0">
|
||||
<label for="ks_template" class="form-label">Template</label>
|
||||
<field name="ks_template" placeholder="Select Template" class="form-control form-input-box validation"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="ks_sequence" class="form-label">Sequence</label>
|
||||
<field name="ks_sequence" placeholder="Enter Sequence" class="form-control form-input-box validation"/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
<h3 class="oe_grey" invisible="('ks_template','!=',8)or('ks_template','!=',2)or
|
||||
('ks_template','!=',3) or ('ks_template','!=',4) or ('ks_template','!=',5) or ('ks_template','!=',6) or ('ks_template','!=',7)">
|
||||
Preview
|
||||
</h3>
|
||||
|
||||
<img src="/ks_dashboard_ninja/static/description/templates/ks_template1.png"
|
||||
alt="#" class="img img-fluid"
|
||||
style="padding: 10px; border: 2px solid;"
|
||||
invisible="('ks_template','!=',2)"/>
|
||||
|
||||
<img src="/ks_dashboard_ninja/static/description/templates/ks_template2.png"
|
||||
alt="#" class="img img-fluid"
|
||||
style="padding: 10px; border: 2px solid;"
|
||||
invisible="('ks_template','!=',3)"/>
|
||||
|
||||
<img src="/ks_dashboard_ninja/static/description/templates/ks_template3.png"
|
||||
alt="#" class="img img-fluid"
|
||||
style="padding: 10px; border: 2px solid;"
|
||||
invisible="('ks_template','!=',4)"/>
|
||||
|
||||
<img src="/ks_dashboard_ninja/static/description/templates/ks_account_template.png"
|
||||
alt="#" class="img img-fluid"
|
||||
style="padding: 10px; border: 2px solid;"
|
||||
invisible="('ks_template','!=',5)"/>
|
||||
|
||||
<img src="/ks_dashboard_ninja/static/description/templates/ks_crm_template.png"
|
||||
alt="#" class="img img-fluid"
|
||||
style="padding: 10px; border: 2px solid;"
|
||||
invisible="('ks_template','!=',6)"/>
|
||||
|
||||
<img src="/ks_dashboard_ninja/static/description/templates/ks_inventory_template.png"
|
||||
alt="#" class="img img-fluid"
|
||||
style="padding: 10px; border: 2px solid;"
|
||||
invisible="('ks_template','!=',7)"/>
|
||||
|
||||
<img src="/ks_dashboard_ninja/static/description/templates/ks_sale_template.png"
|
||||
alt="#" class="img img-fluid"
|
||||
style="padding: 10px; border: 2px solid;"
|
||||
invisible="('ks_template','!=',8)"/>
|
||||
|
||||
<footer>
|
||||
<button class="dash-btn-red" name="ks_create_record" type="object" string="Save"/>
|
||||
<button string="Cancel" class="oe_link dash-default-btn bg-white" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="ks_create_dashboard_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Add New Dashboard</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">ks.dashboard.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="ks_create_dashboard_wizard_form"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,53 @@
|
||||
# -*- 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
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- duplicate dashboard form view -->
|
||||
<record id="ks_duplicate_dashboard_wizard_form" model="ir.ui.view">
|
||||
<field name="name">ks.dashboard.duplicate.wizard.form.view</field>
|
||||
<field name="model">ks.dashboard.duplicate.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Dashboard Manager" class="duplicate-db">
|
||||
<group>
|
||||
<img src="/ks_dashboard_ninja/static/images/duplicate-img.png" alt="Duplicate Image"/>
|
||||
<field name="ks_top_menu_id" class="form-input-box form-control" placeholder="Select Show Under Menu"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button class="dash-btn-red" name="ks_duplicate_record" type="object" string="Duplicate"/>
|
||||
<button string="Cancel" class="oe_link dash-default-btn bg-white" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- duplicate dashboard action -->
|
||||
|
||||
|
||||
<record id="ks_duplicate_dashboard_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Duplicate Dashboard</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">ks.dashboard.duplicate.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="ks_duplicate_dashboard_wizard_form"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<!-- delete dashboard form view -->
|
||||
|
||||
<record id="ks_delete_dashboard_wizard_form" model="ir.ui.view">
|
||||
<field name="name">ks.dashboard.delete.wizard.form.view</field>
|
||||
<field name="model">ks.dashboard.delete.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Dashboard Manager">
|
||||
<h6 style="color: #71639e;">Are you sure you want to delete this dashboard ?</h6>
|
||||
<footer>
|
||||
<button class="dash-btn-red" name="ks_delete_record" type="object" string="Delete"/>
|
||||
<button string="Cancel" class="oe_link dash-default-btn bg-white" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- delete dashboard action-->
|
||||
|
||||
<record id="ks_delete_dashboard_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Delete Dashboard</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">ks.dashboard.delete.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="ks_delete_dashboard_wizard_form"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user