edu-rdm-integration 3.16.1__py3-none-any.whl → 3.17.0__py3-none-any.whl
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.
Potentially problematic release.
This version of edu-rdm-integration might be problematic. Click here for more details.
- edu_rdm_integration/stages/collect_data/generators.py +0 -10
- edu_rdm_integration/stages/collect_data/registry/actions.py +7 -0
- edu_rdm_integration/stages/collect_data/registry/templates/ui-js/collect-command-window.js +21 -0
- edu_rdm_integration/stages/collect_data/registry/templates/ui-js/validators.js +15 -0
- edu_rdm_integration/stages/collect_data/registry/ui.py +2 -5
- edu_rdm_integration/stages/export_data/registry/templates/ui-js/create-export-command-win.js +39 -12
- edu_rdm_integration/stages/export_data/registry/ui.py +8 -5
- {edu_rdm_integration-3.16.1.dist-info → edu_rdm_integration-3.17.0.dist-info}/METADATA +2 -1
- {edu_rdm_integration-3.16.1.dist-info → edu_rdm_integration-3.17.0.dist-info}/RECORD +12 -13
- edu_rdm_integration/stages/collect_data/registry/templates/ui-js/create-collect-command-win.js +0 -14
- {edu_rdm_integration-3.16.1.dist-info → edu_rdm_integration-3.17.0.dist-info}/WHEEL +0 -0
- {edu_rdm_integration-3.16.1.dist-info → edu_rdm_integration-3.17.0.dist-info}/licenses/LICENSE +0 -0
- {edu_rdm_integration-3.16.1.dist-info → edu_rdm_integration-3.17.0.dist-info}/top_level.txt +0 -0
|
@@ -227,16 +227,6 @@ class BaseFirstCollectModelsDataCommandsGenerator:
|
|
|
227
227
|
# Корректируем границы начала и конца сбора данных под значения введенные пользователем
|
|
228
228
|
params_for_model[0]['period_started_at'] = self.logs_period_started_at
|
|
229
229
|
params_for_model[-1]['period_ended_at'] = self.logs_period_ended_at
|
|
230
|
-
else:
|
|
231
|
-
# Создаем команду для отображения в UI, даже если не нашлось данных для обработки
|
|
232
|
-
params_for_model.append(
|
|
233
|
-
{
|
|
234
|
-
'period_started_at': self.logs_period_started_at,
|
|
235
|
-
'period_ended_at': self.logs_period_ended_at,
|
|
236
|
-
'model': rdm_model.key,
|
|
237
|
-
'generation_id': self.generation_id,
|
|
238
|
-
}
|
|
239
|
-
)
|
|
240
230
|
|
|
241
231
|
params_for_commands.extend(params_for_model)
|
|
242
232
|
|
|
@@ -260,6 +260,13 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
|
|
|
260
260
|
actual_institute_ids=self._get_actual_institute_ids(),
|
|
261
261
|
)
|
|
262
262
|
|
|
263
|
+
if not commands_to_save:
|
|
264
|
+
raise ApplicationLogicException(
|
|
265
|
+
f'Недостаточно данных для обработки модели "{obj.model_id}" '
|
|
266
|
+
f'в указанный период с {context.logs_period_started_at} по {context.logs_period_ended_at}. '
|
|
267
|
+
f'Проверьте наличие данных в указанном временном диапазоне.'
|
|
268
|
+
)
|
|
269
|
+
|
|
263
270
|
objs = [
|
|
264
271
|
self.model(
|
|
265
272
|
model_id=obj.model_id,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{% load educommon %}
|
|
2
2
|
{% include "ui-js/validators.js" %}
|
|
3
3
|
|
|
4
|
+
var win = Ext.getCmp('{{ component.client_id }}');
|
|
5
|
+
|
|
4
6
|
Ext.onReady(function() {
|
|
5
7
|
// Инициализация валидаторов
|
|
6
8
|
initializeValidators();
|
|
@@ -38,6 +40,25 @@ function initializeValidators() {
|
|
|
38
40
|
this.validate();
|
|
39
41
|
});
|
|
40
42
|
}
|
|
43
|
+
|
|
44
|
+
// Устанавливаем текущую дату и время как максимальное значение
|
|
45
|
+
// и выполняем валидацию каждую секунду
|
|
46
|
+
var validationInterval = setInterval(function() {
|
|
47
|
+
var now = new Date();
|
|
48
|
+
|
|
49
|
+
logsPeriodStartField.setMaxValue(now);
|
|
50
|
+
logsPeriodEndField.setMaxValue(now);
|
|
51
|
+
|
|
52
|
+
logsPeriodStartField.validate();
|
|
53
|
+
logsPeriodEndField.validate();
|
|
54
|
+
}, 1000);
|
|
55
|
+
|
|
56
|
+
win.on('destroy', function() {
|
|
57
|
+
clearInterval(validationInterval);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
logsPeriodStartField.validator = logsPeriodsValidator;
|
|
61
|
+
logsPeriodEndField.validator = logsPeriodsValidator;
|
|
41
62
|
}
|
|
42
63
|
|
|
43
64
|
function initializeBatchSizeSplitByLogic() {
|
|
@@ -49,3 +49,18 @@ var instituteCountValidator = function() {
|
|
|
49
49
|
this.clearInvalid();
|
|
50
50
|
return true;
|
|
51
51
|
};
|
|
52
|
+
|
|
53
|
+
var logsPeriodStartField = Ext.getCmp('logs_period_started_at');
|
|
54
|
+
var logsPeriodEndField = Ext.getCmp('logs_period_ended_at');
|
|
55
|
+
|
|
56
|
+
var logsPeriodsValidator = function () {
|
|
57
|
+
if (
|
|
58
|
+
logsPeriodStartField.getValue() &&
|
|
59
|
+
logsPeriodEndField.getValue() &&
|
|
60
|
+
logsPeriodStartField.getValue() > logsPeriodEndField.getValue()
|
|
61
|
+
) {
|
|
62
|
+
return 'Дата конца периода не может быть меньше даты начала периода'
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return true;
|
|
66
|
+
};
|
|
@@ -41,11 +41,6 @@ from edu_rdm_integration.stages.collect_data.consts import (
|
|
|
41
41
|
class CreateCollectCommandWindow(BaseCreateCommandWindow):
|
|
42
42
|
"""Окно создания команды сбора данных модели РВД."""
|
|
43
43
|
|
|
44
|
-
def __init__(self):
|
|
45
|
-
super().__init__()
|
|
46
|
-
|
|
47
|
-
self.template_globals = 'ui-js/create-collect-command-win.js'
|
|
48
|
-
|
|
49
44
|
def _init_components(self):
|
|
50
45
|
"""Инициализация компонентов."""
|
|
51
46
|
super()._init_components()
|
|
@@ -65,12 +60,14 @@ class CreateCollectCommandWindow(BaseCreateCommandWindow):
|
|
|
65
60
|
label='Начало периода',
|
|
66
61
|
anchor='100%',
|
|
67
62
|
allow_blank=False,
|
|
63
|
+
client_id='logs_period_started_at',
|
|
68
64
|
)
|
|
69
65
|
logs_period_ended_at = ExtDateTimeField(
|
|
70
66
|
name='logs_period_ended_at',
|
|
71
67
|
label='Конец периода',
|
|
72
68
|
anchor='100%',
|
|
73
69
|
allow_blank=False,
|
|
70
|
+
client_id='logs_period_ended_at',
|
|
74
71
|
)
|
|
75
72
|
split_by = ExtComboBox(
|
|
76
73
|
name='split_by',
|
edu_rdm_integration/stages/export_data/registry/templates/ui-js/create-export-command-win.js
CHANGED
|
@@ -1,14 +1,41 @@
|
|
|
1
1
|
var win = Ext.getCmp('{{ component.client_id }}');
|
|
2
|
-
var
|
|
3
|
-
var periodEndField =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
periodEndField.setMaxValue(new Date())
|
|
9
|
-
periodEndField.validate();
|
|
10
|
-
}, 1000);
|
|
11
|
-
|
|
12
|
-
win.on('destroy', function() {
|
|
13
|
-
clearInterval(validationInterval);
|
|
2
|
+
var periodStartField = Ext.getCmp('period_started_at');
|
|
3
|
+
var periodEndField = Ext.getCmp('period_ended_at');
|
|
4
|
+
|
|
5
|
+
Ext.onReady(function() {
|
|
6
|
+
// Инициализация валидаторов
|
|
7
|
+
initializeValidators();
|
|
14
8
|
});
|
|
9
|
+
|
|
10
|
+
function initializeValidators() {
|
|
11
|
+
// Устанавливаем текущую дату и время как максимальное значение
|
|
12
|
+
// и выполняем валидацию каждую секунду
|
|
13
|
+
var validationInterval = setInterval(function() {
|
|
14
|
+
var now = new Date();
|
|
15
|
+
|
|
16
|
+
periodStartField.setMaxValue(now);
|
|
17
|
+
periodEndField.setMaxValue(now);
|
|
18
|
+
|
|
19
|
+
periodStartField.validate();
|
|
20
|
+
periodEndField.validate();
|
|
21
|
+
}, 1000);
|
|
22
|
+
|
|
23
|
+
win.on('destroy', function() {
|
|
24
|
+
clearInterval(validationInterval);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
var periodsValidator = function () {
|
|
28
|
+
if (
|
|
29
|
+
periodStartField.getValue() &&
|
|
30
|
+
periodEndField.getValue() &&
|
|
31
|
+
periodStartField.getValue() > periodEndField.getValue()
|
|
32
|
+
) {
|
|
33
|
+
return 'Дата конца периода не может быть меньше даты начала периода'
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return true;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
periodStartField.validator = periodsValidator;
|
|
40
|
+
periodEndField.validator = periodsValidator;
|
|
41
|
+
}
|
|
@@ -44,11 +44,6 @@ from edu_rdm_integration.rdm_entities.models import (
|
|
|
44
44
|
class CreateExportCommandWindow(BaseCreateCommandWindow):
|
|
45
45
|
"""Окно создания команды экспорта данных сущности РВД."""
|
|
46
46
|
|
|
47
|
-
def __init__(self):
|
|
48
|
-
super().__init__()
|
|
49
|
-
|
|
50
|
-
self.template_globals = 'ui-js/create-export-command-win.js'
|
|
51
|
-
|
|
52
47
|
def _init_components(self):
|
|
53
48
|
"""Инициализация компонентов."""
|
|
54
49
|
super()._init_components()
|
|
@@ -68,12 +63,14 @@ class CreateExportCommandWindow(BaseCreateCommandWindow):
|
|
|
68
63
|
label='Начало периода',
|
|
69
64
|
anchor='100%',
|
|
70
65
|
allow_blank=False,
|
|
66
|
+
client_id='period_started_at',
|
|
71
67
|
)
|
|
72
68
|
period_ended_at = ExtDateTimeField(
|
|
73
69
|
name='period_ended_at',
|
|
74
70
|
label='Конец периода',
|
|
75
71
|
anchor='100%',
|
|
76
72
|
allow_blank=False,
|
|
73
|
+
client_id='period_ended_at',
|
|
77
74
|
)
|
|
78
75
|
batch_size = ExtNumberField(
|
|
79
76
|
name='batch_size',
|
|
@@ -93,6 +90,12 @@ class CreateExportCommandWindow(BaseCreateCommandWindow):
|
|
|
93
90
|
batch_size,
|
|
94
91
|
)
|
|
95
92
|
|
|
93
|
+
def set_params(self, params: Dict[str, Any]) -> None:
|
|
94
|
+
"""Устанавливает параметры окна."""
|
|
95
|
+
super().set_params(params)
|
|
96
|
+
|
|
97
|
+
self.template_globals = 'ui-js/create-export-command-win.js'
|
|
98
|
+
|
|
96
99
|
|
|
97
100
|
class DetailExportCommandWindow(BaseEditWindow):
|
|
98
101
|
"""Окно просмотра команды экспорта данных сущности РВД."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: edu-rdm-integration
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.17.0
|
|
4
4
|
Summary: Интеграция с Региональной витриной данных
|
|
5
5
|
Author-email: BARS Group <education_dev@bars.group>
|
|
6
6
|
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/edu-rdm-integration/browse
|
|
@@ -31,6 +31,7 @@ Requires-Dist: educommon<4,>=3.24.0
|
|
|
31
31
|
Requires-Dist: edu-function-tools<1,>=0.2.0
|
|
32
32
|
Requires-Dist: m3-db-utils<1,>=0.3.10
|
|
33
33
|
Requires-Dist: m3-django-compat<2,>=1.10.2
|
|
34
|
+
Requires-Dist: m3-ui<2.3,>=2.2.122
|
|
34
35
|
Requires-Dist: uploader-client<1,>=0.3.0
|
|
35
36
|
Provides-Extra: dev
|
|
36
37
|
Requires-Dist: isort==5.12.0; extra == "dev"
|
|
@@ -77,7 +77,7 @@ edu_rdm_integration/stages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
77
77
|
edu_rdm_integration/stages/collect_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
78
|
edu_rdm_integration/stages/collect_data/apps.py,sha256=PhrxzAMXvzXajSlgwLudAgasVjh9IFS5M7a7pGbEKC0,339
|
|
79
79
|
edu_rdm_integration/stages/collect_data/consts.py,sha256=tzaK9oxzdMRq3oTEocPz4umoXSJWUtFc7YhyXucCNbs,127
|
|
80
|
-
edu_rdm_integration/stages/collect_data/generators.py,sha256=
|
|
80
|
+
edu_rdm_integration/stages/collect_data/generators.py,sha256=azl0s_xJp6Mg2ARNLKd4o4ikVcarUN3ysb4xm8pYlyY,12434
|
|
81
81
|
edu_rdm_integration/stages/collect_data/helpers.py,sha256=xy8z9yJKEMjNUPNhrsRRtnYy6RVbwDoD5zSDAX7y_6U,5260
|
|
82
82
|
edu_rdm_integration/stages/collect_data/mixins.py,sha256=izioaiPC26BDODgi_Lhy33IaH207945tGjFnbFLMQyI,2072
|
|
83
83
|
edu_rdm_integration/stages/collect_data/models.py,sha256=wBN1hT6c4pRotsv8EhW-dnvjJvbfk_3w49NMCF5uUyM,9426
|
|
@@ -151,12 +151,11 @@ edu_rdm_integration/stages/collect_data/migrations/0003_auto_20250704_0810.py,sh
|
|
|
151
151
|
edu_rdm_integration/stages/collect_data/migrations/0004_auto_20250704_0825.py,sha256=B6SUsxlhQvWoD8lFGNwaMUCFDzhPj91bsMdmAcSuEDg,1379
|
|
152
152
|
edu_rdm_integration/stages/collect_data/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
153
|
edu_rdm_integration/stages/collect_data/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
|
-
edu_rdm_integration/stages/collect_data/registry/actions.py,sha256=
|
|
154
|
+
edu_rdm_integration/stages/collect_data/registry/actions.py,sha256=ZMk8H1adcI2ycQ0a0ECBVRNKrkeYDc64UEHKV8drpUU,10260
|
|
155
155
|
edu_rdm_integration/stages/collect_data/registry/apps.py,sha256=K5f97YXKMmdM7m33qgQYvJjrA8_eGAJ4VWyuRjJ0gwQ,439
|
|
156
|
-
edu_rdm_integration/stages/collect_data/registry/ui.py,sha256=
|
|
157
|
-
edu_rdm_integration/stages/collect_data/registry/templates/ui-js/collect-command-window.js,sha256=
|
|
158
|
-
edu_rdm_integration/stages/collect_data/registry/templates/ui-js/
|
|
159
|
-
edu_rdm_integration/stages/collect_data/registry/templates/ui-js/validators.js,sha256=c0p0ND7i2C-fZrADgiUv9Eekjx_ZlFHBrgd-oXuqXKI,1525
|
|
156
|
+
edu_rdm_integration/stages/collect_data/registry/ui.py,sha256=pw13DAASxqnX_E5D4RG9CywtnQKQeljXHief7mojVgk,8398
|
|
157
|
+
edu_rdm_integration/stages/collect_data/registry/templates/ui-js/collect-command-window.js,sha256=QfxVSAA0282-41K0XGtyPa9WPzpoX_uClke8pHdAzBo,3112
|
|
158
|
+
edu_rdm_integration/stages/collect_data/registry/templates/ui-js/validators.js,sha256=8A07RgqRs71UuyHNc0HA_isGZL5-W9iLm0O-eC2JFT8,2021
|
|
160
159
|
edu_rdm_integration/stages/export_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
161
160
|
edu_rdm_integration/stages/export_data/apps.py,sha256=TU6AaMZGQE2oHVwKgtUDzFplaVasb2tMIurhkhwkxZo,406
|
|
162
161
|
edu_rdm_integration/stages/export_data/consts.py,sha256=ZEi1kXMs-54KFKxkyGIQVwZ4d8OrOF_vLFQIjjWdSPQ,441
|
|
@@ -209,8 +208,8 @@ edu_rdm_integration/stages/export_data/migrations/__init__.py,sha256=47DEQpj8HBS
|
|
|
209
208
|
edu_rdm_integration/stages/export_data/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
210
209
|
edu_rdm_integration/stages/export_data/registry/actions.py,sha256=r-NAPs4pYVectt_J38UzMsnKrWfYkjy2rhx3LUGKQWk,10423
|
|
211
210
|
edu_rdm_integration/stages/export_data/registry/apps.py,sha256=71DtJQ2ULt8_3CnTu2VAfT5ABBrDNY1nKTmZ6UtvIpw,448
|
|
212
|
-
edu_rdm_integration/stages/export_data/registry/ui.py,sha256=
|
|
213
|
-
edu_rdm_integration/stages/export_data/registry/templates/ui-js/create-export-command-win.js,sha256=
|
|
211
|
+
edu_rdm_integration/stages/export_data/registry/ui.py,sha256=0kWWfOmtTyN4SUO9dGUcEz0wgOPA111jHoWw3_LNPqI,6238
|
|
212
|
+
edu_rdm_integration/stages/export_data/registry/templates/ui-js/create-export-command-win.js,sha256=g0dpYsvd_6VfRU4nRv3tNK-0wtMND_VurQRT04ShJjk,1341
|
|
214
213
|
edu_rdm_integration/stages/export_data/registry/templates/ui-js/stage_for_export.js,sha256=329OZIpiKHlQ-i8JStjBLXtouIMKuJHbycArUGSskfk,737
|
|
215
214
|
edu_rdm_integration/stages/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
216
215
|
edu_rdm_integration/stages/service/apps.py,sha256=lgCG4_kpwgfDWh6y-GNuUwz5SOjkP7oS8kkUyVUcNRg,648
|
|
@@ -246,8 +245,8 @@ edu_rdm_integration/stages/upload_data/uploader_log/ui.py,sha256=mU3XA9zVKHGqzNk
|
|
|
246
245
|
edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py,sha256=r5oOB7DBK9-mfuqPAgjXUJY5-hEcmMdILCwDTpaLnBc,753
|
|
247
246
|
edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
248
247
|
edu_rdm_integration/stages/upload_data/uploader_log/templates/ui-js/object-grid-buttons.js,sha256=2xyGe0wdVokM0RhpzRzcRvJPBkBmPe3SlZry4oP4Nzs,6201
|
|
249
|
-
edu_rdm_integration-3.
|
|
250
|
-
edu_rdm_integration-3.
|
|
251
|
-
edu_rdm_integration-3.
|
|
252
|
-
edu_rdm_integration-3.
|
|
253
|
-
edu_rdm_integration-3.
|
|
248
|
+
edu_rdm_integration-3.17.0.dist-info/licenses/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
|
|
249
|
+
edu_rdm_integration-3.17.0.dist-info/METADATA,sha256=9OfQ0SfmcdceqyoyeH6Dqmo5EBlTm1Hb-lH3z5rIx7k,39815
|
|
250
|
+
edu_rdm_integration-3.17.0.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
|
251
|
+
edu_rdm_integration-3.17.0.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
|
|
252
|
+
edu_rdm_integration-3.17.0.dist-info/RECORD,,
|
edu_rdm_integration/stages/collect_data/registry/templates/ui-js/create-collect-command-win.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
var win = Ext.getCmp('{{ component.client_id }}');
|
|
2
|
-
var form = win.getForm();
|
|
3
|
-
var logsPeriodEndField = form.findField('logs_period_ended_at');
|
|
4
|
-
|
|
5
|
-
// Устанавливаем текущую дату и время как максимальное значение
|
|
6
|
-
// и выполняем валидацию каждую секунду
|
|
7
|
-
var validationInterval = setInterval(function() {
|
|
8
|
-
logsPeriodEndField.setMaxValue(new Date())
|
|
9
|
-
logsPeriodEndField.validate();
|
|
10
|
-
}, 1000);
|
|
11
|
-
|
|
12
|
-
win.on('destroy', function() {
|
|
13
|
-
clearInterval(validationInterval);
|
|
14
|
-
});
|
|
File without changes
|
{edu_rdm_integration-3.16.1.dist-info → edu_rdm_integration-3.17.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|