Browse Source
feat(references): add book priority, edition title, and many-to-many works linking
master
feat(references): add book priority, edition title, and many-to-many works linking
master
5 changed files with 131 additions and 5 deletions
-
42apps/hadis/migrations/0066_alter_bookreference_options_bookedition_books_and_more.py
-
19apps/hadis/migrations/0067_populate_book_edition_books.py
-
28apps/hadis/models/reference.py
-
30apps/hadis/serializers/serializers_admin.py
-
17apps/hadis/views_admin.py
@ -0,0 +1,42 @@ |
|||||
|
# Generated by Django 4.2.30 on 2026-10-21 12:54 |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('hadis', '0065_country_and_publisher_models'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterModelOptions( |
||||
|
name='bookreference', |
||||
|
options={'ordering': ('priority', 'id'), 'verbose_name': 'Book Reference', 'verbose_name_plural': 'Book References'}, |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='bookedition', |
||||
|
name='books', |
||||
|
field=models.ManyToManyField(blank=True, related_name='editions_list', to='hadis.bookreference', verbose_name='Connected Books/Works'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='bookedition', |
||||
|
name='title', |
||||
|
field=models.JSONField(blank=True, default=list, verbose_name='Edition Title'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='bookreference', |
||||
|
name='priority', |
||||
|
field=models.PositiveIntegerField(db_index=True, default=0, help_text='Display order priority. Lower numbers appear first.', verbose_name='Priority'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='bookedition', |
||||
|
name='book_reference', |
||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='editions', to='hadis.bookreference', verbose_name='book reference'), |
||||
|
), |
||||
|
migrations.AddIndex( |
||||
|
model_name='bookreference', |
||||
|
index=models.Index(fields=['priority'], name='hadis_bookr_priorit_74ae96_idx'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,19 @@ |
|||||
|
from django.db import migrations |
||||
|
|
||||
|
def populate_books(apps, schema_editor): |
||||
|
BookEdition = apps.get_model('hadis', 'BookEdition') |
||||
|
for edition in BookEdition.objects.filter(book_reference__isnull=False): |
||||
|
edition.books.add(edition.book_reference) |
||||
|
|
||||
|
def reverse_populate(apps, schema_editor): |
||||
|
pass |
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('hadis', '0066_alter_bookreference_options_bookedition_books_and_more'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.RunPython(populate_books, reverse_populate), |
||||
|
] |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue