Changeset 6ff04b1
- Timestamp:
- Mar 12, 2012, 6:55:19 AM (14 years ago)
- Branches:
- master, space-access, stable, stage
- Children:
- 0a0a96c
- Parents:
- a86a924
- git-author:
- Alex Dehnert <adehnert@…> (02/09/12 11:52:38)
- git-committer:
- Alex Dehnert <adehnert@…> (03/12/12 06:55:19)
- Location:
- asadb
- Files:
-
- 1 added
- 3 edited
-
groups/urls.py (modified) (2 diffs)
-
space/models.py (modified) (3 diffs)
-
space/views.py (modified) (1 diff)
-
template/space/view-access.html (added)
Legend:
- Unmodified
- Added
- Removed
-
asadb/groups/urls.py
raa2aa58 r6ff04b1 2 2 3 3 import groups.views 4 import space.views 4 5 5 6 group_patterns = patterns('', … … 8 9 url(r'^edit/officers$', groups.views.manage_officers, name='group-manage-officers', ), 9 10 url(r'^history/$', groups.views.GroupHistoryView.as_view(), name='group-manage-history', ), 11 url(r'^space/view/$', space.views.view_access, name='group-space-access', ), 10 12 ) 11 13 -
asadb/space/models.py
ra86a924 r6ff04b1 22 22 reversion.register(Space) 23 23 24 25 class CurrentAssignmentManager(models.Manager): 26 def get_query_set(self, ): 27 return super(CurrentAssignmentManager, self).get_query_set().filter( 28 start__lte=datetime.date.today, 29 end__gte=datetime.date.today, 30 ) 31 24 32 class SpaceAssignment(models.Model): 25 33 END_NEVER = datetime.datetime.max … … 33 41 locker_num = models.CharField(max_length=10, blank=True, help_text='Locker number. If set, will use the "locker-access" OfficerRole to maintain access. If unset/blank, uses "office-access" and SpaceAccessListEntry for access.') 34 42 43 objects = models.Manager() 44 current = CurrentAssignmentManager() 45 35 46 def expire(self, ): 36 47 self.end_time = datetime.datetime.now()-self.EXPIRE_OFFSET 37 48 self.save() 49 50 def is_locker(self, ): 51 return bool(self.locker_num) 52 53 def __unicode__(self, ): 54 return u"<SpaceAssignment group=%s space=%s locker=%s start=%s end=%s>" % ( 55 self.group, 56 self.space, 57 self.locker_num, 58 self.start, 59 self.end, 60 ) 61 62 63 class CurrentACLEntryManager(models.Manager): 64 def get_query_set(self, ): 65 return super(CurrentACLEntryManager, self).get_query_set().filter( 66 start__lte=datetime.datetime.now, 67 end__gte=datetime.datetime.now, 68 ) 38 69 39 70 class SpaceAccessListEntry(models.Model): … … 48 79 card_number = models.CharField(max_length=20) 49 80 81 objects = models.Manager() 82 current = CurrentACLEntryManager() 83 50 84 def expire(self, ): 51 85 self.end_time = datetime.datetime.now()-self.EXPIRE_OFFSET 52 86 self.save() 87 88 def format_name(self, ): 89 return u"%s (%s)" % (self.name, self.card_number, ) 90 91 def __unicode__(self, ): 92 return u"<SpaceAccessListEntry group=%s space=%s name=%s start=%s end=%s>" % ( 93 self.group, 94 self.space, 95 self.name, 96 self.start, 97 self.end, 98 ) -
asadb/space/views.py
ra86a924 r6ff04b1 1 1 # Create your views here. 2 from django.contrib.auth.decorators import user_passes_test, login_required, permission_required 3 from django.shortcuts import render_to_response, get_object_or_404, redirect 4 from django.template import RequestContext, Context, Template 5 from django.http import Http404, HttpResponseRedirect 6 from django.core.urlresolvers import reverse 7 from django.core.mail import EmailMessage, mail_admins 8 from django import forms 9 from django.forms import ValidationError 10 from django.db import connection 11 from django.db.models import Q 12 from django.utils.safestring import mark_safe 13 14 import django_filters 15 16 import groups.models 17 import space.models 18 19 def view_access(request, pk, ): 20 group = get_object_or_404(groups.models.Group, pk=pk) 21 if not request.user.has_perm('groups.admin_group', group): 22 raise PermissionDenied 23 office_access = group.officers(role='office-access') 24 locker_access = group.officers(role='locker-access') 25 assignments = space.models.SpaceAssignment.current.filter(group=group) 26 office_pairs = [] 27 locker_pairs = [] 28 for assignment in assignments: 29 entries = space.models.SpaceAccessListEntry.current.filter(group=group, space=assignment.space) 30 pair = (assignment, entries) 31 if assignment.is_locker(): 32 locker_pairs.append(pair) 33 else: 34 office_pairs.append(pair) 35 context = { 36 'group': group, 37 'office': office_access, 38 'locker': locker_access, 39 'office_pairs': office_pairs, 40 'locker_pairs': locker_pairs, 41 'pagename':'group', 42 } 43 return render_to_response('space/view-access.html', context, context_instance=RequestContext(request), )
Note: See TracChangeset
for help on using the changeset viewer.