Archived
Backend: - Create hermes Django app with models: ReadingGroup, GroupBook, Section, ReadingSchedule, MemberProgress - EPUB section splitting service with automatic detection and reading time estimation - Section recommendation engine for 4-week meeting schedule - REST API endpoints for groups, books, sections, schedule, and member progress - Manual section adjustment (merge/split) support Frontend: - GroupsPage: list/create reading groups - GroupDetailPage: manage members, upload EPUB to group, view group books - GroupBookPage: section breakdown with merge/split controls, reading schedule, member progress - API client and TypeScript types for all group operations - i18n keys for English and Spanish Shared: - Group-related types and API endpoint constants in packages/shared
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
from django.contrib import admin
|
|
|
|
from apps.groups.models import (
|
|
GroupBook,
|
|
MemberProgress,
|
|
ReadingGroup,
|
|
ReadingGroupMembership,
|
|
ReadingSchedule,
|
|
Section,
|
|
)
|
|
|
|
|
|
@admin.register(ReadingGroup)
|
|
class ReadingGroupAdmin(admin.ModelAdmin):
|
|
list_display = ["name", "admin", "created_at"]
|
|
search_fields = ["name", "admin__email"]
|
|
|
|
|
|
@admin.register(ReadingGroupMembership)
|
|
class ReadingGroupMembershipAdmin(admin.ModelAdmin):
|
|
list_display = ["user", "group", "role", "joined_at"]
|
|
list_filter = ["role", "group"]
|
|
|
|
|
|
@admin.register(GroupBook)
|
|
class GroupBookAdmin(admin.ModelAdmin):
|
|
list_display = ["title", "group", "status", "uploaded_by", "created_at"]
|
|
list_filter = ["status"]
|
|
search_fields = ["title", "group__name"]
|
|
|
|
|
|
@admin.register(Section)
|
|
class SectionAdmin(admin.ModelAdmin):
|
|
list_display = ["title", "group_book", "order", "estimated_reading_minutes"]
|
|
ordering = ["group_book", "order"]
|
|
|
|
|
|
@admin.register(ReadingSchedule)
|
|
class ReadingScheduleAdmin(admin.ModelAdmin):
|
|
list_display = ["group_book", "meeting_number", "week_date"]
|
|
ordering = ["group_book", "meeting_number"]
|
|
|
|
|
|
@admin.register(MemberProgress)
|
|
class MemberProgressAdmin(admin.ModelAdmin):
|
|
list_display = ["user", "group_book", "current_section", "updated_at"] |