[Портал] На сторінці перегляду деталей аукціону обрізати зайві 0 для дробних чисел
Через необхідність відображати дробні числа в відсотках зниження, відсотках мінімального кроку підвищення ціни чи відсотках гарантійного внеску, в шаблонах для floatformat прописали значення 1 чи 2. Приклад: https://prozorro.sale/auction/NLD001-UA-20250121-52157/
Але одночасно з тим, для аукціонів з цілими значеннями відображаються зайві 0. Приклад: https://prozorro.sale/auction/SPE001-UA-20250123-30517/
Необхідно покращити логіку відображення, та не відображати 0 після коми, а також не відображати 0 в значеннях типу 0,10
__________________________________________________________
Так як кількість знаків після коми регулюється функцією floatformat, якщо ми зробимо зміни в цій функції, то це відобразиться у всіх шаблонах для всіх полів, де використовується функція floatformat.
Тому міняти логіку функції floatformat Не потрібно.
Для деяких полів існує необхідність мати особиле відображення числа. На практиці нижчеописана логіка буде використовуватись для полів, які відображають відсотки (%).
Логіка:
Для чисел з дробовою частиною відображати дробову частину без нулів в кінці рядка
Для цілих чисел - не відображати дробову частину
Приклади:
0.01 --> 0.01
0.10 --> 0.1
1.1 --> 1.1
1.00 --> 1
Рішення:
розробити функцію style_value_fraction, яку можна використати в шаблоні для якогось значення і при застосуванні відтворюється логіка із прикладів вище.
Зараз існує функція {% style_value_amount obj.value_amount %} , яку використовуємо, щоб показати два знаки після коми для цілого числа там, де це потрібно.
Пропозиція додати функцію з назвою {% style_value_fraction obj.dutch_step_percent %} яка відобразить потрібну кількість знаків.
У другому прикладі має бути 20 %, а не 20,0 %
Саме це і має робити функція style_value_fraction
Як варіант, в існуючу функцію style_value_amount додати парамерт "show_zero", який буде виконувати опи сану вище логіку