Changeset 251
- Timestamp:
- 12/05/09 15:31:04 (15 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property
svn:mergeinfo
set to
False
/branches/1 merged eligible
-
Property
svn:mergeinfo
set to
False
-
trunk/lib/Epoll/Controller/Root.pm
r242 r251 35 35 my ( $self, $c ) = @_; 36 36 $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 } 37 63 } 38 64 -
trunk/lib/Epoll/DB.pm
r249 r251 212 212 } 213 213 214 sub 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 232 sub 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 252 sub 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 214 267 =head1 AUTHOR 215 268 -
trunk/root/static/vote.css
r169 r251 175 175 176 176 #poll_confirm {} 177 178 div.reminder { 179 font-size: 75%; 180 border: outset; 181 padding: 0.2em; 182 } 183 184 input.reminder { 185 font-size: 75% 186 } -
trunk/root/templates/default.tt
r227 r251 2 2 [% vote = c.model('Vote') %] 3 3 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> 11 8 [% 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>><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 %] 10 Un mail a été envoyé à [% sendvoting %] 21 11 [% END %] 22 12 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>><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> 37 17 </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é</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 1 1 <!-- $Id$ --> 2 <div id="footer" >2 <div id="footer" style="clear: both"> 3 3 <a href="http://forge.ipsl.jussieu.fr/epoll"> Epoll [% Vote.VERSION | html %]</a> 4 4 <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.