Lo noté en el menú de acciones masivas (visible en la página de búsqueda, al usar la selección masiva para uno o más publicaciones).
Hay dos opciones de eliminación:
Eliminar tema(s)
Eliminar publicación(es)
La confirmación para «Eliminar publicaciones» parece clara, pero la confirmación para «Eliminar temas» resulta confusa, en mi opinión.
Eliminar permanentemente los temas seleccionados. Esta acción no se puede deshacer.
de: js.topic_bulk_actions.delete_topics.description
Si confirmo la eliminación de los temas seleccionados, estos se eliminan de forma normal (suave) y pueden restaurarse.
Esto ocurre con la configuración del sitio can_permanently_delete establecida en false (predeterminado).
Además, no parece haber una distinción visual entre los resultados de búsqueda que son temas y los que son publicaciones/respuestas, aparte de pasar el cursor sobre ellos y mirar el final de la URL. Esto hace que el uso de estas dos opciones de eliminación masiva sea un poco poco intuitivo para los moderadores, en mi opinión.
3 Me gusta
Estamos en proceso de mejorar las “acciones” disponibles en modo por lotes, pero esta en particular se nos pasó por alto porque aún no está disponible.
main ← fix-bulk-delete-topics-copy
merged 07:46AM - 25 Aug 26 UTC
Reported in [Bulk actions confusion - Delete Topics](https://meta.discourse.org/… t/410444).
Selecting topics and choosing **Delete** asks you to confirm:
> Permanently delete the selected topics. This action cannot be undone.
…and then soft deletes them, so they can be recovered. Not search-specific — the same modal is used by every topic list.
There is no configuration where the copy is true. `TopicsBulkAction#delete` builds `PostDestroyer` with an empty options hash, so `permanent?` is never satisfied, and `PUT /topics/bulk` doesn't permit `force_destroy` in the first place. `can_permanently_delete` has no bearing on this path. The description was added with the copy pass in 4b6169028f and never matched the behaviour.
### Also fixed
Two long-standing bugs in the same six lines:
- `delete` was the only operation in `TopicsBulkAction` that never appended to `@changed_ids`, so the endpoint always answered `{"topic_ids":[]}`. A bulk delete where the guardian skipped every topic looked exactly like a successful one, toast included.
- `ordered_posts` is scoped by `Trashable`, so for a topic whose first post was already deleted it returned post 2. `is_first_post?` was then false, `@topic.trash!` never ran, and an unrelated reply was deleted while the topic stayed alive — reported as a success. `TopicsController#destroy` already gets this right with `ordered_posts.with_deleted.first`.
### Follow-ups, not in this PR
- `ordered_posts.first` feeding `PostDestroyer` carries the same latent bug at five other call sites: `Jobs::DeleteTopic`, three in `DestroyTask`, and `TopicGuardian#can_recover_topic?`. Worth a `Topic` accessor rather than a sixth hand-rolled copy.
- Search results give no hint whether a hit is a topic or a reply, which is the other half of the report. `post_number` is already serialized and `search.post_format` already exists, but is gated to the in-topic dropdown.
- Translations of this key still assert permanence until the pipeline catches up.
3 Me gusta