kun

un outil de sondage - retour accueil

git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |

commit b9b0d948b7ccbd28ed25debbf07206ff94ecadac
parent ee23d1ea2e7a3606663dd123ad0ae3f28bed0369
Auterice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Mon, 23 Sep 2024 17:10:41 +0200

kun results affiche qui a répondu à quoi

Diffstat:
Mcommands.sh | 12+++++++++---
Mtests/reference | 34+++++++++++++++++++++-------------
2 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/commands.sh b/commands.sh @@ -108,10 +108,16 @@ results() { _questionexists "$id" || { _die "Sondage n'existe pas"; return 2; } _ananswerexists "$id" || { _die "Le sondage {$id} n'a pas encore de réponse"; return 1; } - answers=$(find /tmp/kun.$id -type f -not -name question) + answers=$(cat /tmp/kun.$id/question) _cmdlog "kun results $id" - cat $answers | - sort | uniq -c | sort -rn + + for answer in $(cat /tmp/kun.$id/question);do + names=$(grep -l $answer /tmp/kun.$id/*-* | grep -v '/question:' | grep -v ^$) + [ -n "$names" ] \ + && names=$(echo "$names" | xargs -n1 basename | cut -d'-' -f1) + nb=$( echo "$names" | wc -l) + printf "%d %s %s\n" $nb $answer $(echo "$names" | paste -s -d';' -) + done | sort -t' ' -k1 -rn } # voir la liste des personnes ayant répondu diff --git a/tests/reference b/tests/reference @@ -16,10 +16,10 @@ find: ‘/tmp/kun.azdad/’: Aucun fichier ou dossier de ce type Sondage n'existe pas ./kun.sh: 106: 1: missing parameter Sondage n'existe pas -./kun.sh: 121: 1: missing parameter +./kun.sh: 127: 1: missing parameter Sondage n'existe pas -./kun.sh: 137: 1: missing parameter -./kun.sh: 137: 2: missing parameter +./kun.sh: 143: 1: missing parameter +./kun.sh: 143: 2: missing parameter find: ‘/tmp/kun.azdazd/’: Aucun fichier ou dossier de ce type azdazd n'a pas répondu à ce sondage @@ -30,8 +30,9 @@ Un scénario : recap de la réponse : lundi mercredi - 1 mercredi - 1 lundi +1 mercredi alice +1 mardi +1 lundi alice alice est déjà pris pour le sondage {id} réponse {id} de victor soumise au sondage {id} recap de la réponse : @@ -39,26 +40,33 @@ mercredi {id} {id} azdazd n'a pas répondu à ce sondage mercredi - 2 mercredi - 1 lundi +2 mercredi alice;victor +1 mardi +1 lundi alice alice victor Réponse {id} n'existe pas Modification de la réponse {id} de alice soumise au sondage {id} recap de la réponse :  - 1 mercredi +1 mercredi victor +1 mardi +1 lundi Modification de la réponse {id} de alice soumise au sondage {id} recap de la réponse : lundi - 1 mercredi - 1 lundi +1 mercredi victor +1 mardi +1 lundi alice Modification de la réponse {id} de alice soumise au sondage {id} recap de la réponse : mardi - 1 mercredi - 1 mardi +1 mercredi victor +1 mardi alice +1 lundi Question {id} du sondage {id} supprimée victor - 1 mercredi +1 mercredi victor +1 mardi +1 lundi Sondage {id} supprimé