OSM-es / CatAtomWeb

Interfaz web para la API CatAtomApi
Creative Commons Zero v1.0 Universal
3 stars 2 forks source link

Bloqueado municipio entero si un subelemento lo está #5

Open Crashillo opened 1 year ago

Crashillo commented 1 year ago

En el siguiente video se puede ver como el combo selector de 3er nivel queda completamente bloqueado, por el hecho de que uno de los subelementos esté actualmente bloqueado por alguien.

Debería ser posible crear diferentes proyectos para una misma localidad a la vez, es decir, que un subelemento esté bloqueado, no implicase bloquear al resto.

https://user-images.githubusercontent.com/817526/224988514-c226bf63-bbbd-4202-86fa-0c47123e4038.mp4

Crashillo commented 1 year ago

En la misma linea que este problema, el usuario nukeador, quien está bloqueando el proyecto, me comenta que cómo se puede "desbloquear" el proyecto, ya que por tiempo, no puede ahora mismo completar el proceso.

¿Hay alguna manera de liberar un proyecto para que otro usuario contribuya?

Crashillo commented 1 year ago

He estado investigando este problema: el combo se bloquea debido a que el job.estado viene como FIXME https://github.com/OSM-es/CatAtomWeb/blob/1a4a17366c396d0e16f8a2b127f5a27805079618/src/components/JobPanel.vue#L59-L68

Pero claro, no es tan sencillo, el tema está en que el PanelProcessGroup se rellena exclusivamente con el elemento que ya estaba siendo procesado, por lo que nunca se pueden procesar de manera individual.

Lo que debe de hacer el tercer combo (si existe para el municipio seleccionado) es tratar cada elemento como si fuesen municipios diferentes (aunque se trate de barrios), de tal manera que al cambiar esa selección, todo el panel de procesamiento haga referencia a esa última selección.

Crashillo commented 1 year ago

Luego hay otro asunto, que es el tema de "desbloquear" un proyecto. Por ahora solo se permite eliminarlo (aunque te lo descargues)

javiersanp commented 1 year ago

Respecto a los bloqueos de archivos a revisar. El usuario que descarga el archivo lo deja bloqueado. Cuando sube el archivo se quita el bloqueo. El botón para deshacer quita el bloqueo.

Se puede añadir un timeout para que el bloqueo se quite de forma automática pasado un tiempo.

El registro de archivos a revisar está en el archivo review.txt que genera CatAtom2Osm

CatAtomWeb coge los fixmes y marca los bloqueos a través de CatAtomApi

La petición /job entrega los datos del proyecto incluyendo los archivos a revisar. Los proporciona el método review de Work

La petición GET /fixme (empleada al descargar el fixme), llama al metodo lock_fixme de Work para marcar el bloqueo. Añade a la fila del fixme el id, nombre de usuario y true para indicar que está bloqueado

La petición POST /fixme (empleada al deshacer) llama a unlock_fixme de Work que recupera la fila del fixme de backup/review.txt

La petición PUT /fixme (empleada al subir un archivo corregido) marca en review el id y nombre de usuario.

Los cambios a realizar son:

1 Work.lock_fixme debe añadir una marca de tiempo además de true para indicar el bloqueo.

2 Work.review debe, antes de entregar la lista de fixmes, quitar el bloqueo a los que tengan antigüedad caducada. Concrétamente en _get_fixme_dict

javiersanp commented 1 year ago

https://github.com/OSM-es/CatAtomApi/commit/05712f40d25cd09df4bce716a52962b5b495e10c

Crashillo commented 1 week ago

¿se puede considerar resuelta?