Includes: - Odoo 19 framework (odoo/) - 27 custom EnCoach addons (new_project/custom_addons/) - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media - encoach_courseware, encoach_communication, encoach_subscription - encoach_notification, encoach_approval, encoach_branding - encoach_classroom, encoach_registration, encoach_stats - encoach_faq, encoach_ticket, encoach_training, encoach_resources - encoach_adaptive_ai, encoach_sis - 21 OpenEduCat Enterprise modules (new_project/enterprise-19/) - 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/) - Configuration: odoo.conf, requirements.txt, scripts - 200+ REST API endpoints with JWT authentication - SRS and test documentation Made-with: Cursor
127 lines
5.9 KiB
JavaScript
127 lines
5.9 KiB
JavaScript
/**
|
|
* This file is meant to load the different subparts of the module
|
|
* to guarantee their plugins are loaded in the right order
|
|
*
|
|
* dependency:
|
|
* other plugins
|
|
* |
|
|
* ...
|
|
* |
|
|
* filters
|
|
* /\ \
|
|
* / \ \
|
|
* pivot list Odoo chart
|
|
*/
|
|
|
|
/** TODO: Introduce a position parameter to the plugin registry in order to load them in a specific order */
|
|
import * as spreadsheet from "@odoo/o-spreadsheet";
|
|
import { _t } from "@web/core/l10n/translation";
|
|
|
|
const { corePluginRegistry, coreViewsPluginRegistry, featurePluginRegistry } =
|
|
spreadsheet.registries;
|
|
|
|
import {
|
|
GlobalFiltersCorePlugin,
|
|
GlobalFiltersUIPlugin,
|
|
GlobalFiltersCoreViewPlugin,
|
|
} from "@spreadsheet/global_filters/index";
|
|
import {
|
|
PivotOdooCorePlugin,
|
|
PivotCoreViewGlobalFilterPlugin,
|
|
PivotUIGlobalFilterPlugin,
|
|
} from "@spreadsheet/pivot/index"; // list depends on filter for its getters
|
|
import { ListCorePlugin, ListCoreViewPlugin, ListUIPlugin } from "@spreadsheet/list/index"; // pivot depends on filter for its getters
|
|
import {
|
|
ChartOdooMenuPlugin,
|
|
OdooChartCorePlugin,
|
|
OdooChartCoreViewPlugin,
|
|
} from "@spreadsheet/chart/index"; // Odoochart depends on filter for its getters
|
|
import { PivotCoreGlobalFilterPlugin } from "./pivot/plugins/pivot_core_global_filter_plugin";
|
|
import { PivotOdooUIPlugin } from "./pivot/plugins/pivot_odoo_ui_plugin";
|
|
import { ListCoreGlobalFilterPlugin } from "./list/plugins/list_core_global_filter_plugin";
|
|
import { globalFieldMatchingRegistry } from "./global_filters/helpers";
|
|
import { OdooChartFeaturePlugin } from "./chart/plugins/odoo_chart_feature_plugin";
|
|
import { LoggingUIPlugin } from "@spreadsheet/logging/logging_ui_plugin";
|
|
|
|
globalFieldMatchingRegistry.add("pivot", {
|
|
getIds: (getters) =>
|
|
getters
|
|
.getPivotIds()
|
|
.filter(
|
|
(id) =>
|
|
getters.getPivotCoreDefinition(id).type === "ODOO" &&
|
|
getters.getPivotFieldMatch(id)
|
|
),
|
|
getDisplayName: (getters, pivotId) => getters.getPivotName(pivotId),
|
|
getTag: (getters, pivotId) =>
|
|
_t("Pivot #%(pivot_id)s", { pivot_id: getters.getPivotFormulaId(pivotId) }),
|
|
getFieldMatching: (getters, pivotId, filterId) =>
|
|
getters.getPivotFieldMatching(pivotId, filterId),
|
|
getModel: (getters, pivotId) => {
|
|
const pivot = getters.getPivotCoreDefinition(pivotId);
|
|
return pivot.type === "ODOO" && pivot.model;
|
|
},
|
|
waitForReady: (getters) =>
|
|
getters
|
|
.getPivotIds()
|
|
.map((pivotId) => getters.getPivot(pivotId))
|
|
.filter((pivot) => pivot.type === "ODOO")
|
|
.map((pivot) => pivot.loadMetadata()),
|
|
getFields: (getters, pivotId) => getters.getPivot(pivotId).getFields(),
|
|
getActionXmlId: (getters, pivotId) => getters.getPivotCoreDefinition(pivotId).actionXmlId,
|
|
});
|
|
|
|
globalFieldMatchingRegistry.add("list", {
|
|
getIds: (getters) => getters.getListIds().filter((id) => getters.getListFieldMatch(id)),
|
|
getDisplayName: (getters, listId) => getters.getListName(listId),
|
|
getTag: (getters, listId) => _t(`List #%(list_id)s`, { list_id: listId }),
|
|
getFieldMatching: (getters, listId, filterId) => getters.getListFieldMatching(listId, filterId),
|
|
getModel: (getters, listId) => getters.getListDefinition(listId).model,
|
|
waitForReady: (getters) =>
|
|
getters.getListIds().map((listId) => getters.getListDataSource(listId).loadMetadata()),
|
|
getFields: (getters, listId) => getters.getListDataSource(listId).getFields(),
|
|
getActionXmlId: (getters, listId) => getters.getListDefinition(listId).actionXmlId,
|
|
});
|
|
|
|
globalFieldMatchingRegistry.add("chart", {
|
|
getIds: (getters) => getters.getOdooChartIds(),
|
|
getDisplayName: (getters, chartId) => getters.getOdooChartDisplayName(chartId),
|
|
getFieldMatching: (getters, chartId, filterId) =>
|
|
getters.getOdooChartFieldMatching(chartId, filterId),
|
|
getModel: (getters, chartId) =>
|
|
getters.getChart(chartId).getDefinitionForDataSource().metaData.resModel,
|
|
getTag: async (getters, chartId) => {
|
|
const chartModel = await getters.getChartDataSource(chartId).getModelLabel();
|
|
return _t("Chart - %(chart_model)s", { chart_model: chartModel });
|
|
},
|
|
waitForReady: (getters) =>
|
|
getters
|
|
.getOdooChartIds()
|
|
.map((chartId) => getters.getChartDataSource(chartId).loadMetadata()),
|
|
getFields: (getters, chartId) => getters.getChartDataSource(chartId).getFields(),
|
|
getActionXmlId: (getters, chartId) => getters.getChartDefinition(chartId).actionXmlId,
|
|
});
|
|
|
|
corePluginRegistry.add("OdooGlobalFiltersCorePlugin", GlobalFiltersCorePlugin);
|
|
corePluginRegistry.add("PivotOdooCorePlugin", PivotOdooCorePlugin);
|
|
corePluginRegistry.add("OdooPivotGlobalFiltersCorePlugin", PivotCoreGlobalFilterPlugin);
|
|
corePluginRegistry.add("OdooListCorePlugin", ListCorePlugin);
|
|
corePluginRegistry.add("OdooListCoreGlobalFilterPlugin", ListCoreGlobalFilterPlugin);
|
|
corePluginRegistry.add("odooChartCorePlugin", OdooChartCorePlugin);
|
|
corePluginRegistry.add("chartOdooMenuPlugin", ChartOdooMenuPlugin);
|
|
|
|
coreViewsPluginRegistry.add("OdooGlobalFiltersCoreViewPlugin", GlobalFiltersCoreViewPlugin);
|
|
coreViewsPluginRegistry.add(
|
|
"OdooPivotGlobalFiltersCoreViewPlugin",
|
|
PivotCoreViewGlobalFilterPlugin
|
|
);
|
|
coreViewsPluginRegistry.add("OdooListCoreViewPlugin", ListCoreViewPlugin);
|
|
coreViewsPluginRegistry.add("OdooChartCoreViewPlugin", OdooChartCoreViewPlugin);
|
|
coreViewsPluginRegistry.add("OdooLoggingUIPlugin", LoggingUIPlugin);
|
|
|
|
featurePluginRegistry.add("OdooPivotGlobalFilterUIPlugin", PivotUIGlobalFilterPlugin);
|
|
featurePluginRegistry.add("OdooGlobalFiltersUIPlugin", GlobalFiltersUIPlugin);
|
|
featurePluginRegistry.add("odooPivotUIPlugin", PivotOdooUIPlugin);
|
|
featurePluginRegistry.add("odooListUIPlugin", ListUIPlugin);
|
|
featurePluginRegistry.add("OdooChartFeaturePlugin", OdooChartFeaturePlugin);
|