Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* update workflow, add new ENV vars * Feature/er diagramm (#100) * add diagramm * change er diagramm * update diagramm * update django settings, update stage workflow * add django user model * update Dockerfile * update dockerfile (#102) Co-authored-by: fr0stfree <me@frostfree.ru> * Revert 101 fix/issue 88 stage workflow (#104) * update dockerfile * hotfix/update-settings-to-fix-stage --------- Co-authored-by: fr0stfree <me@frostfree.ru> * add BotSettings model * Feature/upmenu delete (#107) * removed upmenu handler, merged functionality with start handler * removed depricated menu_handler import --------- Co-authored-by: Alexander Lonskiy <alexanderlonskiy@MBP-Alexander.netis.cc> * add fund models (#99) * add fund models * add app core * fix flake8 error * change models * fix after review * inherit bot_settings model from base_model * delete username field from User model * fix db connection params * change assistance keyboard to async * delete username from User model * update mailing system to django style * fix linter * fix event_loop and staticfiles (#117) * update env on deploy action (#118) * add role selector in django admin * change makefile and BACKEND_URL setup * remove migration line from makefile * email backend in .env * add in stage action email_backend env * add factory models django (#119) * add factory models django * Добавил ввод количества данных фабрик * localized * fix collectstatic command * Изменил модель Question, добавил модели в админку (#125) * Изменил модель Question, добавил модели в админку * add Region to admin * Feature/migrate collectstatic (#126) * Added migrate, collectstatic to docker compose, makefile * replaced python3 with python * created different container for django commands * added dependancy on bot container --------- Co-authored-by: Alexander Lonskiy <alexanderlonskiy@MBP-Alexander.netis.cc> * Added logger to handlers (#67) * Added logger to handlers (#67) fixed * add retrieving regions from db * fixed path of DEBUG (#67) * fix question type in common questions * Update debug_handlers.py added user_id = update.callback_query.from_user.id * Добавил ввод количества типа вопроса (#134) * modify Region Factory * change Coordinator model (#136) * Fixed fields of Question Admin form (#130) (#135) * Resorted field of Question Admin form (#130) * corrected relative paths to absolute paths (#130) * refactor of bot.py patterns * refactor of constants dir * Автоматизировал развертку бота для локальной разработки * Добавил задержку на развертывание и удаление БД * Добавил задержку после успешного выполнения таргетов * Добавил автоматическое документирование по строчкам комментариев * Рефакторинг * change verbose name for apps * fixed: requirements/develop.txt (#148) * change validator for coordinator (#147) * fixed region display in admin * add nginx configuration for serving static * configure nginx for wordpress app * Обновлен Makefile * Добавлен файл с пагинатором для данных в inline-меню telegram * Данные о доступных типах помощи выделены в отдельный класс и вынесены за пределы модели Question * Рефакторинг: добавлены док-стринги, форматирование строк приведено к единому типу * Переменная assistance_questions_keyboard удалена, функционал генерации keyboard с вопросами из БД реализован в bot\keyboards\assistance.py * В переменных callback_data данные задаются из единого класса HelpTypes, определенного в src/bot/models.py чтобы избежать дублирования констант в коде * Рефакторинг * Типы вопросов подтягиваются из единого класса HelpTypes, чтобы избежать дублирования констант в коде * Создание паттерна HELP_TYPE проводится из данных единого класса HelpTypes, чтобы избежать дублирования констант в коде * Добавлены паттерны парсинга данных callback для реализации пагинации * Добавлены функции для построения inline-меню вопросов из БД. * Рефакторинг: добавлены док-стринги, удалены ненужные переменные. * В обработчике select_assistance добавлена генерация inline-меню вопросов из БД. * Рефакторинг: удалены ненужные импорты, все док-стринги переведены на английский язык. * Добавлено условие на сохранение данных в context.user_data: сохранение происходит только в том случае, если callback_data не является текущим State (является регионом). Необходима для корректной работы навигации в inline-меню. * Добавлен обработчик ask_question в State.ASSISTANCE_TYPE для корректной работы inline-меню. * Добавлен файл __init__.py в utils. * returned to previous version * Поле полного вопроса question заменено на короткое описание short_description. * Добавлено условие, что замена обновление reply_markup в сообщении происходит только в случае его обновления. * Изменено форматирование пагинатора чтобы была возможность проводить сравнение reply_markup. * Добавил кнопки возврата к исходному состоянию и предыдущему шагу в форме "задать вопрос" (#153) * Добавил кнопки возврата к исходному состоянию и предыдущему шагу в форме "задать вопрос", немного пофиксил код * fixed: keyboard, handlers, back_handler * fixed: back_handler * fixed: keyboards, handlers, back_handler, makefile * fixed: assistance * Revert "fixed: assistance" This reverts commit c270ec2. pre-commit fixed * Revert "Revert "fixed: assistance"" This reverts commit 35959aa. * fixed: keyboards, handlers * fixed: handlers, keyboards * refactor of constants dir * added proxy-model Region (#161) * fixed: bot, added: fund_program_keyboard, fund_programs_handler * fixed: service_handlers.py * added the ability to get coordinator's contacts from db * nginx host and port are env variables now * fixed: 0008 migration, bot models, patterns, handlers, keyboards * fixed: bot handlers, keyboards * fixed: parse_callback_data docstring * added the ability to get coordinators contacts from db, 2 var, added null=True option to Coordinator model * Некоторые константы поменяла на значения из БД. (#164) * Некоторые константы поменяла на значения из БД. * Правки по итогам 1-го ревью * resolve merging conflict * add custom handler for logs (#168) * add custom handler for logs * delete directory logs * Feature/155 testing bot with pytest (#175) * Добавлен пакет test в src * Добавлен пакет unit в src/tests * Добавлен пакет test_handlers в src/tests/unit * Добавлены фикстуры * Невалидные файлы удалены * Добавлены тесты для хэндлера help * Добавлены тесты для хэндлера receive_assistance * Добавлены тесты для хэндлера select_assistance * Добавлены тесты для хэндлера select_type_of_help * Добавлены тесты для хэндлера start * Добавлены правки в README * Добавлен pytest.ini * Добавлены команды для тестов в Makefile * Обновлены зависимости в poetry * Update codestyle_pep8.yml Тесты переехали внутрь src (этого требует pytest-django) * Перенес конфиги pytest в pyproject.toml --------- Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com> * Теститрую работу flake8 (#169) * Теститрую работу flake8 * Теститрую работу flake8 * Теститрую работу flake8 * Теститрую работу flake8 * Теститрую работу flake8 * Теститрую работу flake8 * Тестирую проверку догстринг * Теститрую работу flake8 * Теститрую работу flake8 * Убарала комментарии --------- Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com> * Утилита parse_callback_data перенесена в utils\callback_data_parse * Добавлен новый State SHOW_PROGRAM * Добавлен хэндлер show_contact в конфигурацию бота * Добавлен хэндлер show_contact * Добавлен конструктор build_show_fund_program_keyboard * Переименован параметр * 178 Move tests to separate action file (#183) * Update codestyle_pep8.yml Перенос тестирования в отдельный workflow * Переименован * Добавлено имя actions * Удален параметр pytest.ini * Добавлен файл запуска тестов * Добавлены дополнительные переменные среды * Тестовое значение для порта email * Тесты обновлены * Тесты обновлены * Тесты обновлены --------- Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com> * make field region_key autogenerated (#182) * make field region_key autogenerated * delete #noqa * add transliterate in prod dependencies * Feature/add back buttons in question form (#170) * add back_buttons * delete my comments * fix back_buttons * fix back_button in state name * Feature/155 testing bot with pytest (#186) * Добавлен пакет test в src * Добавлен пакет unit в src/tests * Добавлен пакет test_handlers в src/tests/unit * Добавлены фикстуры * Невалидные файлы удалены * Добавлены тесты для хэндлера help * Добавлены тесты для хэндлера receive_assistance * Добавлены тесты для хэндлера select_assistance * Добавлены тесты для хэндлера select_type_of_help * Добавлены тесты для хэндлера start * Добавлены правки в README * Добавлен pytest.ini * Добавлены команды для тестов в Makefile * Обновлены зависимости в poetry * Update codestyle_pep8.yml Тесты переехали внутрь src (этого требует pytest-django) * Перенес конфиги pytest в pyproject.toml * Обновлен Makefile-команды тестов * Обновлены тесты * Подправил code style * Подправил code style --------- Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com> * added removing of unused docker imgs in workflow (#176) * added removing of unused docker imgs in workflow * fixed removing of unused docker in workflow * fix2 removing unused docker things * removed sudo * finally fixed(I think) docker remove unused things --------- Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com> * update configurations for stage * change docker-compose.stage.yaml * #158 fixed handlers, tweaked Makefile, add new constants * #158 fixed select_assistance handler, added context.user_data[States.QUESTION_TYPE] = question_type * prepared a deployment for production (#181) * prepared a deployment for production * Рефакторинг. build-and-push в одном файле для веток master и develop * change action deploy bot on stage (#194) * Bugfix/deploy stage action fix commands (#195) * change action deploy bot on stage * change action deploy add django superuser * Bugfix/deploy stage action fix commands (#196) * change action deploy bot on stage * change action deploy add django superuser * delete command createsuperuser * Update codestyle_pep8.yml Перенос тестирования в отдельный workflow * Добавлена проверка уникальности поля title модели FundProgramFactory * Добавлено ограничение на длину поля telegram_account * Добавлены прогресс бары при заполнении БД * Обновлены зависимости в poetry * #174 Implemented the display of the question in the message when it i… (#191) * #174 Implemented the display of the question in the message when it is selected * #174 Implemented the display of the question in the message when it is selected * #174 Implemented the display of the question in the message when it is selected * #174 Implemented the display of the question in the message when it is selected * Вместо одного слова генерируются 2 для поля title * Обновлены зависимости poetry * Update codestyle_pep8.yml Перенос тестирования в отдельный workflow * Адрес админки установлен в root * Add the states to the debug logger * Bugfux/debug_logger - add bot state. * refactoring of states and name of functions * Bugfix/209 return default path to admin configure nginx redirect (#210) * Адрес админки установлен в admin/ * Настроен редирект на admin/ * Сокращен путь /django/ * Feature/rebuild migrations #180 (#198) * rebuild migrations for apps: core, bot, users * rebuild migrations for apps: core, bot, users. Add exclude to .pre-commit-config * deleted exclude folders migrations from pre-commit-config * Join migrations in bot_settins * Joined all bot_ settings migrations in one file * Feature/check django migrations (#207) * added django migration check * added django migration check * fixed install dependencies * fixed install dependencies * fixed install dependencies_3 * testing again * fixed env problems(i think) * deleted seperate file for check, testing * testing1 * testing2 * test * test2 * test3 * test4 * test5 * test6 * added default value for email_port in settings.py * test6 * test7 * changed to sqllite * working? * settings changes * final fixes * added check on pull req on develop and master * fixed branches selection in workflow * fixed branches selection again * fixed problem i think * fix tests * Bugfix/209 return default path to admin configure nginx redirect (#214) * Переименован путь админки в /bot_admin/ * Изменена конфигурация путей nginx * Изменен путь приложения админ-панели * Translation of dogstrings * Переименован путь админки в /bot_admin/ * Изменен путь приложения админ-панели * Изменен путь к приложению админ-панели * Добавлен том logs, агрегирующий логи всех контейнеров * Actions для prod и stage приведены к единому формату * Кэширование клавиатур удалено * rename states and functions * Обновлены пути для папки логов * Обновлены зависимости poetry * update widget for Question/FundProgram -> Region * refactor phone format (#217) * refactor phone format * delete phone_format constant * new migration * added BACK_TO_START button to the /help command (#229) * added BACK_TO_START button to the /help command * quick fix * fixed test_help test * fix again * add method for display responses in admin panel (#222) * add method for display responses in admin panel * add display for fields in admin panel * add chief coordinator point * Feature/#232 add wysiwyg editor support to the following fields (#233) * Test django-mdeditor * added modified django-ckeditor * fixed modified django-ckeditor, add static directory for correct emoji working * fixed modified django-ckeditor, add new skin, reformat toolbar * fixed modified django-ckeditor: reformat toolbar * fixed modified django-ckeditor: new reformat toolbar * added: ckeditor wysiwyg-editor, new migrations, show_objects.py; fixed: models, handler keyboards * added: ckeditor wysiwyg-editor, new migrations, show_objects.py; fixed: models, handler keyboards * fixed: bot factories, handle function of filldb command * fixed: migrations, bot settings models * Feature/#216 error handling (#228) * Error handling when sending messages by the user * Правки по итогам 1-го ревью * Правки по итогам 2-го ревью * delete compose names for the version 3.8 (#236) * add chief coordinator and and add chief coordinator to text message in show_contact * process message from users * Feature/226 send link to set password to new admin (#234) * Создан сигнал на отправку ссылки создания пароля новому админу * Добавлен action на рассылку писем для сброса паролей у выбранных пользователей. * Удалены ненужные поля в формах создания и изменения пользователей. * Добавлены утилиты для создания писем с ссылками на сброс пароля. * Добавлена view-функция для обработки запросов на сброс пароля. * Добавлен путь для смены пароля. * Добавлен тайм-аут действия ссылки сброса пароля. * Добавлены настройки smtp-сервера. * Добавлены утилиты для создания писем с ссылками на сброс пароля. * Добавлен action на рассылку писем для сброса паролей у выбранных пользователей. * Добавлена активация сигналов. * При создании пользователя, ему гарантируется доступ к админ-панели через флаг is_staff. * Изменены настройки по умолчанию для is_active и is_staff. * Добавлена утилита для создания случайного пароля. * Добавлены утилиты для создания писем с ссылками на сброс пароля. * Добавлены шаблоны для писем. * Добавлены шаблоны для формы сброса пароля. * Создан сигнал на отправку ссылки создания пароля новому админу * Добавлен action на рассылку писем для сброса паролей у выбранных пользователей. * Удалены ненужные поля в формах создания и изменения пользователей. * Добавлены утилиты для создания писем с ссылками на сброс пароля. * Добавлена view-функция для обработки запросов на сброс пароля. * Добавлен путь для смены пароля. * Добавлен тайм-аут действия ссылки сброса пароля. * Добавлены настройки smtp-сервера. * Добавлены утилиты для создания писем с ссылками на сброс пароля. * Добавлен action на рассылку писем для сброса паролей у выбранных пользователей. * Добавлена активация сигналов. * При создании пользователя, ему гарантируется доступ к админ-панели через флаг is_staff. * Изменены настройки по умолчанию для is_active и is_staff. * Добавлена утилита для создания случайного пароля. * Добавлены утилиты для создания писем с ссылками на сброс пароля. * Добавлены шаблоны для писем. * Добавлены шаблоны для формы сброса пароля. * Add the states to the debug logger * Обновлены миграции * Добавлены пользовательские фильтры. * Исправлены настройки. * Рефакторинг * Удалены ненужные файлы. * Новый пользователь получает доступ к админ-панели только после того, как установит новый пароль к личному кабинету. * Удалена проверка условия is_staff. * Удалены ненужные настройки. * Миграции схлопнуты. --------- Co-authored-by: Ольга Жолудева <joludeva.olga@yandex.ru> * replace time to asyncio * change admin bot settings (#239) * change admin bot settings * rename migration * change titles for bot settings * Внесла правки согласно ТЗ. * Внесла правки согласно ТЗ. * Внесла правки согласно ТЗ. * Fixed a bug * Revert "Внесла правки согласно ТЗ." (#251) * realize service for prod and stage * remove user_region and user_role from models and admin (#249) * remove user_region and user_role from models and admin * some changes and refactor * admin botsettings refactor --------- Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com> * change question type display in admin (#260) * change question type display in admin * some fix --------- Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com> * fixed: settings, makefile (#250) * fixed: settings, makefile * fixed: settings * moved: ckeditor_add-on directory; fixed: settings.py * added: createsuperuser in Makefile * fixed: settings.py * fix staticdirs * delete double DEBUG env * delete old notations --------- Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com> * fix workflow * Add pagination for regions, fix back_button, add pagination-settings … (#237) * Add pagination for regions, fix back_button, add pagination-settings for admin-page * merging from develop, delete comment-string, rebuild migrations bot_settings * Refactoring - returned States.REGION to class States * realize service for prod and stage (#256) * realize service for prod and stage * fix workflow * test fix (#263) * Fix/deploy.service (#264) * test fix * test2 * Fix/deploy.service (#265) * test fix * test2 * test3 * Fix/deploy.service (#266) * test fix * test2 * test3 * test3fix * removed unique=True in coordinator model for phone and telegram (#267) * fix stage workflow * Feature/realize service for stage and prod (#269) * realize service for prod and stage * fix workflow * fix stage workflow --------- Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com> * fix stage workflow * Update deploy-bot-on-stage.yml * Update deploy-bot-on-stage.yml (#271) * Исправлены названия. * Feature/realize service for stage and prod (#274) * fix stage workflow * fix stage workflow * Feature/realize service for stage and prod (#275) * Feature/realize service for stage and prod (#276) * Feature/realize service for stage and prod (#277) * Feature/realize service for stage and prod (#278) * fix stage workflow * fix stage workflow * fix stage workflow * Fix stage workflow * fix workflow * fix stage workflow * Feature/realize service for stage and prod (#279) * fix stage workflow * fix stage workflow * fix stage workflow * Fix stage workflow * fix workflow * fix stage workflow * fix stage workflow * Feature/realize service for stage and prod (#280) * fix stage workflow * fix stage workflow * fix stage workflow * Fix stage workflow * fix workflow * fix stage workflow * fix stage workflow * fix stage workflow * fix stage workflow * fix (#281) * Fix/dev ci cd (#282) * fix * fix docker * Feature/update password reset template (#261) * Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users. * Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users. * Обновлены зависимости poetry. * Добавлен кастомный шаблон входа в админ-панель. * Добавлен кастомный шаблон письма с одноразовым кодом. * Шаблоны разнесены по соответствующим директориям. * Добавлены настройки для 2FA. * Добавлено создание модели EmailDevice новых пользователей для рассылки OTP. * Добавлен кастомный сайт админ-панели с 2FA. * Заменен дефолтный сайт админ-панели на кастомизированный. * Добавлена форма для 2FA. * Удалены ненужные модели. * Обновлены пути к шаблонам. * Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users. * Шаблоны перенесены в приложение users. * Обновлены настройки для тестирования миграций. * Обновлен шаблон письма, добавлен восклицательный знак. * Изменена основа шаблона на встроенный base_site.html. * Изменен стиль отображения ошибок формы. * Настройки админ-панели перенесены из urls в sites. * Ненужные шаблоны удалены. * Исправлены названия. --------- Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com> * Bugfix/change password set reset url (#285) * Добавлен путь users. * Изменен путь для шаблона email. * Feature/225 create 2 fa for admin panel (#259) * Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users. * Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users. * Обновлены зависимости poetry. * Добавлен кастомный шаблон входа в админ-панель. * Добавлен кастомный шаблон письма с одноразовым кодом. * Шаблоны разнесены по соответствующим директориям. * Добавлены настройки для 2FA. * Добавлено создание модели EmailDevice новых пользователей для рассылки OTP. * Добавлен кастомный сайт админ-панели с 2FA. * Заменен дефолтный сайт админ-панели на кастомизированный. * Добавлена форма для 2FA. * Удалены ненужные модели. * Обновлены пути к шаблонам. * Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users. * Шаблоны перенесены в приложение users. * Обновлены настройки для тестирования миграций. * Add pagination for regions, fix back_button, add pagination-settings … (#237) * Add pagination for regions, fix back_button, add pagination-settings for admin-page * merging from develop, delete comment-string, rebuild migrations bot_settings * Refactoring - returned States.REGION to class States * realize service for prod and stage (#256) * realize service for prod and stage * fix workflow * test fix (#263) * Fix/deploy.service (#264) * test fix * test2 * Fix/deploy.service (#265) * test fix * test2 * test3 * Fix/deploy.service (#266) * test fix * test2 * test3 * test3fix * removed unique=True in coordinator model for phone and telegram (#267) * Feature/realize service for stage and prod (#269) * realize service for prod and stage * fix workflow * fix stage workflow --------- Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com> * fix stage workflow * Исправлены названия. * Feature/realize service for stage and prod (#274) * fix stage workflow * fix stage workflow * Feature/realize service for stage and prod (#275) * Feature/realize service for stage and prod (#276) * Обновлен шаблон письма, добавлен восклицательный знак. * Изменена функция на проверку otp, отправка проводится автоматически. * Изменен шаблон. * realize service for prod and stage * fix workflow * Модель OTPDevice скрыта. * добавлю один багфикс --------- Co-authored-by: Антон Теряев <110157871+teryaev-anton@users.noreply.github.com> Co-authored-by: Elena Shovtyuk <110084590+elenashovtyuk@users.noreply.github.com> Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com> Co-authored-by: bobr <99394921+bobr2072@users.noreply.github.com> Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com> * Feature/realize service for stage and prod (#284) * fix stage workflow * fix stage workflow * fix stage workflow * Fix stage workflow * fix workflow * fix stage workflow * fix stage workflow * fix stage workflow * fix stage workflow * fix prod workflow * fix nginx conf in docker-compose * added message into email.html (#287) * added message into email.html * deleted comment-string in email.html, fixed back_to_start_button in get_user_question * fix template --------- Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com> * fixed: text display in handlers, back button to start (#283) * fixed: text display in handlers, back button to start * fixed: test_select_assistance.py; turned-off: test_select_type_of_help.py * turned-off: test_select_assistance.py.py * Bugfix/#268 settings in the admin panel changed the behavior of the bot (#288) * fixed: text display in handlers, back button to start * fixed: test_select_assistance.py; turned-off: test_select_type_of_help.py * turned-off: test_select_assistance.py.py * fix permissions * fix permissions --------- Co-authored-by: Vladimir Vasiliev <vladvasiliev52@gmail.com> * collapse migrations (#289) * fix workflow --------- Co-authored-by: fr0stfree <me@frostfree.ru> Co-authored-by: Danila Krasov <67839759+Fr0stFree@users.noreply.github.com> Co-authored-by: Андрей Жирихин <zhirikhin.andrew@gmail.com> Co-authored-by: Alexander Lonskiy <102410304+distemper17@users.noreply.github.com> Co-authored-by: Alexander Lonskiy <alexanderlonskiy@MBP-Alexander.netis.cc> Co-authored-by: Aleksei Koznov <102172028+alekseikoznov@users.noreply.github.com> Co-authored-by: Zh-Andrew <100352694+Zh-Andrew@users.noreply.github.com> Co-authored-by: Илья Шустров <shustrov.i@ya.ru> Co-authored-by: Андрей <andrew@MacAndrew.local> Co-authored-by: Илья Шустров <91760166+samebr0dy@users.noreply.github.com> Co-authored-by: Aleksei Koznov <alekseikoznov@yandex.ru> Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com> Co-authored-by: Elena Shovtyuk <110084590+elenashovtyuk@users.noreply.github.com> Co-authored-by: Vladimir <vladvasiliev52@gmail.com> Co-authored-by: Mikhail Kasatkin <110116963+MikeWazowskyi@users.noreply.github.com> Co-authored-by: Olga-Zholudeva <110151631+Olga-Zholudeva@users.noreply.github.com> Co-authored-by: bobr <99394921+bobr2072@users.noreply.github.com> Co-authored-by: Антон Теряев <110157871+teryaev-anton@users.noreply.github.com> Co-authored-by: Михаил Касаткин <m.m.kasatkin@yandex.ru> Co-authored-by: Ольга Жолудева <joludeva.olga@yandex.ru>
- Loading branch information