Changeset 190


Ignore:
Timestamp:
04/13/09 04:08:15 (15 years ago)
Author:
nanardon
Message:
  • check dates coherencies in poll settings
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Vote/Controller/Admin.pm

    r187 r190  
    5757                    $c->req->param('dend') . ' ' . ($c->req->param('hend') || '') 
    5858                ); 
     59            } 
     60            if ($c->req->param('end') && $c->req->param('start')) { 
     61                if ($vote->check_date_max($c->req->param('start'))) { 
     62                    if (! $vote->check_date_max($c->req->param('end'), $c->req->param('start'))) { 
     63                        $c->stash->{dateerror} = "Le vote se termine avant de commencer"; 
     64                        next; 
     65                    } 
     66                } else { 
     67                    $c->stash->{dateerror} = "Le debut du vote doit être dans le futur"; 
     68                    next; 
     69                } 
     70            } elsif ($c->req->param('end') || $c->req->param('start')) { 
     71                $c->stash->{dateerror} = "Vous devez définir un debut et une fin"; 
     72                next; 
    5973            } 
    6074            $vote->vote_param( 
  • trunk/lib/Vote/Controller/Root.pm

    r180 r190  
    3434sub default : Private { 
    3535    my ( $self, $c ) = @_; 
    36  
    3736    $c->stash->{page}{title} = 'Epoll ' . $Vote::VERSION; 
    3837} 
  • trunk/lib/Vote/DB/common.pm

    r160 r190  
    7777} 
    7878 
     79sub valid_date { 
     80    my ($self, $date) = @_; 
     81    my $res = $self->db->do( 
     82        sprintf( 
     83            q{ select %s::timestamp }, 
     84            $self->db->quote($date), 
     85        ) 
     86    ); 
     87    $res or $self->db->rollback; 
     88} 
     89 
     90sub check_date_max { 
     91    my ($self, $maxdate, $mindate) = @_; 
     92    my $sth = $self->db->prepare( 
     93        sprintf( 
     94            q{ select %s::timestamp > %s::timestamp as res }, 
     95            $self->db->quote($maxdate), 
     96            $mindate ? $self->db->quote($mindate) : 'now()', 
     97        ) 
     98    ); 
     99    $sth->execute or do { 
     100        $self->db->rollback; 
     101        return; 
     102    }; 
     103    my $res = $sth->fetchrow_hashref; 
     104    $sth->finish; 
     105    $res->{res} 
     106} 
     107 
    79108sub gen_uid { 
    80109    unpack("H*", join("", map { chr(rand(256)) } (0..15))) 
  • trunk/root/templates/admin/includes/poll_settings.tt

    r187 r190  
    1818<!-- http://www.mattkruse.com/javascript/calendarpopup/ --> 
    1919<i>Les dates sont au format JJ/MM/AAAA HH:MM:SS</i><br> 
     20[% IF dateerror %]<p class="alert">[% dateerror | html %]</p>[% END %] 
    2021 
    2122<SCRIPT LANGUAGE="JavaScript" ID="js13"> 
Note: See TracChangeset for help on using the changeset viewer.