Changeset 9b391ce


Ignore:
Timestamp:
Aug 26, 2011, 1:42:30 AM (15 years ago)
Author:
Alex Dehnert <adehnert@…>
Branches:
master, space-access, stable, stage, test-hooks
Children:
5f09392
Parents:
fbb362a
git-author:
Alex Dehnert <adehnert@…> (08/26/11 01:42:30)
git-committer:
Alex Dehnert <adehnert@…> (08/26/11 01:42:30)
Message:

Reorganize views to be a bit more understandable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • asadb/groups/views.py

    rfbb362a r9b391ce  
    3030
    3131
     32
     33############
     34# Homepage #
     35############
     36
    3237def view_homepage(request, ):
    3338    users_groups = []
     
    5661    }
    5762    return render_to_response('index.html', context, context_instance=RequestContext(request), )
     63
     64
     65
     66################
     67# Single group #
     68################
     69
     70class GroupDetailView(DetailView):
     71    context_object_name = "group"
     72    model = groups.models.Group
     73    def get_context_data(self, **kwargs):
     74        # Call the base implementation first to get a context
     75        context = super(GroupDetailView, self).get_context_data(**kwargs)
     76        group = context['group']
     77
     78        # Indicate whether this person should be able to see "private" info
     79        context['viewpriv'] = self.request.user.has_perm('groups.view_group_private_info', group)
     80        context['adminpriv'] = self.request.user.has_perm('groups.admin_group', group)
     81        context['notes'] = group.viewable_notes(self.request.user)
     82
     83        # People involved in the group
     84        just_roles = groups.models.OfficerRole.objects.all()
     85        if context['viewpriv'] or self.request.user.has_perm('groups.view_signatories'):
     86            # Can see the non-public stuff
     87            pass
     88        else:
     89            just_roles = just_roles.filter(publicly_visible=True)
     90        roles = []
     91        for role in just_roles:
     92            roles.append((role.display_name, role, group.officers(role=role), ))
     93        context['roles'] = roles
     94
     95        return context
    5896
    5997
     
    174212
    175213
     214
     215##################
     216# Multiple group #
     217##################
     218
    176219class GroupFilter(django_filters.FilterSet):
    177220    name = django_filters.CharFilter(lookup_type='icontains', label="Name contains")
     
    208251        context['pagename'] = 'groups'
    209252        context['filter'] = self.filterset
    210         return context
    211 
    212 
    213 class GroupDetailView(DetailView):
    214     context_object_name = "group"
    215     model = groups.models.Group
    216     def get_context_data(self, **kwargs):
    217         # Call the base implementation first to get a context
    218         context = super(GroupDetailView, self).get_context_data(**kwargs)
    219         group = context['group']
    220 
    221         # Indicate whether this person should be able to see "private" info
    222         context['viewpriv'] = self.request.user.has_perm('groups.view_group_private_info', group)
    223         context['adminpriv'] = self.request.user.has_perm('groups.admin_group', group)
    224         context['notes'] = group.viewable_notes(self.request.user)
    225 
    226         # People involved in the group
    227         just_roles = groups.models.OfficerRole.objects.all()
    228         if context['viewpriv'] or self.request.user.has_perm('groups.view_signatories'):
    229             # Can see the non-public stuff
    230             pass
    231         else:
    232             just_roles = just_roles.filter(publicly_visible=True)
    233         roles = []
    234         for role in just_roles:
    235             roles.append((role.display_name, role, group.officers(role=role), ))
    236         context['roles'] = roles
    237 
    238         return context
    239 
    240 
    241 class GroupHistoryView(ListView):
    242     context_object_name = "version_list"
    243     template_name = "groups/group_version.html"
    244 
    245     def get_queryset(self):
    246         history_entries = None
    247         if 'pk' in self.kwargs:
    248             group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
    249             history_entries = reversion.models.Version.objects.get_for_object(group)
    250         else:
    251             history_entries = reversion.models.Version.objects.all()
    252             group_content_type = ContentType.objects.get_for_model(groups.models.Group)
    253             history_entries = history_entries.filter(content_type=group_content_type)
    254         length = len(history_entries)
    255         if length > 150:
    256             history_entries = history_entries[length-100:]
    257         return history_entries
    258 
    259     def get_context_data(self, **kwargs):
    260         context = super(GroupHistoryView, self).get_context_data(**kwargs)
    261         if 'pk' in self.kwargs:
    262             group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
    263             context['title'] = "History for %s" % (group.name, )
    264         else:
    265             context['title'] = "Recent Changes"
    266253        return context
    267254
     
    439426        }
    440427        return render_to_response('groups/group_search.html', context, context_instance=RequestContext(request), )
     428
     429
     430class GroupHistoryView(ListView):
     431    context_object_name = "version_list"
     432    template_name = "groups/group_version.html"
     433
     434    def get_queryset(self):
     435        history_entries = None
     436        if 'pk' in self.kwargs:
     437            group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
     438            history_entries = reversion.models.Version.objects.get_for_object(group)
     439        else:
     440            history_entries = reversion.models.Version.objects.all()
     441            group_content_type = ContentType.objects.get_for_model(groups.models.Group)
     442            history_entries = history_entries.filter(content_type=group_content_type)
     443        length = len(history_entries)
     444        if length > 150:
     445            history_entries = history_entries[length-100:]
     446        return history_entries
     447
     448    def get_context_data(self, **kwargs):
     449        context = super(GroupHistoryView, self).get_context_data(**kwargs)
     450        if 'pk' in self.kwargs:
     451            group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
     452            context['title'] = "History for %s" % (group.name, )
     453        else:
     454            context['title'] = "Recent Changes"
     455        return context
Note: See TracChangeset for help on using the changeset viewer.