feat: add parser source dashboard and scheduling
All checks were successful
CI/CD Pipeline / Code Quality Checks (pull_request) Successful in 1m55s
CI/CD Pipeline / Run Tests (pull_request) Successful in 3m6s
CI/CD Pipeline / Run API Inventory E2E Tests (pull_request) Successful in 2m48s
CI/CD Pipeline / Telegram Notify Success (pull_request) Successful in 19s

This commit is contained in:
2026-04-28 01:08:51 +02:00
parent 1249071a33
commit 26d61f7181
58 changed files with 7713 additions and 141 deletions

View File

@@ -19,6 +19,7 @@ API v1 URL configuration.
from apps.backups.urls import backups_urlpatterns
from apps.core.views import (
BackgroundJobControlView,
BackgroundJobListView,
BackgroundJobStatusView,
BackgroundJobStreamView,
@@ -33,8 +34,8 @@ from apps.parsers.urls import (
system_urlpatterns,
zakupki_urlpatterns,
)
from registers.urls import registers_urlpatterns
from django.urls import include, path
from registers.urls import registers_urlpatterns
app_name = "api_v1"
@@ -43,6 +44,11 @@ jobs_urlpatterns = [
path("", BackgroundJobListView.as_view(), name="job-list"),
path("<str:task_id>/stream/", BackgroundJobStreamView.as_view(), name="job-stream"),
path("<str:task_id>/", BackgroundJobStatusView.as_view(), name="job-status"),
path(
"<str:task_id>/control/",
BackgroundJobControlView.as_view(),
name="job-control",
),
]
urlpatterns = [
@@ -58,6 +64,10 @@ urlpatterns = [
path("zakupki/", include((zakupki_urlpatterns, "zakupki"))),
# Парсеры - ФНС бухгалтерская отчетность
path("fns/", include((fns_urlpatterns, "fns"))),
# Результаты новых источников без перекрытия старых API выше
path("", include("apps.parsers.api_result_urls", namespace="parser_results")),
# Управление parser Celery задачами и dashboard data
path("parsers/", include("apps.parsers.urls")),
# Агрегированные карточки источников для фронтенда
path("sources/", include((sources_urlpatterns, "sources"))),
# Настройки периодичности парсинга

View File

@@ -4,6 +4,7 @@ URL Configuration for the project.
The `urlpatterns` list routes URLs to views.
"""
from apps.parsers.views import ParserDashboardPageView
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
@@ -45,6 +46,28 @@ urlpatterns = [
schema_view.with_ui("swagger", cache_timeout=0),
name="schema-swagger-ui",
),
path("dashboard", ParserDashboardPageView.as_view(), name="dashboard"),
path("dashboard/", ParserDashboardPageView.as_view(), name="dashboard-slash"),
path(
"dashboard/<str:source_key>",
ParserDashboardPageView.as_view(),
name="dashboard-source",
),
path(
"dashboard/<str:source_key>/",
ParserDashboardPageView.as_view(),
name="dashboard-source-slash",
),
path(
"dashboard/<str:source_key>/<int:item_id>",
ParserDashboardPageView.as_view(),
name="dashboard-source-item",
),
path(
"dashboard/<str:source_key>/<int:item_id>/",
ParserDashboardPageView.as_view(),
name="dashboard-source-item-slash",
),
path("admin/", admin.site.urls),
path("health/", include("apps.core.urls")),
path("api/v1/", include("core.api_v1_urls", namespace="api_v1")),