dmencu 3.4.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,103 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "mocha", "node:assert", "../server/table-tem", "../server/table-tem_edicion", "./app-para-tests"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("mocha");
13
+ const assert = require("node:assert");
14
+ const table_tem_1 = require("../server/table-tem");
15
+ const table_tem_edicion_1 = require("../server/table-tem_edicion");
16
+ const app_para_tests_1 = require("./app-para-tests");
17
+ function definicion(armar, rol) {
18
+ var be = (0, app_para_tests_1.crearAppParaTests)();
19
+ return armar((0, app_para_tests_1.contextoDelRol)(be, rol));
20
+ }
21
+ function nombres(campos) {
22
+ return campos.map(campo => campo.name);
23
+ }
24
+ // como completeEditablesProperties de backend-plus: si el campo define editable (aunque sea undefined) manda ese valor
25
+ function editables(def) {
26
+ return nombres(def.fields.filter(campo => 'editable' in campo ? !!campo.editable : !!def.editable));
27
+ }
28
+ function submenu(menu, nombre) {
29
+ var item = menu.find(item => item.name == nombre);
30
+ assert.ok(item, `falta el menú ${nombre}`);
31
+ return item.menuContent;
32
+ }
33
+ (0, mocha_1.describe)('dmencu - tem y edición de la tem', () => {
34
+ (0, mocha_1.describe)('grilla de la tem', () => {
35
+ (0, mocha_1.it)('sólo habilitada es editable', () => {
36
+ assert.deepStrictEqual(editables(definicion(table_tem_1.tem, 'coor_campo')), ['habilitada']);
37
+ assert.deepStrictEqual(editables(definicion(table_tem_1.tem, 'admin')), ['habilitada']);
38
+ });
39
+ (0, mocha_1.it)('casa es visible y va después de nrolado', () => {
40
+ var _a;
41
+ var def = definicion(table_tem_1.tem, 'coor_campo');
42
+ assert.ok(!((_a = def.hiddenColumns) !== null && _a !== void 0 ? _a : []).includes('casa'));
43
+ var campos = nombres(def.fields);
44
+ assert.strictEqual(campos.indexOf('casa'), campos.indexOf('nrolado') + 1);
45
+ assert.strictEqual(campos.filter(campo => campo == 'casa').length, 1);
46
+ });
47
+ });
48
+ (0, mocha_1.describe)('grilla edición TEM (tem_edicion)', () => {
49
+ (0, mocha_1.it)('tiene los campos en el orden de la tem', () => {
50
+ assert.deepStrictEqual(nombres(definicion(table_tem_edicion_1.tem_edicion, 'coor_campo').fields), [
51
+ 'operativo', 'enc', 'area', 'zona', 'cita', 'result_sup', 'fin_campo', 'proie',
52
+ 'dominio', 'nrocomuna', 'nrofraccion', 'nroradio', 'nromanzana', 'casa'
53
+ ]);
54
+ });
55
+ (0, mocha_1.it)('respeta el orden de los campos en la tem', () => {
56
+ var camposTem = nombres(definicion(table_tem_1.tem, 'coor_campo').fields);
57
+ var posiciones = nombres(definicion(table_tem_edicion_1.tem_edicion, 'coor_campo').fields).map(campo => camposTem.indexOf(campo));
58
+ assert.ok(posiciones.every(posicion => posicion >= 0), 'todos los campos existen en la tem');
59
+ assert.deepStrictEqual(posiciones, [...posiciones].sort((a, b) => a - b));
60
+ });
61
+ (0, mocha_1.it)('cada campo editable se persiste en tem y los demás no', () => {
62
+ var def = definicion(table_tem_edicion_1.tem_edicion, 'admin');
63
+ def.fields.forEach(campo => {
64
+ assert.strictEqual(campo.table, campo.editable === false ? undefined : 'tem', campo.name);
65
+ });
66
+ });
67
+ (0, mocha_1.it)('no permite insertar ni borrar y la cita es visible', () => {
68
+ var _a, _b, _c, _d;
69
+ var def = definicion(table_tem_edicion_1.tem_edicion, 'admin');
70
+ assert.strictEqual((_a = def.allow) === null || _a === void 0 ? void 0 : _a.insert, false);
71
+ assert.strictEqual((_b = def.allow) === null || _b === void 0 ? void 0 : _b.delete, false);
72
+ assert.ok(!((_c = def.hiddenColumns) !== null && _c !== void 0 ? _c : []).includes('cita'));
73
+ assert.notStrictEqual((_d = def.fields.find(campo => campo.name == 'cita')) === null || _d === void 0 ? void 0 : _d.visible, false);
74
+ });
75
+ (0, mocha_1.it)('del subcoordinador para arriba editan todo, incluidas manzana y casa', () => {
76
+ ['subcoor_campo', 'coor_campo', 'coor_proc', 'admin'].forEach(rol => {
77
+ assert.deepStrictEqual(editables(definicion(table_tem_edicion_1.tem_edicion, rol)), [
78
+ 'cita', 'result_sup', 'fin_campo', 'proie', 'nromanzana', 'casa'
79
+ ], rol);
80
+ });
81
+ });
82
+ (0, mocha_1.it)('el recepcionista edita lo de campo pero no manzana ni casa', () => {
83
+ assert.deepStrictEqual(editables(definicion(table_tem_edicion_1.tem_edicion, 'recepcionista')), [
84
+ 'cita', 'result_sup', 'fin_campo', 'proie'
85
+ ]);
86
+ });
87
+ (0, mocha_1.it)('procesamiento sólo edita cita y proie', () => {
88
+ assert.deepStrictEqual(editables(definicion(table_tem_edicion_1.tem_edicion, 'procesamiento')), ['cita', 'proie']);
89
+ });
90
+ (0, mocha_1.it)('quien no administra campo ni procesa no edita nada', () => {
91
+ assert.deepStrictEqual(editables(definicion(table_tem_edicion_1.tem_edicion, 'encuestador')), []);
92
+ });
93
+ });
94
+ (0, mocha_1.describe)('menú', () => {
95
+ (0, mocha_1.it)('edición TEM está al lado de TEM en configurar → muestra', () => {
96
+ var be = (0, app_para_tests_1.crearAppParaTests)();
97
+ var muestra = submenu(submenu(be.getMenu((0, app_para_tests_1.contextoDelRol)(be, 'coor_campo')).menu, 'configurar'), 'muestra');
98
+ assert.deepStrictEqual(muestra.map(item => item.name).slice(0, 2), ['tem', 'tem_edicion']);
99
+ });
100
+ });
101
+ });
102
+ });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC10ZW0tZWRpY2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QtdGVtLWVkaWNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBQSxpQ0FBcUM7SUFFckMsc0NBQXVDO0lBRXZDLG1EQUEwQztJQUMxQyxtRUFBMEQ7SUFFMUQscURBQXFFO0lBRXJFLFNBQVMsVUFBVSxDQUFDLEtBQXNDLEVBQUUsR0FBVztRQUNuRSxJQUFJLEVBQUUsR0FBRyxJQUFBLGtDQUFpQixHQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUMsSUFBQSwrQkFBYyxFQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTLE9BQU8sQ0FBQyxNQUF5QjtRQUN0QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELHVIQUF1SDtJQUN2SCxTQUFTLFNBQVMsQ0FBQyxHQUFvQjtRQUNuQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELFNBQVMsT0FBTyxDQUFDLElBQW9CLEVBQUUsTUFBYztRQUNqRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxpQkFBaUIsTUFBTSxFQUFFLENBQUMsQ0FB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QyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ2xCLElBQUEsVUFBRSxFQUFDLHlEQUF5RCxFQUFFLEdBQUcsRUFBRTtnQkFDL0QsSUFBSSxFQUFFLEdBQUcsSUFBQSxrQ0FBaUIsR0FBRSxDQUFDO2dCQUM3QixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBQSwrQkFBYyxFQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDM0csTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUMvRixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgaXQgfSBmcm9tICdtb2NoYSc7XG5cbmltcG9ydCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpO1xuXG5pbXBvcnQgeyB0ZW0gfSBmcm9tICcuLi9zZXJ2ZXIvdGFibGUtdGVtJztcbmltcG9ydCB7IHRlbV9lZGljaW9uIH0gZnJvbSAnLi4vc2VydmVyL3RhYmxlLXRlbV9lZGljaW9uJztcbmltcG9ydCB0eXBlIHsgRmllbGREZWZpbml0aW9uLCBNZW51SW5mb0Jhc2UsIFRhYmxlRGVmaW5pdGlvbiB9IGZyb20gJy4uL3NlcnZlci90eXBlcy1kbWVuY3UnO1xuaW1wb3J0IHsgY29udGV4dG9EZWxSb2wsIGNyZWFyQXBwUGFyYVRlc3RzIH0gZnJvbSAnLi9hcHAtcGFyYS10ZXN0cyc7XG5cbmZ1bmN0aW9uIGRlZmluaWNpb24oYXJtYXI6IHR5cGVvZiB0ZW0gfCB0eXBlb2YgdGVtX2VkaWNpb24sIHJvbDogc3RyaW5nKTogVGFibGVEZWZpbml0aW9uIHtcbiAgICB2YXIgYmUgPSBjcmVhckFwcFBhcmFUZXN0cygpO1xuICAgIHJldHVybiBhcm1hcihjb250ZXh0b0RlbFJvbChiZSwgcm9sKSk7XG59XG5cbmZ1bmN0aW9uIG5vbWJyZXMoY2FtcG9zOiBGaWVsZERlZmluaXRpb25bXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY2FtcG9zLm1hcChjYW1wbyA9PiBjYW1wby5uYW1lKTtcbn1cblxuLy8gY29tbyBjb21wbGV0ZUVkaXRhYmxlc1Byb3BlcnRpZXMgZGUgYmFja2VuZC1wbHVzOiBzaSBlbCBjYW1wbyBkZWZpbmUgZWRpdGFibGUgKGF1bnF1ZSBzZWEgdW5kZWZpbmVkKSBtYW5kYSBlc2UgdmFsb3JcbmZ1bmN0aW9uIGVkaXRhYmxlcyhkZWY6IFRhYmxlRGVmaW5pdGlvbik6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gbm9tYnJlcyhkZWYuZmllbGRzLmZpbHRlcihjYW1wbyA9PiAnZWRpdGFibGUnIGluIGNhbXBvID8gISFjYW1wby5lZGl0YWJsZSA6ICEhZGVmLmVkaXRhYmxlKSk7XG59XG5cbmZ1bmN0aW9uIHN1Ym1lbnUobWVudTogTWVudUluZm9CYXNlW10sIG5vbWJyZTogc3RyaW5nKTogTWVudUluZm9CYXNlW10ge1xuICAgIHZhciBpdGVtID0gbWVudS5maW5kKGl0ZW0gPT4gaXRlbS5uYW1lID09IG5vbWJyZSk7XG4gICAgYXNzZXJ0Lm9rKGl0ZW0sIGBmYWx0YSBlbCBtZW7DuiAke25vbWJyZX1gKTtcbiAgICByZXR1cm4gaXRlbS5tZW51Q29udGVudDtcbn1cblxuZGVzY3JpYmUoJ2RtZW5jdSAtIHRlbSB5IGVkaWNpw7NuIGRlIGxhIHRlbScsICgpID0+IHtcblxuICAgIGRlc2NyaWJlKCdncmlsbGEgZGUgbGEgdGVtJywgKCkgPT4ge1xuICAgICAgICBpdCgnc8OzbG8gaGFiaWxpdGFkYSBlcyBlZGl0YWJsZScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZWRpdGFibGVzKGRlZmluaWNpb24odGVtLCAnY29vcl9jYW1wbycpKSwgWydoYWJpbGl0YWRhJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChlZGl0YWJsZXMoZGVmaW5pY2lvbih0ZW0sICdhZG1pbicpKSwgWydoYWJpbGl0YWRhJ10pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2Nhc2EgZXMgdmlzaWJsZSB5IHZhIGRlc3B1w6lzIGRlIG5yb2xhZG8nLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgZGVmID0gZGVmaW5pY2lvbih0ZW0sICdjb29yX2NhbXBvJyk7XG4gICAgICAgICAgICBhc3NlcnQub2soIShkZWYuaGlkZGVuQ29sdW1ucyA/PyBbXSkuaW5jbHVkZXMoJ2Nhc2EnKSk7XG4gICAgICAgICAgICB2YXIgY2FtcG9zID0gbm9tYnJlcyhkZWYuZmllbGRzKTtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjYW1wb3MuaW5kZXhPZignY2FzYScpLCBjYW1wb3MuaW5kZXhPZignbnJvbGFkbycpICsgMSk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY2FtcG9zLmZpbHRlcihjYW1wbyA9PiBjYW1wbyA9PSAnY2FzYScpLmxlbmd0aCwgMSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2dyaWxsYSBlZGljacOzbiBURU0gKHRlbV9lZGljaW9uKScsICgpID0+IHtcbiAgICAgICAgaXQoJ3RpZW5lIGxvcyBjYW1wb3MgZW4gZWwgb3JkZW4gZGUgbGEgdGVtJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChub21icmVzKGRlZmluaWNpb24odGVtX2VkaWNpb24sICdjb29yX2NhbXBvJykuZmllbGRzKSwgW1xuICAgICAgICAgICAgICAgICdvcGVyYXRpdm8nLCAnZW5jJywgJ2FyZWEnLCAnem9uYScsICdjaXRhJywgJ3Jlc3VsdF9zdXAnLCAnZmluX2NhbXBvJywgJ3Byb2llJyxcbiAgICAgICAgICAgICAgICAnZG9taW5pbycsICducm9jb211bmEnLCAnbnJvZnJhY2Npb24nLCAnbnJvcmFkaW8nLCAnbnJvbWFuemFuYScsICdjYXNhJ1xuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgncmVzcGV0YSBlbCBvcmRlbiBkZSBsb3MgY2FtcG9zIGVuIGxhIHRlbScsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBjYW1wb3NUZW0gPSBub21icmVzKGRlZmluaWNpb24odGVtLCAnY29vcl9jYW1wbycpLmZpZWxkcyk7XG4gICAgICAgICAgICB2YXIgcG9zaWNpb25lcyA9IG5vbWJyZXMoZGVmaW5pY2lvbih0ZW1fZWRpY2lvbiwgJ2Nvb3JfY2FtcG8nKS5maWVsZHMpLm1hcChjYW1wbyA9PiBjYW1wb3NUZW0uaW5kZXhPZihjYW1wbykpO1xuICAgICAgICAgICAgYXNzZXJ0Lm9rKHBvc2ljaW9uZXMuZXZlcnkocG9zaWNpb24gPT4gcG9zaWNpb24gPj0gMCksICd0b2RvcyBsb3MgY2FtcG9zIGV4aXN0ZW4gZW4gbGEgdGVtJyk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHBvc2ljaW9uZXMsIFsuLi5wb3NpY2lvbmVzXS5zb3J0KChhLCBiKSA9PiBhIC0gYikpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2NhZGEgY2FtcG8gZWRpdGFibGUgc2UgcGVyc2lzdGUgZW4gdGVtIHkgbG9zIGRlbcOhcyBubycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBkZWYgPSBkZWZpbmljaW9uKHRlbV9lZGljaW9uLCAnYWRtaW4nKTtcbiAgICAgICAgICAgIGRlZi5maWVsZHMuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNhbXBvLnRhYmxlLCBjYW1wby5lZGl0YWJsZSA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiAndGVtJywgY2FtcG8ubmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdubyBwZXJtaXRlIGluc2VydGFyIG5pIGJvcnJhciB5IGxhIGNpdGEgZXMgdmlzaWJsZScsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBkZWYgPSBkZWZpbmljaW9uKHRlbV9lZGljaW9uLCAnYWRtaW4nKTtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWYuYWxsb3c/Lmluc2VydCwgZmFsc2UpO1xuICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlZi5hbGxvdz8uZGVsZXRlLCBmYWxzZSk7XG4gICAgICAgICAgICBhc3NlcnQub2soIShkZWYuaGlkZGVuQ29sdW1ucyA/PyBbXSkuaW5jbHVkZXMoJ2NpdGEnKSk7XG4gICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoZGVmLmZpZWxkcy5maW5kKGNhbXBvID0+IGNhbXBvLm5hbWUgPT0gJ2NpdGEnKT8udmlzaWJsZSwgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2RlbCBzdWJjb29yZGluYWRvciBwYXJhIGFycmliYSBlZGl0YW4gdG9kbywgaW5jbHVpZGFzIG1hbnphbmEgeSBjYXNhJywgKCkgPT4ge1xuICAgICAgICAgICAgWydzdWJjb29yX2NhbXBvJywgJ2Nvb3JfY2FtcG8nLCAnY29vcl9wcm9jJywgJ2FkbWluJ10uZm9yRWFjaChyb2wgPT4ge1xuICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZWRpdGFibGVzKGRlZmluaWNpb24odGVtX2VkaWNpb24sIHJvbCkpLCBbXG4gICAgICAgICAgICAgICAgICAgICdjaXRhJywgJ3Jlc3VsdF9zdXAnLCAnZmluX2NhbXBvJywgJ3Byb2llJywgJ25yb21hbnphbmEnLCAnY2FzYSdcbiAgICAgICAgICAgICAgICBdLCByb2wpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZWwgcmVjZXBjaW9uaXN0YSBlZGl0YSBsbyBkZSBjYW1wbyBwZXJvIG5vIG1hbnphbmEgbmkgY2FzYScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZWRpdGFibGVzKGRlZmluaWNpb24odGVtX2VkaWNpb24sICdyZWNlcGNpb25pc3RhJykpLCBbXG4gICAgICAgICAgICAgICAgJ2NpdGEnLCAncmVzdWx0X3N1cCcsICdmaW5fY2FtcG8nLCAncHJvaWUnXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdwcm9jZXNhbWllbnRvIHPDs2xvIGVkaXRhIGNpdGEgeSBwcm9pZScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZWRpdGFibGVzKGRlZmluaWNpb24odGVtX2VkaWNpb24sICdwcm9jZXNhbWllbnRvJykpLCBbJ2NpdGEnLCAncHJvaWUnXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgncXVpZW4gbm8gYWRtaW5pc3RyYSBjYW1wbyBuaSBwcm9jZXNhIG5vIGVkaXRhIG5hZGEnLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGVkaXRhYmxlcyhkZWZpbmljaW9uKHRlbV9lZGljaW9uLCAnZW5jdWVzdGFkb3InKSksIFtdKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnbWVuw7onLCAoKSA9PiB7XG4gICAgICAgIGl0KCdlZGljacOzbiBURU0gZXN0w6EgYWwgbGFkbyBkZSBURU0gZW4gY29uZmlndXJhciDihpIgbXVlc3RyYScsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBiZSA9IGNyZWFyQXBwUGFyYVRlc3RzKCk7XG4gICAgICAgICAgICB2YXIgbXVlc3RyYSA9IHN1Ym1lbnUoc3VibWVudShiZS5nZXRNZW51KGNvbnRleHRvRGVsUm9sKGJlLCAnY29vcl9jYW1wbycpKS5tZW51LCAnY29uZmlndXJhcicpLCAnbXVlc3RyYScpO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtdWVzdHJhLm1hcChpdGVtID0+IGl0ZW0ubmFtZSkuc2xpY2UoMCwgMiksIFsndGVtJywgJ3RlbV9lZGljaW9uJ10pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuIl19
@@ -7,3 +7,4 @@ import './test-caches-rea';
7
7
  import './test-impacto-rea-no-rea-en-bd';
8
8
  import './test-ejemplo';
9
9
  import './test-ayuda';
10
+ import './test-tem-edicion';
package/dist/test/test.js CHANGED
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./test-rea-no-rea", "./test-helpers-casilleros", "./test-helpers-formulario", "./test-setters-rea-no-rea", "./test-menu-segun-rol", "./test-caches-rea", "./test-impacto-rea-no-rea-en-bd", "./test-ejemplo", "./test-ayuda"], factory);
7
+ define(["require", "exports", "./test-rea-no-rea", "./test-helpers-casilleros", "./test-helpers-formulario", "./test-setters-rea-no-rea", "./test-menu-segun-rol", "./test-caches-rea", "./test-impacto-rea-no-rea-en-bd", "./test-ejemplo", "./test-ayuda", "./test-tem-edicion"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -18,5 +18,6 @@
18
18
  require("./test-impacto-rea-no-rea-en-bd");
19
19
  require("./test-ejemplo");
20
20
  require("./test-ayuda");
21
+ require("./test-tem-edicion");
21
22
  });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOztJQUViLDZCQUEyQjtJQUMzQixxQ0FBbUM7SUFDbkMscUNBQW1DO0lBQ25DLHFDQUFtQztJQUNuQyxpQ0FBK0I7SUFDL0IsNkJBQTJCO0lBQzNCLDJDQUF5QztJQUN6QywwQkFBd0I7SUFDeEIsd0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCAnLi90ZXN0LXJlYS1uby1yZWEnO1xuaW1wb3J0ICcuL3Rlc3QtaGVscGVycy1jYXNpbGxlcm9zJztcbmltcG9ydCAnLi90ZXN0LWhlbHBlcnMtZm9ybXVsYXJpbyc7XG5pbXBvcnQgJy4vdGVzdC1zZXR0ZXJzLXJlYS1uby1yZWEnO1xuaW1wb3J0ICcuL3Rlc3QtbWVudS1zZWd1bi1yb2wnO1xuaW1wb3J0ICcuL3Rlc3QtY2FjaGVzLXJlYSc7XG5pbXBvcnQgJy4vdGVzdC1pbXBhY3RvLXJlYS1uby1yZWEtZW4tYmQnO1xuaW1wb3J0ICcuL3Rlc3QtZWplbXBsbyc7XG5pbXBvcnQgJy4vdGVzdC1heXVkYSc7Il19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOztJQUViLDZCQUEyQjtJQUMzQixxQ0FBbUM7SUFDbkMscUNBQW1DO0lBQ25DLHFDQUFtQztJQUNuQyxpQ0FBK0I7SUFDL0IsNkJBQTJCO0lBQzNCLDJDQUF5QztJQUN6QywwQkFBd0I7SUFDeEIsd0JBQXNCO0lBQ3RCLDhCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgJy4vdGVzdC1yZWEtbm8tcmVhJztcbmltcG9ydCAnLi90ZXN0LWhlbHBlcnMtY2FzaWxsZXJvcyc7XG5pbXBvcnQgJy4vdGVzdC1oZWxwZXJzLWZvcm11bGFyaW8nO1xuaW1wb3J0ICcuL3Rlc3Qtc2V0dGVycy1yZWEtbm8tcmVhJztcbmltcG9ydCAnLi90ZXN0LW1lbnUtc2VndW4tcm9sJztcbmltcG9ydCAnLi90ZXN0LWNhY2hlcy1yZWEnO1xuaW1wb3J0ICcuL3Rlc3QtaW1wYWN0by1yZWEtbm8tcmVhLWVuLWJkJztcbmltcG9ydCAnLi90ZXN0LWVqZW1wbG8nO1xuaW1wb3J0ICcuL3Rlc3QtYXl1ZGEnO1xuaW1wb3J0ICcuL3Rlc3QtdGVtLWVkaWNpb24nOyJdfQ==
@@ -0,0 +1,25 @@
1
+ --set role dmencu_owner;
2
+ --set search_path=base;
3
+
4
+ set search_path = base;
5
+
6
+ -- nromanzana y casa sólo se pueden modificar en las encuestas de dominio 5
7
+ CREATE OR REPLACE FUNCTION validar_manzana_casa_tem_trg()
8
+ RETURNS trigger
9
+ LANGUAGE 'plpgsql'
10
+ AS $BODY$
11
+ begin
12
+ if old.dominio is distinct from 5 then
13
+ raise exception 'Error: la manzana y la casa de la encuesta % del operativo % sólo se pueden modificar si el dominio es 5', new.enc, new.operativo;
14
+ end if;
15
+ return new;
16
+ end;
17
+ $BODY$;
18
+
19
+ DROP TRIGGER IF EXISTS validar_manzana_casa_tem_trg ON tem;
20
+ CREATE TRIGGER validar_manzana_casa_tem_trg
21
+ BEFORE UPDATE OF nromanzana, casa
22
+ ON tem
23
+ FOR EACH ROW
24
+ WHEN (old.nromanzana is distinct from new.nromanzana or old.casa is distinct from new.casa)
25
+ EXECUTE PROCEDURE validar_manzana_casa_tem_trg();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dmencu",
3
3
  "description": "DM Encu - Encuestas en dispositivo móvil",
4
- "version": "3.4.0",
4
+ "version": "3.5.1",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "repository": "codenautas/dmencu",
@@ -10,7 +10,8 @@
10
10
  "files": [
11
11
  "dist",
12
12
  "install",
13
- "ayuda"
13
+ "ayuda",
14
+ "CLAUDE.md"
14
15
  ],
15
16
  "dependencies": {
16
17
  "@mui/material": "^5.16.7",