Tower: upload ks_dashboard_ninja 18.0.1.1.7 (was 18.0.1.1.7, via marketplace)

This commit is contained in:
2026-05-07 12:17:21 +00:00
parent e50acbac83
commit fd62a75b51
583 changed files with 54977 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
<odoo>
<data>
<record id="ks_dashboard_ninja_ai_form_view" model="ir.ui.view">
<field name="name">ks_dashboard_ninja.arti_int form</field>
<field name="model">ks_dashboard_ninja.arti_int</field>
<field name="arch" type="xml">
<form string="AI Dashboard" class="ks_import_dashboard_d_none ks_dashboard_ninja ks_create_chart_body p-0">
<div class="ks-modal-body-inner p-0">
<!-- <div class="ks-modal-title">-->
<!-- <span>Generate items with AI</span>-->
<!-- </div>-->
<div class="ks-generateAI-body create-ai">
<group>
<group>
<field name="ks_type" class="form-control form-input-box encapsulated-form-arrow" nolabel="1" string="Generate with" required="1"/>
</group>
<group>
<field name="ks_import_model_id"
string="Model" invisible="(ks_type == 'ks_keyword')" options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"
required="(ks_type == 'ks_model')" placeholder="Enter Model" class="form-control form-input-box removed-link" nolabel="1"/>
<field class="ks_import_model_class form-control form-input-box encapsulated-keyword-input" name="ks_import_model" string="Model" nolabel="1"
placeholder="Select Model"
invisible="(ks_model_show == False)"
required="(ks_model_show == True)"/>
</group>
<group>
<field name="ks_input_keywords"
string="Keywords"
nolabel="1"
class="form-control form-input-box"
widget="ks_keyword_selection"
invisible="(ks_type == 'ks_model')"
required="(ks_type == 'ks_keyword')"/>
<field name="ks_model_show" class="form-control form-input-box "
invisible="(ks_type == 'ks_keyword') or (ks_type == 'ks_model')"/>
</group>
</group>
</div>
</div>
<footer>
<button name="ks_do_action"
string="Generate with AI"
type="object"
invisible="(ks_type == 'ks_keyword')"
class="dash-btn-red"/>
<button name="ks_generate_item"
string="Generate Item"
invisible="(ks_type == 'ks_model')"
type="object" class="dash-btn-red"/>
<button string="Cancel" class="dash-default-btn" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="ks_dashboard_ninja_ai_action" model="ir.actions.act_window">
<field name="name">AI Dashboard</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ks_dashboard_ninja.arti_int</field>
<field name="view_mode">form</field>
<field name="view_id" ref="ks_dashboard_ninja_ai_form_view"/>
<field name="target">new</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,34 @@
<odoo>
<data>
<record model="ir.ui.view" id="ks_dashboard_ninja_action">
<field name="name">ks_dashboard_ninja_item action</field>
<field name="model">ks_ninja_dashboard.item_action</field>
<field name="arch" type="xml">
<form string="Dashboard Item Action">
<group>
<group>
<field name="ks_dashboard_item_ids" invisible='1' required="1"/>
<field name="ks_dashboard_ninja_id"
invisible="ks_action == 'duplicate'"
required ="ks_action == 'move'"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"/>
<field name="ks_dashboard_ninja_ids" widget='many2many_tags'
invisible="ks_action == 'move'"
required="ks_action == 'duplicate'"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"/>
</group>
<group>
<field name="ks_action" required="1"/>
</group>
</group>
<footer>
<button string='Save' name="action_item_move_copy_action" type="object" class="btn-primary"/>
<button string="Cancel" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="csv_view_group_by_tree" model="ir.ui.view">
<field name="name">ks.dashboard.csv.group.by.tree</field>
<field name="model">ks.dashboard.csv.group.by</field>
<field name="arch" type="xml">
<list>
<field name="name"/>
<field name="ttype"/>
<field name="ks_dashboard_csv_group_by_id"/>
</list>
</field>
</record>
<record id="csv_view_group_by_form" model="ir.ui.view">
<field name="name">ks.dashboard.csv.group.by.form</field>
<field name="model">ks.dashboard.csv.group.by</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name"/>
<field name="ttype"/>
<field name="ks_dashboard_csv_group_by_id"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="csv_action_group_by" model="ir.actions.act_window">
<field name="name">Group By</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ks.dashboard.csv.group.by</field>
<field name="view_mode">list,form</field>
</record>
<!-- <menuitem id="menu_group_by"-->
<!-- name="Group By"-->
<!-- parent="ks_dashboard_ninja.configuration_menu"-->
<!-- action="action_group_by"-->
<!-- sequence="20"/>-->
</odoo>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_group_by_tree" model="ir.ui.view">
<field name="name">ks.dashboard.group.by.tree</field>
<field name="model">ks.dashboard.group.by</field>
<field name="arch" type="xml">
<list>
<field name="name"/>
<field name="ttype"/>
<field name="ks_dashboard_group_by_id"/>
</list>
</field>
</record>
<record id="view_group_by_form" model="ir.ui.view">
<field name="name">ks.dashboard.group.by.form</field>
<field name="model">ks.dashboard.group.by</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name"/>
<field name="ttype"/>
<field name="ks_dashboard_group_by_id"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_group_by" model="ir.actions.act_window">
<field name="name">Group By</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ks.dashboard.group.by</field>
<field name="view_mode">list,form</field>
</record>
<!-- <menuitem id="menu_group_by"-->
<!-- name="Group By"-->
<!-- parent="ks_dashboard_ninja.configuration_menu"-->
<!-- action="action_group_by"-->
<!-- sequence="20"/>-->
</odoo>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,405 @@
<odoo>
<data>
<record model="ir.ui.view" id="ks_dashboard_ninja.board_form">
<field name="name">ks_dashboard_ninja View</field>
<field name="model">ks_dashboard_ninja.board</field>
<field name="arch" type="xml">
<form string="Dashboards" duplicate="false" class="ks_form_view">
<sheet class="ks_form_sheet">
<group class="p-2 column">
<group class="d-flex flex-row w-100 h-100">
<field name="ks_dashboard_state" invisible="1"/>
<div>
<label for="name" class="form-label">Dashboard Name</label>
<field name="name" placeholder="Enter Dashboard Name"
class="form-control form-input-box form-input-filled validation"
readonly="(ks_dashboard_state == 'Locked')"/>
</div>
<div>
<label for="ks_dashboard_default_template" class="form-label">Dashboard Template
</label>
<field name="ks_dashboard_default_template" placeholder="Template one"
class="form-control form-input-box form-input-filled validation"
readonly="(id > 0)"
required="(id &lt;= 1)"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"/>
</div>
<div>
<label for="ks_dashboard_menu_name" class="form-label">Menu Name
</label>
<field name="ks_dashboard_menu_name" placeholder="Enter Menu Name"
class="form-control form-input-box form-input-filled validation"
readonly="(ks_dashboard_state == 'Locked')"
required="(ks_dashboard_state != 'Locked')"/>
</div>
</group>
<group class="d-flex flex-row w-100 h-100">
<div>
<label for="ks_dashboard_top_menu_id" class="form-label">Show Under Menu</label>
<field name="ks_dashboard_top_menu_id" placeholder="Select Under Menu"
class="form-control form-input-box w-100 h-100 validation form-input-filled"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"
readonly="(ks_dashboard_state == 'Locked')"
required="(ks_dashboard_state != 'Locked')"/>
</div>
<div>
<label for="ks_dashboard_menu_sequence" class="form-label">Menu Sequence</label>
<field name="ks_dashboard_menu_sequence" placeholder="Enter Menu Sequence"
class="form-control form-input-box validation"/>
</div>
<div class="column">
<div class="row">
<p>Status</p>
</div>
<div class="row align-items-center">
<field name="ks_dashboard_active" class="form-control form-input-box ps-3 validation mb-0"
readonly="(ks_dashboard_state == 'Locked')"/>
<label for="ks_dashboard_active" class="form-label ks-active-label w-auto ps-2 d-flex align-items-center mb-0">Active</label>
</div>
</div>
</group>
</group>
<notebook>
<page name="pre_defined_filters" string="Pre Defined Filters">
<field name="ks_dashboard_defined_filters_ids" widget="section_and_note_one2many">
<list>
<control>
<create name="add_filter_control" string="Add a filter"/>
<create name="add_section_control" string="Add a separator"
context="{'default_display_type': 'line_section'}"/>
</control>
<field name="sequence" widget="handle"/>
<field name="display_type" column_invisible="True"/>
<field name="id" column_invisible="True"/>
<field name="ks_model_name" column_invisible="True"/>
<field name="name"/>
<field name="ks_model_id"/>
<field name="ks_domain"/>
<field name="ks_is_active"/>
</list>
</field>
</page>
<page name="custom_defined_filters" string="Custom Filters">
<field name="ks_dashboard_custom_filters_ids">
<list editable="bottom">
<field name="name" required="1"/>
<field name="ks_model_id" required="1"/>
<field name="ks_domain_field_id" required="1" options="{'no_create': True, 'no_create_edit': True}"/>
</list>
</field>
</page>
<page name="advance_setting" string="Advance Settings">
<div class="row r-g-16">
<group class="d-flex flex-column w-100">
<div class="column">
<label for="multi_layouts" class="form-label">Enable Multi-Dashboard Layouts
</label>
<field name="multi_layouts"
class="form-control form-input-box validation"
nolabel="1"/>
</div>
</group>
<div class="col-lg-6 col-12 d-flex flex-column gap-2">
<label for="ks_dashboard_group_access" class="form-label mb-0">Group Access
</label>
<field name="ks_dashboard_group_access"
placeholder="Select Multiple Group Access"
class="form-control form-input-box encapsulated-form-arrow bg-white encap-custom-input"
widget="many2many_tags" nolabel="1"/>
</div>
<div class="column col-lg-6 col-12 d-flex flex-column gap-2 ">
<label for="ks_date_filter_selection" class="form-label mb-0">Default Date
Filter
</label>
<field name="ks_date_filter_selection" nolabel="1"
class="form-control form-input-box validation h-100 bg-white" required="1"/>
</div>
<div class="column col-lg-6 col-12 d-flex flex-column gap-2" invisible="ks_date_filter_selection != 'l_custom'">
<label for="ks_dashboard_start_date" class="form-label mb-0">Start Date
</label>
<field name="ks_dashboard_start_date"
readonly="(ks_date_filter_selection != 'l_custom')"
required="(ks_date_filter_selection == 'l_custom')"
placeholder="Select Start Date"
class="form-control start-date form-input-box validation"
nolabel="1"/>
</div>
<div id="ks_dashboard_end_date_div" class="column col-lg-6 col-12 d-flex flex-column gap-2" invisible="ks_date_filter_selection != 'l_custom'">
<label for="ks_dashboard_end_date" class="form-label mb-0">End Date</label>
<field name="ks_dashboard_end_date"
readonly="(ks_date_filter_selection != 'l_custom')"
required="(ks_date_filter_selection == 'l_custom')"
placeholder="Select End Date"
class="form-control end-date form-input-box validation" nolabel="1"/>
<!-- <field name="ks_default_end_time"/>-->
</div>
<div class="column col-xl-6 col-12 d-flex align-items-center gap-2 ">
<label for="ks_default_end_time" class="form-label mb-0">Default End Time
</label>
<field name="ks_default_end_time"
class="form-control form-input-box validation w-fit-content mb-0"
nolabel="1"/>
</div>
</div>
</page>
<page string="Auto Update" name="update_settings">
<div class="col-6 d-flex flex-column gap-2">
<label for="ks_set_interval" class="form-label">Default Update Interval</label>
<field name="ks_set_interval" nolabel="1"
class="form-control form-input-box validation bg-white"/>
</div>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="ks_dashboard_ninja.board_tree">
<field name="name">ks_dashboard_ninja View</field>
<field name="model">ks_dashboard_ninja.board</field>
<field name="arch" type="xml">
<list import="0" string="My Dashboard">
<field name="ks_dashboard_state" column_invisible="True"/>
<!-- invisible="1" nolabel="1"/>-->
<field name="id" column_invisible="True"/>
<!-- invisible="1" nolabel="1"/>-->
<field name="name"/>
<field name="ks_dashboard_menu_name"
required="(ks_dashboard_state != 'Locked')"/>
<field name="ks_dashboard_menu_sequence"/>
<field name="ks_dashboard_top_menu_id"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"
readonly="(ks_dashboard_state == 'Locked')"
required="(ks_dashboard_state != 'Locked')"/>
<field name="ks_dashboard_active" readonly="(ks_dashboard_state == 'Locked')"/>
<field name="ks_dashboard_default_template"
readonly="(id > 0)" required="(id &lt;= 1)"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"/>
<field name="ks_set_interval"/>
<field name="ks_date_filter_selection" required="1"/>
<field name="ks_dashboard_start_date"
readonly="(ks_date_filter_selection != 'l_custom')"
required="(ks_date_filter_selection == 'l_custom')"
/>
<field name="ks_dashboard_end_date"
readonly="(ks_date_filter_selection != 'l_custom')"
required="(ks_date_filter_selection == 'l_custom')"
/>
<field name="ks_dashboard_group_access" widget="many2many_tags"/>
<button name="ks_view_items_view" string="View Items" type="object" class="dash-btn-red"/>
</list>
</field>
</record>
<record model="ir.ui.view" id="ks_dashboard_ninja.board_template_form">
<field name="name">Dashboard Template Form View</field>
<field name="model">ks_dashboard_ninja.board_template</field>
<field name="arch" type="xml">
<form string="Dashboard Template">
<sheet>
<group>
<group>
<field name="name"/>
<field name="ks_template_type" readonly="1"/>
<field name="ks_dashboard_board_id" invisible="(ks_template_type != 'ks_custom')"
required="(ks_template_type == 'ks_code')"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="ks_dashboard_ninja.board_defined_filters">
<field name="name">Dashboard Defined Filter Form View</field>
<field name="model">ks_dashboard_ninja.board_defined_filters</field>
<field name="arch" type="xml">
<form string="Dashboard Defined Filter">
<sheet>
<group>
<div class="w-100">
<label for="name" class="form-label"
string="Separator Name"
invisible="(display_type != 'line_section')"
required="(display_type == 'line_section')"/>
<field name="name" placeholder="Enter Separator Name (eg. Order States, Deadlines)"
class="form-control form-input-box validation w-100" nolabel="1"
invisible="(display_type != 'line_section')"
required="(display_type == 'line_section')"/>
</div>
<group class="d-flex flex-column" invisible="(display_type == 'line_section')">
<field name="id" invisible="1"/>
<field name="display_type" invisible="1"/>
<field name="ks_model_name" invisible="1"/>
<label for="name" class="form-label mb-0">Filter Label</label>
<field name="name" class="form-control form-input-box w-100 validation" nolabel="1"
required="(display_type != 'line_section')" placeholder="Enter Filter Name"/>
<field name="ks_domain_temp" invisible="1"/>
</group>
<group class="d-flex flex-column" invisible="(display_type == 'line_section')">
<label for="ks_model_id" class="form-label mb-0">Model</label>
<field name="ks_model_id" nolabel="1" placeholder="Select Model"
class="form-control form-input-box w-100 validation"
required="(display_type != 'line_section')"/>
</group>
</group>
<div class="d-flex flex-column mt-lg-4 mt-3" invisible="(display_type == 'line_section')">
<label for="ks_domain" class="form-label">Domain</label>
<field name="ks_domain" widget="domain" nolabel="1"
class="ks_domain_content form-input-box form-control validation"
context="{'current_id': id}"
options="{'model': 'ks_model_name', 'in_dialog': True}"
required="(display_type != 'line_section')"/>
</div>
<div class="column" invisible="(display_type == 'line_section')">
<div class="row mt-3">
<p>Status</p>
</div>
<div class="row align-items-center">
<field name="ks_is_active" class="w-auto pe-2"
required="(display_type != 'line_section')"/>
<label for="ks_is_active" class="form-label w-auto ps-0 mb-1">Active</label>
</div>
</div>
<!-- <div>-->
<!-- <field name="ks_is_active"-->
<!-- required="(display_type != 'line_section')"/>-->
<!-- <label for="ks_is_active" class="form-label ms-1">Status</label>-->
<!-- </div>-->
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="ks_dashboard_ninja.board_template_tree">
<field name="name">Dashboard Template List View</field>
<field name="model">ks_dashboard_ninja.board_template</field>
<field name="arch" type="xml">
<list string="Dashboard Template" editable="top">
<field name="name"/>
<field name="ks_template_type" invisible="1"/>
<field name="ks_dashboard_board_id" readonly="(ks_template_type != 'ks_custom')"
required="(ks_template_type == 'ks_custom')"
options="{'no_create': True, 'no_create_edit':True, 'no_open': True}"/>
</list>
</field>
</record>
<record model="ir.ui.view" id="ks_dashboard_ninja.child_board_tree">
<field name="name">Dashboard Layout List View</field>
<field name="model">ks_dashboard_ninja.child_board</field>
<field name="arch" type="xml">
<list string="Dashboard Layout" editable="top" create="0">
<field name="name"/>
<field name="ks_dashboard_ninja_id" string="Dashboard"/>
<field name="company_id" string="Company"/>
</list>
</field>
</record>
<!-- Dashboard -->
<!-- <record id="ks_dashboard_ninja.board_dashboard_action_window" model="ir.actions.client">-->
<!-- <field name="name">My Dashboard</field>-->
<!-- <field name="tag">ks_dashboard_ninja</field>-->
<!-- <field name="params" eval="{'ks_dashboard_id': ref('ks_dashboard_ninja.ks_my_default_dashboard_board')}"/>-->
<!-- <field name="res_model">ks_dashboard_ninja.board</field>-->
<!-- <field name="context" eval="{'ks_dashboard_id': ref('ks_dashboard_ninja.ks_my_default_dashboard_board')}"/>-->
<!-- </record>-->
<record model="ir.actions.act_window" id="ks_dashboard_ninja.board_form_tree_action_window">
<field name="name">Dashboard Manager</field>
<field name="res_model">ks_dashboard_ninja.board</field>
<field name="view_mode">list,form</field>
<field name="context">{'form_view_ref':'ks_dashboard_ninja.board_form',
'list_view_ref':'ks_dashboard_ninja.board_tree', 'ks_dashboard_name': 'Dashboards'}
</field>
</record>
<record model="ir.actions.act_window" id="ks_dashboard_ninja.template_tree_action_window">
<field name="name">Dashboard Template</field>
<field name="res_model">ks_dashboard_ninja.board_template</field>
<field name="view_mode">list,form</field>
<field name="context">{'default_ks_template_type':'ks_custom'}
</field>
</record>
<record id="action_dashboard_ninja_config_settings" model="ir.actions.act_window">
<field name="name">Settings</field>
<field name="res_model">res.config.settings</field>
<field name="view_id" ref="res_config_settings_inherit_view"/>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="context">{'module' : 'dashboard_ninja_config'}</field>
</record>
<record model="ir.actions.act_window" id="ks_dashboard_ninja.layout_tree_action_window">
<field name="name">Dashboard layout</field>
<field name="res_model">ks_dashboard_ninja.child_board</field>
<field name="view_mode">list,form</field>
<field name="domain">[('board_type', '!=', 'default')]</field>
<field name="context">{'group_by':'ks_dashboard_menu_name', 'ks_dashboard_name': 'Dashboard Layouts'}
</field>
</record>
<record model="ir.actions.client" id="ks_dashboard_ninja.dashboard_action_window">
<field name="name">My Dashboard</field>
<field name="tag">dashboard_ninja</field>
</record>
<menuitem name="My Dashboard" id="ks_dashboard_ninja.board_menu_root"
web_icon="ks_dashboard_ninja,static/description/icon.png"
action="ks_dashboard_ninja.dashboard_action_window"/>
<menuitem name="My Dashboards" id="ks_dashboard_ninja.dashboards_menu_root"
parent="ks_dashboard_ninja.board_menu_root" sequence="15"/>
<menuitem name="Quick Access" id="ks_dashboard_ninja.quick_access_menu"
parent="ks_dashboard_ninja.board_menu_root"/>
<menuitem name="Overview" id="ks_dashboard_ninja.overview_menu"
parent="ks_dashboard_ninja.quick_access_menu"
action="ks_dashboard_ninja.dashboard_action_window"/>
<menuitem name="Inbox" id="ks_dashboard_ninja.inbox_menu"
parent="ks_dashboard_ninja.quick_access_menu"
action="mail.action_discuss"/>
<menuitem name="Configuration" id="ks_dashboard_ninja.configuration_menu"
parent="ks_dashboard_ninja.board_menu_root"
groups="ks_dashboard_ninja_group_manager" sequence="100"/>
<menuitem name="Dashboards" id="ks_dashboard_ninja.dashboard_menu"
parent="ks_dashboard_ninja.configuration_menu"
action="ks_dashboard_ninja.board_form_tree_action_window" groups="ks_dashboard_ninja_group_manager"/>
<menuitem id="menu_dashboard_ninja_config_settings"
name="Settings"
sequence="1"
action="ks_dashboard_ninja.action_dashboard_ninja_config_settings"
parent="ks_dashboard_ninja.configuration_menu"
groups="ks_dashboard_ninja_group_manager"/>
<menuitem name="Dashboard Layouts" id="ks_dashboard_ninja.dashboard_layout_menu"
parent="ks_dashboard_ninja.configuration_menu"
action="ks_dashboard_ninja.layout_tree_action_window" groups="ks_dashboard_ninja_group_manager"/>
<!-- <menuitem name="Dashboard Templates" id="ks_dashboard_ninja.dashboard_template_menu"-->
<!-- parent="ks_dashboard_ninja.configuration_menu"-->
<!-- action="ks_dashboard_ninja.template_tree_action_window" groups="ks_dashboard_ninja_group_manager"/>-->
</data>
</odoo>

View File

@@ -0,0 +1,41 @@
<odoo>
<data>
<record id="ks_import_dashboard_form_view" model="ir.ui.view">
<field name="name">ks_dashboard_ninja.import form</field>
<field name="model">ks_dashboard_ninja.import</field>
<field name="arch" type="xml">
<form string="Import Dashboard" class="ks_import_dashboard_d_none">
<group>
<group>
<field name="ks_import_dashboard" string="Upload Dashboard Json" required="1"/>
<field name="ks_top_menu_id" string="Show Under Menu" required="1" class="form-control form-input-box"/>
</group>
</group>
<footer>
<button name="ks_do_action" string="Save" type="object" class="btn-primary"/>
<button string="Cancel" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="ks_import_dashboard_action" model="ir.actions.act_window">
<field name="name">Import Dashboard</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ks_dashboard_ninja.import</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<menuitem name="Import Dashboards" id="ks_dashboard_ninja.ks_import_dashboard_menu"
parent="ks_dashboard_ninja.configuration_menu"
action="ks_dashboard_ninja.ks_import_dashboard_action" groups="base.group_system"/>
<!-- <menuitem name="Dashboard Import" id="ks_dashboard_ninja.dashboard_layout_menu"-->
<!-- parent="ks_dashboard_ninja.configuration_menu"-->
<!-- action="ks_dashboard_ninja.layout_tree_action_window" groups="ks_dashboard_ninja_group_manager"/>-->
</data>
</odoo>

View File

@@ -0,0 +1,37 @@
<odoo>
<data>
<record id="ks_fetch_key_form_view" model="ir.ui.view">
<field name="name">ks_dashboard_ninja.fetch_key_form</field>
<field name="model">ks_dashboard_ninja.fetch_key</field>
<field name="arch" type="xml">
<form string="Fetch API key">
<group>
<group>
<field name="ks_email_id" required="1"/>
<field name="ks_api_key" invisible="(ks_show_api_key == False)" widget="CopyClipboardChar"/>
<field name="ks_show_api_key" invisible="1"/>
</group>
</group>
<footer>
<button name="ks_fetch_details" string="Fetch Key" type="object" class="btn-primary"/>
<button string="Cancel" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="ks_fetch_key" model="ir.actions.act_window">
<field name="name">Fetch API key</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ks_dashboard_ninja.fetch_key</field>
<field name="view_mode">form</field>
<field name="view_id" ref="ks_fetch_key_form_view"></field>
<field name="target">new</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,54 @@
<odoo>
<data>
<record id="ks_ai_whole_dashboard_form_view" model="ir.ui.view">
<field name="name">ks_dashboard_ninja.ai.dashboard form</field>
<field name="model">ks_dashboard_ninja.ai_dashboard</field>
<field name="arch" type="xml">
<form string="AI Dashboard" class="ks_import_dashboard_d_none">
<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_import_model_id" class="form-label">Model</label>
<field name="ks_import_model_id" placeholder="Enter Model" class="form-control form-input-box validation"/>
</div>
<div>
<label for="ks_dash_name" class="form-label">Dashboard Name</label>
<field name="ks_dash_name" placeholder="Enter Dashboard Name" 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_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="Show Under Menu" class="form-control form-input-box validation"/>
</div>
<field name="ks_template" invisible="1"/>
</group>
</group>
<footer>
<button name="ks_do_action" string="Generate dashboard with AI" type="object"
class="btn-primary"/>
<button string="Cancel" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="ks_dashboard_ninja_ai_dashboardaction" model="ir.actions.act_window">
<field name="name">AI whole Dashboard</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ks_dashboard_ninja.ai_dashboard</field>
<field name="view_mode">form</field>
<field name="view_id" ref="ks_ai_whole_dashboard_form_view"/>
<field name="target">new</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="res_config_settings_inherit_view" model="ir.ui.view">
<field name="name">res.config.settings.inherit.view</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//form" position="inside">
<app data-string="Dashboard Ninja" string="Dashboard Ninja" name="dashboard_ninja_config"
logo="/ks_dashboard_ninja/static/description/icon.png">
<div id="dashboard_api_key">
<h2>Dashboard API Key</h2>
<div class="row mt16 o_settings_container" name="dn_ai_api_key_container">
<div class="col-12 col-lg-6 o_setting_box" id="dn_ai_api_key">
<div class="o_setting_right_pane">
<label for="dn_api_key" class="col-sm-5 col-form-label">
Dashboard Ninja Api Key
</label>
<field name="dn_api_key"/>
<label for="ks_email_id" class="col-sm-5 col-form-label">
Email ID
</label>
<field name="ks_email_id"/>
<div class="o_row">
<label for="url" class="col-sm-5 col-form-label">
URL
</label>
<field name="url"/>
<button name="Open_wizard" string="Get API key" type="object"
class="btn-primary"/>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box" id="dn_ai_api_key">
<div class="o_setting_right_pane">
<label for="ks_analysis_word_length" class="col-sm-5 col-form-label">
AI Analysis length
</label>
<field name="ks_analysis_word_length"/>
</div>
</div>
</div>
</div>
<div id="dashboard_charts">
<block title="Dashboard Charts Configurations" name="dashboard_charts_configurations">
<setting string="Enable Zooming" help="Enable Zooming for charts on mouse scroll" id="dn_chart_config">
<field name="enable_chart_zoom" />
</setting>
<div id="dashboard_charts"/>
</block>
</div>
</app>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,9 @@
<odoo>
<!-- <data>-->
<!-- <template id="ks_dn_dashboard_loader_gif" name="Ks-Dn Dashboard loader gif" inherit_id="web.layout">-->
<!-- <xpath expr="//head" position="inside">-->
<!-- <link rel="prefetch" href="/ks_dashboard_ninja/static/images/loader.gif" as="image"/>-->
<!-- </xpath>-->
<!-- </template>-->
<!-- </data>-->
</odoo>