edu-rdm-integration 3.8.1__py3-none-any.whl → 3.9.1__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.
- edu_rdm_integration/collect_and_export_data/actions.py +121 -0
- edu_rdm_integration/collect_and_export_data/ui.py +137 -0
- edu_rdm_integration/collect_and_export_data/utils.py +130 -0
- edu_rdm_integration/collect_data/actions.py +276 -0
- edu_rdm_integration/collect_data/const.py +2 -0
- edu_rdm_integration/collect_data/generators.py +72 -8
- edu_rdm_integration/collect_data/ui.py +246 -0
- edu_rdm_integration/enum_register/mixins.py +2 -1
- edu_rdm_integration/export_data/actions.py +291 -0
- edu_rdm_integration/export_data/ui.py +199 -0
- edu_rdm_integration/helpers.py +68 -36
- edu_rdm_integration/templates/ui-js/stage_for_export.js +25 -0
- edu_rdm_integration/templates/ui-js/start-task.js +42 -0
- {edu_rdm_integration-3.8.1.dist-info → edu_rdm_integration-3.9.1.dist-info}/METADATA +1 -1
- {edu_rdm_integration-3.8.1.dist-info → edu_rdm_integration-3.9.1.dist-info}/RECORD +18 -9
- {edu_rdm_integration-3.8.1.dist-info → edu_rdm_integration-3.9.1.dist-info}/WHEEL +0 -0
- {edu_rdm_integration-3.8.1.dist-info → edu_rdm_integration-3.9.1.dist-info}/licenses/LICENSE +0 -0
- {edu_rdm_integration-3.8.1.dist-info → edu_rdm_integration-3.9.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,199 @@
|
|
1
|
+
from typing import (
|
2
|
+
Any,
|
3
|
+
Dict,
|
4
|
+
)
|
5
|
+
|
6
|
+
from m3_ext.ui.controls.buttons import (
|
7
|
+
ExtButton,
|
8
|
+
)
|
9
|
+
from m3_ext.ui.fields import (
|
10
|
+
ExtComboBox,
|
11
|
+
ExtDisplayField,
|
12
|
+
ExtNumberField,
|
13
|
+
ExtStringField,
|
14
|
+
)
|
15
|
+
from m3_ext.ui.fields.simple import (
|
16
|
+
ExtDateTimeField,
|
17
|
+
)
|
18
|
+
from m3_ext.ui.icons import (
|
19
|
+
Icons,
|
20
|
+
)
|
21
|
+
from m3_ext.ui.misc import (
|
22
|
+
ExtDataStore,
|
23
|
+
)
|
24
|
+
|
25
|
+
from educommon.objectpack.ui import (
|
26
|
+
BaseEditWindow,
|
27
|
+
)
|
28
|
+
from educommon.utils.ui import (
|
29
|
+
append_template_globals,
|
30
|
+
)
|
31
|
+
|
32
|
+
from edu_rdm_integration.collect_and_export_data.ui import (
|
33
|
+
CommandProgressListWindow,
|
34
|
+
)
|
35
|
+
from edu_rdm_integration.collect_data.ui import (
|
36
|
+
BaseCreateCommandWindow,
|
37
|
+
)
|
38
|
+
from edu_rdm_integration.consts import (
|
39
|
+
BATCH_SIZE,
|
40
|
+
)
|
41
|
+
from edu_rdm_integration.models import (
|
42
|
+
RegionalDataMartEntityEnum,
|
43
|
+
)
|
44
|
+
|
45
|
+
|
46
|
+
class CreateExportCommandWindow(BaseCreateCommandWindow):
|
47
|
+
"""Окно создания команды экспорта данных сущности РВД."""
|
48
|
+
|
49
|
+
def _init_components(self):
|
50
|
+
"""Инициализация компонентов."""
|
51
|
+
super()._init_components()
|
52
|
+
|
53
|
+
entity = ExtComboBox(
|
54
|
+
name='entity_id',
|
55
|
+
label='Сущность',
|
56
|
+
display_field='entity',
|
57
|
+
anchor='100%',
|
58
|
+
editable=False,
|
59
|
+
trigger_action_all=True,
|
60
|
+
allow_blank=False,
|
61
|
+
)
|
62
|
+
entity.set_store(
|
63
|
+
ExtDataStore((idx, key) for idx, key in enumerate(RegionalDataMartEntityEnum.get_model_enum_keys()))
|
64
|
+
)
|
65
|
+
period_started_at = ExtDateTimeField(
|
66
|
+
name='period_started_at',
|
67
|
+
label='Начало периода',
|
68
|
+
anchor='100%',
|
69
|
+
allow_blank=False,
|
70
|
+
)
|
71
|
+
period_ended_at = ExtDateTimeField(
|
72
|
+
name='period_ended_at',
|
73
|
+
label='Конец периода',
|
74
|
+
anchor='100%',
|
75
|
+
allow_blank=False,
|
76
|
+
)
|
77
|
+
batch_size = ExtNumberField(
|
78
|
+
name='batch_size',
|
79
|
+
label='Размер чанка',
|
80
|
+
allow_blank=False,
|
81
|
+
allow_decimals=False,
|
82
|
+
allow_negative=False,
|
83
|
+
anchor='100%',
|
84
|
+
min_value=1,
|
85
|
+
value=BATCH_SIZE,
|
86
|
+
)
|
87
|
+
|
88
|
+
self.items_ = (
|
89
|
+
entity,
|
90
|
+
period_started_at,
|
91
|
+
period_ended_at,
|
92
|
+
batch_size,
|
93
|
+
)
|
94
|
+
|
95
|
+
|
96
|
+
class DetailExportCommandWindow(BaseEditWindow):
|
97
|
+
"""Окно просмотра команды экспорта данных сущности РВД."""
|
98
|
+
|
99
|
+
def set_params(self, params: Dict[str, Any]) -> None:
|
100
|
+
"""Устанавливает параметры окна."""
|
101
|
+
super().set_params(params)
|
102
|
+
|
103
|
+
self.height = 'auto'
|
104
|
+
self.logs_link_field.value = params.get('log_url', '')
|
105
|
+
|
106
|
+
def _init_components(self) -> None:
|
107
|
+
"""Инициализирует компоненты окна."""
|
108
|
+
super()._init_components()
|
109
|
+
|
110
|
+
self.entity_field = ExtStringField(
|
111
|
+
name='entity_id',
|
112
|
+
label='Сущность',
|
113
|
+
anchor='100%',
|
114
|
+
)
|
115
|
+
self.created_field = ExtDateTimeField(
|
116
|
+
name='created',
|
117
|
+
label='Дата создания',
|
118
|
+
anchor='100%',
|
119
|
+
)
|
120
|
+
self.generation_id_field = ExtStringField(
|
121
|
+
name='generation_id',
|
122
|
+
label='Идентификатор генерации',
|
123
|
+
anchor='100%',
|
124
|
+
)
|
125
|
+
self.task_id_field = ExtStringField(
|
126
|
+
name='task_id',
|
127
|
+
label='Идентификатор задачи',
|
128
|
+
anchor='100%',
|
129
|
+
)
|
130
|
+
self.status_field = ExtStringField(
|
131
|
+
name='stage.status.key',
|
132
|
+
label='Статус экспорта',
|
133
|
+
anchor='100%',
|
134
|
+
)
|
135
|
+
self.started_at_field = ExtDateTimeField(
|
136
|
+
name='stage.started_at',
|
137
|
+
label='Время начала экспорта',
|
138
|
+
anchor='100%',
|
139
|
+
)
|
140
|
+
self.logs_link_field = ExtDisplayField(
|
141
|
+
name='log_url',
|
142
|
+
label='Ссылка на логи',
|
143
|
+
anchor='100%',
|
144
|
+
)
|
145
|
+
self.period_started_at_field = ExtDateTimeField(
|
146
|
+
name='period_started_at',
|
147
|
+
label='Начало периода',
|
148
|
+
anchor='100%',
|
149
|
+
)
|
150
|
+
self.period_ended_at_field = ExtDateTimeField(
|
151
|
+
name='period_ended_at',
|
152
|
+
label='Конец периода',
|
153
|
+
anchor='100%',
|
154
|
+
)
|
155
|
+
|
156
|
+
def _do_layout(self) -> None:
|
157
|
+
"""Располагает компоненты окна."""
|
158
|
+
super()._do_layout()
|
159
|
+
|
160
|
+
self.form.items.extend(
|
161
|
+
(
|
162
|
+
self.entity_field,
|
163
|
+
self.created_field,
|
164
|
+
self.generation_id_field,
|
165
|
+
self.task_id_field,
|
166
|
+
self.status_field,
|
167
|
+
self.started_at_field,
|
168
|
+
self.logs_link_field,
|
169
|
+
self.period_started_at_field,
|
170
|
+
self.period_ended_at_field,
|
171
|
+
)
|
172
|
+
)
|
173
|
+
|
174
|
+
|
175
|
+
class ExportCommandProgressListWindow(CommandProgressListWindow):
|
176
|
+
"""Окно отображения реестра Экспорт данных сущностей РВД."""
|
177
|
+
|
178
|
+
def _init_components(self):
|
179
|
+
"""Инициализирует компоненты окна."""
|
180
|
+
super()._init_components()
|
181
|
+
|
182
|
+
self.sub_stage_for_export_button = ExtButton(
|
183
|
+
text='Переотправить',
|
184
|
+
icon_cls=Icons.ARROW_REFRESH,
|
185
|
+
handler='stageForExport',
|
186
|
+
)
|
187
|
+
|
188
|
+
def _do_layout(self):
|
189
|
+
"""Располагает компоненты окна."""
|
190
|
+
super()._do_layout()
|
191
|
+
|
192
|
+
self.grid.top_bar.items.append(self.sub_stage_for_export_button)
|
193
|
+
|
194
|
+
def set_params(self, params):
|
195
|
+
"""Устанавливает параметры окна."""
|
196
|
+
super().set_params(params)
|
197
|
+
|
198
|
+
append_template_globals(self, 'ui-js/stage_for_export.js')
|
199
|
+
self.sub_stage_for_export_url = params['sub_stage_for_export_url']
|
edu_rdm_integration/helpers.py
CHANGED
@@ -30,6 +30,12 @@ from django.db.models.functions import (
|
|
30
30
|
Cast,
|
31
31
|
Least,
|
32
32
|
)
|
33
|
+
from django.utils.html import (
|
34
|
+
format_html,
|
35
|
+
)
|
36
|
+
from django.utils.safestring import (
|
37
|
+
mark_safe,
|
38
|
+
)
|
33
39
|
from uploader_client.adapters import (
|
34
40
|
adapter,
|
35
41
|
)
|
@@ -85,7 +91,7 @@ if TYPE_CHECKING:
|
|
85
91
|
FAILED_STATUSES = {
|
86
92
|
DataMartRequestStatus.FAILED_PROCESSING,
|
87
93
|
DataMartRequestStatus.REQUEST_ID_NOT_FOUND,
|
88
|
-
DataMartRequestStatus.FLC_ERROR
|
94
|
+
DataMartRequestStatus.FLC_ERROR,
|
89
95
|
}
|
90
96
|
|
91
97
|
|
@@ -191,7 +197,7 @@ class UploadStatusHelper:
|
|
191
197
|
self.cache.set(
|
192
198
|
TOTAL_ATTACHMENTS_SIZE_KEY,
|
193
199
|
queue_total_file_size,
|
194
|
-
timeout=settings.RDM_REDIS_CACHE_TIMEOUT_SECONDS
|
200
|
+
timeout=settings.RDM_REDIS_CACHE_TIMEOUT_SECONDS,
|
195
201
|
)
|
196
202
|
|
197
203
|
|
@@ -334,47 +340,73 @@ def get_collecting_managers_max_period_ended_dates(
|
|
334
340
|
collecting_managers: Iterable['BaseCollectingExportedDataRunnerManager'],
|
335
341
|
) -> dict[str, 'datetime']:
|
336
342
|
"""Возвращает дату и время завершения последнего успешного этапа сбора для менеджеров Функций сбора."""
|
337
|
-
managers_last_period_ended =
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
343
|
+
managers_last_period_ended = (
|
344
|
+
CollectingExportedDataStage.objects.filter(
|
345
|
+
manager_id__in=[manager.uuid for manager in collecting_managers],
|
346
|
+
id=Subquery(
|
347
|
+
CollectingExportedDataStage.objects.filter(
|
348
|
+
manager_id=OuterRef('manager_id'),
|
349
|
+
status_id=CollectingDataStageStatus.FINISHED.key,
|
350
|
+
)
|
351
|
+
.order_by('-id')
|
352
|
+
.values('id')[:1]
|
353
|
+
),
|
354
|
+
)
|
355
|
+
.annotate(
|
356
|
+
str_manager_id=Cast('manager_id', output_field=CharField()),
|
357
|
+
last_period_ended_at=Least('logs_period_ended_at', 'started_at'),
|
358
|
+
)
|
359
|
+
.values_list(
|
360
|
+
'str_manager_id',
|
361
|
+
'last_period_ended_at',
|
362
|
+
)
|
350
363
|
)
|
351
364
|
|
352
|
-
return {
|
353
|
-
manager_id: last_period_ended_at
|
354
|
-
for manager_id, last_period_ended_at in managers_last_period_ended
|
355
|
-
}
|
365
|
+
return {manager_id: last_period_ended_at for manager_id, last_period_ended_at in managers_last_period_ended}
|
356
366
|
|
357
367
|
|
358
368
|
def get_exporting_managers_max_period_ended_dates(
|
359
369
|
exporting_managers: Iterable['BaseExportDataRunnerManager'],
|
360
370
|
) -> dict[str, 'datetime']:
|
361
371
|
"""Возвращает дату и время последнего успешного этапа экспорта для менеджеров Функций экспорта."""
|
362
|
-
managers_last_period_ended =
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
372
|
+
managers_last_period_ended = (
|
373
|
+
ExportingDataStage.objects.filter(
|
374
|
+
manager_id__in=[manager.uuid for manager in exporting_managers],
|
375
|
+
id=Subquery(
|
376
|
+
ExportingDataStage.objects.filter(
|
377
|
+
manager_id=OuterRef('manager_id'),
|
378
|
+
status_id=ExportingDataStageStatus.FINISHED.key,
|
379
|
+
)
|
380
|
+
.order_by('-id')
|
381
|
+
.values('id')[:1]
|
382
|
+
),
|
383
|
+
)
|
384
|
+
.annotate(
|
385
|
+
str_manager_id=Cast('manager_id', output_field=CharField()),
|
386
|
+
last_period_ended_at=Least('period_ended_at', 'started_at'),
|
387
|
+
)
|
388
|
+
.values_list(
|
389
|
+
'str_manager_id',
|
390
|
+
'last_period_ended_at',
|
391
|
+
)
|
375
392
|
)
|
376
393
|
|
377
|
-
return {
|
378
|
-
|
379
|
-
|
380
|
-
|
394
|
+
return {manager_id: last_period_ended_at for manager_id, last_period_ended_at in managers_last_period_ended}
|
395
|
+
|
396
|
+
|
397
|
+
def make_download_link(fieldfile, text='Cкачать', show_filename=False):
|
398
|
+
"""Возвращает html ссылку для скачивания файла.
|
399
|
+
|
400
|
+
Если show_filename == True, использует имя файла как текст ссылки
|
401
|
+
"""
|
402
|
+
link = mark_safe('')
|
403
|
+
if fieldfile:
|
404
|
+
link_text = os.path.basename(fieldfile.name) if show_filename else text
|
405
|
+
link = make_link(fieldfile.url, link_text)
|
406
|
+
|
407
|
+
return link
|
408
|
+
|
409
|
+
|
410
|
+
def make_link(url, text):
|
411
|
+
"""Возвращает экаранированную html ссылку файла."""
|
412
|
+
return format_html('<a href="{}" target="_blank" download>{}</a>', url, text)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
function stageForExport(){
|
2
|
+
var grid = Ext.getCmp('{{ component.grid.client_id }}'),
|
3
|
+
selections = grid.selModel.getSelections(),
|
4
|
+
commands = [];
|
5
|
+
|
6
|
+
if (Ext.isEmpty(selections)) {
|
7
|
+
Ext.Msg.alert('Внимание', 'Не выбрана команда!');
|
8
|
+
return false;
|
9
|
+
} else {
|
10
|
+
Ext.each(selections, function (obj) {
|
11
|
+
commands.push(obj.id);
|
12
|
+
});
|
13
|
+
}
|
14
|
+
|
15
|
+
Ext.Ajax.request({
|
16
|
+
url: '{{ component.sub_stage_for_export_url }}',
|
17
|
+
method: 'POST',
|
18
|
+
params: {'commands': commands.join()},
|
19
|
+
success: function (res) {
|
20
|
+
smart_eval(res.responseText);
|
21
|
+
grid.getStore().reload();
|
22
|
+
},
|
23
|
+
failure: uiAjaxFailMessage
|
24
|
+
});
|
25
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
function startTask(){
|
2
|
+
var grid = Ext.getCmp('{{ component.grid.client_id }}'),
|
3
|
+
selections = grid.selModel.getSelections(),
|
4
|
+
commands = [];
|
5
|
+
|
6
|
+
if (Ext.isEmpty(selections)) {
|
7
|
+
Ext.Msg.alert('Внимание', 'Не выбрана команда!');
|
8
|
+
return false;
|
9
|
+
} else {
|
10
|
+
Ext.each(selections, function (obj) {
|
11
|
+
commands.push(obj.id);
|
12
|
+
});
|
13
|
+
}
|
14
|
+
|
15
|
+
Ext.Ajax.request({
|
16
|
+
url: '{{ component.queue_select_win_url }}',
|
17
|
+
method: 'POST',
|
18
|
+
params: {},
|
19
|
+
success: function (res) {
|
20
|
+
var queue_select_win = smart_eval(res.responseText);
|
21
|
+
queue_select_win.on('closed_ok', function() {
|
22
|
+
var queue_level_field = queue_select_win.items.items[0];
|
23
|
+
var params = queue_select_win.actionContextJson;
|
24
|
+
params['commands'] = commands.join();
|
25
|
+
params['queue_level'] = queue_level_field.getValue();
|
26
|
+
Ext.Ajax.request({
|
27
|
+
url: '{{ component.start_task_url }}',
|
28
|
+
method: 'POST',
|
29
|
+
params: params,
|
30
|
+
success: function (res) {
|
31
|
+
smart_eval(res.responseText);
|
32
|
+
grid.getStore().reload();
|
33
|
+
},
|
34
|
+
failure: uiAjaxFailMessage
|
35
|
+
});
|
36
|
+
queue_select_win.close();
|
37
|
+
|
38
|
+
});
|
39
|
+
},
|
40
|
+
failure: uiAjaxFailMessage
|
41
|
+
});
|
42
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: edu-rdm-integration
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.9.1
|
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
|
@@ -6,7 +6,7 @@ edu_rdm_integration/base.py,sha256=1NgLZd0KZRRgUcVfufVIpDJU2coT2zksFGDaX4fWqps,5
|
|
6
6
|
edu_rdm_integration/consts.py,sha256=QnL9TqTKuJ0MrysqtqHvtCwOFbS1T7iwcfUZGjVsZTU,1166
|
7
7
|
edu_rdm_integration/entities.py,sha256=mhVeB88A-VD5IAzZCNeI1qnkvNoZ8LPiLBdqk1yA3Jc,14541
|
8
8
|
edu_rdm_integration/enums.py,sha256=RpQIZM1iSgFbYDHfwrbT-BwgRf-N9ZZnJgx8UyRFQ2o,4978
|
9
|
-
edu_rdm_integration/helpers.py,sha256=
|
9
|
+
edu_rdm_integration/helpers.py,sha256=30jynZZ4msdY0LHZT53pvTSLZ-Qbk32u2JxY44ZDUtE,15761
|
10
10
|
edu_rdm_integration/mapping.py,sha256=1B6TsC4Os9wiM8L8BChnCNv_iWqjeWu3bdDsqKVsId0,616
|
11
11
|
edu_rdm_integration/models.py,sha256=4IR5gdNX6YVvGysQQeixcjIOCrMQ37RVhmyvSwucLdc,32297
|
12
12
|
edu_rdm_integration/redis_cache.py,sha256=SP_rcL5t6PTVLOnEYn_NTX0Z666VdZT4By2pyED24Z4,1537
|
@@ -33,17 +33,22 @@ edu_rdm_integration/adapters/strings.py,sha256=-k9dex8A7hCpkzUkudVkKRAbNRuuqog2h
|
|
33
33
|
edu_rdm_integration/adapters/tests.py,sha256=MoRY-a75Ow-7EjeQYxkXWunwqTGuBMaUyEkEV2oy05I,59
|
34
34
|
edu_rdm_integration/adapters/validators.py,sha256=LJWnCY8PtXDOj-fm3fBWjQYsHsSLfyKf_D97pqPv73s,496
|
35
35
|
edu_rdm_integration/collect_and_export_data/__init__.py,sha256=4glPgPCzAyLreBGUnUrcRPCge45XucJz5bK8VjlQBaE,82
|
36
|
+
edu_rdm_integration/collect_and_export_data/actions.py,sha256=U0QPe6OVmngLeW_2b3KA9L1Vp6uWdQoanXcp45IHnec,4018
|
36
37
|
edu_rdm_integration/collect_and_export_data/apps.py,sha256=fAcctcjxWP4Gd0Qr3YrQkMESrzga4IORWetBTy8wvHo,160
|
37
38
|
edu_rdm_integration/collect_and_export_data/models.py,sha256=TGm-hM-1aDhVcFPy0PTC3yNczoZGF4ZmIdr0Y9s8CfU,2038
|
38
|
-
edu_rdm_integration/collect_and_export_data/
|
39
|
+
edu_rdm_integration/collect_and_export_data/ui.py,sha256=14MW_FAMF5N7oi608Y134u3m8FFdrC5PqqpJqm5fTuA,4194
|
40
|
+
edu_rdm_integration/collect_and_export_data/utils.py,sha256=voILhNvk8qyp0-LB7uahAgsgG2hzsnHWnJXrOVfRqHo,7852
|
39
41
|
edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py,sha256=UkoaXzh3tokZ8QdCdB09v3rRZfcHhvEwNMuj3mQIB74,4714
|
40
42
|
edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py,sha256=8kNc8IHzEiIKpIv1oT6rytV80RJrikrEnlvRFpaFRWc,1017
|
41
43
|
edu_rdm_integration/collect_and_export_data/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
44
|
edu_rdm_integration/collect_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
+
edu_rdm_integration/collect_data/actions.py,sha256=e6p5JlNi2LCVQH-IUV2Gezx5QdCLGaBf1j3NQGWx7kY,9774
|
43
46
|
edu_rdm_integration/collect_data/collect.py,sha256=-u2ER3MZOLtNRmdtYwimpQqFsEBbJ-8Wsy-AjQeK168,11868
|
44
|
-
edu_rdm_integration/collect_data/
|
47
|
+
edu_rdm_integration/collect_data/const.py,sha256=tzaK9oxzdMRq3oTEocPz4umoXSJWUtFc7YhyXucCNbs,127
|
48
|
+
edu_rdm_integration/collect_data/generators.py,sha256=nzTWdF2mDflYJXwG8KgrzR8piO8rUPPJ73OZx1Vg3sE,12144
|
45
49
|
edu_rdm_integration/collect_data/helpers.py,sha256=wi1TECBFwur0LyREUwGLNXqQG731e2l1iuIp2Vsh8_o,2962
|
46
50
|
edu_rdm_integration/collect_data/tests.py,sha256=_Inf8v_TS_LorBb702qykzc1Syj_tsPVRLJREcJ-XmY,5515
|
51
|
+
edu_rdm_integration/collect_data/ui.py,sha256=nBLDWWsGIGJelUBvHQE2r6YhmnXc6Xj__Ryw4FaOx8w,7698
|
47
52
|
edu_rdm_integration/collect_data/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
53
|
edu_rdm_integration/collect_data/base/caches.py,sha256=_Ja0q3hPSE_Mq-MCZN-1jr0WvpOqUr1-CkoBf1B7qKc,2141
|
49
54
|
edu_rdm_integration/collect_data/base/consts.py,sha256=nzP7973d-YG29l-JxJcq7dF81QDLP7FRtTq0dSq46GM,304
|
@@ -85,9 +90,10 @@ edu_rdm_integration/collect_data/non_calculated/base/strings.py,sha256=-k9dex8A7
|
|
85
90
|
edu_rdm_integration/collect_data/non_calculated/base/tests.py,sha256=MoRY-a75Ow-7EjeQYxkXWunwqTGuBMaUyEkEV2oy05I,59
|
86
91
|
edu_rdm_integration/collect_data/non_calculated/base/validators.py,sha256=0YvnfrfK1iFcZVSB-M-Xv82tIjYxEU_BwLofAEuGVW4,973
|
87
92
|
edu_rdm_integration/enum_register/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
|
-
edu_rdm_integration/enum_register/mixins.py,sha256=
|
93
|
+
edu_rdm_integration/enum_register/mixins.py,sha256=aANcwvx4Y9MrtoIt3lds5f1FSkdwgUEKpnW9VJmSq1w,4634
|
89
94
|
edu_rdm_integration/enum_register/register.py,sha256=jb16O7TZDGVRo5NwWqyY_rcbBxOncYeOoSq6UAbTf48,2208
|
90
95
|
edu_rdm_integration/export_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
96
|
+
edu_rdm_integration/export_data/actions.py,sha256=z3qMJJbgsiOCW8A_Ac5ThVBijK4dU_8VuOGrxEBNKso,10377
|
91
97
|
edu_rdm_integration/export_data/consts.py,sha256=ZEi1kXMs-54KFKxkyGIQVwZ4d8OrOF_vLFQIjjWdSPQ,441
|
92
98
|
edu_rdm_integration/export_data/dataclasses.py,sha256=IhftRopP4lS-m3ygdBU5Bz0HF71VSBP4JQ6-8VIVgtY,260
|
93
99
|
edu_rdm_integration/export_data/export.py,sha256=qKvFRTcy2ZgaBMn6mEi_OsueNXZ7j_v2neu2Lu99MEs,19447
|
@@ -96,6 +102,7 @@ edu_rdm_integration/export_data/generators.py,sha256=UIoX49rQnUwwC9PL17te7Rb4WRD
|
|
96
102
|
edu_rdm_integration/export_data/helpers.py,sha256=JKL4MC0IuoJv72NNnL8hG7HLy7kNHOXFp1uLCKF15AM,2900
|
97
103
|
edu_rdm_integration/export_data/queue.py,sha256=GlwRwhMdv38OxmtFpFD5-Pt79gMe3IcLeWFQCLXTcik,6128
|
98
104
|
edu_rdm_integration/export_data/strategies.py,sha256=RBBJuCMJCypB4mDwFb6zix3t791SkpFFX5B7Wd-O-4s,6715
|
105
|
+
edu_rdm_integration/export_data/ui.py,sha256=maSW3GB9l7pwIblOlni8uK3HhbwQyqh50KdUnyPc1QE,6012
|
99
106
|
edu_rdm_integration/export_data/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
100
107
|
edu_rdm_integration/export_data/base/caches.py,sha256=owWMT6FG9Y6xXwbObyPUI31UgSVi1rlb9i9zVMp8sTk,1507
|
101
108
|
edu_rdm_integration/export_data/base/consts.py,sha256=jLuy2y7YQ921OrEuzDld3F0k6YxgCnr5yorWBQJiLLw,519
|
@@ -174,6 +181,8 @@ edu_rdm_integration/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
|
|
174
181
|
edu_rdm_integration/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
175
182
|
edu_rdm_integration/registry/actions.py,sha256=-CHe95jbxO9JAEaOx6nV6Avn75ynppvZRWN8YPc6c6s,6074
|
176
183
|
edu_rdm_integration/registry/ui.py,sha256=v4GqbQUcoeHxfUPUYORuj4DfzIp49diY-F1hyL3TCPo,2592
|
184
|
+
edu_rdm_integration/templates/ui-js/stage_for_export.js,sha256=329OZIpiKHlQ-i8JStjBLXtouIMKuJHbycArUGSskfk,737
|
185
|
+
edu_rdm_integration/templates/ui-js/start-task.js,sha256=mwLMFFOZku5AS0CF7AzPoIP_jGP36uetlN6noUE2pBw,1490
|
177
186
|
edu_rdm_integration/templates/ui-js/transferred-entity-list.js,sha256=IWEZ9JoTxD5-CLic5v07XHWW0iGRWk-cjeGVSzU4yKg,1117
|
178
187
|
edu_rdm_integration/uploader_log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
179
188
|
edu_rdm_integration/uploader_log/actions.py,sha256=K06pkaWGjPnt6cpPYdSk8X7nqQEfW-vXXvNVORRbDCs,7957
|
@@ -182,8 +191,8 @@ edu_rdm_integration/uploader_log/enums.py,sha256=rgSO3BL2rh2xpfm0Pt4waQW8fB1VMJL
|
|
182
191
|
edu_rdm_integration/uploader_log/managers.py,sha256=OFdToWV8qhdfeGNpd-UWAmSEISzixmVQ6LF75EW7gzA,3248
|
183
192
|
edu_rdm_integration/uploader_log/ui.py,sha256=7O63XJJYnJBLVU9aGuSyMOxFYtcj_Kyf5u6HIiuxl9A,1788
|
184
193
|
edu_rdm_integration/uploader_log/templates/ui-js/object-grid-buttons.js,sha256=2xyGe0wdVokM0RhpzRzcRvJPBkBmPe3SlZry4oP4Nzs,6201
|
185
|
-
edu_rdm_integration-3.
|
186
|
-
edu_rdm_integration-3.
|
187
|
-
edu_rdm_integration-3.
|
188
|
-
edu_rdm_integration-3.
|
189
|
-
edu_rdm_integration-3.
|
194
|
+
edu_rdm_integration-3.9.1.dist-info/licenses/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
|
195
|
+
edu_rdm_integration-3.9.1.dist-info/METADATA,sha256=ysbYJGTQJxfNV_7dWYSeBiMa7wELVKl8tSHIOBCK5LE,35263
|
196
|
+
edu_rdm_integration-3.9.1.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
197
|
+
edu_rdm_integration-3.9.1.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
|
198
|
+
edu_rdm_integration-3.9.1.dist-info/RECORD,,
|
File without changes
|
{edu_rdm_integration-3.8.1.dist-info → edu_rdm_integration-3.9.1.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
File without changes
|