Changeset 23


Ignore:
Timestamp:
03/11/09 03:34:27 (15 years ago)
Author:
nanardon
Message:
  • admin page is fully working
Location:
trunk
Files:
3 edited

Legend:

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

    r22 r23  
    5050        $vote->delete_choice($c->req->param('delch')) 
    5151            and $vote->db->commit; 
     52    } elsif ($c->req->param('label')) { 
     53        $vote->vote_param( 
     54            $id, 
     55            map { $_ => ($c->req->param($_) || undef) } 
     56            qw(label description start end choice_count free_choice) 
     57        ) and $vote->db->commit; 
     58    } elsif($c->req->param('delvoting')) { 
     59        $vote->delete_voting($c->req->param('delvoting')) 
     60            and $vote->db->commit; 
     61    } elsif ($c->req->param('mail')) { 
     62        $vote->addupd_voting($id, $c->req->param('id'), $c->req->param('mail')) 
     63            and $vote->db->commit; 
    5264    } 
    5365} 
  • trunk/lib/Vote/Model/Vote.pm

    r22 r23  
    9595} 
    9696 
     97sub vote_param { 
     98    my ($self, $voteid, %attr) = @_; 
     99 
     100    keys %attr or return; 
     101 
     102    my $sth = $self->db->prepare_cached( 
     103        q{update poll set } . 
     104        join(',', map { qq("$_" = ?) } sort keys %attr) . 
     105        q{ where id = ?} 
     106    ); 
     107    $sth->execute((map { $attr{$_} } sort keys %attr), $voteid) 
     108        or $self->db->rollback; 
     109} 
     110 
    97111sub vote_status { 
    98112    my ($self, $id) = @_; 
     
    139153    my $sth = $self->db->prepare_cached( 
    140154        q{ 
    141         select * from voting left join signing 
     155        select *, voting.key as vkey from voting left join signing 
    142156        on signing.key = voting.key 
    143157        where poll = ? order by voting.id 
     
    150164    } 
    151165    @people 
     166} 
     167 
     168sub vote_voting { 
     169    my ($self, $id) = @_; 
     170 
     171    my $sth = $self->db->prepare_cached( 
     172        q{ 
     173        select key from voting 
     174        where poll = ? order by voting.id 
     175        } 
     176    ); 
     177    $sth->execute($id); 
     178    my @people; 
     179    while (my $res = $sth->fetchrow_hashref) { 
     180        push(@people, $res->{key}); 
     181    } 
     182    @people 
     183} 
     184 
     185sub voting_info { 
     186    my ($self, $id) = @_; 
     187 
     188    my $sth = $self->db->prepare_cached( 
     189        q{ 
     190        select *, voting.key as vkey from voting left join signing 
     191        on signing.key = voting.key 
     192        where voting.key = ? 
     193        } 
     194    ); 
     195    $sth->execute($id); 
     196     
     197    my $res = $sth->fetchrow_hashref; 
     198    $sth->finish; 
     199    $res 
    152200} 
    153201 
     
    509557        $add->execute($voteid, $id, $mail); 
    510558    } 
     559} 
     560 
     561sub delete_voting { 
     562    my ($self, $key) = @_; 
     563 
     564    my $sth = $self->db->prepare_cached( 
     565        q{delete from voting where key = ?} 
     566    ); 
     567 
     568    $sth->execute($key); 
    511569} 
    512570 
  • trunk/root/templates/admin/default.tt

    r22 r23  
    5151<tr> 
    5252<td valign="TOP"> 
    53 [% signing = [ vote.vote_signing(voteid) ] %] 
    54 [% FOREACH voting = signing %] 
    55 [% voting.id | html %] [% voting.mail | html %]<br> 
     53[% signing = vote.vote_voting(voteid) %] 
     54[% FOREACH thisvoting = signing %] 
     55[% voting = vote.voting_info(thisvoting) %] 
     56<form action="[% c.uri_for(voteid) %]"> 
     57<input type="hidden" name="delvoting" value="[% voting.vkey %]"> 
     58[% voting.id | html %] [% voting.mail | html %] 
     59<input type="submit" name="delete" value="delete"><br> 
     60</form> 
    5661[% END %] 
    5762</td> 
Note: See TracChangeset for help on using the changeset viewer.