Files
2026-11-06 18:44:01 +01:00

153 lines
6.1 KiB
HTML

{{* ---------- Totaux par option (sondage simple) ---------- *}}
{{:assign var="max_opt" value=0}}
{{#foreach from=$s.options item="o"}}
{{:assign var="l_opt" value=[]}}
{{#foreach from=$s.votes_simple item="v"}}
{{if $v.choix == $o.id}}{{:assign var="l_opt." value=1}}{{/if}}
{{/foreach}}
{{:assign var="n_opt" value=0}}
{{if $l_opt|count}}{{:assign var="n_opt" value=$l_opt|count}}{{/if}}
{{:assign var="tot_opt.%s"|args:$o.id value=$n_opt}}
{{if $n_opt > $max_opt}}{{:assign var="max_opt" value=$n_opt}}{{/if}}
{{/foreach}}
{{:assign var="nb_votants_simple" value=0}}
{{if $s.votes_simple|count}}{{:assign var="nb_votants_simple" value=$s.votes_simple|count}}{{/if}}
{{* ---------- Choix en cours de modification (sondage simple) ---------- *}}
{{:assign var="edit_nom_vs" value=$_POST.edit_nom_vs|strval}}
{{#foreach from=$s.votes_simple item="v"}}
{{if $v.nom == $edit_nom_vs}}
{{:assign var="edit_choix_vs" value=$v.choix}}
{{:assign var="edit_remarque_vs" value=$v.remarque}}
{{/if}}
{{/foreach}}
{{#foreach from=$s.votes item="v"}}
{{:assign var="l_votants." value=1}}
{{/foreach}}
{{if $l_votants|count}}{{:assign var="nb_votants" value=$l_votants|count}}{{/if}}
{{#foreach from=$s.creneaux item="c"}}
{{:assign var="l_oui" value=[]}}
{{:assign var="l_peut" value=[]}}
{{#foreach from=$s.votes item="v"}}
{{:assign var="val" from="v.choix.%s"|args:$c.id}}
{{if $val == 2}}{{:assign var="l_oui." value=1}}{{/if}}
{{if $val == 1}}{{:assign var="l_peut." value=1}}{{/if}}
{{/foreach}}
{{:assign var="n_oui" value=0}}
{{:assign var="n_peut" value=0}}
{{if $l_oui|count}}{{:assign var="n_oui" value=$l_oui|count}}{{/if}}
{{if $l_peut|count}}{{:assign var="n_peut" value=$l_peut|count}}{{/if}}
{{:assign var="tot_oui.%s"|args:$c.id value=$n_oui}}
{{:assign var="tot_peut.%s"|args:$c.id value=$n_peut}}
{{if $n_oui > $max_oui}}{{:assign var="max_oui" value=$n_oui}}{{/if}}
{{/foreach}}
<div class="card">
<h2>Sondage</h2>
<h4>{{$s.description}}</h4>
{{if $s.options|count}}
{{* Ne pas laisser l'admin voter *}}
{{if !$est_admin}}
<form method="post" action="">
<fieldset class="entree">
<legend>Voter</legend>
<dl>
{{if $is_logged}}
{{:input type="text" name="nom_vote" label="Votre nom" default=$logged_user.nom readonly="readonly"}}
{{else}}
{{:input type="text" name="nom_vote" label="Votre nom" placeholder="Votre nom" default=$edit_nom_vs required=true}}
{{/if}}
{{#foreach from=$s.options item="o"}}
{{*<input type="radio" name="choix_option" value="{{$o.id}}" {{if $edit_choix_vs == $o.id}}checked="checked"{{/if}} required="required" /> {{$o.texte*}}
{{:input type="radio" name="choix_option" value=$o.id label=$o.texte}}
{{/foreach}}
{{:input type="textarea" cols=40 rows=2 name="remarque" label="Une précision à ajouter ?" default=$edit_remarque_vs required=false}}
{{:button type="submit" name="voter_simple" label="Voter" help="Pour corriger votre vote, retapez le même nom et choisissez une autre option." class="main" value="%d"|args:$s.id}}
</dl>
</fieldset>
</form>
{{/if}}
{{else}}
<p class="vide">Aucune option pour l'instant.{{if $est_admin}} Ajoutez-en ci-dessous.{{/if}}</p>
{{/if}}
<div class="card">
<h2>Résultats</h2>
{{if $s.options|count}}
<table style="width:100%; border-collapse:collapse;">
{{#foreach from=$s.options item="o"}}
{{:assign var="n_o" from="tot_opt.%s"|args:$o.id}}
<tr>
<th style="text-align:left; padding:.4rem .3rem; border-bottom:1px solid #eceae8; font-weight:normal;">{{$o.texte}}</th>
<td style="padding:.4rem .3rem; border-bottom:1px solid #eceae8; text-align:right; white-space:nowrap;">
{{if $n_o > 0 && $n_o == $max_opt}}<span class="best">&#9733; {{$n_o}} voix</span>{{else}}{{$n_o}} voix{{/if}}
</td>
{{if $est_admin}}
<td style="padding:.4rem .3rem; border-bottom:1px solid #eceae8; text-align:right;">
<form method="post" action="" style="display:inline">
{{:input type="hidden" name="oid" default=$o.id required=true}}
{{:button type="submit" name="del_opt_son" value=$s.id class="mini" label="Supprimer cette option"}}
</form>
</td>
{{/if}}
</tr>
{{/foreach}}
</table>
<p class="aide">{{$nb_votants_simple}} votant(s) au total.</p>
{{else}}
<p class="vide">Rien à afficher pour l'instant.</p>
{{/if}}
</div>
{{:assign var="remarque_trouvee_vs" value=false}}
<div class="card">
<h2>Remarques</h2>
<ul style="list-style:none; margin:0; padding:0;">
{{#foreach from=$s.votes_simple item="v"}}
{{if $v.remarque|trim}}
{{:assign var="remarque_trouvee_vs" value=true}}
<li style="padding:.5rem 0; border-bottom:1px solid #eceae8;"><b>{{$v.nom}}</b> — {{$v.remarque}}</li>
{{/if}}
{{/foreach}}
</ul>
{{if !$remarque_trouvee_vs}}<p class="vide">Aucune remarque pour l'instant.</p>{{/if}}
</div>
{{if $est_admin}}
<div class="card">
<h2>Qui a voté quoi</h2>
{{if $s.votes_simple|count}}
<ul style="list-style:none; margin:0; padding:0;">
{{#foreach from=$s.votes_simple item="v"}}
{{:assign var="txt_choix" value=""}}
{{#foreach from=$s.options item="o"}}
{{if $o.id == $v.choix}}{{:assign var="txt_choix" value=$o.texte}}{{/if}}
{{/foreach}}
<li style="padding:.4rem 0; border-bottom:1px solid #eceae8;">
{{$v.nom}} — {{$txt_choix}}
{{if $est_admin}}
<form method="post" action="" style="display:inline">
{{:input type="hidden" name="choix" default=$v.choix required=true}}
{{:button type="submit" name="del_vot_son" value=$s.id class="mini" label="Supprimer ce vote"}}
</form>
{{/if}}
</li>
{{/foreach}}
</ul>
{{else}}
<p class="vide">Personne n'a encore voté.</p>
{{/if}}
</div>
<div class="card">
<h2>Ajouter une option</h2>
<form method="post" action="" class="ajout">
<label style="flex:2; min-width:14rem;">{{:input type="text" name="texte" label="Texte de l'option" placeholder="ex. Samedi matin" required=true}}</label>
{{:button type="submit" name="add_opt_son" value=$s.id class="mini" label="Ajouter"}}
</form>
</div>
{{/if}}
</div>
{{:debug sondage=$s}}