Skip to content

DEV: добавить статистику раздела участников - #756

Merged
TThanos3000 merged 1 commit into
devfrom
feature/dev-member-statistics
Sep 27, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feature/dev-member-statistics

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

Что изменено

Добавлен публичный read-only GET /auth/public-users/stats/ для Angular-каталога участников. Ответ — только четыре числа; права AllowAny совпадают с существующим публичным списком. Query-параметры поиска, фильтров и пагинации игнорируются. Персональные данные не сериализуются.

  • total: активные legacy CustomUser с user_type=MEMBER.
  • in_projects: уникальные люди из той же выборки, являющиеся лидером либо Collaborator проекта с draft=False, is_public=True.
  • in_programs: уникальные люди с PartnerProgramUserProfile программы с draft=False.
  • new_last_30_days: datetime_created >= timezone.now() - timedelta(days=30), включая границу.

Агрегация использует Count и коррелированные Exists: 1 SQL-запрос при 10/100/1000 пользователях и множественных связях, без N+1 и размножения строк.

SHA

Base: caea57a7c6f2869e7f2522e37c8fc395569b030c

Head: 3c7c60df34b8842f6a92798a03799db1da3c5a6d

Контракт

{"total":1248,"in_projects":684,"in_programs":214,"new_last_30_days":63}

Проверки

Локальный PostgreSQL 18, изолированная тестовая БД:

  • python manage.py test users.tests.test_member_statistics_api users.tests.test_user_lists_api --noinput --keepdb — 25 OK.
  • python manage.py test --noinput --keepdb — 901 OK, exit 0; NEXTGEN_SURFACE_ENABLED=True для проверки всех существующих контрактов.
  • python manage.py check — 0 issues.
  • python manage.py makemigrations --check --dry-run — No changes detected.
  • Black / Flake8 пяти затронутых Python-файлов, git diff --check — exit 0.

Документация и определения.

Границы и зависимость

Для будущего DEV-развёртывания backend endpoint должен появиться раньше Angular-виджета. Desktop-виджет сохраняет sidebar 157 px; compact layout показывает статистику 2 × 2 перед списком. Визуальные измерения и скриншоты приложены к отдельному Angular PR.

React, fullname search, миграции, зависимости и workflows не изменены. GET не меняет бизнес-данные. Нагрузочное время на production-объёмах не измерялось. Live-проверка нового endpoint на DEV не выполнялась: merge/deploy не выполнялись.

Связанный Angular Draft PR со скриншотами, responsive-проверкой и геометрией 157 px: PROCOLLAB-github/procollab#381

@TThanos3000
TThanos3000 marked this pull request as ready for review September 27, 2026 10:01
@TThanos3000
TThanos3000 merged commit 11f1e66 into dev Sep 27, 2026
3 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