Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bloqueado municipio entero si un subelemento lo está #5

Open
Crashillo opened this issue Mar 14, 2023 · 6 comments
Open

Bloqueado municipio entero si un subelemento lo está #5

Crashillo opened this issue Mar 14, 2023 · 6 comments

Comments

@Crashillo
Copy link
Member

Crashillo commented Mar 14, 2023

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.

Screencast.from.14-03-23.12.31.15.mp4
@Crashillo
Copy link
Member Author

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
Copy link
Member Author

He estado investigando este problema: el combo se bloquea debido a que el job.estado viene como FIXME

const divDisabled = computed(() => {
if (divisiones.value.length == 0) {
return true
} else if (!['AVAILABLE', 'ERROR', 'DONE'].includes(job.estado)) {
return true
} else if (job.report.options && !job.report.options.includes('-s')) {
return true
}
return false
})

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
Copy link
Member Author

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

@javiersanp
Copy link
Member

javiersanp commented Apr 6, 2023

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
Copy link
Member

@Crashillo
Copy link
Member Author

¿se puede considerar resuelta?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants