Задача полягає в тому, щоб впровадити поле additional information, а також керування ним в адмінці ЦБД, в asset, execution (registry), announcement, redemption (jobber).
Опис
Необхідно додати в об'єкти asset, execution (registry), announcement, redemption (jobber) додаткову інформацію. За своєю сутністю додаткова інформація в цих об'єктах є повною копією додаткової інформації, яку ми додавали в процедури. Вона необхідна для того, щоб ми мали змогу швидше і простіше мігрувати процедури з ЦБД2 на ЦБД3, а також є і бізнесовий запит. Може відбутися кейс, коли організатору необхідно додати до об'єктів в термінальних статусах нові дані або документи. Це пов'язано з подіями, які відбуваються поза системою, і які прямо впливають на об'єкти в термінальних статусах (наприклад, рішення комісії з розгляду скарг, виконавчої дирекції організатора, людський фактор (помилково завантажені документи) або судових органів).
Щодо структури, то структуру необхідно повністю клонувати з процедури. Для зручності нижче додано структуру.
Щодо можливостей в панелі адміністратора, то також необхідно клонувати всі доступні дії для процедури.
Фактично задача полягає в тому, щоб повністю клонувати функціонал додаткової інформації, який є в процедурі, для сервісів registry, jobber.
User stories
Як СА Прозорро.Продажі, я хочу додати поле до об'єктів asset, execution (registry), announcement, redemption (jobber), щоб успішно мігрувати процедури з ЦБД2 на ЦБД3.
Як адміністратор Прозорро.Продажі, я хочу додавати інформацію або документи до об'єктів asset, execution (registry), announcement, redemption (jobber), щоб мати змогу відобразити інфо та/або документи на порталі та майданчиках.
Як організатор процедур, я хочу додавати інформацію до об'єктів asset, execution (registry), announcement, redemption (jobber), щоб надати більше деталей та/або завантажити документи.
Як учасник, я хочу бачити додаткову інформацію про asset, execution (registry), announcement, redemption (jobber), щоб отримати краще розуміння та актуальну інформацію щодо вказаних об'єктів.
Структура даних
Структура даних не має відрізнятись від структури, яка зараз наявна в процедурі.
additionalInformation
[ x-format:list-object default:List [] readOnly:true x-legalNameUa:Додаткова інформація x-legalNameEn:Additional informationbase.AdditionalInformation{
id
string readOnly:true x-legalNameUa:Ідентифікатор об'єкту додаткової інформації x-legalNameEn:Additional information ID x-default:hex
owner
string readOnly:true x-legalNameUa:Ідентифікатор власника об'єкта додаткової інформації x-legalNameEn:Owner ID
datePublished
string($date-time) readOnly:true x-default:now x-legalNameUa:Дата публікації x-legalNameEn:Publish date
dateModified
string($date-time) readOnly:true x-default:now x-legalNameUa:Дата модифікації x-legalNameEn:Modification date
description*
base.MultiLang{
description:
Multi language string model
uk_UA*
string minLength:1 x-legalNameUa:Назва українською x-legalNameEn:Ukrainian name
en_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
x-legalNameUa
"Опис додаткової інформації"
x-legalNameEn
"Additional information description"
}
initiator*
string x-dictionaries:List [ "additional_info_initiators" ] x-legalNameUa:Ініціатор публікації додаткової інформації x-legalNameEn:Additional information initiator
string minLength:1 x-legalNameUa:Назва українською x-legalNameEn:Ukrainian name
en_US
string x-legalNameUa:Назва англійською x-legalNameEn:English name
x-legalNameUa
"Ініціатор публікації"
x-legalNameEn
"Initiator"
}
reason*
string x-dictionaries:List [ "additional_info_reason" ] x-legalNameUa:Причина публікації додаткової інформації x-legalNameEn:Additional information reason
Ідентифікатор, що відображається тільки в документі digitalSignature та використовується для відображення зв'язку між цифровим підписом та документом сутності процедури.
documentOf*
string readOnly:trueEnum: Array [ 1 ]
documentType
stringEnum: Array [ 1 ]
datePublished
string($date-time) readOnly:true x-default:now x-legalNameUa:Дата публікації документу x-legalNameEn:Document publishing date
dateModified
string($date-time) readOnly:true x-default:now x-legalNameUa:Остання дата редагування документу x-legalNameEn:Document modified date
index
integer($int64) x-legalNameUa:Параметр сортування ілюстрацій x-legalNameEn:Document index
Чим менше значення поля, тим вище документ буде при відображенні на майданчиках. Основним документом вважається документ з мінімальним значенням індексу. Якщо параметр не зазначений, документи будуть виводитись останніми у переліку. Якщо кілька документів мають однакове значення параметру, порядок сортування буде залежати від dateModified, Пріоритет у документів доданих раніше.
format
string readOnly:true x-legalNameUa:Формат документу x-legalNameEn:Document format
language
string x-legalNameUa:Мова документу x-legalNameEn:Document language
Індикатор, який вказує, чи був документ доданий у статусі qualification
token
string
_ds_id
string readOnly:true
Ідентифікатор документа в document service
_ds_scope
string readOnly:true
Тип документа за доступом [public/private]
}]
Панель адміністратора ЦБД
Для того, щоб мати можливість керувати додатковою інформацією, необхідно додати можливість адміністратору виновувати наступні дії:
Додати додаткову інформацію
Переглядати додаткову інформацію
Редагувати додаткову інформацію
Дії, які адміністратор не має виконувати:
Видалення додаткової інформації
Видалення (редагування) файлів додаткової інформації
Користувач
Для того, щоб користувач мав змогу отримати і побачити цю додаткову інформацію, необхідно додати відповідні ендпоінти до кожної сутності (asset, execution (registry), announcement, redemption (jobber)), а саме:
В бічному меню в пункті меню "commands" бачить команди:
Add additional information to procedure
Add additional information to asset
Add additional information to execution
Add additional information to announcement
Add additional information to redemption
Біля кожної команди бачить кнопки:
Add (перенаправляє на сторінку додавання ДІ)
View (перенаправляє на сторінку перегляду історії додавання ДІ)
Add
При натисканні на кнопку add, адміністратора перенаправляє на сторінку додавання нової додаткової інформації.
Має можливість знайти об'єкт
asset за
_id
assetId
owner
status
execution за
_id
executionId
owner
status
announcement за
_id
objectId
owner
status
redemption за
_id
objectId
owner
status
Заповнити наступні поля:
Additional information initiator
Additional information reason
Reason
Додати файли (за потреби). Завантаження файлів відбувається згідно стандартного флоу і валідацій.
Ввести OTP
Підтвердити публікацію додаткової інформації
Важливо, що система має згенерувати дані для наступних полів:
owner
datePublished
dateModified
View
При натисканні на кнопку view, адміністратора має перенаправити на сторінку перегляду події додавання додаткової інформації. У вікні необхідно відобразити наступні дані:
id
description
initiator
initiator other
addInfo reason
addInfo reason other
reason
created at
created by
files
command results
Edit
Для редагування також треба додати команди в бічне меню, а саме:
Add additional information to procedure
Add additional information to asset
Add additional information to execution
Add additional information to announcement
Add additional information to redemption
При редагуванні адміністратор має знайти сутність. в якій є об'єкт додаткової інформації, після чого обрати який саме об'єкт додаткової інформації буде редагуватись.
History
Кожну зміну, яка відбувається з об'єктом, необхідно зберігати і в подальшому відображати в history.