Changeset 167


Ignore:
Timestamp:
04/06/09 18:45:41 (15 years ago)
Author:
nanardon
Message:
  • split voting admin page in subsection
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MANIFEST

    r165 r167  
    5959root/templates/admin/index.tt 
    6060root/templates/admin/login.tt 
     61root/templates/includes/admin_menu.tt 
     62root/templates/admin/voting.tt 
    6163root/templates/ballot/closed.tt 
    6264root/templates/ballot/default.tt 
  • trunk/lib/Vote/Controller/Admin.pm

    r128 r167  
    2323 
    2424sub begin : Private { 
    25     my ( $self, $c ) = @_; 
     25    my ( $self, $c, @args ) = @_; 
    2626    $c->model('Vote')->db->rollback; 
     27 
     28    warn join('-', @args); 
    2729} 
    2830 
     
    3335} 
    3436 
    35 sub default : Private { 
    36     my ( $self, $c, undef, $id ) = @_; 
    37     $c->stash->{voteid} = $id; 
     37sub modify_poll : Private { 
     38    my ( $self, $c) = @_; 
     39    my $id = $c->stash->{voteid}; 
     40 
    3841    my $vote = $c->model('Vote'); 
    39  
    40     $vote->vote_info($id) or do { 
    41         $c->res->redirect($c->uri_for('/')); 
    42         return; 
    43     }; 
    44  
    45     my $password = $c->session->{vpassword} || $c->req->param('vpassword'); 
    46  
    47     if (!$c->model('Vote')->auth_poll($id, $password)) { 
    48         $c->stash->{page}{title} = $vote->vote_info($id)->{label} . ': Login d\'administration'; 
    49         $c->session->{vpassword} = undef; 
    50         $c->stash->{template} = 'admin/login.tt'; 
    51         return; 
    52     } 
    53  
    54     $c->session->{vpassword} = $password; 
    55  
    56     $c->stash->{page}{title} = $c->model('Vote')->vote_info($id)->{label} . ': Administration'; 
    57  
    5842    for ($vote->vote_status($id) || '') { 
    5943    /^BEFORE$/ and do { 
     
    124108    }; 
    125109    } 
     110} 
    126111 
     112sub auth : Private { 
     113    my ($self, $c) = @_; 
     114    my $vote = $c->model('Vote'); 
     115    my $password = $c->session->{vpassword} || $c->req->param('vpassword'); 
     116 
     117    if (!$c->model('Vote')->auth_poll($c->stash->{voteid}, $password)) { 
     118        $c->stash->{page}{title} = $vote->vote_info( 
     119            $c->stash->{voteid} 
     120        )->{label} . ': Login d\'administration'; 
     121        $c->session->{vpassword} = undef; 
     122        $c->stash->{template} = 'admin/login.tt'; 
     123        return; 
     124    } 
     125    $c->session->{vpassword} = $password; 
     126    return 1; 
     127} 
     128 
     129sub default : Private { 
     130    my ( $self, $c, undef, $id ) = @_; 
     131    $c->stash->{voteid} = $id; 
     132    my $vote = $c->model('Vote'); 
     133 
     134    $vote->vote_info($id) or do { 
     135        $c->res->redirect($c->uri_for('/')); 
     136        return; 
     137    }; 
     138 
     139    $c->forward('auth') or return; 
     140    $c->forward('modify_poll'); 
     141    $c->stash->{page}{title} = $c->model('Vote')->vote_info($id)->{label} . ': Administration'; 
     142 
     143 
     144} 
     145 
     146sub voting: LocalRegex('^(\d+)/voting$') { 
     147    my ($self, $c, $id, @sub) = @_; 
     148    ($c->stash->{voteid}) = @{ $c->req->snippets || [] }; 
     149    my $vote = $c->model('Vote'); 
     150 
     151    $vote->vote_info($id) or do { 
     152        $c->res->redirect($c->uri_for('/')); 
     153        return; 
     154    }; 
     155 
     156    $c->forward('auth') or return; 
     157    $c->forward('modify_poll'); 
     158    $c->stash->{page}{title} = $c->model('Vote')->vote_info($id)->{label} . ': Administration'; 
    127159} 
    128160 
  • trunk/root/templates/admin/default.tt

    r100 r167  
     1[% INCLUDE 'includes/admin_menu.tt' %] 
     2 
    13<DIV ID="testdiv1" STYLE="position:absolute;visibility:hidden;background-color:white;layer-background-color:white;"></DIV> 
    24 
    35[% vote = c.model('Vote') %] 
     6[% poll = c.model('Vote').poll(voteid) %] 
    47 
    58[% IF vote.vote_status(voteid) == 'BEFORE' %] 
     
    7073[% END %] 
    7174 
    72 [% IF vote.vote_status(voteid) != 'AFTER' %] 
    73 <table border="1"> 
    74 <tr><th colspan=2>Liste des votants</th></tr> 
    75 <tr> 
    76 <td valign="TOP"> 
    77 <p>Ajouter un votant</p> 
    78 <form action="[% c.uri_for(voteid) %]" method="POST"> 
    79 Nom: <input type="text" name="id"><br> 
    80 Mail: <input type="text" name="mail"><br> 
    81 <input type="submit" value="Ajouter"> 
    82 </form> 
    83 <hr> 
    84 <p>Soumettre la liste via un fichier csv (le Nom est optionnel)</p> 
    85 <p>Format: <i>Mail@domain;Nom</i></p> 
    86 <form method="POST" ENCTYPE="multipart/form-data" action="[% c.uri_for(voteid) %]"> 
    87 <input type="file" name="votinglist"><br> 
    88 [% IF vote.vote_status(voteid) == 'BEFORE' %] 
    89 <input type="checkbox" name="delete">Effacer la liste des votants<br> 
    90 [% END %] 
    91 <input type="submit" value="Ajouter"> 
    92 </form> 
    93 <hr> 
    94 <p>Envoyer les mots de passes au nouveaux votants</p> 
    95 <form action="[% c.uri_for(voteid) %]" method="POST"> 
    96 <input type="submit" name="mailpasswd" value="Envoyer les mot de passe"> 
    97 </form> 
    98 </td> 
    99 <td valign="TOP"> 
    100 [% IF NOT vote.vote_voting_count(voteid) %] 
    101 <p class="alert">Aucun votant inscrit</p> 
    102 [% ELSE %] 
    103 [% signing = vote.vote_voting(voteid) %] 
    104 [% FOREACH thisvoting = signing %] 
    105 [% voting = vote.voting_info(thisvoting) %] 
    106 [% IF NOT voting.date %] 
    107 <form action="[% c.uri_for(voteid) %]" method="POST"> 
    108 <input type="hidden" name="delvoting" value="[% voting.vkey %]"> 
    109 [% END %] 
    110 [% voting.label | html %] [% voting.mail | html %] 
    111 [% IF voting.passwd %]<i>(pass envoyé)</i>[% END %] 
    112 [% IF NOT voting.date %] 
    113 <input type="submit" name="delete" value="delete"><br> 
    114 </form> 
    115 [% ELSE %] 
    116 (<i>a voté</i>) 
    117 [% END %] 
    118 [% END %] 
    119 [% END %] 
    120 </td> 
    121 </tr> 
    122 </table> 
     75[% # INCLUDE 'includes/poll.tt' %] 
    12376 
    124 [% ELSE %] 
    125  
    126 [% # INCLUDE 'includes/poll.tt' %] 
     77[% IF poll.status == 'AFTER' %] 
    12778 
    12879[% FOREACH untrusted = vote.vote_ballot_untrusted_values(voteid) %] 
  • trunk/root/templates/default.tt

    r68 r167  
    1  
    21[% vote = c.model('Vote') %] 
    3  
    42 
    53[% FOREACH id = vote.list_running_vote %] 
Note: See TracChangeset for help on using the changeset viewer.