ti-broish / admin Goto Github PK
View Code? Open in Web Editor NEWПреброителен център на платформата Ти Броиш
Home Page: https://tibroish.bg
License: MIT License
Преброителен център на платформата Ти Броиш
Home Page: https://tibroish.bg
License: MIT License
Универсално поле за търсене по име, фамилия, имейл, телефон и визуализиране на резултати при частично съвпадение
See https://github.blog/changelog/2021-07-02-github-actions-setup-node-now-supports-dependency-caching/
We can now use the cache: npm
option in all of these cases:
Приложение № 81-НС-х
и № 82-НС-хм
в https://www.cik.bg/bg/ns02.04.2023/documents
Протокол | Screenshot |
---|---|
Гласуване с хартия | Гласуване с хартия и машина |
Поле от протокола | Поле от API-то |
---|---|
Хартиен | hasPaperBallots (винаги true в тази кампания) |
Хартиено-Машинен | machinesCount (0 /1 в тази кампания) |
Чернова/Оригинал | isFinal (false /true ) |
А. |
totalBallotsCount |
1. |
votersCount |
2. |
additionalVotersCount |
3. |
votersVotedCount |
4. а) |
uncastBallots |
4. б) |
invalidAndUncastBallots |
5. (х) |
nonMachineCastBallotsCount |
5. (м) |
machineCastBallotsCount |
5. (о) |
castBallotsCount |
6. |
invalidVotesCount |
7. (х) |
nonMachineVotesCount |
7. (м) |
machineVotesCount |
7. (о) |
validVotesCount |
7.1. (х) |
partyNonMachineVotesCount |
7.1. (м) |
partyMachineVotesCount |
7.1. (о) |
partyValidVotesCount |
7.2. (х) |
results.[0].nonMachineVotesCount |
7.2. (м) |
results.[0].machineVotes[0] |
7.2. (о) |
results.[0].validVotesCount |
8. (х) |
results.[1-n].nonMachineVotesCount |
8. (м) |
results.[1-n].machineVotes[0] |
8. (о) |
results.[1-n].validVotesCount |
Kогато се филтрират протоколите по статус и се отиде на втора страница се достъпва грешен URL на API-то.
например: /protocols?&status=receivedpage=2
Менюто ще бъде достъпно от потребител с роля Видео-валидатор. Процес:
Когато юрист иска да публикува сигнал трябва да му излиза textarea поле, което да е предварително попълнено с авторския текст от описанието на сигнала.
Юристът може да коригира текста или да редактира лични данни.
Това поле се записва и се показва в админа за публикувани сигнали редом до описанието с възможност за редакция.
В сайта публикуваните сигнали се показват само с този текст за публикуване, а не с оригиналния текст на сигналоподателя.
Към секция ДАННИ ОТ ИЗБИРАТЕЛНИЯ СПИСЪК
НОВА секция ДАННИ ИЗВЪН ИЗБИРАТЕЛНИЯ СПИСЪК
Към секция СЛЕД КАТО ОТВОРИ ИЗБИРАТЕЛНАТА КУТИЯ, СИК УСТАНОВИ:
таб Сигнали да се добавят следните филтри над списъка:
Под филтрите да се добави бутон „Търси“ за изпълнение на търсенето.
Бутон „Изчисти“ връща стойностите на филтрите с дефолтното им състояние.
DELETE /users/:id
Трябва да се използва Firebase Authentication SDK подобно на мобилното приложение.
вместо да се разпъват до максимум ширина
Тази таблица трябва да я има само когато имаме данни в props.protocol.author?.organization.name
. Пропуснал съм го това като правех автора на протокола optional.
Originally posted by @hkdobrev in #84 (comment)
Списъкът да бъде подреден по N на секция.
Под филтрите да се добави бутон „Търси“ за изпълнение на търсенето.
Всички полета са задължителни за попълване.
Например валидатори от други партии да имат достъп да намират и виждат всички протоколи в преброителния център.
Трябва да разполагат с всички инструменти както при първичното валидиране и ако преценят да го отхвърлят. Протокола трябва да изчезне от сайта и гласовете да не влизат в резултатите.
От гледна точка на API-то това би трябвало вече да е възможно или да са нужни малки корекции.
В момента има някои, които не са преведени, защото липсват от mapping-а на клиента, а други са преведени грешно, което обърква.
Да се добави "3. Брой на гласувалите избиратели според положените подписи в избирателния списък, включително и подписите в допълнителната страница (под чертата)"
"4. Бюлетини извън избирателната кутия" трябва да са две отделни полета:
4а Брой на неизползваните бюлетини
4б Общ брой на недействителните бюлетини
"7. Общ брой на намерените в избирателната кутия действителни гласове (бюлетини)" трябва да се замести със
7.1. Брой на действителните гласове, подадени за кандидатските листи на партии, коалиции и инициативни комитети
"7. РАЗПРЕДЕЛЕНИЕ НА ГЛАСОВЕТЕ ПО КАНДИДАТСКИ ЛИСТИ" да се махне седмицата. Остава без номерация.
Да се добави "3. Брой на гласувалите избиратели според положените подписи в избирателния списък, включително и подписите в допълнителната страница (под чертата)"
Да се добави "4а. Брой на неизползваните бюлетини"
Да се добави "4б. Брой на унищожените от СИК бюлетини по други поводи (за създаване на образци за таблата пред изборното помещение и увредени механично при откъсване от кочана)"
"7. РАЗПРЕДЕЛЕНИЕ НА ГЛАСОВЕТЕ ПО КАНДИДАТСКИ ЛИСТИ" да се махне седмицата. Остава без номерация.
Да се добави "3. Брой на гласувалите избиратели според положените подписи в избирателния списък, включително и подписите в допълнителната страница (под чертата)"
"4. Бюлетини извън избирателната кутия" трябва да са две отделни полета:
4а Брой на неизползваните бюлетини
4б Общ брой на недействителните бюлетини
"7. Общ брой на намерените в избирателната кутия действителни гласове (бюлетини)" трябва да се замести със
7.1. Брой на действителните гласове, подадени за кандидатските листи на партии, коалиции и инициативни комитети
"7. РАЗПРЕДЕЛЕНИЕ НА ГЛАСОВЕТЕ ПО КАНДИДАТСКИ ЛИСТИ" да се махне седмицата. Остава без номерация.
В момента имаме проверка, която сумира общия брой гласове по партии от т.7 и ги сравнява със стойността в 6.1
След промените и актуализациите тази проверка трябва да е следната:
Сумира общия брой гласове по партии и ги сравнява със стойността в 7.1
При протокол Машинен и Хартиено-машинен с една машина се добавят две НЕЗАДЪЛЖИТЕЛНИ полета с максимална дължина от четири символа.
Label: Запишете хеша, който се намира в края на разпечатката от машината за гласуване.
При протокол Машинен и Хартиено-машинен с две машини се добавят четири НЕЗАДЪЛЖИТЕЛНИ полета с максимална дължина от четири символа.
Label: Запишете хеша, който се намира в края на разпечатката от машината за гласуване.
В меню Администриране да се добавят 2 таба: таб Потребители и таб Секции (да се избере подходящо решение, примерно вместо табове да са линкове или друго). Достъп до менюто се осъществява само с роля Администратор.
В таб Потребители да се добави списък със следните колони:
Име и Фамилия;
Е-mail;
Телефон;
Организация;
Съгласие за обработка на лични данни;
Роля – изброени прилежащите роли на потребителя. По подразбиране всички потребители са с роля „Наблюдател“ и „Оператор“ след регистрация в мобилното приложение Ти броиш.
Edit бутон за промяна на данни на потребител.
Резултатите в списъка да бъдат подредени по азбучен ред.
Ролите да бъдат предефинирани и избора им да става с чек-бокс.
При избор на роля Администратор, изборът на останалите роли да се деактивира.
При избор на роля Супер валидатор, изборът на роля Валидатор да се деактивира и обратно.
Бутон Запис записва въведените данни и връща към списъка с потребители.
Под филтрите да се добави бутон „Търси“ за изпълнение на търсенето.
Бутон „Изчисти“ връща стойностите на филтрите с дефолтното им състояние.
Статусите, които може да получи всеки протокол са:
Под филтрите да се добави бутон „Търси“ за изпълнение на търсенето.
Бутон „Изчисти“ връща стойностите на филтрите с дефолтното им състояние.
Всеки протокол ще бъде проверен от минимум двама валидатори – условно наречени Валидатор 1 и Валидатор 2. В случай, че резултатите от валидирането между тях не съвпадат и/или единия е валидирал протокола, а другия го е отхвърлил, то протокола се назначава на Супер валидатор, който решава окончателния резултат.
Създаване на механизъм за избягване на дублиране при вземане на протокол:
Протокол, назначен на Валидатор 1 не може да бъде назначен на друг Валидатор, а само на Валидатор 2 след приключване на валидирането;
Протокол, назначен на Валидатор 2 не може да бъде назначен на друг Валидатор;
Протокол, назначен на Супер валидатор не може да бъде назначен на друг Валидатор ИЛИ Супер валидатор.
Действия на Валидатор 1 (назначават му се протоколи, които до момента не са валидирани):
3.1. Успешно валидира протокол – в този случай протоколът се връща на опашката и чака да бъде валидиран от Валидатор 2.
3.2. Отхвърля протокол – след избор на бутон Отхвърли се визуализира прозорец за избор на причина с радио-бутони от следните:
3.3. Протоколът се назначава на Валидатор 2, но с по-висок приоритет от невалидираните протоколи в опашката.
Отказ от валидиране (стрелка за връщане към Опашката) – протоколът не се назначава повече на същия валидатор, назначава се на друг Валидатор 1.
Действия на Валидатор 2 (назначават му се протоколи, за които вече има действия по валидиране/отхвърляне на протокол от Валидатор 1. С приоритет се назначават протоколи, преминали през Валидатор 1.):
4.1. Успешно валидира протокол – протоколът се публикува на сайта и резултатите от него се акумулират към останалите;
4.2. Отхвърля протокол – след избор на бутон Отхвърли се визуализира причината за отхвърляне от списъка.
За да се изпрати съобщение до наблюдателя протоколът трябва да е два пъти отхвърлен с една и съща причина (първата и втората причина от посочените. При избор на различни причини и при двама валидатори посочили “Друго” протоколът отива при Супер валидатор.
4.3. Отказ от валидиране (стрелка за връщане към Опашката) – протоколът не се назначава повече на същия валидатор, назначава се на друг Валидатор 2.
Действия на Супер валидатор (назначават му се протоколи, за които резултатите от валидирането между Валидатор 1 и Валидатор 2 не са 100% еднакви, или единия е валидирал протокола, а другия го е отхвърлил):
5.1. Успешно валидира протокол – протоколът се публикува на сайта и резултатите от него се акумулират към останалите;
5.2. Отхвърля протокол – протоколът не се публикува на сайта, той изпраща съобщение на потребителя само при определени причини
5.3. Отказ от валидиране (стрелка за връщане към Опашката) – протоколът не се назначава повече на същия валидатор, назначава се на друг Супер валидатор.
Резултатите по партии да се визуализират в 3 колони:
Валидатор 1 | Валидатор 2 | Супер валидатор |
---|---|---|
Попълнени данни без възможност за промяна. Ако протоколът е отхвърлен се визуализират празни клетки и причина. | Попълнени данни без възможност за промяна. Ако протоколът е отхвърлен се визуализират празни клетки и причина. | Автоматично са попълни клетките, където резултатите между Валидатор 1 и Валидатор 2 съвпадат. Клетките, където резултатите се разминават са празни и са оцветени в червено. |
Как можем да гледаме снимките едновременно и на двата протокола, могат и да са 3?
Как ще променяме статус на вече публикуван протокол?
Можем ли да използваме логиката за преглед на резултатите при разминаване на протоколи при Валидатор 1 и Валидатор 2, като:
Протокол 1 | Протокол 2 | Супер валидатор |
---|---|---|
Попълнени данни без възможност за промяна | Попълнени данни без възможност за промяна | Автоматично са попълни клетките, където резултатите между Протокол 1 и Протокол 2 съвпадат. Клетките, където резултатите се разминават са празни и са оцветени в червено. |
В админ панела да се добави секция "Въпроси и отговори" с инфо, което ще напълним. Само видео според мен няма да е достатъчно, защото при проблем ти трябва бързо решение, а не да изгледаш цялото видео.
Администратор в преброителния център от таб протоколи трябва да може да отпубликува протокол, който да бъде премахнат от табулирането на резултатите и да не бъде показван на страницата на секцията.
Полезно за протоколи, които погрешно са били публикувани.
Изисква промени в АPI-то с нова причина за отхвърляне на протокол.
При завъртане на протокол част от данните се губят и не могат да се визуализират. И не са видими. Могат да се вкарат както са в обърнат вид.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.