~lars-luthman-deactivatedaccount/ppvalbok/remove-bookings

« back to all changes in this revision

Viewing changes to votesys/views.py

  • Committer: Lars Luthman
  • Date: 2009-04-20 14:48:52 UTC
  • Revision ID: lars.luthman@gmail.com-20090420144852-3745qj3nov9ecism
Added more code to maintain voter statistics, added ballot distribution calculation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
        values['errormessage'] = 'Du får egentligen inte se den här sidan.'
57
57
    return direct_to_template(request, 'view_region.html', values)
58
58
 
 
59
def calculate_distribution(request, sname):
 
60
    reg = get_object_or_404(Region, shortname=sname)
 
61
    subregions = reg.region_set.all()
 
62
    stations = reg.votingstation_set.all()
 
63
    localz = reg.votinglocal_set.all()
 
64
    values = {'region': reg,
 
65
              'subregions': subregions,
 
66
              'stations': stations,
 
67
              'locals': localz}
 
68
    # XXX Change this to user_may_edit
 
69
    if not reg.user_may_view(request.user):
 
70
        values['errormessage'] = 'Du får egentligen inte se den här sidan.'
 
71
    return direct_to_template(request, 'calculate_distribution.html', values)
 
72
 
 
73
def save_calculation(request, sname):
 
74
    if request.method == 'POST':
 
75
        post = request.POST
 
76
        reg = get_object_or_404(Region, shortname=sname)
 
77
        subregions = reg.region_set.all()
 
78
        stations = reg.votingstation_set.all()
 
79
        localz = reg.votinglocal_set.all()
 
80
        
 
81
        # Save region data
 
82
        if 'ballots_available' in post:
 
83
            reg.ballots_available = int(post['ballots_available'])
 
84
        if 'unit_size' in post:
 
85
            reg.ballot_unit_size = int(post['unit_size'])
 
86
        if 'early_percentage' in post:
 
87
            reg.ballot_early_percentage = int(post['early_percentage'])
 
88
        reg.save()
 
89
        
 
90
        # Save subregion data
 
91
        for subreg in subregions:
 
92
            if 'region_' + subreg.shortname + '_value' in post:
 
93
                subreg.ballots = int(post['region_' + subreg.shortname + '_value'])
 
94
            if 'region_' + subreg.shortname + '_value_lock' in post and \
 
95
               post['region_' + subreg.shortname + '_value_lock'] != 'off':
 
96
                subreg.ballots_locked = True
 
97
            else:
 
98
                subreg.ballots_locked = False
 
99
            subreg.save()
 
100
        
 
101
        # Save early voting station data
 
102
        for local in localz:
 
103
            if 'local_%d_value' % local.pk in post:
 
104
                local.ballots = int(post['local_%d_value' % local.pk])
 
105
            if 'local_%d_value_lock' % local.pk in post and \
 
106
               post['local_%d_value_lock' % local.pk] != 'off':
 
107
                local.ballots_locked = True
 
108
            else:
 
109
                local.ballots_locked = False
 
110
            local.save()
 
111
        
 
112
        # Save voting station data
 
113
        for station in stations:
 
114
            if 'station_%d_value' % station.pk in post:
 
115
                station.ballots = int(post['station_%d_value' % station.pk])
 
116
            if 'station_%d_value_lock' % station.pk in post and \
 
117
               post['station_%d_value_lock' % station.pk] != 'off':
 
118
                station.ballots_locked = True
 
119
            else:
 
120
                station.ballots_locked = False
 
121
            station.save()
 
122
        
 
123
 
 
124
    return HttpResponseRedirect('/region/' + sname + '/calculate/')
59
125
 
60
126
def user(request, uname):
61
127
    usr = get_object_or_404(User, username=uname)