Skip to content

Commit 0ec9864

Browse files
authored
Merge pull request #23 from adlero4ek/main
Расширил Readme с описанием примера добавления новой группировки
2 parents 0dcab7d + dcddc00 commit 0ec9864

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

src/DynamicChangeOfContextGrouping/README.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,113 @@
4747

4848
#### Отображение списка выбор и цветовая подсветка в стандартной карточке компонента
4949
![ChoosingAaOptionInContext.png](Imgs%2FChoosingAaOptionInContext.png)
50+
51+
# Пример добавления новой группировки
52+
53+
- Добавить новую сущность вида "dictionaries", например, создав новый файл `\Metamodel\Dictionaries\development_model.yaml`:
54+
```
55+
dictionaries:
56+
57+
DevelopmentModel:
58+
title: Модель разработки
59+
description: Модель разработки определяет каким образом система создается/развивается - собственными силами либо силами подрядчика во внутреннем контуре разработки Компании, либо за пределами контура
60+
parameters:
61+
- name: inhouse # Ключ, указываемый при описании приложения/сервиса + используется при формировании ID приложения при группировке
62+
title: Внутренняя разработка # Отображение в отчетах, в группировках контекста
63+
- name: external # Ключ, указываемый при описании приложения/сервиса + используется при формировании ID приложения при группировке
64+
title: Внешняя разработка # Отображение в отчетах, в группировках контекста
65+
- name: none # Ключ, указываемый при описании приложения/сервиса + используется при формировании ID приложения при группировке
66+
title: Разработка не ведется # Отображение в отчетах, в группировках контекста
67+
```
68+
- Если изменение выполнено через отдельный файл `development_model.yaml`, то необходимо добавить в файл `\Metamodel\Dictionaries\root.yaml` ссылку на добавленный файл, должно получится следующим образом:
69+
```
70+
imports:
71+
...
72+
- development_model.yaml
73+
...
74+
```
75+
- Для каждого приложения/сервиса, указанного в файле `\Datalake\Applications\systems.yaml`, добавить новое поле `development_model`, значения поля необходимо заполнять значениями ранее добавленного справочника `DevelopmentModel` из свойсва `name`:
76+
```
77+
Romashka.Systems.FinancialManagement.CPM:
78+
title: 1С:Управление холдингом 8
79+
...
80+
extension:
81+
...
82+
development_model: none
83+
...
84+
85+
Romashka.Systems.FinancialManagement.ERP:
86+
title: 1С:ERP Управление предприятием
87+
...
88+
extension:
89+
...
90+
development_model: inhouse
91+
...
92+
```
93+
- Добавить новый контекст, описывающий правила группировки приложений/систем, в файле `\Datalake\contexts.yaml`
94+
```
95+
GroupingByDevelopmentModel:
96+
title: Группировка по модели разработки
97+
extra-links: true
98+
components:
99+
- Romashka.Systems.*.* # Для отображения в списке выбора контекста в карточке компонента
100+
- Romashka.Systems.*.*.* # СДля отображения в списке выбора контекста в карточке компонента
101+
source: >
102+
(
103+
104+
$Grouping := {
105+
"GroupingName": "DevelopmentModel", /* Имя группировки, добавляемое в описание идентификатора компонента DDD */
106+
"GroupingTitle": "Модель разработки", /* Представление группировки, отображаемое пользователями на схеме контекста */
107+
"FieldPath": "*.extension.development_model", /* Путь к значениям для расчета группировок */
108+
"Dictionary": $.dictionaries.DevelopmentModel.parameters}; /* Описание вариантов значений и представлений группируемого атрибута */
109+
110+
$Components := $eval($.functions.get_transformed_components_description, {"Grouping": $Grouping, "Datalake": $});
111+
112+
$ ~> | $ | { "components": $Components } |
113+
114+
)
115+
```
116+
В целом, на этом этапе достаточно добавить свойство контекста `location`, чтобы контекст отобразился в интерфейсе и был доступен в карточке компонента. Следующие пункты необходимы для реализации единого интерфейсного подхода текущего примера.
117+
- Скорректировать файл `\Datalake\docs.yaml`, добавив строки:
118+
```
119+
...
120+
Romashka.doc.GroupingByDevelopmentModel:
121+
type: markdown
122+
source: templates/GroupingByDevelopmentModel.md
123+
...
124+
```
125+
- Добавить **новый** файл `\Datalake\Templates\GroupingByDevelopmentModel.md` следующего содержания (отдельное представление для отображения группировки по модели разработки):
126+
```
127+
**Перейти** | [Группировка по-умолчанию](/docs/Romashka.doc.DefaultView)
128+
| [Группировка по статусу](/docs/Romashka.doc.GroupingByStatus)
129+
| [Группировка по уровню критичности](/docs/Romashka.doc.GroupingByStatusCriticalLevel) |
130+
131+
![Архитектура](@context/GroupingByDevelopmentModel)
132+
```
133+
- Скорректировать в файл `\Datalake\Templates\DefaultView.md`, добавив "ссылку" на созданный ранее документ (`/docs/Romashka.doc.GroupingByDevelopmentModel`):
134+
```
135+
**Перейти** | [Группировка по статусу](/docs/Romashka.doc.GroupingByStatus)
136+
| [Группировка по уровню критичности](/docs/Romashka.doc.GroupingByStatusCriticalLevel)
137+
| [Группировка по модели разработки](/docs/Romashka.doc.GroupingByDevelopmentModel) |
138+
139+
![Архитектура](@context/DefaultView)
140+
```
141+
- Скорректировать в файл `\Datalake\Templates\GroupingByStatus.md`, добавив "ссылку" на созданный ранее документ (`/docs/Romashka.doc.GroupingByDevelopmentModel`):
142+
```
143+
**Перейти** | [Группировка по-умолчанию](/docs/Romashka.doc.DefaultView)
144+
| [Группировка по уровню критичности](/docs/Romashka.doc.GroupingByStatusCriticalLevel)
145+
| [Группировка по модели разработки](/docs/Romashka.doc.GroupingByDevelopmentModel) |
146+
147+
![Архитектура](@context/GroupingByStatus)
148+
```
149+
- Скорректировать в файл `\Datalake\Templates\GroupingByStatusCriticalLevel.md`, добавив "ссылку" на созданный ранее документ (`/docs/Romashka.doc.GroupingByDevelopmentModel`):
150+
```
151+
**Перейти** | [Группировка по-умолчанию](/docs/Romashka.doc.DefaultView)
152+
| [Группировка по статусу](/docs/Romashka.doc.GroupingByStatus)
153+
| [Группировка по модели разработки](/docs/Romashka.doc.GroupingByDevelopmentModel) |
154+
155+
![Архитектура](@context/GroupingByStatusCriticalLevel)
156+
```
157+
50158
## Авторские права
51159
- Автор примера: https://t.me/SultanovStanislav

0 commit comments

Comments
 (0)