Auto-fill program item technical name (slug) from title
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza localizando SchemaForm y los componentes de cliente existentes que implementan el comportamiento dinámico de un solo campo. Lee el issue relacionado #564 y compara los otros formularios basados en slug enumerados en el issue. Se considera terminado cuando un título puede rellenar un nombre técnico que no ha sido modificado con el formato de slug esperado, mientras que las ediciones manuales impiden que se sobrescriba posteriormente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When creating a program item, filling in the Technical name (slug) field is repetitive — it is typically derived from the title by lowercasing and replacing spaces/special characters with hyphens.
Requested behaviour
When the user types or pastes into the Title field and the Technical name field is still empty (has not been manually edited), automatically populate the technical name with a correctly formatted slug.
Example: pasting "Visual Novel -pelit vuonna 2026 - Miten ja miksi?" → auto-fills visual-novel-pelit-vuonna-2026-miten-ja-miksi
The auto-fill should stop overwriting once the user has manually edited the technical name field.
Complications
The form currently uses SchemaForm. It supports dynamic behaviour through client components implementing a single field type, but there is no precedent for dynamic behaviour spanning multiple fields.
Here we would need to refer the value of title in a dynamic field for slug. While not technically impossible, it seems rather complex to do while still maintaining a sensible level of abstraction.
Then again, this same need repeats in many other places that have slugs as well:
- Program items (this one)
- Schedule items (currently hidden from UI, but they do have slugs based on program item slug)
- Questions on a form
- Dimensions and dimension values
Related
See also #564 (auto-suggest technical names for survey fields — same concept, different context).
Background
Reported by Desucon Frostbite 2026 program management.
- Lenguaje dominante
- Python
- Estrellas
- 29
- Forks
- 33
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 23
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de con2/kompassi
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
python
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
con2/kompassi#770 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
con2/kompassi#757 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de con2/kompassi
Issues similares
-
Let's Encrypt certificate neededAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
GAM-team/got-your-back#547 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
UKGovernmentBEIS/inspect_ai#5821 ·
Los mantenedores suelen responder en 1 día
-
docs help wanted
Dificultad 1/5 1-3 horas Aptitud para principiantes 75/100
-
evidence wanted good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
open-coder-ai/agentseam#195 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día