coderedcorp / coderedcorp/coderedcms

Make built-in models abstract

Abierto
#56 8 comentarios 1 reacción 0 asignados Ver en GitHub
Area: Core ⚙ skill: coderedcms Type: Tech Debt
Lenguaje dominante
Python
Estrellas
765
Forks
154
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

If we want to continue using CODERED_FRONTEND_* settings (which I think we do, they will be the foundation of themes), we will have to make everything that uses our streamfield blocks abstract.

The issue is, many coderedcms models use streamfield blocks that pull values from CODERED_FRONTEND_* settings. Which means if you change one of these settings in your project, it triggers a migration in coderedcms. Which is a bad practice and leads to endless migrations.

This fits in with the paradigm we have been following with the page types. Provide beefy abstract models, and provide a very basic concrete model boilerplate in the project template.

One caveat to making the snippets abstract, is that we will no longer be able to provide a snippet chooser, or hard-code templates that pull in navbar/footer snippets. So this will have to be thought through to figure out how to gracefully handle all of this without re-defining everything in the project template (which would be too much boilerplate I think).

Anyhow, this pretty major regarding future stability. Implementing it will inevitably be a breaking change. But there is no other way to have dynamic blocks and themes. So I think it is necessary.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Empieza por analizar los modelos integrados, los bloques de StreamField, la configuración CODERED_FRONTEND_*, el manejo de snippets y la plantilla del proyecto mencionada en el issue. Determina cómo afectarían los modelos abstractos a la selección de snippets, las plantillas de navbar/footer y las migraciones; el trabajo se considerará terminado cuando exista un diseño documentado que evite las migraciones de settings específicas del proyecto sin un boilerplate excesivo.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
django, python
Área
backend, content
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.