-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Edit achievements #437
base: main
Are you sure you want to change the base?
Edit achievements #437
Conversation
Извиняюсь, за неправильно отправленный pull- request # 4c58a85 "edit_achievements" в него не упаковал все изменения. досылал во втором. |
а тесты есть на новый роут? |
|
||
<div class="progress d-flex justify-content-between" style="height: max-content;"> | ||
<div class="bg-info text-dark text-start aligns-items-center" role="progressbar" style="width: {{ contribution|div:achievement_made_count|mul:100|floatformat:0 }}%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"> | ||
<dl class="p-2 fs-6 mb-0" style="width:50vw;"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
тут какой-то скастомный стиль используется. Давайте от такого избавляться (он инлайн стилей). Посмотрите, есть ли в бутстрапе похожий класс, если нет, то можно добавить кастомный класс, который именуется через префикс x-*
, возможно есть другие кастомные классы уже, можно на них посмотреть.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А тут не поправили? Посмотрите, как в сикпе сделаны кастомные стили - https://github.com/Hexlet/hexlet-sicp/blob/f02ff453e6c8b045764f497fe536e8ecd24913b6/resources/sass/_custom.scss#L1-L23
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
style="height: max-content и style="width:50vw перенесены в base.css как кастомные стили.
style="width: {{ contribution|div:achievement_made_count|mul:100|floatformat:0 }} используемый прогрессбаром остается, так как увидел подобное решение в образце от bootstrap
{% load i18n static mathfilters %} | ||
|
||
<div class="progress d-flex justify-content-between" style="height: max-content;"> | ||
<div class="bg-info text-dark text-start aligns-items-center" role="progressbar" style="width: {{ contribution|div:achievement_made_count|mul:100|floatformat:0 }}%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
здес стиль используется чтобы задать прогерсс бар?
Можно ли расчет width засунуть в хелпер-функцию и здесь просто вызывать?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
здес стиль используется чтобы задать прогерсс бар? Можно ли расчет width засунуть в хелпер-функцию и здесь просто вызывать?
-
Да , style="width" отвечает за заполнение полосы прогресса
https://getbootstrap.com/docs/5.0/components/progress/ -
процедура получения данных для таблицы и сама таблица c личными достижениями сделана по аналогии с achievements.py(было уже разработано раньше), где получали общую статистику.
Непонятно про функцию хелпер: функция должна быть реализована во view и передана в шаблон, где будет получать аргументы для вычисления процента выполнения?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
вот насчет джанги не знаю, в других фреймворках (рельсе, ларавел) хелпер обьявляется где-то в модулях приложения и используется во вью.
Если у вас есть другой шаблон, где абсолютно та же логика, но немного другие данные, а вычисления те же - то скорее всего это одна и та же абстракция.
В теории тут можно по всем ачивкам пройтись и сформировать данные для отображения, тогда вы все готовите и передаете в шаблон, который будет слегка чище.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Единственный вариант реализации функции-хелпера, который придумал через @register.simple_tag :
hexlet-friends/contributors/templatetags/contrib_extras.py
Lines 115 to 122 in 883c439
@register.simple_tag | |
def calc_percent_achievement(numerator, denominator): | |
"""Get contributor statistics and required quantity.""" | |
if numerator is not None: | |
if numerator / denominator > 1: | |
return 100.0 | |
return numerator / denominator * 100 | |
return 0 |
размеры кода остаются те же. объем кода при этом решении почти не сократился.
@@ -0,0 +1,18 @@ | |||
{% load i18n static mathfilters %} | |||
|
|||
<div class="progress d-flex justify-content-between" style="height: max-content;"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
здесь тоже какой-то кастомный styel
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
перенесено в base.css как кастомный стиль.
templates/components/footer.html
Outdated
<li><p class="h6">{% trans "Other projects" %}</p></li> | ||
</div> | ||
<div class="col"> | ||
<li> </li> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а зачем здесь пустой элемент?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вот это не поправлено.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
элемент списка специально выполнен пустым для того чтобы сохранить оформление
@@ -7,7 +7,22 @@ | |||
</ul> | |||
</div> | |||
<div class="col"> | |||
<p class="h6">{% trans "Other projects" %}</p> | |||
<ul class="list-unstyled my-0"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
можете завести здесь ищщус на привести футер в порядок
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
добавлю новый issue
@@ -0,0 +1,109 @@ | |||
from django.db.models import Count, Q, Sum # noqa: WPS235, WPS347 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Здесь снова используется игнорирование правил. Вообще от WSP в Хекслете мы отказались ,поэтому и в проекте его можно убрать.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
пока убирал свои noqa увидел,что во многих местах есть строки закомментированные с A,WPS.
Не убирал в тех местах, которые не касаются моего изменения
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ага, тогда можете создать ищщьюс с задачкой почистить от игноров подобные штуки. Затыкать линтер плохая идея, а если он массово затыкается, то может быть это правило не очень нужно (или следует другой линтер использовать)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
добавлю новый issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавил
Попробуйте разобраться с кастомными стилями |
В коммите a68db2e:
|
@fey, можешь прокомментировать правки?) |
если визуально ок, давайте мержить. @sgmdlt |
Есть ли какие-то замечания, которые нужно исправить или доделать? |
тут ждем ревью @sgmdlt , тыкнул его в рабочем чатике) |
Добрый день, а есть ссылка на деплой? |
@sgmld, хотел уточнить, что за ссылка? |
Оформление по шаблону сделал |
@AleksandrKosmylev давайте фиксить конфликты. Хотелось бы смержить, двигаться дальше. У меня вроде глобальных замечаний нет. Если что-то не фиксим, то давайте ставить тудушки на будущий фикс. |
@fey , готово |
@sgmdlt review pls |
@sgmdlt review pls |
@fey , есть замечания? |
У меня нет, ждем @sgmdlt пинганул его еще раз в рабочем чяте |
comment_ranges_for_achievements = [1, 25, 50, 100, 200] | ||
edition_ranges_for_achievements = [1, 100, 250, 500, 1000] | ||
|
||
def get_context_data(self, **kwargs): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я бы разделил метод на несколько. Сейчас это огромная стена кода. Выделите подметоды, сделайте их приватными (_method_name), разделите логику.
context['pull_requests'] = contributions['contributor_pull_requests'] | ||
context['issues'] = contributions['contributor_issues'] | ||
context['comments'] = contributions['contributor_comments'] | ||
editions = sum([ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Для sum() не надо создавать список внутри. Нужно убрать квадратные скобки. И ниже в другом sum тоже
Предыдущий пул-реквест был неполным, отправил не все измененные файлы.(
Добавлена статистика о личных достижениях в отдельной вкладке с возможностью переключения между личными и общими. Реализовано переключение между закладками.
По-прежнему в репозитории остается код отвечающий за переход на страницу только с общей статикой:
в views, url и в achievements.py. Cейчас для них нет ссылки для перехода.
Если данное такой вариант исполнения подходит, то ненужный код удалю.