Tengo un sitio con la opción “permitir temas sin categoría” desactivada, pero los temas sin categoría aparecen visibles para un usuario no autenticado (o para un administrador) en dispositivos Android. Acabo de realizar una reconstrucción. Los componentes del tema no lo explican. El problema persiste en modo seguro. Solo tengo instalados plugins oficiales.
¡Sí! Es solo el tema sobre, nada más. No termino de entender cómo podría ser siquiera posible con las especificaciones que asumo que están en vigor. Y es solo en móvil, no en escritorio.
No creo que esperemos que el tema “Acerca de” permanezca en “Sin categoría” cuando está deshabilitado. La advertencia en la descripción de la configuración del sitio “permitir temas sin categoría” dice (énfasis añadido):
ADVERTENCIA: Si hay algunos temas sin categoría, debes recategorizarlos antes de desactivar esta opción.
¿Podrías intentar mover el tema “Acerca de” a una categoría activa? Eso pareció funcionar en mi sitio de prueba.
Es bastante confuso, ya que normalmente está prohibido eliminar un tema “about” (pero supongo que en realidad no es un tema about porque no es realmente una categoría). Pero lo hice, y ahora “Sin categoría” ya no aparece. Y tuve que hacerlo desde mi teléfono, porque de lo contrario no pude encontrarlo.
“Sin categoría” es muy confuso ya que NO es una categoría. Realmente creo que debería estar desactivado por defecto.
Sí. Entiendo ese argumento y solía estar de acuerdo, pero creo que una categoría predeterminada tendría más sentido que no tener categoría. Sin embargo, intentaré no volver a sugerirlo, a menos que, quizás, algún día estemos en el mismo lugar con .
En escritorio mostramos las categorías y los temas por separado, pero en dispositivos móviles los mostramos combinados. Teniendo esto en cuenta, la línea que causa el error es esta:
c.displayable_topics.blank? siempre es verdadero en escritorio porque cargamos los temas por separado, por lo que displayable_topics siempre está vacío. En móviles, solo es verdadero si realmente no hay temas en esa categoría.
Tenemos dos soluciones:
mostrar “sin categoría” si hay al menos un tema, independientemente del valor de la configuración “permitir temas sin categoría”.
ocultar “sin categoría” aunque haya un tema, si “permitir temas sin categoría” está desactivado.
La segunda solución es más fácil de implementar, ya que solo implica eliminar la segunda parte de la condición.
Creo que ocultar los temas que están en “sin categoría” es (extrañamente) menos confuso que NO ocultar “sin categoría” cuando activas la opción. Creo que si desactivas “sin categoría”, notarás inmediatamente que todos esos temas han desaparecido, pero si no sucede nada al desactivar “sin categoría”, parecerá que algo está roto.
He enviado una corrección para el error en el primer mensaje:
Elegí la primera solución porque es la que elimina algo de código de Discourse. La otra, de hecho, añadía código para determinar si hay al menos un tema en la categoría «Sin categoría».
También revisé todos los usos de category.uncategorized? y encontré algunos lugares que podrían no ser necesarios si hiciéramos que «Sin categoría» fuera menos un caso especial y más una categoría normal:
Estos son algunos fragmentos que no interfieren con otras funcionalidades, lo que hace que los cambios sean menos arriesgados, aunque aún no son sencillos.