Skip to content

Centralizar constantes y choices de dominio en core/choices.py#53

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/centralizar-constantes-y-choices
Draft

Centralizar constantes y choices de dominio en core/choices.py#53
Copilot wants to merge 2 commits intomainfrom
copilot/centralizar-constantes-y-choices

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 24, 2026

O que esse PR faz?

Cria core/choices.py com as constantes de domínio centralizadas (LANGUAGE, ROLE, MONTHS, LICENSE_TYPES, GENDER_CHOICES), alinhado com o padrão já utilizado em scieloorg/core e scieloorg/markup.

  • LANGUAGE: 182 códigos ISO 639-1
  • ROLE, MONTHS, LICENSE_TYPES, GENDER_CHOICES: labels com gettext_lazy para i18n
  • LICENSE_TYPES: 6 tipos Creative Commons (by, by-sa, by-nc, by-nc-sa, by-nd, by-nc-nd)
from core.choices import LANGUAGE, ROLE, MONTHS, LICENSE_TYPES, GENDER_CHOICES

Onde a revisão poderia começar?

core/choices.py

Como este poderia ser testado manualmente?

import django.conf
django.conf.settings.configure(USE_I18N=True, INSTALLED_APPS=['django.contrib.contenttypes'])
from core.choices import LANGUAGE, ROLE, MONTHS, LICENSE_TYPES, GENDER_CHOICES

assert len(LANGUAGE) == 182
assert len(MONTHS) == 12
assert len(LICENSE_TYPES) == 6
assert [c for c, _ in LICENSE_TYPES] == ["by", "by-sa", "by-nc", "by-nc-sa", "by-nd", "by-nc-nd"]

Testes unitários em core/tests.py validam estrutura, conteúdo e uso de lazy strings.

Algum cenário de contexto que queira dar?

O arquivo segue exatamente o mesmo conteúdo e formato de core/choices.py nos repositórios scieloorg/core e scieloorg/markup, mantendo consistência entre os microsserviços da organização.

Screenshots

N/A

Quais são tickets relevantes?

N/A

Referências

Original prompt

This section details on the original issue you should resolve

<issue_title>Centralizar constantes y choices de dominio en core/choices.py</issue_title>
<issue_description>### Descripción de la nueva funcionalidad
Yo, como desarrollador backend, quiero que todas las constantes de dominio de la aplicación (idiomas, roles, meses, tipos de licencia, géneros) estén centralizadas en core/choices.py, para que todos los modelos y formularios del proyecto utilicen una única fuente de verdad, facilitando el mantenimiento y la internacionalización.

Criterios de aceptación

  • El archivo core/choices.py debe exponer las siguientes listas: LANGUAGE, ROLE, MONTHS, LICENSE_TYPES, GENDER_CHOICES.
  • Los valores de texto en ROLE, MONTHS, LICENSE_TYPES y GENDER_CHOICES deben estar envueltos en gettext_lazy(_(...)) para soporte i18n.
  • LANGUAGE debe cubrir todos los idiomas del estándar ISO 639-1.
  • LICENSE_TYPES debe cubrir los seis tipos de licencias Creative Commons (by, by-sa, by-nc, by-nc-sa, by-nd, by-nc-nd).
  • El archivo debe terminar con salto de línea (\n).

Anexos

Este tópico é opcional mas pode ser utilizado para incluir objetos a serem analisados ou demonstrações que podem ser utilizados de exemplo.

Referencias

Comments on the Issue (you are @copilot in this section)


📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Agent-Logs-Url: https://github.com/scieloorg/markapi/sessions/3955e5ce-dc7d-409e-9dfc-312d46c615f1
Copilot AI changed the title [WIP] Centralize domain constants and choices in core/choices.py Centralizar constantes y choices de dominio en core/choices.py Mar 24, 2026
Copilot AI requested a review from robertatakenaka March 24, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Centralizar constantes y choices de dominio en core/choices.py

2 participants