open-contracting / bi.dream.gov.ua

DREAM Analytics
https://bi.dream.gov.ua
Apache License 2.0
1 stars 0 forks source link

Органи управління: Профіль #45

Open ndrhzn opened 10 months ago

ndrhzn commented 10 months ago

Так звана "Картка органу управління" потрібна для того, аби представляти ключові показники щодо окремого (обраного користувачами зі списку) органу управління. Референсом щодо цього блоку слугує модуль "Картка організатора" у BI Prozorro.

Взаємодія з цією сторінкою починається з того, що користувачам потрібно обрати один орган управління зі списку всіх органів управління. Список має сенс сортувати, наприклад, за кількістю проєктів або ж за загальним орієнтовним бюджетом, аби на початку списку були органи управління, до котрих підвищений інтерес.

Ідеально було б зробити один орган управління обраним одразу через pre-select, але тут технічне питання, чи може у нас буде pre-select локальний (тобто для однієї сторінки, а не для всіх сторінок).

Для обраного органу управління (а також для будь-якої підпорядкованої організації, яку виберуть користувачі) ми показуємо:

Частину цих показників, ймовірно, можна дати у форматі карток, а частину винести у візуалізації

З візуалізацій у цьому блоці є запит на:

Також є запит на інформаційний блок, який би представляв для кожної організації

Щодо кількості користувачів, можливо, доведеться сформувати окремий запит до команди розробки, оскільки наразі у companies endpoint у нас є елемент persons, але для більшості організацій він може бути порожнім.

Основні фільтри у цьому випадку такі

ndrhzn commented 9 months ago

Поточний статус - є драфт, втім він поки не у повній мірі відповідає описаному завданню. Найголовніше, на що варто звернути увагу - таблиця з органами управління та картка органу управління це два окремі аркуші (як, скажімо, "Фінансування" та "Деталі фінансування") @andrzejbeletsky

image

Завдання для таблиці таким чином доволі просте (#40), але для його виконання треба буде ще повернутися до витоків методики визначення органу управління аби ми могли коректно обчислювати кількість підпорядкованих організацій, кількість проєктів, та суми контрактних процедур (#17).

Завдання для профілю органу управління трохи складніше, бо тут є запит бачити ієрархію організацій (для обраного органу управління ми маємо бачити всі підпорядковані організації, а також їхні підпорядковані організації, якщо такі є), а також мати можливість досліджувати ключові показники не тільки для органу управління, але й, наприклад, для будь-якої підпорядкованої організації.

Таким чином нам потрібно мати в даних ієрархію організацій, а також підпорядкованість проєктів. І нам потрібно мати можливість відображати цю ієрархію.

Щодо відображення ієрархії ми вже говорили, що зведена таблиця тут не дуже підходить, бо глибина ієрархії може варіюватися (у когось може бути три рівня підпорядкованості, у когось - лише один).

У процесі обговорення ми також згадували, що у Qlik є можливість відображати дерево (Org Chart). Є сенс дослідити цю механіку.

Щодо показників - ми зафіксували, що "Кількість користувачів" ми наразі з АРІ не отримуємо, тому поки робимо без цього показника. Решта даних у нас має бути.

ndrhzn commented 9 months ago

Поточний статус - реалізовано драфт із деревом, що відображає ієрархію організацій, та фільтрами

image

Що варто зробити

image

cc @a-radik @andrzejbeletsky

ndrhzn commented 9 months ago

Також варто виправити обрізання тултіпа у дереві. Не знаю, чи виправляється це в нативному додатку, але у веб-версії це могло б бути виправлено в CSS за допомогою z-index для тултіпа.

image

ndrhzn commented 9 months ago

Поточний статус

image

Питання та пропозиції

Відкриті питання з попереднього коментаря

ndrhzn commented 9 months ago

Також, якщо я правильно розумію, зараз на карті всі показники привʼязуються до регіону органу управління. Скажімо, якщо ми обираємо Держагентство з відновлення, то ми будемо бачити 173 проєкти в Києві, хоча на практиці там ймовірно більшість проєктів розкидані по регіонах (оскільки там підпорядковані організації - регіональні служби відновлення)

a-radik commented 9 months ago

По органах управління в нас відсутня аналітика, тільки таблиця і картка по одному органу. В слаку давав свої пропозиції стосовно того, що можна було би зробити, якщо це актуально, перенесу своє бачення сюди

andrzejbeletsky commented 9 months ago

in progress

ndrhzn commented 9 months ago

Задокументую тут пропозицію @a-radik: зробити таким чином, аби поведінка мінялась в залежності від того, обраний один орган управління чи декілька.

Для імплементації такого підходу нам потрібно буде визначити, що і в який спосіб відображається, коли обрано більше одного органу управління.

Наразі я би хтів прояснити ось цю річ, задокументовану вище:

Чи ми можемо технічно показувати різні графіки для різних обраних KPI? Скажімо, якщо обрано "Кількість проєктів", то ми показуємо розбивку за статусом, якщо обрано "Загальний орієнтовний бюджет" - розбивку за статею витрат.

Якщо це технічно можливо, тоді випишемо, який графік і які розрізи мають відображатися для кожного обраного показника. І це гіпотетично може нам відкрити дорогу до представлення показників для ситуації, коли обрано більше, ніж один орган управління

andrzejbeletsky commented 9 months ago

Take a look. https://qsdemo.rbcgrp.com/sense/app/b0f13ce0-e592-48bc-9432-6da4de1f8cfb/sheet/6af478e8-e063-45ae-aade-9baec40edce9/state/analysis Варіант з компонентом, який підтримує одне вибране значення. Сортування за бюджетом. Недолік - не підтримує пошук. Якщо це потрібно, можливо добавити Орган управління в секцію звичайних фільтрів.

Карта відображає області проєктів, до яких вибраний Орган управління має відношення.

Показники на на об'єктах відображають вибраний на картках.

Другий варіант https://qsdemo.rbcgrp.com/sense/app/b0f13ce0-e592-48bc-9432-6da4de1f8cfb/sheet/372036c3-5540-4a42-a517-f7f180746cda/state/analysis При вході на сторінку вибирається один Орган управління але сторінка не підтримує вибір лише одного значення Органу управління. Звичайний фільтр. Користувач може скинути відбір або вибрати більш одного значення.

Поведення орг-чарту - поки не знайдено можливість змінити поведінку з довгими назвами і неповним показуванням тултіпу. Також не зрозуміло, як реагувати на селекшен в самому орг-чарті. Відбір підлеглої організації доповнює відбір Органу управління. Це не приводить до конфліктів з показниками, але може заплутати користувача. Можливо, має сенс в мєшапі заблокувати користувачеві робити відбір в орг-чарті.

andrzejbeletsky commented 9 months ago

TODO: 1)прибираємо картку "Кількість підпорядкованих організацій", в Title орг-чарту пишемо назву обраного органу управління, а потім "Кількість підпорядкованих організацій: Х" 2)якщо для органу управління всі проєкти належать до одного регіону - ми зумимо до рівня області і представляємо показники у розрізі громад. 3)показувати різні графіки для різних обраних KPI. Скажімо, якщо обрано "Кількість проєктів", то ми показуємо розбивку за статусом, якщо обрано "Загальний орієнтовний бюджет" - розбивку за статею витрат. питання- яка розбивка для інших показників? 4)Сортування органів управління у фільтрі за показником "Кількість підпорядкованих організацій".

andrzejbeletsky commented 9 months ago

take a look https://qsdemo.rbcgrp.com/sense/app/b0f13ce0-e592-48bc-9432-6da4de1f8cfb/sheet/6af478e8-e063-45ae-aade-9baec40edce9/state/analysis

ndrhzn commented 9 months ago

Мені здається, ми потроху getting there, дякую

З тих речей, котрі ще варто пропрацювати

Показник / Картка Графік
Кількість проєктів Кількість / Частка проєктів у розрізі статусів. Тут можемо взяти графік із аркушу "Проєкти"
Загальний орієнтовний бюджет Загальний орієнтовний бюджет у розрізі статей витрат. Тут можемо взяти графік із аркушу "Бюджетування"
Підтверджене фінансування Підтверджене фінансування у розрізі фінансуючих сторін. Це може бути стовпчиковий графік, де по Y йдуть фінансуючі сторони, по X йде підтверджене фінансування
Фінансове покриття Розподіл проєктів за фінансовим покриттям. Це може бути гістограма, де по Х йдуть інтервали (наприклад з кроком в 5%), а по Y - кількість проєктів у тому чи іншому інтервалі
Кількість контрактних процедур Кількість / Частка контрактних процедур за статусом (cdu_response/contractingProcesses/summary/status)
Сума укладених контрактів Сума укладених контрактів у розрізі статусу договору (cdu_response/contractingProcesses/summary/contract/status

Щодо інших питань відпишу трохи згодом

ndrhzn commented 9 months ago

Коли я пишу "Тут можемо взяти графік із аркушу...", то маю на увазі буквально взяти те, як він виглядає на тому аркуші. В такий спосіб у нас буде консистентний спосіб представлення інформації (один набір показників в однаковий спосіб представляється у різних частинах BI)

a-radik commented 9 months ago
Показник / Картка Графік
Кількість проєктів Кількість / Частка проєктів у розрізі статусів. Тут можемо взяти графік із аркушу "Проєкти". Тут питання, чому кількість проєктів ми здебільшого показуємо в розрізі їх статусів. Чи не буде, з точки зору аналітичної цінності, краще надати користувачу можливість вибору розрізу (за Характерами, типами, сектор/підсектор, де ОУ здійснює проєкти, інші атрибути проєктів. Це дасть ширшу інформацію в одному місці без необхідності перемикатись між вкладками, а за необхідності більш глибокого аналізу користувач має змогу перейти на деталі проєктів і подивитись показники там
Загальний орієнтовний бюджет Схоже з попереднім пунктом запитання і пропозиція розлянути варіант стекової діаграми, де стовпчики додатково розділяються за секторами для статей бюджетування
Підтверджене фінансування аналогічно до попереднього, але по вісі Y розташувати Джерело фінансування, а стеки утворювати з Фінансуючих сторін
ndrhzn commented 9 months ago

@a-radik дякую за пропозиції! Я подумаю щодо імплементації. З одного боку - справді, ми можемо додати більше розрізів, з іншого - хотілось би уникнути ситуації перевантаження інформацією чи візуального хаосу. У випадку із stacked bar chart, де по осі стовпчики розділяються за секторами в такому випадку мені потрібно буде зрозуміти, якою може бути максимальна кількість секторів в одному стовпчику. Якщо це стільки ж, скільки у нас секторів загалом (11), тоді це означає, що стовпчик може мати 11 секторів різних кольорів. Аналогічно і з Джерелами фінансування та Фінансуючими сторонами.

Тому я подумаю, які розрізи має сенс додати, аби це мало аналітичну цінність та не створювало візуального хаосу.

andrzejbeletsky commented 9 months ago

Take a look https://qsdemo.rbcgrp.com/sense/app/b0f13ce0-e592-48bc-9432-6da4de1f8cfb/sheet/6af478e8-e063-45ae-aade-9baec40edce9/state/analysis Які пропозиції щодо текстових підписів?

a-radik commented 9 months ago

@a-radik дякую за пропозиції! Я подумаю щодо імплементації. З одного боку - справді, ми можемо додати більше розрізів, з іншого - хотілось би уникнути ситуації перевантаження інформацією чи візуального хаосу. У випадку із stacked bar chart, де по осі стовпчики розділяються за секторами в такому випадку мені потрібно буде зрозуміти, якою може бути максимальна кількість секторів в одному стовпчику. Якщо це стільки ж, скільки у нас секторів загалом (11), тоді це означає, що стовпчик може мати 11 секторів різних кольорів. Аналогічно і з Джерелами фінансування та Фінансуючими сторонами.

Тому я подумаю, які розрізи має сенс додати, аби це мало аналітичну цінність та не створювало візуального хаосу.

Можу помилятсиь, теба перевірити (@andrzejbeletsky ) але здається там можна визначити скільки сегментів має бути в стовпчику, а решту показувати в "Інші"

ndrhzn commented 9 months ago

Відображення текстових елементів в оргчарті

Щодо проблеми із видимістю текстових елементах у дереві. Якщо у вас є можливість задавати CSS, тоді можливий шлях редагування CSS

Наразі в картці оргчарту ми можемо дістатися до елементів з класами .sn-org-card-title (це буде назва організації) та .sn-org-card-label (це буде назва показника).

У них обох в CSS задана властивість white-space: nowrap;

Для .sn-org-card-label ми можемо задати white-space: initial; в такому разі назви показників та їхні значення мають повністю відображатися.

image

Для .sn-org-card-title це, на жаль, не має сенсу, оскільки в такому разі розмір контейнера (div у котрому розміщуються ці два текстових елементи) автоматично не збільшується все одно, і ми ризикуємо отримати щось, що геть не читається

image

Отже, нам треба або змиритися з тим, що назви не будуть повністю вміщатися, або підготувати датасет зі скороченими версіями назв чи функцію для скорочення назв за правилами, або ж змінювати CSS правила, котрі визначають висоту div, у котрому знаходяться ці елементи.

Наразі це просто думки вголос і документація процесу.

andrzejbeletsky commented 8 months ago

Take a look: https://qsdemo.rbcgrp.com/sense/app/b0f13ce0-e592-48bc-9432-6da4de1f8cfb/sheet/6af478e8-e063-45ae-aade-9baec40edce9/state/analysis

ndrhzn commented 8 months ago

Картки слід розподілити рівномірно по ширині всього доступного простору. Я памʼятаю, що у mashup все одно буде перероблятися, але нам треба умовно погодити макет, і це є частиною макету.

Коли обрано “Загальний орієнтовний бюджет” ми бачимо стовпчики двох кольорів - один колір позначає капітальні витрати, інший операційні витрати, однак легенди, котра б пояснювала це кольорове кодування у нас немає. Її варто додати.

Коли обрано “Підтверджене фінансування”, ми бачимо стовпчики, котрі позначають фінансуючи сторони та обсяг фінансування. Тут можна додати розрізнення за кольором за змінною “Тип фінансування” (можливі значення наразі - “Державні кошти” та “Гроші міжнародних партнерів”). Для цього теж потрібна буде легенда.

Коли обрано “Фінансове покриття” ми бачимо графік розподілу, одна тут є пара проблем: 1) Підписи інтервалів занадто складні, тут не треба писати щось на зразок 0 <= % < 5, достатньо підписати 0-5; 2) Тут можливі розриви в інтервалах - наприклад, якщо обрати Чернігівська обласна державна адміністрація, то буде два стовпчики один за іншим, перший буде позначати діапазон 0-5, другий - 100-105. Якби ми малювали коректну гістограму, між цими двома стовпчиками було б зарезервовано місце для інших інтервалів від 5 до 100 з кроком в 5. Варто це переробити.

Коли обрано “Кількість контрактних процедур”, ми бачимо розбивку за статусами контрактних процедур. Тут потрібно підтягнути кодліст, аби коректно відображалися переклади українською (я оновив табличку у DREAM Translations). Також варто звернути увагу на те, що наразі деякі підписи обрізаються, тому слід можливо змінити розміри самого графіку чи налаштувати інакше відображення підписів. У тултіпі тут виводиться підпис “кількість проєктів”, але більш мало б сенс “кількість контрактних процедур” (а може є сенс виводити і кількість проєктів, і кількість контрактних процедур).

Коли обрано “Сума укладених контрактів”, мені видається, можна додати ще один графік, котрий би показував розбивку укладених контрактів за категорією предмету договору (services, works, goods).

ndrhzn commented 8 months ago

Також питання, чи ми можемо параметризувати колір тла в оргчарті? Я от думаю про такий сценарій - коли я досліджую, наприклад, суму укладених контрактів, то я хочу швидко зрозуміти, які з організацій мають ненульові показники (або ж знайти організації з найбільшими показниками). Але через те, що тло у всіх однакового кольору, вони всі для мене візуально мають однакову вагу. Чи можна, скажімо, позначати організації з нульовими показниками, трохи іншим кольором, аби було простіше розрізняти важливу та неважливу інформацію?

image

andrzejbeletsky commented 8 months ago

in progress

andrzejbeletsky commented 8 months ago

take a look “Підтверджене фінансування”-показати всі стовпчики поки не зміг. проблема, що немає власне даних для відсутніх стовпчиків. В бубліку автообрізання підписів. додав легенду для дублювання тих самих підписів. До "Сума укладених контрактів" є вибір альтернативного виміру в самому графіку.

ndrhzn commented 8 months ago

"Фаінансове покриття" - а тут використовується власне гістограма (і в такому разі шаблон сам розподіляє записи по інтервалах заданої ширини), чи стовпчиковий графік, у котрий подаються наперед пораховані значення для інтервалів?

"Кількість контрактних процедур" - якщо ми додаємо легенду тут, то ймовірно потрібно буде додавати легенду і в інших подібних випадках суто заради консистентності. Також варто подивитися, чи можна тут застосувати такі самі налаштування (діаметр та товщина сегмента), що і на графіку для кількості проєктів.

"Сума укладених контрактів" - тут, ймовірно, розбивку за статусами слід показувати в такий самий спосіб, в який ми показуємо розбивку за статусами для контрактних процедур та проєктів, тобто за допомогою. donut chart (знову ж таки - заради консистентності). Категорію предмету договору можна було б давати окремим графіком - у нас достатньо місця, і таким чином користувачі отримуватимуть одразу більше інформації без необхідності кудись клікати.

Для "Категорії предмету договору" варто додати кодліст

code name_ua name_en
works Роботи Works
services Послуги Services
goods Товари Goods

Null значення варто заміняти на "Не зазначено" / Not specified

andrzejbeletsky commented 8 months ago

in progress

andrzejbeletsky commented 7 months ago

take a look https://qsdemo.rbcgrp.com/sense/app/b0f13ce0-e592-48bc-9432-6da4de1f8cfb/sheet/6af478e8-e063-45ae-aade-9baec40edce9/state/analysis Стосовно "Сума укладених контрактів" - також зроблено. Але з використанням нового Layout-Container. На тестовому сервері потрібно оновлення серверу, щоб цей компонент став доступним. Оновлення планується зробити до завтра.

a-radik commented 7 months ago

@ndrhzn оновили наш демо сервер, можна подивитись за посиланням результати