Skip to content

Refactor/modules#637

Merged
Toksi86 merged 2 commits into
devfrom
refactor/modules
May 21, 2026
Merged

Refactor/modules#637
Toksi86 merged 2 commits into
devfrom
refactor/modules

Conversation

@Toksi86
Copy link
Copy Markdown
Collaborator

@Toksi86 Toksi86 commented May 21, 2026

Что изменено

  • Задокументирован модуль News:

    • описаны назначение, архитектура, API, основные сценарии и ограничения;
    • зафиксирована связь news.News с проектами, пользователями, программами и feed;
    • обновлена документация Projects и заполнена документация Feed.
  • Добавлены regression-тесты для News:

    • manager/service/query helpers;
    • project/user/program news API;
    • права на создание и изменение новостей;
    • likes/views;
    • 404 для несуществующего project/user/program context;
    • сортировка закреплённых новостей программ.
  • Выполнен рефакторинг News:

    • создание новостей вынесено в news/services.py;
    • NewsQuerysetMixin заменён на явные query helpers в news/querysets.py;
    • serializers переименованы по роли: create/list/detail response;
    • read/detail/actions используют явный queryset и get_object_or_404.
  • Разделена ответственность между News, Feed и Projects:

    • тесты /feed/ перенесены в feed/tests;
    • добавлены тесты feed.services;
    • в projects/tests оставлен только integration smoke-тест для /projects/<id>/news/.
  • Удалён legacy ProjectNews:

    • удалены старая модель, admin, views, serializers, pagination и permission;
    • добавлена миграция projects.0033_delete_projectnews;
    • проектные новости окончательно работают через news.News.

Проверка

  • автоматические проверки:

    • .venv/bin/flake8 news feed projects partner_programs/pagination.py
    • DEBUG=True .venv/bin/python manage.py check
    • DEBUG=True .venv/bin/python manage.py makemigrations --check --dry-run
    • DEBUG=True .venv/bin/python manage.py test
  • ручная проверка:

    • проверено, что старые ProjectNews не используются runtime-кодом;
    • проверено, что routes /projects/<id>/news/ подключены к news.views;
    • проверено, что оставшиеся prod-записи ProjectNews больше не нужны и могут быть удалены миграцией.
  • шаги для воспроизведения:

    • открыть список новостей проекта через GET /projects/<id>/news/;
    • создать новость проекта через POST /projects/<id>/news/;
    • проверить /feed/?type=news и /feed/?type=project;
    • применить миграции на тестовой базе.
  • ожидаемый результат:

    • project/user/program news API работает через news.News;
    • /feed/ возвращает прежний frontend-формат;
    • legacy ProjectNews больше не доступен в runtime-коде;
    • тестовый набор проходит успешно.

@Toksi86 Toksi86 requested a review from TThanos3000 May 21, 2026 07:21
@Toksi86 Toksi86 merged commit fa298f0 into dev May 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants