Описание избирательных комиссий - GolosMovement/StatElectGenerator GitHub Wiki
Анализ строится по численным данным протоколов избирательных комиссий.
Совокупность избирательных комиссий образует иерархию избирательной системы. Комиссия одного уровня входит в зону полномочий своей вышестоящей комиссии. В свою очередь, эти комиссии входят в зону полномочий вышестоящих комиссии следующего уровня и так далее, до комиссии в которой определяются результаты голосования (комиссия верхнего округа).
Данные протоколов всех комиссий, кроме комиссий первого уровня - это суммарные данные из протоколов нижестоящих комиссий. Для определенных выборов комиссия составляет только один итоговый протокол. Таким образом, протоколы образуют ту же иерархию, что и избирательные комиссии. Можно сказать, что иерархия комиссий - административное понятие, а иерархия протоколов - иерархия числовых данных. Описание протокола наследует описание комиссии и описание выборов.
Таким образом, описания комиссий используются в описании протоколов и используются при визуализации данных.
Описание элементов иерархии избирательных комиссий
В базе данных предусмотрена возможность сохранения описания для избирательной комиссии любого уровня: числовое описание (номер комиссии, код региона), текстовые описания на двух рабочих языках (русском - строковое поле [TitleRus] и английском - [TitleEng]) и на языке оригинала ([TitleNative]). В базе данных иерархия комиссий описывается внутренним идентификационным номером и не зависит от этих описаний. Более того, полный набор текстовых описаний на всех языках трудоемко создавать и бессмысленно поддерживать:
- тысячи названий мелких населенных пунктов не имеют аналогов в рабочих языках
- большинство названий не известны и ничего не говорят пользователям
- локация обнаруженной аномалии будет уточнятся исходя из названия на языке оригинала
Имеет смысл поддерживать текстовые описания в языках, отличных от языка оригинала, для крупных регионов и известных городов. При выборе комиссии пользователь сможет ориентироваться в иерархии, а при визуализации подписи будут более понятны.
Использование описаний
Навигация пользователя по иерархии комиссий
Такая навигация используется в списках или tree-view. При навигации пользователю удобнее ориентироваться в описаниях на родном языке.
Приоритет для вывода в навигации:
- описание на рабочем языке выбранным пользователем [Title(рабочий язык выбранный пользователем)]
- описание на языке оригинала (из поля [TitleNative]
- описание на другом рабочем языке (из поля [Title(второй рабочий язык)]
Согласно нашим соглашениям, хотя бы одно текстовое описание для комиссии обязательно должно быть.
При сортировке, корректнее сортировать по номеру, если он есть. Таким образом "УИК №11" не будет идти за "УИК №1" вместо "УИК №2".
Приоритет для сортировки в навигации:
- числовое описание (номер комиссии, номер региона, из поля [CommissionNumber])
- текстовое описание на рабочем языке выбранным пользователем (из строкового поля [Title(рабочий язык выбранный пользователем)]
- текстовое описание на языке оригинала (из поля [TitleNative])
- текстовое описание на другом рабочем языке (из поля [Title(второй рабочий язык)]
Сортировка при анализе
При сортировке, корректнее сортировать по номеру, если он есть. Таким образом "УИК №11" не будет идти за "УИК №1" вместо "УИК №2".
Приоритет для сортировки в навигации:
- числовое описание (номер комиссии, номер региона, из поля [CommissionNumber])
- текстовое описание на рабочем языке выбранным пользователем [Title(рабочий язык выбранный пользователем)]
- текстовое описание на языке оригинала (из поля [TitleNative]
- текстовое описание на другом рабочем языке (из поля [Title(второй рабочий язык)]
Подписи к данным
Текстовое подписи более информативны чем просто цифры. Ср. "Мазовецкое - 00232 - 92323" vs. "Мазовецкое - Код региона: 00232 - УИК № 92323".
Приоритет при формировании подписей к данным
Что будет существовать первым:
- текстовое описание на рабочем языке выбранным пользователем [Title(рабочий язык выбранный пользователем)]
- текстовое описание на языке оригинала (из поля [TitleNative]
- текстовое описание на другом рабочем языке (из поля [Title(второй рабочий язык)]
Согласно нашим соглашениям, хотя бы одно текстовое описание для комиссии обязательно должно быть.