Repository navigation
Hotfix: email, поиск и фильтр программ в админке экспертов - #759
Merged
Merged
Conversation
TThanos3000
marked this pull request as ready for review
September 28, 2026 13:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
В Django admin → «Эксперты» email теперь виден отдельной колонкой сразу после
user. Поиск находит экспертов по имени, фамилии, полному и частичному email, напримерe@tokarev.work,tokarevилиe@.Изменены только два backend-файла:
users/admin.py:ExpertAdmin.list_display = ("id", "user", "email"); методemail, отмеченный@admin.display(description="Email"), возвращаетobj.user.email.users/tests/test_expert_admin.py: расширены существующие admin-тесты из DEV PR DEV: добавить поиск и фильтр программ для экспертов #758; добавлены проверки отдельной email-колонки, частичного email, сочетания email с фильтром и отсутствия N+1 при чтении обеих колонок.search_fields = ("user__first_name", "user__last_name", "user__email"). Сохраняется стандартный Django admin search (icontains, AND между словами, OR между полями). Кастомного full-name search в предыдущей реализации нет; поиск нескольких слов по имени и фамилии покрыт сохранёнными тестами.В
masterещё нет изменений из уже влитого вdevPR #758. Поэтому этот PR переносит только его настройкиExpertAdminи существующий файл admin-тестов. Фильтр сохранён без изменения relation path:list_filter = ("user__partner_program_profiles__partner_program",). Проверены All, пустая программа, эксперт в двух программах, отсутствие дублей и сочетание поиска с фильтром.list_select_related = ("user",)исключает N+1: чтение строк changelist,str(expert.user)и email выполняется одним SQL-запросом с фильтром, без фильтра и при сочетании фильтра с поиском.Проверки:
python manage.py test users.tests.test_expert_admin --verbosity 2 --keepdb --noinput— 21 passed, PostgreSQL 18.1 / Python 3.11.15 / Django 4.2.11 /procollab.settings_ci.python manage.py test --verbosity 1 --keepdb --noinputсprocollab.settings_ciиNEXTGEN_SURFACE_ENABLED=True, как в CI — 1617 tests, OK (skipped=3), 1180.839 s, exit 0. Использован отдельный локальный кластер PostgreSQL; DEV/PROD базы не использовались.manage.py check— 0 issues;makemigrations --check --dry-run— No changes detected; Flake8 обоих изменённых файлов иgit diff --check— pass.ExpertAdmin— pass. Полныйusers/admin.pyимеет существующее отличие форматирования вCustomUserAdmin.formfield_for_manytomany, воспроизводимое на исходномmaster; посторонний блок не изменён.Models, permissions, API, бизнес-логика, Angular, React, migrations, dependencies и workflows не изменены. Draft PR направлен в
master; merge/deploy не выполнялись.