edu-rdm-integration 0.9.0__py3-none-any.whl → 0.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/app_meta.py +16 -0
- edu_rdm_integration/migrations/0008_transferredentity.py +43 -0
- edu_rdm_integration/models.py +16 -0
- edu_rdm_integration/registry/__init__.py +0 -0
- edu_rdm_integration/registry/actions.py +136 -0
- {edu_rdm_integration-0.9.0.dist-info → edu_rdm_integration-0.9.1.dist-info}/METADATA +19 -5
- {edu_rdm_integration-0.9.0.dist-info → edu_rdm_integration-0.9.1.dist-info}/RECORD +11 -7
- {edu_rdm_integration-0.9.0.dist-info → edu_rdm_integration-0.9.1.dist-info}/LICENSE +0 -0
- {edu_rdm_integration-0.9.0.dist-info → edu_rdm_integration-0.9.1.dist-info}/WHEEL +0 -0
- {edu_rdm_integration-0.9.0.dist-info → edu_rdm_integration-0.9.1.dist-info}/namespace_packages.txt +0 -0
- {edu_rdm_integration-0.9.0.dist-info → edu_rdm_integration-0.9.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
from educommon import (
|
2
|
+
ioc,
|
3
|
+
)
|
4
|
+
|
5
|
+
from edu_rdm_integration.registry.actions import (
|
6
|
+
EntitySelectPack,
|
7
|
+
TransferredEntityPack,
|
8
|
+
)
|
9
|
+
|
10
|
+
|
11
|
+
def register_actions():
|
12
|
+
"""Регистрирует паки и экшны."""
|
13
|
+
ioc.get('main_controller').packs.extend((
|
14
|
+
TransferredEntityPack(),
|
15
|
+
EntitySelectPack(),
|
16
|
+
))
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import django.db.models.deletion
|
2
|
+
from django.db import (
|
3
|
+
migrations,
|
4
|
+
models,
|
5
|
+
)
|
6
|
+
|
7
|
+
|
8
|
+
class Migration(migrations.Migration):
|
9
|
+
"""Миграция."""
|
10
|
+
|
11
|
+
dependencies = [
|
12
|
+
('edu_rdm_integration', '0007_delete_upload_status'),
|
13
|
+
]
|
14
|
+
|
15
|
+
operations = [
|
16
|
+
migrations.CreateModel(
|
17
|
+
name='TransferredEntity',
|
18
|
+
fields=[
|
19
|
+
(
|
20
|
+
'id',
|
21
|
+
models.AutoField(
|
22
|
+
auto_created=True,
|
23
|
+
primary_key=True,
|
24
|
+
serialize=False,
|
25
|
+
verbose_name='ID',
|
26
|
+
),
|
27
|
+
),
|
28
|
+
(
|
29
|
+
'entity',
|
30
|
+
models.OneToOneField(
|
31
|
+
on_delete=django.db.models.deletion.CASCADE,
|
32
|
+
to='edu_rdm_integration.RegionalDataMartEntityEnum',
|
33
|
+
verbose_name='Сущность',
|
34
|
+
),
|
35
|
+
),
|
36
|
+
],
|
37
|
+
options={
|
38
|
+
'verbose_name': 'Сущность, по которой должен быть произведен сбор и экспорт данных',
|
39
|
+
'verbose_name_plural': 'Сущности, по которым должен быть произведен сбор и экспорт данных',
|
40
|
+
'db_table': 'rdm_transferred_entity',
|
41
|
+
},
|
42
|
+
),
|
43
|
+
]
|
edu_rdm_integration/models.py
CHANGED
@@ -24,6 +24,7 @@ from django.db.models import (
|
|
24
24
|
FileField,
|
25
25
|
ForeignKey,
|
26
26
|
Manager,
|
27
|
+
OneToOneField,
|
27
28
|
SmallIntegerField,
|
28
29
|
UUIDField,
|
29
30
|
)
|
@@ -895,3 +896,18 @@ class UploaderClientLog(Entry):
|
|
895
896
|
|
896
897
|
class Meta:
|
897
898
|
proxy = True
|
899
|
+
|
900
|
+
|
901
|
+
class TransferredEntity(BaseObjectModel):
|
902
|
+
"""Сущность, по которой должен быть произведен сбор и экспорт данных."""
|
903
|
+
|
904
|
+
entity = OneToOneField(
|
905
|
+
to=RegionalDataMartEntityEnum,
|
906
|
+
verbose_name='Сущность',
|
907
|
+
on_delete=CASCADE,
|
908
|
+
)
|
909
|
+
|
910
|
+
class Meta:
|
911
|
+
db_table = 'rdm_transferred_entity'
|
912
|
+
verbose_name = 'Сущность, по которой должен быть произведен сбор и экспорт данных'
|
913
|
+
verbose_name_plural = 'Сущности, по которым должен быть произведен сбор и экспорт данных'
|
File without changes
|
@@ -0,0 +1,136 @@
|
|
1
|
+
from m3 import (
|
2
|
+
OperationResult,
|
3
|
+
)
|
4
|
+
from m3.actions import (
|
5
|
+
ControllerCache,
|
6
|
+
)
|
7
|
+
from m3_ext.ui.containers import (
|
8
|
+
ExtGridCheckBoxSelModel,
|
9
|
+
)
|
10
|
+
from objectpack.actions import (
|
11
|
+
BaseAction,
|
12
|
+
ObjectPack,
|
13
|
+
SelectorWindowAction,
|
14
|
+
)
|
15
|
+
|
16
|
+
from edu_rdm_integration.models import (
|
17
|
+
RegionalDataMartEntityEnum,
|
18
|
+
TransferredEntity,
|
19
|
+
)
|
20
|
+
|
21
|
+
|
22
|
+
class EntitySelectPack(ObjectPack):
|
23
|
+
"""Пак выбора сущностей для сбора и экспорта данных."""
|
24
|
+
|
25
|
+
title = 'Сущность РВД'
|
26
|
+
model = RegionalDataMartEntityEnum
|
27
|
+
_is_primary_for_model = False
|
28
|
+
|
29
|
+
list_sort_order = ('order_number', )
|
30
|
+
|
31
|
+
columns = [
|
32
|
+
{
|
33
|
+
'data_index': 'key',
|
34
|
+
'header': 'Сущность',
|
35
|
+
},
|
36
|
+
{
|
37
|
+
'data_index': 'title',
|
38
|
+
'header': 'Описание',
|
39
|
+
},
|
40
|
+
]
|
41
|
+
|
42
|
+
def get_rows_query(self, request, context):
|
43
|
+
"""Возвращает выборку из БД для получения списка данных.
|
44
|
+
|
45
|
+
Ранее выбранные сущности не отображаются в списке.
|
46
|
+
"""
|
47
|
+
query = super().get_rows_query(request, context)
|
48
|
+
|
49
|
+
return query.filter(transferredentity__isnull=True)
|
50
|
+
|
51
|
+
|
52
|
+
class TransferredEntityAddWindowAction(SelectorWindowAction):
|
53
|
+
"""Экшн показа окна выбора сущностей для сбора и экспорта данных."""
|
54
|
+
|
55
|
+
def configure_action(self, request, context):
|
56
|
+
"""Конфигурирует экшн."""
|
57
|
+
self.data_pack = ControllerCache.find_pack(EntitySelectPack)
|
58
|
+
self.callback_url = self.parent.save_action.absolute_url()
|
59
|
+
|
60
|
+
def configure_window(self, win, request, context):
|
61
|
+
"""Конфигурирует окно выбора."""
|
62
|
+
win.grid.sm = ExtGridCheckBoxSelModel()
|
63
|
+
win.grid.store.id_property = 'key'
|
64
|
+
|
65
|
+
return win
|
66
|
+
|
67
|
+
|
68
|
+
class TransferredEntitySaveAction(BaseAction):
|
69
|
+
"""Экшн сохранения выбранных сущностей для сбора и экспорта данных."""
|
70
|
+
|
71
|
+
def context_declaration(self):
|
72
|
+
"""Объявляет контекст экшна."""
|
73
|
+
return {
|
74
|
+
'id': {'type': 'str_list', 'default': []},
|
75
|
+
}
|
76
|
+
|
77
|
+
def run(self, request, context):
|
78
|
+
"""Обеспечивает выполнение запроса."""
|
79
|
+
self.parent.model.objects.bulk_create([
|
80
|
+
self.parent.model(entity_id=key)
|
81
|
+
for key in context.id
|
82
|
+
])
|
83
|
+
|
84
|
+
return OperationResult(success=True)
|
85
|
+
|
86
|
+
|
87
|
+
class TransferredEntityPack(ObjectPack):
|
88
|
+
"""Пак сущностей, по которым должен быть произведен сбор и экспорт данных."""
|
89
|
+
|
90
|
+
title = 'Сущности для сбора и экспорта данных'
|
91
|
+
model = TransferredEntity
|
92
|
+
|
93
|
+
can_delete = True
|
94
|
+
|
95
|
+
list_sort_order = ('entity__order_number', )
|
96
|
+
|
97
|
+
need_check_permission = True
|
98
|
+
|
99
|
+
columns = [
|
100
|
+
{
|
101
|
+
'data_index': 'entity.key',
|
102
|
+
'header': 'Сущность',
|
103
|
+
},
|
104
|
+
{
|
105
|
+
'data_index': 'entity.title',
|
106
|
+
'header': 'Описание',
|
107
|
+
},
|
108
|
+
]
|
109
|
+
|
110
|
+
def __init__(self):
|
111
|
+
super().__init__()
|
112
|
+
|
113
|
+
self.add_window_action = TransferredEntityAddWindowAction()
|
114
|
+
self.replace_action('new_window_action', self.add_window_action)
|
115
|
+
|
116
|
+
self.save_entity_action = TransferredEntitySaveAction()
|
117
|
+
self.replace_action('save_action', self.save_entity_action)
|
118
|
+
|
119
|
+
def configure_grid(self, grid, *args, **kwargs):
|
120
|
+
"""Конфигурирует грид."""
|
121
|
+
super().configure_grid(grid, *args, **kwargs)
|
122
|
+
|
123
|
+
grid.sm = ExtGridCheckBoxSelModel()
|
124
|
+
|
125
|
+
def extend_menu(self, menu):
|
126
|
+
"""Расширяет главное меню."""
|
127
|
+
return menu.SubMenu(
|
128
|
+
'Администрирование',
|
129
|
+
menu.SubMenu(
|
130
|
+
'Региональная витрина данных',
|
131
|
+
menu.Item(
|
132
|
+
self.title,
|
133
|
+
self.list_window_action,
|
134
|
+
),
|
135
|
+
),
|
136
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: edu-rdm-integration
|
3
|
-
Version: 0.9.
|
3
|
+
Version: 0.9.1
|
4
4
|
Summary: Интеграция с Региональной витриной данных
|
5
5
|
Home-page:
|
6
6
|
Download-URL:
|
@@ -143,9 +143,7 @@ Requires-Dist: uploader-client <1,>=0.2.1
|
|
143
143
|
RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
|
144
144
|
RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
|
145
145
|
RDM_TRANSFER_TASK_TIMEDELTA = conf.get_int('rdm_transfer_task', 'TIMEDELTA')
|
146
|
-
|
147
|
-
RDM_TRANSFER_TASK_ENTITIES = conf.get_tuple('rdm_transfer_task', 'ENTITIES') or ()
|
148
|
-
|
146
|
+
|
149
147
|
# Настройка запуска периодической задачи статуса загрузки данных в витрину:
|
150
148
|
RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
|
151
149
|
RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
|
@@ -191,7 +189,6 @@ Requires-Dist: uploader-client <1,>=0.2.1
|
|
191
189
|
| RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
|
192
190
|
| RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
|
193
191
|
| RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
|
194
|
-
| RDM_TRANSFER_TASK_ENTITIES | Сущности, по которым должен производиться сбор и выгрузка данных | '' |
|
195
192
|
| RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
|
196
193
|
| RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
|
197
194
|
| RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
|
@@ -290,6 +287,23 @@ Requires-Dist: uploader-client <1,>=0.2.1
|
|
290
287
|
|
291
288
|
### Удалено
|
292
289
|
|
290
|
+
## [0.9.1] - 2024-01-11
|
291
|
+
|
292
|
+
Добавлен реестр выбора сущностей для сбора и выгрузки данных.
|
293
|
+
Удалена настройка RDM_TRANSFER_TASK_ENTITIES, вместо перечисления сущностей в конфиге используется реестр и модель
|
294
|
+
TransferredEntity.
|
295
|
+
|
296
|
+
### Добавлено
|
297
|
+
|
298
|
+
- [EDUSCHL-21112](https://jira.bars.group/browse/EDUSCHL-21112)
|
299
|
+
MINOR Добавлен реестр выбора сущностей для сбора и выгрузки данных.
|
300
|
+
|
301
|
+
### Удалено
|
302
|
+
|
303
|
+
- [EDUSCHL-21112](https://jira.bars.group/browse/EDUSCHL-21112)
|
304
|
+
MINOR Удалена настройка RDM_TRANSFER_TASK_ENTITIES.
|
305
|
+
|
306
|
+
|
293
307
|
## [0.9.0] - 2023-12-29
|
294
308
|
|
295
309
|
Из ЭШ перенесены периодические задачи по сбору статусов загрузки файлов в витрину, а также
|
@@ -1,4 +1,5 @@
|
|
1
1
|
edu_rdm_integration/__init__.py,sha256=fVCvQ7QGI_iCyAeE8dMapyY8gOM617ye5GQqAVGPlZI,72
|
2
|
+
edu_rdm_integration/app_meta.py,sha256=v5IU69yaeLbyHF0Ln6iPN_IfizbtF3rCWrz2n71m8dU,337
|
2
3
|
edu_rdm_integration/app_settings.py,sha256=kideEO9SvYU8RXPB-8hTVosL4bAspPHNHtyz-R0F7v4,1822
|
3
4
|
edu_rdm_integration/apps.py,sha256=5OgNdmuqe26fbu4wYb69haQJe-XFO_rDbnU1vPqJU-U,3571
|
4
5
|
edu_rdm_integration/base.py,sha256=_G0qPTAXe6bXfgDHNiZMSsYt3sMuUhLKnHuQCWSFttU,1341
|
@@ -7,7 +8,7 @@ edu_rdm_integration/entities.py,sha256=mAjsYlcIbemo4xT5CSCr4payZubiBHB7Rb3Ow1CVs
|
|
7
8
|
edu_rdm_integration/enums.py,sha256=6Gv_hpYrC6v75ZtBA_xBrHqvza9NbJKhMa1TdTHkzys,4048
|
8
9
|
edu_rdm_integration/helpers.py,sha256=-UjORR2Pj_zW9gcAz-Dqs2Qi-s8TIptKVUBJVUBjRus,4958
|
9
10
|
edu_rdm_integration/mapping.py,sha256=bwa2fJCbV4YjQcAgRrgT3hgM6dJhr_uBtQgx3L3F2Ck,473
|
10
|
-
edu_rdm_integration/models.py,sha256=
|
11
|
+
edu_rdm_integration/models.py,sha256=Wg8NYj4C6Xqw-15AsQGU0TWNzUjdwBW_YZDzmPqx3GY,29327
|
11
12
|
edu_rdm_integration/signals.py,sha256=3eRlpkDcFCF6TN80-QM8yBYLcyozzcmoPjz6r4_ApWg,73
|
12
13
|
edu_rdm_integration/storages.py,sha256=o5WqUG7SnkeuMt-z8spUi-IraivST-7KHzfY-M3v7FA,6807
|
13
14
|
edu_rdm_integration/tasks.py,sha256=XzRhcfv6u2LSANvWTNvocdw0UJZDKLn3MzenViYrAVE,3421
|
@@ -145,16 +146,19 @@ edu_rdm_integration/migrations/0004_uploaderclientlog.py,sha256=Llw_cqPpYJSrbEuE
|
|
145
146
|
edu_rdm_integration/migrations/0005_auto_20231204_1224.py,sha256=YXWiwTImGg8FAO_Er0qxcvaS6V9iF2rSy_7z5r--C_U,1782
|
146
147
|
edu_rdm_integration/migrations/0006_request_status_data.py,sha256=g5JZtP0q0fOrbKCooGmCeGgtcqd9ZLIBP56h-ZH8IS8,3448
|
147
148
|
edu_rdm_integration/migrations/0007_delete_upload_status.py,sha256=GAQKX6N1vDDWiCTXLGg--0gzLQr7VveAPFYzC9QpUpU,457
|
149
|
+
edu_rdm_integration/migrations/0008_transferredentity.py,sha256=rE5av85AIYKGDy7nuFKLrHAhj0uaeUTRsFfIsXPtaxo,1427
|
148
150
|
edu_rdm_integration/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
151
|
+
edu_rdm_integration/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
152
|
+
edu_rdm_integration/registry/actions.py,sha256=y84gsGz-ZpkOdG85dNwk-J3zmPeEqp894K55puJNDiI,4146
|
149
153
|
edu_rdm_integration/uploader_log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
150
154
|
edu_rdm_integration/uploader_log/actions.py,sha256=SGYYYNL4MdST1FYCZBCYAxj3_-PsJ8IcXBYwxpZqucg,6755
|
151
155
|
edu_rdm_integration/uploader_log/apps.py,sha256=tYJj4-sDlq8fLOSvw18L_yys7SILpTKWNmE2Qug6GnE,265
|
152
156
|
edu_rdm_integration/uploader_log/enums.py,sha256=rgSO3BL2rh2xpfm0Pt4waQW8fB1VMJLdsGmr3SXwH_U,266
|
153
157
|
edu_rdm_integration/uploader_log/managers.py,sha256=y5wTSMzF9hpOpIU_A7nIafL_LBU3QEie6LAYWoB-pBQ,3203
|
154
158
|
edu_rdm_integration/uploader_log/ui.py,sha256=YM9Buqp2wxE95Wf5gvAATBzuYzDOossK1sEmvFk07cI,2110
|
155
|
-
edu_rdm_integration-0.9.
|
156
|
-
edu_rdm_integration-0.9.
|
157
|
-
edu_rdm_integration-0.9.
|
158
|
-
edu_rdm_integration-0.9.
|
159
|
-
edu_rdm_integration-0.9.
|
160
|
-
edu_rdm_integration-0.9.
|
159
|
+
edu_rdm_integration-0.9.1.dist-info/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
|
160
|
+
edu_rdm_integration-0.9.1.dist-info/METADATA,sha256=4dMio16uN6o1Y1WGWOL8EWMlYf8TgsLmF4kGBU14Id8,49997
|
161
|
+
edu_rdm_integration-0.9.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
162
|
+
edu_rdm_integration-0.9.1.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
163
|
+
edu_rdm_integration-0.9.1.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
|
164
|
+
edu_rdm_integration-0.9.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{edu_rdm_integration-0.9.0.dist-info → edu_rdm_integration-0.9.1.dist-info}/namespace_packages.txt
RENAMED
File without changes
|
File without changes
|