Improve chat replies, hubs API & UI

Backend: enrich message reply data (include created_at and media_files) and ensure chat owners are treated as members; tighten/extend permission checks and message query filters; fix hub routers so moderators/tags routes are resolved before hub detail; accept hub id from request.data in hub permission/tag views; add PostHub serializer and expose hub_detail on posts.

Frontend: update generated API models (postHub, replyTo, members_detail, hub_detail); add hub-related pages/routes and components (HubCard, HubHeader, Tags) and a hub posts feed hook; rework message UI and composer to show richer reply previews (media thumbnails, timestamps), adjust video preload to metadata; add tag selection UI to PostComposer and wire hub tags fetching.

Also: minor UI/UX improvements and generated model exports updated to match backend changes.
This commit is contained in:
2026-06-07 00:24:21 +02:00
parent 6422fefe46
commit cb23abeb5f
43 changed files with 1522 additions and 321 deletions

View File

@@ -1,9 +1,19 @@
from django.urls import include, path
from rest_framework.routers import DefaultRouter
from .views import HubViewSet, HubPermissionViewSet, TagsViewSet
router = DefaultRouter()
router.register('', HubViewSet, basename='hub')
router.register('moderators', HubPermissionViewSet, basename='hub-moderator')
router.register('tags', TagsViewSet, basename='hub-tag')
hub_router = DefaultRouter()
hub_router.register('', HubViewSet, basename='hub')
urlpatterns = router.urls
moderators_router = DefaultRouter()
moderators_router.register('', HubPermissionViewSet, basename='hub-moderator')
tags_router = DefaultRouter()
tags_router.register('', TagsViewSet, basename='hub-tag')
# moderators/ and tags/ must be declared BEFORE the hub router urls so that
# Django resolves them before the hub's generic /{pk}/ pattern can swallow them.
urlpatterns = [
path('moderators/', include(moderators_router.urls)),
path('tags/', include(tags_router.urls)),
] + hub_router.urls