Changeset 251


Ignore:
Timestamp:
12/05/09 15:31:04 (15 years ago)
Author:
nanardon
Message:
  • first page don't show anymore poll list, a form allow to ask for a reminder about people poll
Location:
trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/lib/Epoll/Controller/Root.pm

    r242 r251  
    3535    my ( $self, $c ) = @_; 
    3636    $c->stash->{page}{title} = 'Epoll ' . $Epoll::DB::VERSION; 
     37    if ($c->req->param('mailvoting')) { 
     38        my @polls_voting = $c->model('Vote')->find_poll_by_notyet_voting( 
     39            $c->req->param('mailvoting') 
     40        ); 
     41        my @polls_owner = $c->model('Vote')->find_poll_by_owner( 
     42            $c->req->param('mailvoting') 
     43        ); 
     44 
     45        if (scalar(@polls_voting) || scalar(@polls_owner)) { 
     46            $c->forward( 
     47                q'Epoll::View::Mail', 'render', 
     48                [ 'poll_reminder_voting.tt', { 
     49                    To => $c->req->param('mailvoting'), 
     50                    Subject => 'Poll request reminder', 
     51                    mail => { 
     52                        label => 'Poll request reminder', 
     53                        polls_owner => \@polls_owner, 
     54                        polls_voting => \@polls_voting, 
     55                    }, 
     56                }] 
     57            ); 
     58            $c->stash->{sendvoting} = $c->req->param('mailvoting'); 
     59        } else { 
     60            $c->stash->{novoting} = $c->req->param('mailvoting'); 
     61        } 
     62    } 
    3763} 
    3864 
  • trunk/lib/Epoll/DB.pm

    r249 r251  
    212212} 
    213213 
     214sub find_poll_by_voting { 
     215    my ($self, $mail) = @_; 
     216    $mail or return; 
     217    my $finder = $self->db->prepare_cached( 
     218        q{select poll, date from voting left join signing 
     219          on voting.key = signing.key 
     220          where mail = lower($1) 
     221          order by date desc 
     222        } 
     223    ); 
     224    $finder->execute($mail); 
     225    my @results; 
     226    while (my $res = $finder->fetchrow_hashref) { 
     227        push(@results, $res); 
     228    } 
     229    @results 
     230} 
     231 
     232sub find_poll_by_notyet_voting { 
     233    my ($self, $mail) = @_; 
     234    $mail or return; 
     235    my $finder = $self->db->prepare_cached( 
     236        q{select poll from voting where 
     237          key not in (select key from signing) 
     238            and 
     239          poll in (select id from poll where "end" > now()) 
     240            and 
     241          mail = lower($1) 
     242        } 
     243    ); 
     244    $finder->execute($mail); 
     245    my @results; 
     246    while (my $res = $finder->fetchrow_hashref) { 
     247        push(@results, $res); 
     248    } 
     249    @results 
     250} 
     251 
     252sub find_poll_by_owner { 
     253    my ($self, $mail) = @_; 
     254    $mail or return; 
     255    my $finder = $self->db->prepare_cached( 
     256        q{select id, "end" > now() as terminated from poll where owner = lower($1) 
     257          order by "end" desc} 
     258    ); 
     259    $finder->execute($mail); 
     260    my @results; 
     261    while (my $res = $finder->fetchrow_hashref) { 
     262        push(@results, $res); 
     263    } 
     264    @results 
     265} 
     266 
    214267=head1 AUTHOR 
    215268 
  • trunk/root/static/vote.css

    r169 r251  
    175175 
    176176#poll_confirm {} 
     177 
     178div.reminder { 
     179    font-size: 75%; 
     180    border: outset; 
     181    padding: 0.2em; 
     182} 
     183 
     184input.reminder { 
     185    font-size: 75% 
     186} 
  • trunk/root/templates/default.tt

    r227 r251  
    22[% vote = c.model('Vote') %] 
    33 
    4 [% FOREACH id = vote.list_running_vote %] 
    5 [% IF loop.first %] 
    6 <div id="global_poll"> 
    7 <div id="open_poll"> 
    8 <h1>Vote en cours</h1> 
    9 <table> 
    10 <tbody> 
     4<div style="float: right; width: 33%;" class="reminder"> 
     5<form action="[% c.uri_for %]" method="POST"> 
     6[% IF novoting %] 
     7<p class="warning">Aucun vote en cours ne concerne [% novoting | html %].</p> 
    118[% END %] 
    12 <tr> 
    13 <td><lu><li><a href="[% c.uri_for( '/vote', vote.poll(id).uid ) %]">[% c.model('Vote').poll(id).info('label') | html %]</a></lu></td></td> 
    14 <td>&gt;<a href="[% c.uri_for( '/ballot', vote.poll(id).uid ) %]"> Voter</a></td> 
    15 </tr> 
    16 [% IF loop.last %] 
    17 </tbody> 
    18 </table> 
    19 </div> 
    20 [% END %] 
     9[% IF sendvoting %] 
     10Un mail a été envoyé à [% sendvoting %] 
    2111[% END %] 
    2212 
    23 [% FOREACH id = vote.list_comming_vote %] 
    24 [% IF loop.first %] 
    25 <div id="comming_poll"> 
    26 <h1>Vote à venir</h1> 
    27 <table> 
    28 <tbody> 
    29 [% END %] 
    30 <tr> 
    31 <td><lu><li><a href="[% c.uri_for( 'vote', vote.poll(id).uid ) %]">[% c.model('Vote').poll(id).info('label') | html %]</a></li></lu></td> 
    32 <td>&gt;<a href="[% c.uri_for( '/admin', vote.poll(id).uid ) %]"> Administrer</a></td> 
    33 </tr> 
    34 [% IF loop.last %] 
    35 </tbody> 
    36 </table> 
     13<p>Pour retrouver les votes qui vous concerne, indiquez votre adresse mail:</p> 
     14<input type="text" name="mailvoting" class="reminder"> 
     15<input type="submit" class="reminder" value=">"> 
     16</form> 
    3717</div> 
    38 [% END %] 
    39 [% END %] 
    40  
    41  
    42 [% FOREACH id = vote.list_closed_vote %] 
    43 [% IF loop.first %] 
    44 <div id="closed_poll"> 
    45 <h1>Vote Ferm&eacute;</h1> 
    46 <table> 
    47 <tbody> 
    48 [% END %] 
    49 <tr> 
    50 <td><lu><li><a href="[% c.uri_for( 'vote', vote.poll(id).uid ) %]">[% c.model('Vote').poll(id).info('label') | html %]</a></lu></td> 
    51 </tr> 
    52 [% IF loop.last %] 
    53 </tbody> 
    54 </table> 
    55 </div> 
    56 </div> 
    57 [% END %] 
    58 [% END %] 
  • trunk/root/templates/includes/footer.tt

    r227 r251  
    11<!-- $Id$ --> 
    2 <div id="footer"> 
     2<div id="footer" style="clear: both"> 
    33<a href="http://forge.ipsl.jussieu.fr/epoll"> Epoll [% Vote.VERSION | html %]</a> 
    44<a href="http://www.catalystframework.org/"><img src="[% c.uri_for('/static', 'images', 'btn_88x31_powered_shadow.png') %]"></a> 
Note: See TracChangeset for help on using the changeset viewer.