Projet

Général

Profil

Actions

Bug #1435

fermé

Problème de seeds pour les décimales

Ajouté par Marion Maguer il y a plus de 8 ans. Mis à jour il y a environ 8 ans.

Statut:
Fermé
Priorité:
Urgent
Assigné à:
Version cible:
Début:
13/04/2016
Echéance:
% réalisé:

100%

Temps estimé:

Description

Lors de l'import des résultats les décimales n'ont pas été prises en comptes, les résultats sont tronqués.
Préciser le symbole utilisé pour les décimales dans /db/seeds;rb?
[473] results = CSV.read("#{Rails.root}/db/seeds/results.csv", headers: true, col_sep: ';')


Fichiers

results_dec.csv (1,28 Mo) results_dec.csv Résultats à importer Jonathan Schaeffer, 18/04/2016 14:05
correct_dec.out (413 ko) correct_dec.out Sortie de l'opération de correction des décimales Jonathan Schaeffer, 18/07/2016 14:52
Err_results_dec_MO.csv (14,2 ko) Err_results_dec_MO.csv Marion Maguer, 11/08/2016 14:29

Mis à jour par Jonathan Schaeffer il y a plus de 8 ans

Pour chaque résultat de la table CSV
  • trouver la collection correspondant dans la base, à partir de son oldid
  • trouver dans la base tous les résultats liés à cette collection qui correspondent aux paramètres du résultat de la table (NUM_VAL, etc.)
    • si on trouve plusieurs résultats alors
      • toutes ces valeurs sont interchangeables, puisque les autres champs sont identiques.
      • il faut corriger tous ces résultats à partir de tous les résultats de la table CSV qui correspondent à cette collection.
      • tester qu'il y a bien autant de résultats dans la table CSV que dans la base
    • sinon (on a un seul résultat)
      • mettre à jour la valeur

Mis à jour par Jonathan Schaeffer il y a plus de 8 ans

Mis à jour par Jonathan Schaeffer il y a plus de 8 ans

  • Statut changé de Nouveau à Résolu

Les décimales ont été corrigées automatiquement.

Marion, peux tu valider que cela correspond bien à ce que tu attendais ?

Mis à jour par Redmine Admin il y a plus de 8 ans

  • % réalisé changé de 0 à 100

Mis à jour par Jonathan Schaeffer il y a plus de 8 ans

Mis à jour par Marion Maguer il y a plus de 8 ans

  • Statut changé de Résolu à In Progress

Non, ça n'a pas trop bien fonctionné, il en manque.

Mis à jour par Marion Maguer il y a plus de 8 ans

Premier problème : cas des échantillons granulo où il y a 3 MO. Celles-ci ont les mêmes variables et mêmes méthode d'analyses, seule la valeur du résultat les différencie. Voir fichier "Err_results_dec_MO.csv"
Extrait de correct_dec.out :

Correction du résultat 68613
On a 18 résultats dans la base
On a 3 résultats concernant la variable % de matière organique
On a 3 résultats concernant la méthode analytique Perte au feu 450°C
Correction de la valeur 1.0 en 1,3608 pour le resultat 14659
Correction du résultat 68614
On a 18 résultats dans la base
On a 3 résultats concernant la variable % de matière organique
On a 3 résultats concernant la méthode analytique Perte au feu 450°C
Correction de la valeur 1.3608 en 1,5707 pour le resultat 14659
Correction du résultat 68615
On a 18 résultats dans la base
On a 3 résultats concernant la variable % de matière organique
On a 3 résultats concernant la méthode analytique Perte au feu 450°C
Correction de la valeur 1.5707 en 1,4741 pour le resultat 14659

En fait, cette partie du script modifie 3 fois la même valeur :

  1. S'il en reste toujours plusieurs, alors c'est qu'ils sont interchangeables avec un autre résultat.>
  2. On trie la liste par date de mise à jour et on prend celui qui est le plus ancien>
    if saved_results.count > 1>
    saved_results.sort { |a,b| a<=>b }>
    end>
    puts "Correction de la valeur #{saved_results.first.value} en #{r['NUM_VAL']} pour le resultat #{saved_results.first.id}">
    saved_results.first.value = r['NUM_VAL'].gsub(/,/,'.').to_f>
    saved_results.first.save

Mis à jour par Marion Maguer il y a plus de 8 ans

Deuxième problème : la présence d'un commentaire bloque le script, arrêt du script au résultat 70232.
Extrait de correct_dec.out :

Correction du résultat 70232
On a 17 résultats dans la base
On a 1 résultats concernant la variable % de matière organique
Correction de la valeur en pour le resultat 16227

Mis à jour par Jonathan Schaeffer il y a environ 8 ans

Marion Maguer a écrit :

Deuxième problème : la présence d'un commentaire bloque le script, arrêt du script au résultat 70232.
Extrait de correct_dec.out :

Correction du résultat 70232
On a 17 résultats dans la base
On a 1 résultats concernant la variable % de matière organique
Correction de la valeur en pour le resultat 16227

Correction effectuée. Il y a eu un truc bizarre sur les 2 derniers résultats de la boucle :

Correction du résultat 561111
On a 64 résultats dans la base
On a  1 résultats concernant la variable Biomasse des feuilles de Zostera marina (Herbier REBENT)
Correction de la valeur 1.216 en 4,6820 pour le resultat 324094
Correction du résultat 561112
On a 64 résultats dans la base
On a  1 résultats concernant la variable Biomasse des racines de Zostera marina
Correction de la valeur 4.682 en 1,2160 pour le resultat 324095

https://wapps/marben/results?result[collection_id]=11751
https://wapps/marben/results/324095
https://wapps/marben/results/324094

Même si on n'a pas été exhaustif, on n'a pas vu d'autre cas bizarre.

Corrigé

Mis à jour par Jonathan Schaeffer il y a environ 8 ans

  • Statut changé de In Progress à Résolu

Mis à jour par Marion Maguer il y a environ 8 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF