Git Product home page Git Product logo

catalogo-agrobiodiversidad's People

Contributors

aliciamstt avatar iramosp avatar jmbarrios avatar rovestacio avatar vivianbass avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

catalogo-agrobiodiversidad's Issues

Actualizar _pendiente y es_* en scripts de validación

  • Encontramos un caso no previsto por los script de validación: cuando se le asigna un catID a un taxón cuyo catid que estaba marcado como _pendiente

https://files.slack.com/files-pri/TE603HEP4-F0465QQFBPS/image.png

El comportamiento deseado sería borrar el que tiene id _pendiente y mantener el nuevo. Pero antes de proceder tenemos que decidir qué hacer con los campos que no están en CAT, como las referencias y quizá otros como es_parientesilvestre.

  • Verificar si al agregar un sinónimo también se agrega en automático el idCAT válido. Efectivamente falta esto

  • Adicionalmente, si la etiqueta true/false de es_parientesilvestre/quelite/domesticado se pone en un sinónimo, este valor debe quitarse del sinónimo y ponerse solo en el válido. Junto a este paso, hay que revisar: de los sinónimos, verificar que el válido esté en la lista y tenga la info extra (etiquetas y referencia). Si el válido está en la lista, pero no tiene info adicional, agregarla. Agregarlo si hace falta y heredar la info extra (etiquetas, referencia). Esto va en un nuevo script check_sinonimos.py

  • Revisar que sólo los válidos estén etiquetados como agrobd, parientes silvestres, quelite, domesticado.

  • Hay un taxón que no tiene id válido asociado, por lo tanto por el momento tiene sus respectivas etiquetas:
    54795ANGIO | Solanum bicolor. Respuesta de Emmanuel: Es un error de catálogo, Diana y equipo lo van a corregir.

  • Agregar al script estatus.py que la etiqueta de pariente, quelite, domesticado se herede como ocurre con la referencia y la etiqueta agrobd cuando hay cambio de estatus, así como que se eliminen las etiquetas del sinonimo.

Script actualización CAT cambio status listado Agrobiodiversidad

¿Cómo mantener actualizado la lista agrobd y CAT?

  • La información adicional de CAT, incluida la etiqueta de agrobd, está asociada sólo a taxones válidos. Si el estatus de un taxón cambia de válido a sinónimo, CAT cambiaría la etiqueta al taxón válido y dejaría de existir para el taxón sinónimo que fue reemplazado.
  • Necesitamos una forma automática de identificar esos cambios que pueden ocurrir en la lista de taxones de agrobd.
  • Propuesta:
    • Agregar las columnas Id válido y estatus al listado (guardadas de forma local como el resto de las columnas)
    • Al final del día, para cada taxón, comparar el estatus, Id válido y taxon de la lista con el de CAT a través de consultas a zacatuche.
    • Por decidir: Si hay diferencia entre el listado y CAT, ¿queremos que los cambios sean automáticos? ¿Qué cambios serían? Ver abajo

Escenarios 1: No hay diferencias --> do nothing

Local

ID ID Válido Estatus Taxon Agrobd
1 1 Válido taxon1 agrobd
2 2 Válido taxon2 agrobd

CAT

ID ID Válido Estatus Taxon
1 1 Válido taxon1
2 2 Válido taxon2

Escenarios 2: Cambio de estatus (taxon1 se vuelve sinónimo de taxon2)

CAT

ID ID Válido Estatus Taxon
1 2 sinónimo taxon1
2 2 Válido taxon2

2.1 Local: No tenemos taxon2 en lista agrobd

ID ID Válido Estatus Taxon
1 1 Válido taxon1

2.2 Local: Sí tenemos taxon2 en lista agrobd

ID ID Válido Estatus Taxon
1 1 Válido taxon1
2 2 Válido taxon2

Pasos:

  • Script revisa si ID local está en catálogo, regresa error como email (sólo por seguridad).
  • Script identifica diferencia en ID válido de taxon1. (Pendiente: comparar taxon)
  • Script extrae nuevo ID válido y estatus de CAT.
  • Script revisa si nuevo ID válido existe localmente.
  • Si NO: Agregar nuevo taxon local con etiqueta Agrobd (Pendiente: colocar condición IF valido == Agrobd)
  • Script actualiza estatus y ID Válido de taxon1-local. Etiqueta agrobd == NULL
  • Si SÍ: Actualiza estatus y ID Válido de taxon1-local. Quita etiqueta agrobd. Confirma que taxon válido nuevo tiene etiqueta agrobd.
  • Para cualquier cambio por el script, se cambia el usuario por script usuario o algo así.

Script para sincronizar CAT y lista local

  • Input: consulta a zacatuche mediante ID y fila de tabla local.
  • En la columna Quién del changelog aparece como usuario script o algo así.

Changelog

fecha ID Tipo cambio Campo Valor anterior Valor actual Quién
Nuevo registro
Borrar registro
Editar registro Taxon xxx yyy
  • Preguntar a Oswa y Diana si piensan usar este changelog o la historia.
  • Redundancia ok.

Pasos

  1. Agregar nuevos campos a modelos en la instancia. @VivianBass
  2. Actualizar listado con esos nuevos campos @iramosp
  3. Reunión sobre documentación y mejores prácticas.
  4. Actualizar script changelog
  5. Nuevo script para sincronizar CAT y lista local.

Otros pendientes

  • Limpiar la lista para que ningún sinónimo tenga la etiqueta agrobd si el id_valido también aparece en la lista. Si el id_valido no aparece en la lista, agregarlo y asignar la etiqueta.

¿Casos especiales?

Resumen

diagrama

Transiciones y acciones que requiere cada una

  • Todos los cambios requieren sincronizar estatus, id_valido y taxon_valido.
  • Sinónimo --> Válido OR NA --> Válido:
    • Si id no tiene etiqueta agrobd, solicitar revisarla en los comentarios del registro.
  • Válido --> NA:
    • Quitar etiqueta agrobd
  • Sinónimo --> Sinónimo (id_valido diferente):
    • Revisar si nuevo id_valido está en la lista.
    • Si no está, agregarlo y solicitar revisar la etiqueta agrobd en los comentarios del registro.
  • Válido --> Sinónimo:
    • Quitar etiqueta agrobd a id
    • Revisar si nuevo id_valido está en nuestra lista
    • Si está: asignar la etiqueta agrobd y referencias
    • Si no está: agregarlo y asignar etiqueta agrob y referencias que hereda del registro id

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.