Ignore:
Timestamp:
Mar 28, 2012, 12:17:36 AM (14 years ago)
Author:
Alex Dehnert <adehnert@…>
Branches:
master, space-access, stable, stage
Children:
c3061dd
Parents:
32c872e
git-author:
Alex Dehnert <adehnert@…> (03/27/12 06:21:21)
git-committer:
Alex Dehnert <adehnert@…> (03/28/12 00:17:36)
Message:

Allow managing office access

File:
1 edited

Legend:

Unmodified
Added
Removed
  • asadb/space/views.py

    rb2d74ac r8b68c67  
    1717import space.models
    1818
     19# Note: Not a view.
     20def process_access_changes(request, group, assignment, entries, changes, extras_indices, ):
     21    for entry in entries:
     22        key = "grant[%d][%d]" % (assignment.pk, entry.pk)
     23        if key in request.POST:
     24            pass
     25        else:
     26            changes.append(('Expire', assignment.space, entry))
     27            entry.expire()
     28    for index in extras_indices:
     29        key = "new[%d][%d]" % (assignment.pk, index)
     30        name = request.POST.get(key+"[name]", "")
     31        if name:
     32            entry = space.models.SpaceAccessListEntry(
     33                group=group,
     34                space=assignment.space,
     35            )
     36            entry.name = name
     37            entry.card_number = request.POST.get(key+"[card]", "")
     38            changes.append(('Add', assignment.space, entry))
     39            entry.save()
     40
    1941@login_required
    20 def view_access(request, pk, ):
     42def manage_access(request, pk, ):
    2143    group = get_object_or_404(groups.models.Group, pk=pk)
    2244    if not request.user.has_perm('groups.admin_group', group):
     
    2749    office_pairs = []
    2850    locker_pairs = []
     51    changes = []
     52    extras_indices = range(6)
     53    if request.method == 'POST':
     54        edited = True
     55    else:
     56        edited = False
    2957    for assignment in assignments:
    3058        entries = space.models.SpaceAccessListEntry.current.filter(group=group, space=assignment.space)
     59        if assignment.is_locker():
     60            pairs = locker_pairs
     61        else:
     62            pairs = office_pairs
     63        if edited:
     64            process_access_changes(
     65                request, group,
     66                assignment, entries.filter(),
     67                changes, extras_indices,
     68            )
    3169        pair = (assignment, entries)
    32         if assignment.is_locker():
    33             locker_pairs.append(pair)
    34         else:
    35             office_pairs.append(pair)
     70        pairs.append(pair)
     71    submit_button = (len(office_pairs) + len(locker_pairs)) > 0
    3672    context = {
    3773        'group': group,
     
    4076        'office_pairs': office_pairs,
    4177        'locker_pairs': locker_pairs,
     78        'changes': changes,
     79        'submit_button': submit_button,
     80        'extras_indices': extras_indices,
    4281        'pagename':'group',
    4382    }
    44     return render_to_response('space/view-access.html', context, context_instance=RequestContext(request), )
     83    return render_to_response('space/manage-access.html', context, context_instance=RequestContext(request), )
Note: See TracChangeset for help on using the changeset viewer.