source: trunk/lib/Epoll/DB/Poll/BSubmit.pm

Last change on this file was 319, checked in by nanardon, 14 years ago
  • support of several poll type
  • remove static result storage
  • Property svn:keywords set to Id Rev
File size: 1.1 KB
Line 
1package Epoll::DB::Poll::BSubmit;
2
3# $Id$
4
5use strict;
6use warnings;
7use base 'Epoll::DB::Poll::Bdata';
8
9=head1 NAME
10
11Epoll::Model::Vote - Catalyst Model
12
13=head1 DESCRIPTION
14
15Catalyst Model.
16
17=cut
18
19sub set_voter {
20    my ($self, $voter, $referal) = @_;
21    $self->{voter} = $voter;
22    $self->{referal} = $referal;
23}
24
25sub add_item {
26    my ($self, $value, $weight) = @_;
27    $value =~ s/^\s+//;
28    $value =~ s/\s+$//;
29    $value =~ s/\s+/ /g;
30    $value = lc($value);
31    $self->{data}{content}{$value} = $weight;
32}
33
34sub submit {
35    my ($self) = @_;
36   
37    for (0..2) { # 3 try
38        # First we register voting has voted
39        $self->poll->_register_signing($self->{voter}, $self->{referal}) or return; # TODO error ?
40
41        # registring choices
42        if ($self->_store_crypted()) {
43            last;
44        } else {
45            $self->rollback;
46            next;
47        }
48
49    }
50        # everything went fine, saving!
51    $self->commit;
52
53    $self->uid
54}
55
56
57=head1 AUTHOR
58
59Thauvin Olivier
60
61=head1 LICENSE
62
63This library is free software, you can redistribute it and/or modify
64it under the same terms as Perl itself or CeCILL.
65
66=cut
67
681;
Note: See TracBrowser for help on using the repository browser.