PROD: изображение программы в уведомлениях - #745
Merged
Merged
Conversation
TThanos3000
marked this pull request as ready for review
September 19, 2026 21:32
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.
Программные уведомления показывали аватар опубликовавшего пользователя, хотя визуальным источником является программа. Теперь при создании событий сохраняется
PartnerProgram.image_addressв отдельном nullable-полеNotification.image_url; настоящийactorостаётся пользователем.Проверяемая версия
master):83f2ac82d6a9ff8353f79e8feddcd796b60a4245.5ac540854f41828bed773a3481c1055569dc2fce.fix/prod-program-notification-image→master.Контракт и поведение
create_notification,create_notificationsи_notification_defaultsпринимают необязательныйimage_url: str | None = None. Serializer возвращаетimage_urlвместе с прежним actor. Изображение заполняют только три программных события; пустойimage_addressнормализуется вnull.program_news_publishedprogram_material_publishedcourse_access_openedПолучатели, исключение автора, category, event_key, action_url, visibility и read/unread сохранены. Повтор события не создаёт дубли и не переписывает изображение существующей записи.
Schema migration:
notifications.0003_notification_image_url— толькоADD COLUMN image_url varchar(200) NULL. Data migration/backfill отсутствуют: старые уведомления сохраняют прежние тексты и получаютimage_url=null. Angular для них использует иконку типа.Проверки
python manage.py test --verbosity 1 --keepdb --noinput, exit 0.NEXTGEN_SURFACE_ENABLED=False: 3/3,python manage.py test procollab.tests.test_nextgen_surface.NextgenSurfaceDisabledTests --verbosity 2 --keepdb --noinput, exit 0. Skip в полном suite обусловлен существующим взаимоисключающим режимом feature-on; новые skips не добавлялись.python manage.py check— PASS.python manage.py makemigrations --check --dry-run— PASS, новых незаписанных изменений нет.python -m black --check notifications— PASS.python -m flake8 .— PASS.git diff --check— PASS.Тесты проверяют три типа, тексты, изображение, actor, точный набор получателей, прежние ключи и маршруты, retry, null/пустое изображение, обычные уведомления, API list/read и прежнее число SQL-запросов.
Проверки выполнены локально на Python 3.11 и изолированной тестовой PostgreSQL БД. Серверные DEV/PROD БД не использовались. Для будущего выпуска backend нужна миграция до использования нового поля; Angular-часть подготовлена отдельным Draft PR.
React-код и доменные правила не изменены. DEV-ветки и окружение не изменены. Dependencies и workflows не изменены. Merge/deploy не выполнялись.