You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.1 KiB
79 lines
3.1 KiB
from django.core.management.base import BaseCommand
|
|
from django.db import transaction
|
|
from apps.library.models import Author
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Populates the newly added fields for all existing authors with sample English data'
|
|
|
|
def handle(self, *args, **options):
|
|
self.stdout.write(self.style.WARNING('--- Starting Author Fields Population ---'))
|
|
|
|
authors = Author.objects.all()
|
|
if not authors.exists():
|
|
self.stdout.write(self.style.ERROR('No authors found in the database.'))
|
|
return
|
|
|
|
self.stdout.write(self.style.SUCCESS(f'Found {authors.count()} authors. Commencing update...'))
|
|
|
|
updated_count = 0
|
|
with transaction.atomic():
|
|
for author in authors:
|
|
# 1. Researcher / Editor
|
|
if not author.researcher_editor:
|
|
author.researcher_editor = f"Edited and researched by {author.full_name}"
|
|
|
|
# 2. Publisher
|
|
if not author.publisher:
|
|
author.publisher = "Imam Javad Publishing Institute"
|
|
|
|
# 3. Publication Place
|
|
if not author.publication_place:
|
|
author.publication_place = "Qom, Iran"
|
|
|
|
# 4. Edition Statement
|
|
if not author.edition_statement:
|
|
author.edition_statement = "First Edition (Revised)"
|
|
|
|
# 5. Year
|
|
if not author.year:
|
|
author.year = "1448 AH"
|
|
|
|
# 6. Number of Volumes
|
|
if not author.number_of_volumes:
|
|
author.number_of_volumes = 5
|
|
|
|
# 7. Notes
|
|
if not author.notes:
|
|
author.notes = f"This edition contains annotations and key commentaries regarding the works of {author.full_name}."
|
|
|
|
# 8. Online Source
|
|
if not author.online_source:
|
|
author.online_source = "https://imamjavad.nwhco.ir"
|
|
|
|
# 9. Tag
|
|
if not author.tag:
|
|
author.tag = "Reference Books"
|
|
|
|
# 10. Copy thumbnail to image if thumbnail exists and image doesn't
|
|
if author.thumbnail and not author.image:
|
|
author.image = author.thumbnail
|
|
|
|
# 11. Date of Birth (text)
|
|
if not author.date_of_birth:
|
|
if author.birth_date:
|
|
author.date_of_birth = f"{author.birth_date.year} AD"
|
|
else:
|
|
author.date_of_birth = "Around 4th Century AH"
|
|
|
|
# 12. Date of Death (text)
|
|
if not author.date_of_death:
|
|
if author.death_date:
|
|
author.date_of_death = f"{author.death_date.year} AD"
|
|
else:
|
|
author.date_of_death = "Around 5th Century AH"
|
|
|
|
author.save()
|
|
updated_count += 1
|
|
self.stdout.write(f"Updated author: {author.full_name}")
|
|
|
|
self.stdout.write(self.style.SUCCESS(f'--- Finished! Successfully updated {updated_count} authors ---'))
|