Changeset 217 for trunk/lib


Ignore:
Timestamp:
04/18/09 04:57:22 (15 years ago)
Author:
nanardon
Message:
  • make difference between settings and their raw value
  • simplify template
  • allow to have a different number of elected people than choice in ballot
Location:
trunk/lib/Vote
Files:
3 edited

Legend:

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

    r206 r217  
    7474                map { $_ => ($c->req->param($_) || undef) } 
    7575                grep { exists($c->req->params->{$_}) } 
    76                 qw(label description start end choice_count free_choice) 
     76                qw(label description start end choice_count free_choice elected_count) 
    7777            ) and $poll->commit; 
    7878        } elsif ($c->req->param('encrypted')) { 
  • trunk/lib/Vote/DB/Poll.pm

    r214 r217  
    128128} 
    129129 
    130 sub info { 
     130sub raw_info { 
    131131    my ($self, $var) = @_; 
    132  
    133     my $default = { 
    134         free_choice => 0, # avoid undef in some case 
    135     }; 
    136132 
    137133    if ($var) { 
     
    145141            my $res = $sth->fetchrow_hashref; 
    146142            $sth->finish; 
    147             return defined($res->{val}) 
    148                 ? $res->{val} 
    149                 : $default->{$var}; 
     143            return $res->{val} 
    150144        } 
    151145    } 
     
    159153            $res->{$set->{var}} = $set->{val}; 
    160154        } 
     155        return $res 
     156    } 
     157    return; 
     158} 
     159 
     160sub info { 
     161    my ($self, $var) = @_; 
     162 
     163    my $default = { 
     164        free_choice => 0, # avoid undef in some case 
     165        elected_count => $self->raw_info('choice_count'), 
     166    }; 
     167 
     168    if ($var) { 
     169        my $val = $self->raw_info($var); 
     170        return defined($val) 
     171            ? $val 
     172            : $default->{$var}; 
     173    } elsif (my $res = $self->raw_info) { 
    161174        foreach (keys %$default) { 
    162175            $res->{$_} = $default->{$_} if (!defined($res->{$_})); 
     
    164177        return $res 
    165178    } 
     179    return; 
    166180} 
    167181 
     
    169183    my ($self, $var, $val) = @_; 
    170184 
     185    $val = undef if(defined($val) && $val eq ''); 
    171186    my $upd = $self->db->prepare_cached( 
    172187        q{update settings set val = ? where poll = ? and var = ?} 
  • trunk/lib/Vote/DB/Poll/Results.pm

    r215 r217  
    135135    my @results; 
    136136    my $abs_maj = $self->absolute_majority; 
    137     my $wanted_count = $self->info('choice_count'); 
     137    my $wanted_count = $self->info('elected_count'); 
    138138    my $voice_count = $self->voices_ballot_count; 
    139139    while (my $res = $sth->fetchrow_hashref) { 
     
    147147                if($res->{count} == $results[-1]->{count}); 
    148148        } 
     149        if (scalar(@results)) { 
     150            $res->{order} = ($res->{count} == $results[-1]->{count} 
     151                ? $results[-1]->{order} 
     152                : scalar(@results) + 1); 
     153        } else { $res->{order} = 1 } 
    149154        $res->{voices_percent} = $res->{count} / $voice_count * 100 
    150155            if($voice_count); # avoid divide by 0 
Note: See TracChangeset for help on using the changeset viewer.