153 lines
6.1 KiB
HTML
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">★ {{$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}} |