From f831665bcece281da3302d21ac57d4eb58a9be9f Mon Sep 17 00:00:00 2001 From: Thomas Rusiecki Date: Thu, 13 Feb 2025 13:09:26 -0300 Subject: [PATCH] default states commands support for localization --- .../commands/create_default_states.py | 52 ++++++++++++++++--- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/action/management/commands/create_default_states.py b/action/management/commands/create_default_states.py index 6daccb2..1995c4e 100644 --- a/action/management/commands/create_default_states.py +++ b/action/management/commands/create_default_states.py @@ -11,17 +11,22 @@ class Command(BaseCommand): def add_arguments(self, parser): parser.add_argument('institution_name', type=str, help='The name of the institution') + parser.add_argument( + 'language_code', + type=str, + help='The language code to set (e.g., "es", "en", "ca")', + ) def handle(self, *args, **kwargs): default_states = [ - _("INBOX"), - _("VISUAL INSPECTION"), - _("REPAIR"), - _("INSTALL"), - _("TEST"), - _("PACKAGING"), - _("DONATION"), - _("DISMANTLE") + "INBOX", + "VISUAL INSPECTION", + "REPAIR", + "INSTALL", + "TEST", + "PACKAGING", + "DONATION", + "DISMANTLE" ] institution_name = kwargs['institution_name'] @@ -32,6 +37,37 @@ class Command(BaseCommand): logger.error(txt, institution.name) return + # If using djangos localization framework for initial states, then we would need institution-wide languange preferences + lang_code = kwargs['language_code'] + match lang_code: + case "en": + pass + case "es": + default_states = [ + "ENTRADA", + "INSPECCION VISUAL", + "REPARACIÓN", + "INSTALADO", + "PRUEBAS", + "EMPAQUETADO", + "DONACION", + "DESMANTELADO" + ] + case "ca": + default_states = [ + "ENTRADA", + "INSPECCIÓ VISUAL", + "REPARACIÓ", + "INSTAL·LAT", + "PROVES", + "EMPAQUETAT", + "DONACIÓ", + "DESMANTELLAT" + ] + case _: + logger.error("Language not supported %s", lang_code) + return + for state in default_states: state_def, created = StateDefinition.objects.get_or_create( institution=institution,