Changeset 176


Ignore:
Timestamp:
04/10/09 11:17:44 (15 years ago)
Author:
nanardon
Message:
  • add ballot decrypt functions, closing #27
Location:
trunk
Files:
3 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/MANIFEST

    r167 r176  
    6161root/templates/includes/admin_menu.tt 
    6262root/templates/admin/voting.tt 
     63root/templates/admin/includes/poll_settings.tt 
     64root/templates/admin/includes/ballot_validation.tt 
     65root/templates/admin/includes/ballot_decrypt.tt 
    6366root/templates/ballot/closed.tt 
    6467root/templates/ballot/default.tt 
  • trunk/lib/Vote/Controller/Admin.pm

    r175 r176  
    112112            } 
    113113        } 
     114        if ($c->req->param('decryptballot')) { 
     115            $c->model('Vote')->poll($c->stash->{voteid})->decrypted_ballots( 
     116                $c->session->{vpassword} 
     117            ); 
     118        }    
    114119    }; 
    115120    } 
  • trunk/lib/Vote/DB/Poll.pm

    r175 r176  
    613613# Requete de decompte des voix: 
    614614 
     615sub can_show_result { 
     616    my ($self) = @_; 
     617 
     618    # If ballot are encrypted, no 
     619    if ($self->list_ballot_need_dec) { 
     620        return; 
     621    } 
     622 
     623    return 1; 
     624} 
     625 
    615626sub results_count { 
    616627    my ($self) = @_; 
  • trunk/root/templates/admin/default.tt

    r175 r176  
    11[% INCLUDE 'includes/admin_menu.tt' %] 
    2  
    3 <DIV ID="testdiv1" STYLE="position:absolute;visibility:hidden;background-color:white;layer-background-color:white;"></DIV> 
    42 
    53[% vote = c.model('Vote') %] 
    64[% poll = c.model('Vote').poll(voteid) %] 
    75 
    8 [% IF vote.vote_status(voteid) == 'BEFORE' %] 
    9 <div class="box" style="float: left; width: 55%;"> 
    10 <form action="[% c.uri_for(voteid) %]" method="POST"> 
    11  
    12 [% thisvote = vote.vote_info(voteid) %] 
    13  
    14 Label: <input type="text" name="label" value="[% c.req.param('label') || thisvote.label | html %]"> 
    15 <br> 
    16 Description:<br> 
    17 <textarea name="description" cols="60" rows="4">[% c.req.param('description') || thisvote.description | html %]</textarea> 
    18 <br> 
    19 <hr> 
    20 <!-- http://www.mattkruse.com/javascript/calendarpopup/ --> 
    21 <i>Les dates sont au format JJ/MM/AAAA HH:MM:SS</i><br> 
    22  
    23 <SCRIPT LANGUAGE="JavaScript" ID="js13"> 
    24 var cal13 = new CalendarPopup(); 
    25 </SCRIPT> 
    26  
    27 Debut du vote:<br> 
    28 Date: <input type="text" name="dstart" value="[% c.req.param('dstart') || thisvote.dstart | html %]"> 
    29 <A HREF="#" onClick="cal13.select(document.forms[0].dstart,'anchor13','dd/MM/yyyy'); return false;" TITLE="cal13.select(document.forms[0].dstart,'anchor13','dd/MM/yyyy'); return false;" NAME="anchor13" ID="anchor13">select</A> 
    30 Heure: <input type="text" size=9 name="hstart" value="[% c.req.param('hstart') || thisvote.hstart | html %]"> 
    31 <br> 
    32 Fin du vote:<br> 
    33 Date: <input type="text" name="dend" value="[% c.req.param('dend') || thisvote.dend | html %]"> 
    34 <A HREF="#" onClick="cal13.select(document.forms[0].dend,'anchor14','dd/MM/yyyy',(document.forms[0].dend.value=='')?document.forms[0].dstart.value:null); return false;" TITLE="cal13.select(document.forms[0].dend,'anchor14','dd/MM/yyyy',(document.forms[0].dend.value=='')?document.forms[0].dstart.value:null); return false;" NAME="anchor14" ID="anchor14">select</A> 
    35 Heure: <input type="text" size=9 name="hend" value="[% c.req.param('hend') || thisvote.hend | html %]"> 
    36 <br> 
    37 <hr> 
    38 <input type="submit" name="pollparam" value="Enregistrer"> 
    39 </form> 
    40 </div> 
    41 <div class="box" style="float:right; width: 35%"> 
    42 [% IF poll.is_crypted %] 
    43 <p><a href="[% c.uri_for(voteid, 'privatekey') %]">Télécharger la clef privée</a></p> 
    44 <hr> 
    45 <form action="[% c.uri_for(voteid) %]" method="POST"> 
    46 <input type="submit" name="notcrypted" value="Ne pas chiffer le vote"> 
    47 </form> 
    48 [% ELSE %] 
    49 <form action="[% c.uri_for(voteid) %]" method="POST"> 
    50 <input type="submit" name="encrypted" value="Chiffrer le vote"> 
    51 </form> 
    52 [% END %] 
    53 </div> 
    54 [% ELSE %] 
    55 [% INCLUDE 'includes/poll.tt' %] 
     6[% IF poll.status == 'BEFORE' %] 
     7[% INCLUDE 'admin/includes/poll_settings.tt' %] 
    568[% END %] 
    579 
    5810[% IF poll.status == 'AFTER' %] 
    59  
    60 [% FOREACH untrusted = vote.vote_ballot_untrusted_values(voteid) %] 
    61 [% IF loop.first %] 
    62 <div id="map_ballot"> 
    63 <p>Remapper les valeurs des bulletins</p> 
    64 <table border="1"> 
    65 <tr><th>Valeur saisie</th><th>Valeur à considérer</th></tr> 
    66 [% END %] 
    67 <tr> 
    68 <td>[% untrusted | html %]</td> 
    69 <td> 
    70     <form action="[% c.uri_for('/admin', voteid) %]" method="POST"> 
    71     <input type="hidden" name="mapfrom" value="[% untrusted | html %]"> 
    72     <select name="mapto"> 
    73     [% FOREACH v = vote.vote_ballot_values(voteid) %] 
    74         [% NEXT IF v == untrusted %] 
    75         <option>[% v | html %]</options> 
    76     [% END %] 
    77     </select> 
    78     <input type="submit"> 
    79     </form> 
    80 </td> 
    81 </tr> 
    82 [% IF loop.last %] 
    83 </table> 
    84 </div> 
    85 [% END %] 
    86 [% END %] 
    87  
    88 [% FOREACH bid = vote.list_vote_ballot_needvalid(voteid) %] 
    89     [% IF loop.first %] 
    90     <div id="ballot_to_valid"> 
    91     <p>Bulletins à valider:</p> 
    92     <form action="[% c.uri_for(voteid) %]" method="POST"> 
    93     <table border="1"> 
    94     [% END %] 
    95 <tr> 
    96 <td>[% bid %]</td> 
    97 <td> 
    98 [% FOREACH item = vote.ballot_items(bid) %] 
    99 [% loop.count %]- [% item.v %]<br> 
    100 [% END %] 
    101 </td> 
    102 <td> 
    103 <input type="radio" name="[% bid %]" value="valid">est valide<br> 
    104 <input type="radio" name="[% bid %]" value="invalid">n'est pas valide<br> 
    105 </td> 
    106 </tr> 
    107     [% IF loop.last %] 
    108     </table> 
    109     <input type="submit"> 
    110     </form> 
    111     </div> 
    112     [% END %] 
     11[% IF poll.list_ballot_need_dec.size %] 
     12[% INCLUDE admin/includes/ballot_decrypt.tt %] 
     13[% ELSE %] 
     14[% INCLUDE admin/includes/ballot_validation.tt %] 
    11315[% END %] 
    11416[% END %] 
  • trunk/root/templates/includes/poll_results.tt

    r106 r176  
    11[% vote = c.model('Vote') %] 
     2[% poll = c.model('Vote').poll(voteid) %] 
     3 
     4[% IF poll.can_show_result %] 
    25 
    36<div id="results" class="box"> 
     
    109112[% END %] 
    110113 
     114[% ELSE %][% # can show result %] 
     115<div class="page_box"> 
     116<p>Les résultats ne sont pas encore publiés<p> 
     117</div> 
     118[% END %] 
Note: See TracChangeset for help on using the changeset viewer.