import csv import os from django.core import management from django.core.management import BaseCommand, CommandError from basicknowledge.models import BasicKnowledge from datetime import date from core.convert_page_translation import ( AlreadyTranslatedException, ModuleDoesNotExistException, convert_page_to_translation, ) EN = "en" FR = "fr" class Command(BaseCommand): """ usage: `python manage.py migrate_translation --slug slug --original original_slug --language 'en'` """ def add_arguments(self, parser): parser.add_argument("--slug", type=str, required=True) parser.add_argument("--original", type=str, required=True) parser.add_argument("--language", type=str, choices=[EN, FR], default=EN) def handle(self, *_, **options): slug = options.get("slug") original_slug = options.get("original") language_code = options.get("language") try: result = convert_page_to_translation( slug=slug, original_slug=original_slug, language_code=language_code ) self.stdout.write(result) except ModuleDoesNotExistException as e: raise CommandError(f"Module does not exist: {e}") except AlreadyTranslatedException: raise CommandError( f"Pages {slug} and {original_slug} already are translations of each other" )