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