- Optimize HadisSyncSerializer: remove unused number, address_details, and book descriptions
- Separate sync serializers for corrections and interpretations (omitting redundant hadis_info and category_info)
- Add HadisDatabaseVersion model and migration for tracking offline SQLite DB
- Add export_hadis_sqlite management command with gzip compression and single-file overwrite
- Add GET /api/hadis/sync/database/ endpoint and enhance version serializers
- Automatically trigger background SQLite database export on version increment in admin
- Add request-level user bookmark memoization in BookmarkStatusSerializer to eliminate redundant queries across all lists
- Optimize BookReferenceSyncView and BookReference.authors caching (reduced queries from 185 to 10)
- Add multi-level prefetch_related for references and images in HadisMainListView (reduced queries from 109 to 6)
- Add incremental sync support (updated_after/since) in HadisSyncView
- Add select_related for language in BookListView (reduced queries from 35 to 18)
- Annotate episode count and cache effective_thumbnail in podcast and video playlist views (reduced queries from 22/17 to 4)
- Prefetch categories with annotated article counts in ArticleListAPIView (reduced queries from 41 to 3)
- Scale Gunicorn workers/threads to 4w/4t (16 concurrency) with gthread in docker-compose.prod.yml
- Create reusable watermark utility in utils/watermark.py supporting PIL, UploadedFile, bytes, and DRF serializer fields
- Default position set to bottom-left with responsive 32% width scaling and alpha blending
- Auto-resolve SVG watermark to high-resolution PNG
- Integrate automatic watermarking into Article thumbnails, Hadith/Book Reference images, Corrections, Original Texts, and Interpretations
update corrections , interpretations and original text models to connect to new logic of our references models
made a new api for detail pages of these references
update former serializers to be synced with new changes
create a new v2 api for new structure and lates changes of references page
new populated script added and run in commands
book creation is now only creates if a edition or folder mentioned, not blindly all the volumes !
script deletes the old books
some models updated with new values
- Introduced `ColorPaletteMixin` to centralize color choice fields and hex code properties across `HadisStatus`, `TransmitterReliability`, and `OpinionStatus` models.
- Updated the `color` field in these models to use the mixin, enhancing code reusability and maintainability.
- Modified serializers to include `main_color_code` and `light_color_code` properties for better color representation in API responses.
- Added a new migration to adjust the database schema for the updated models.
- Introduced the `EmbeddingSession` model to track the status and progress of embedding tasks, including fields for status, progress, processed items, and error messages.
- Created `EmbeddingSessionAdmin` to manage embedding sessions in the admin interface, featuring custom display methods for status badges and progress bars.
- Implemented background processing to trigger a FastAPI agent upon creating a new embedding session, enhancing the system's responsiveness and user experience.
- Added migrations to establish the new model in the database.
- Introduced a `share_link` property in the `Article`, `Hadis`, `Book`, `Podcast`, `Video`, and `Transmitter` models to generate shareable links based on their slugs.
- Updated corresponding serializers to include the `share_link` field as read-only.
- Added a management command to refresh share links for existing Hadis models, ensuring all instances have updated slugs and share links.
- Adjusted the `settings` to define `DOVODI_DOMAIN` for consistent link generation across models.
- Introduced a new command to evenly distribute source types across existing HadisCategory instances.
- Added a command to seed categories and collections in the library, relating existing books to them.
- Enhanced HadisCategory model to allow Unicode in slugs through a migration.
- Updated Nginx configuration to include a new location for proxying requests to a FastAPI agent.
- Added a COLOR_PALETTE dictionary to the HadisStatus model for color management.
- Introduced properties to retrieve main and light color codes based on the selected color.
- Updated HadisStatusSerializer to include read-only fields for main and light color codes.
- Enabled the population of books in the entrypoint script by uncommenting the relevant command.
- Enhanced the save methods in Hadis, HadisCategory, BookReference, Transmitter, and related models to ensure unique slug generation.
- Implemented robust error handling and fallback mechanisms for slug creation based on title fields, with timestamp-based fallbacks for empty or invalid titles.
- Removed unnecessary thumbnail handling from TransmittersAdmin and simplified the display_header method.
- Improved overall data integrity and consistency in slug management across the application.
- Updated HadisCollectionAdmin and TransmittersAdmin to include a custom display header with thumbnail images.
- Modified list_display to show the new display_header method for better visual representation.
- Added thumbnail field to HadisCollection and Transmitters models, replacing FilerImageField with ImageField for improved image handling.
- Created a migration to alter the thumbnail fields in the database schema.
- Introduced BookSubjectArea and BookType models with JSONField for titles.
- Added 'description' field to HadisStatus model.
- Updated BookReference model to include ManyToMany relationship with BookSubjectArea and a ForeignKey to BookType.
- Enhanced admin interfaces for HadisStatus, BookReference, and BookAuthor to accommodate new fields and improve usability.