This repository has been archived on 2026-07-21. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
cloud-reader/backend/apps/groups/admin.py
T
Marko d5def297b9 feat: implement group creation and management (US #28)
Backend:
- Add groups Django app with models: Group, GroupMember, GroupInvite, JoinRequest
- Create serializers with business rule validation
- Implement GroupViewSet with full CRUD + custom actions (members, invites, roles, leave, join requests)
- Add JoinGroupViewSet for invite-based joining flow
- Register app in Django config and URL routing

Frontend:
- Add shared types for groups to @cloud-reader/shared
- Create groups API client (groupsApi)
- Build GroupsListPage, GroupDetailPage (member mgmt, invites, role transfer)
- Build CreateGroupPage and JoinGroupPage
- Add lazy-loaded routes to App.tsx with ProtectedRoute
- Add navigation links to Library header

Ref: #28
2026-06-20 19:25:46 +00:00

31 lines
964 B
Python

from django.contrib import admin
from apps.groups.models import Group, GroupInvite, GroupMember, JoinRequest
@admin.register(Group)
class GroupAdmin(admin.ModelAdmin):
list_display = ["id", "name", "created_by", "created_at"]
search_fields = ["name", "created_by__email"]
@admin.register(GroupMember)
class GroupMemberAdmin(admin.ModelAdmin):
list_display = ["id", "group", "user", "role", "joined_at"]
list_filter = ["role"]
search_fields = ["group__name", "user__email"]
@admin.register(GroupInvite)
class GroupInviteAdmin(admin.ModelAdmin):
list_display = ["id", "group", "code", "created_by", "use_count", "is_active", "created_at"]
list_filter = ["is_active"]
search_fields = ["code", "group__name"]
@admin.register(JoinRequest)
class JoinRequestAdmin(admin.ModelAdmin):
list_display = ["id", "group", "user", "status", "created_at"]
list_filter = ["status"]
search_fields = ["group__name", "user__email"]