Changeset 272


Ignore:
Timestamp:
12/12/09 20:31:15 (15 years ago)
Author:
nanardon
Message:
  • allow poll deletion
Location:
trunk
Files:
1 added
3 edited

Legend:

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

    r270 r272  
    311311        return; 
    312312    } 
     313     
     314    if ($c->req->param('delete_poll')) { 
     315        $c->stash->{template} = 'admin/delete_poll_confirm.tt'; 
     316        return; 
     317    } 
    313318 
    314319    if ($c->req->param('delete_ballot_confirm')) { 
    315320        $poll->delete_ballots; 
    316321        $c->response->redirect($c->uri_for($poll->uid)); 
     322    } 
     323 
     324    if ($c->req->param('delete_poll_confirm')) { 
     325        $c->model('Vote')->delete_poll($poll->voteid); 
     326        $c->response->redirect($c->uri_for('/')); 
     327        $c->detach; 
    317328    } 
    318329} 
  • trunk/lib/Epoll/DB.pm

    r251 r272  
    265265} 
    266266 
     267sub delete_poll { 
     268    my ($self, $id) = @_; 
     269    { 
     270        my $poll = $self->poll($id); 
     271        $poll->_delete_ballot; 
     272    } 
     273 
     274    foreach ( 
     275        q{delete from settings where poll = ?}, 
     276        q{delete from signing where key in (select key from voting where poll = ?)}, 
     277        q{delete from voting where poll = ?}, 
     278        q{delete from choice where poll = ?}, 
     279        q{delete from ballot_map where poll = ?}, 
     280        q{delete from poll where id = ?}, 
     281    ) { 
     282        my $req = $self->db->prepare($_); 
     283        $req->execute($id) or do { 
     284            $self->rollback; 
     285            return; 
     286        }; 
     287    } 
     288 
     289    $self->commit; 
     290    return 1; 
     291} 
     292 
    267293=head1 AUTHOR 
    268294 
  • trunk/root/templates/admin/delete.tt

    r269 r272  
    44[% INCLUDE 'includes/admin_menu.tt' %] 
    55 
    6 [% IF poll.status == AFTER %] 
     6[% IF poll.status == 'AFTER' %] 
    77<p>Effacer les bulletins</p> 
    88 
     
    1111</form> 
    1212[% END %] 
     13 
     14[% IF poll.status != 'RUNNING' %] 
     15<p>Détruire ce vote</p> 
     16 
     17<form action="[% c.uri_for(poll.uid, 'delete') %]" method="post"> 
     18<input type="submit" value="Détruire" name="delete_poll"> 
     19</form> 
     20[% END %] 
Note: See TracChangeset for help on using the changeset viewer.