Commit 4cf0ff1d authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Carga layouts en project, agrega widget acoustic

Permite que la vista detalle de la entidad proyecto también pueda
mostrar widgets personalizados en base a configuración de layout.

Agrega nuevo widget para mostrar las estadísticas de recepción acústica
de los proyectos que contienen actividades de este tipo, consumiendo
datos desde un nuevo servicio.
parent bd1a929f
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ define([
	, 'src/detail/activity/widget/ActivityInfrastructureMap'
	, 'src/detail/activity/widget/ActivityLayerMap'
	, 'src/detail/activity/widget/ActivityTrackingMap'
	, 'src/detail/widget/AcousticDetectionMap'
	, 'src/component/base/_Filter'
	, 'src/component/base/_Module'
	, 'src/component/base/_Show'
@@ -33,6 +34,7 @@ define([
	, ActivityInfrastructureMap
	, ActivityLayerMap
	, ActivityTrackingMap
	, AcousticDetectionMap
	, _Filter
	, _Module
	, _Show
@@ -189,6 +191,17 @@ define([
					pathVariableId: config.pathVariableId
				}
			};
		},

		_getAcousticDetectionMapConfig: function(config) {

			return {
				type: AcousticDetectionMap,
				props: {
					title: 'acoustic-detections',
					activityIds: config.activityIds
				}
			};
		}
	});
});
+15 −0
Original line number Diff line number Diff line
@@ -335,6 +335,21 @@ define([

			const config = this._merge([windowConfig, this._getSupersetDashboardConfig(layoutConfig)]);

			this._publishLayoutWidget(key, config);
		},

		_acousticDetectionMapPrepareLayoutWidgets: function(layoutConfig) {

			const key = 'acousticDetectionMap';

			const windowConfig = {
				width: 6,
				height: 6,
				hidden: true
			};

			const config = this._merge([windowConfig, this._getAcousticDetectionMapConfig(layoutConfig)]);

			this._publishLayoutWidget(key, config);
		}
	});
+16 −3
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'src/detail/_GenerateReport'
	, 'src/detail/_CustomLayout'
	, 'src/detail/_DetailAdministrativeAncestor'
	, 'src/detail/_GenerateReport'
	, 'src/redmicConfig'
	, 'templates/ActivityList'
	, 'templates/ProjectInfo'
], function(
	declare
	, lang
	, _GenerateReport
	, _CustomLayout
	, _DetailAdministrativeAncestor
	, _GenerateReport
	, redmicConfig
	, ActivityListTemplate
	, ProjectInfoTemplate
) {

	return declare([_DetailAdministrativeAncestor, _GenerateReport], {
	return declare([_DetailAdministrativeAncestor, _CustomLayout, _GenerateReport], {
		//	summary:
		//		Vista de detalle de proyectos.

@@ -41,6 +43,17 @@ define([
				template: ActivityListTemplate,
				href: redmicConfig.viewPaths.activityDetails
			};
		},

		_itemAvailable: function(res) {

			this.inherited(arguments);

			this._emitEvt('GET_WIDGETS_CONFIG', {
				externalConfigPropName: 'detailLayouts.project',
				entityId: res.data?.id,
				entityName: 'project'
			});
		}
	});
});
+83 −0
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'src/component/base/_Module'
	, 'src/component/base/_Show'
	, 'src/component/base/_Store'
	, 'src/design/map/_AddAtlasComponent'
	, 'src/design/map/_AddBrowserComponent'
	, 'src/design/map/_AddMapLayerComponent'
	, 'src/design/map/_MapDesignWithContentLayout'
	, 'src/redmicConfig'
	, 'templates/AcousticDetectionPopup'
	, 'templates/AcousticDetectionList'
], function(
	declare
	, lang
	, _Module
	, _Show
	, _Store
	, _AddAtlasComponent
	, _AddBrowserComponent
	, _AddMapLayerComponent
	, _MapDesignWithContentLayout
	, redmicConfig
	, AcousticDetectionPopupTemplate
	, AcousticDetectionListTemplate
) {

	return declare([_Module, _Show, _Store, _MapDesignWithContentLayout, _AddAtlasComponent, _AddBrowserComponent,
		_AddMapLayerComponent], {
		// summary:
		//   Widget para mostrar en un mapa la distribución generalizada de detecciones acústicas.

		postMixInProperties: function() {

			const defaultConfig = {
				ownChannel: 'acousticDetectionMap',
				target: redmicConfig.services.acousticDistribution,
				mapLayerPopupTemplate: AcousticDetectionPopupTemplate,
				activityIds: []
			};

			this._mergeOwnAttributes(defaultConfig);

			this.inherited(arguments);
		},

		_setOwnCallbacksForEvents: function() {

			this.inherited(arguments);

			this._onEvt('ME_OR_ANCESTOR_SHOWN', lang.hitch(this, this._onMeOrAncestorShown));
		},

		_setConfigurations: function() {

			this.inherited(arguments);

			this.mergeComponentAttribute('browserConfig', {
				template: AcousticDetectionListTemplate
			});
		},

		_onMeOrAncestorShown: function() {

			this._requestData();
		},

		_requestData: function() {

			const query = {
				// TODO cambiar a minúsculas
				activityIds: this.activityIds
			};

			this._emitEvt('REQUEST', {
				method: 'GET',
				target: this.target,
				params: {query}
			});
		}
	});
});
+1 −0
Original line number Diff line number Diff line
@@ -260,6 +260,7 @@ define([], function() {
		'activityTimeSeriesStations': baseUri + 'activities/{activityid}/timeseriesstations/_search',
		'acousticDetectionReceptors': baseUri + 'v1/acoustic-detection/activities/{id}/receptors',
		'acousticDetectionEvents': baseUri + 'v1/acoustic-detection/activities/{activityid}/receptors/{receptorid}/detections',
		'acousticDistribution': baseUri + 'v1/acoustic-detection/stats/distribution',
		'timeSeriesStations': baseUri + 'surveystations',
		'surveyStationsTimeSeries': baseUri + 'datadefinitions/{datadefinitionid}/timeseries',