Changeset 41ebbd1


Ignore:
Timestamp:
Mar 31, 2012, 7:39:14 PM (14 years ago)
Author:
Alex Dehnert <adehnert@…>
Branches:
master, space-access, stable, stage
Children:
010b19f
Parents:
9becc84
git-author:
Alex Dehnert <adehnert@…> (03/31/12 19:39:14)
git-committer:
Alex Dehnert <adehnert@…> (03/31/12 19:39:14)
Message:

Reorganize groups/views.py somewhat

File:
1 edited

Legend:

Unmodified
Added
Removed
  • asadb/groups/views.py

    r9becc84 r41ebbd1  
    3636emailvalidator = EmailValidator(email_re)
    3737
     38
     39
    3840############
    3941# Homepage #
     
    206208    }
    207209    return render_to_response('groups/group_change_main.html', context, context_instance=RequestContext(request), )
     210
     211
     212
     213##################
     214# ACCOUNT LOOKUP #
     215##################
     216
     217class AccountLookupForm(forms.Form):
     218    account_number = forms.IntegerField()
     219    username = forms.CharField(help_text="Athena username of person to check")
     220
     221def account_lookup(request, ):
     222    msg = None
     223    msg_type = ""
     224    account_number = None
     225    username = None
     226    group = None
     227    office_holders = []
     228
     229    visible_roles  = groups.models.OfficerRole.objects.filter(publicly_visible=True)
     230
     231    initial = {}
     232
     233    if 'search' in request.GET: # If the form has been submitted...
     234        # A form bound to the POST data
     235        form = AccountLookupForm(request.GET)
     236
     237        if form.is_valid(): # All validation rules pass
     238            account_number = form.cleaned_data['account_number']
     239            username = form.cleaned_data['username']
     240            account_q = Q(main_account_id=account_number) | Q(funding_account_id=account_number)
     241            try:
     242                group = groups.models.Group.objects.get(account_q)
     243                office_holders = group.officers(person=username)
     244                office_holders = office_holders.filter(role__in=visible_roles)
     245            except groups.models.Group.DoesNotExist:
     246                msg = "Group not found"
     247                msg_type = "error"
     248
     249    else:
     250        form = AccountLookupForm()
     251
     252    context = {
     253        'username':     username,
     254        'account_number': account_number,
     255        'group':        group,
     256        'office_holders': office_holders,
     257        'form':         form,
     258        'msg':          msg,
     259        'msg_type':     msg_type,
     260        'visible_roles':    visible_roles,
     261    }
     262    return render_to_response('groups/account_lookup.html', context, context_instance=RequestContext(request), )
     263
    208264
    209265
     
    546602        context['pagename'] = 'groups'
    547603        return context
     604
    548605
    549606
     
    782839        return render_to_response('groups/group_search.html', context, context_instance=RequestContext(request), )
    783840
     841
     842class GroupHistoryView(ListView):
     843    context_object_name = "version_list"
     844    template_name = "groups/group_version.html"
     845
     846    def get_queryset(self):
     847        history_entries = None
     848        if 'pk' in self.kwargs:
     849            group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
     850            history_entries = reversion.models.Version.objects.get_for_object(group)
     851        else:
     852            history_entries = reversion.models.Version.objects.all()
     853            group_content_type = ContentType.objects.get_for_model(groups.models.Group)
     854            history_entries = history_entries.filter(content_type=group_content_type)
     855        length = len(history_entries)
     856        if length > 150:
     857            history_entries = history_entries[length-100:]
     858        return history_entries
     859
     860    def get_context_data(self, **kwargs):
     861        context = super(GroupHistoryView, self).get_context_data(**kwargs)
     862        if 'pk' in self.kwargs:
     863            group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
     864            context['title'] = "History for %s" % (group.name, )
     865            context['adminpriv'] = self.request.user.has_perm('groups.admin_group', group)
     866            context['group'] = group
     867        else:
     868            context['title'] = "Recent Changes"
     869        return context
     870
     871
     872
     873#######################
     874# REPORTING COMPONENT #
     875#######################
     876
    784877class ReportingForm(form_utils.forms.BetterForm):
    785878    basic_fields_choices = groups.models.Group.reporting_fields()
     
    831924        super(GroupReportingFilter, self).__init__(data, *args, **kwargs)
    832925
     926def format_id(pk):
     927    url = reverse('groups:group-detail', kwargs={'pk':pk})
     928    return mark_safe("<a href='%s'>%d</a>" % (url, pk))
     929
    833930def format_url(url):
    834931    try:
     
    848945        escaped = html.escape(email)
    849946        return mark_safe("<a href='mailto:%s'>%s</a>" % (escaped, escaped))
    850 
    851 
    852 def format_id(pk):
    853     url = reverse('groups:group-detail', kwargs={'pk':pk})
    854     return mark_safe("<a href='%s'>%d</a>" % (url, pk))
    855947
    856948reporting_html_formatters = {
     
    9121004            report_groups.append(group_data)
    9131005
     1006        # Handle output as CSV
    9141007        if output_format == 'csv':
    9151008            if output_disposition == 'download':
     
    9261019            return response
    9271020
     1021    # Handle output as HTML
    9281022    context = {
    9291023        'form': form,
     
    9341028    }
    9351029    return render_to_response('groups/reporting.html', context, context_instance=RequestContext(request), )
    936 
    937 
    938 class GroupHistoryView(ListView):
    939     context_object_name = "version_list"
    940     template_name = "groups/group_version.html"
    941 
    942     def get_queryset(self):
    943         history_entries = None
    944         if 'pk' in self.kwargs:
    945             group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
    946             history_entries = reversion.models.Version.objects.get_for_object(group)
    947         else:
    948             history_entries = reversion.models.Version.objects.all()
    949             group_content_type = ContentType.objects.get_for_model(groups.models.Group)
    950             history_entries = history_entries.filter(content_type=group_content_type)
    951         length = len(history_entries)
    952         if length > 150:
    953             history_entries = history_entries[length-100:]
    954         return history_entries
    955 
    956     def get_context_data(self, **kwargs):
    957         context = super(GroupHistoryView, self).get_context_data(**kwargs)
    958         if 'pk' in self.kwargs:
    959             group = get_object_or_404(groups.models.Group, pk=self.kwargs['pk'])
    960             context['title'] = "History for %s" % (group.name, )
    961             context['adminpriv'] = self.request.user.has_perm('groups.admin_group', group)
    962             context['group'] = group
    963         else:
    964             context['title'] = "Recent Changes"
    965         return context
    966 
    967 
    968 class AccountLookupForm(forms.Form):
    969     account_number = forms.IntegerField()
    970     username = forms.CharField(help_text="Athena username of person to check")
    971 
    972 def account_lookup(request, ):
    973     msg = None
    974     msg_type = ""
    975     account_number = None
    976     username = None
    977     group = None
    978     office_holders = []
    979 
    980     visible_roles  = groups.models.OfficerRole.objects.filter(publicly_visible=True)
    981 
    982     initial = {}
    983 
    984     if 'search' in request.GET: # If the form has been submitted...
    985         # A form bound to the POST data
    986         form = AccountLookupForm(request.GET)
    987 
    988         if form.is_valid(): # All validation rules pass
    989             account_number = form.cleaned_data['account_number']
    990             username = form.cleaned_data['username']
    991             account_q = Q(main_account_id=account_number) | Q(funding_account_id=account_number)
    992             try:
    993                 group = groups.models.Group.objects.get(account_q)
    994                 office_holders = group.officers(person=username)
    995                 office_holders = office_holders.filter(role__in=visible_roles)
    996             except groups.models.Group.DoesNotExist:
    997                 msg = "Group not found"
    998                 msg_type = "error"
    999 
    1000     else:
    1001         form = AccountLookupForm()
    1002 
    1003     context = {
    1004         'username':     username,
    1005         'account_number': account_number,
    1006         'group':        group,
    1007         'office_holders': office_holders,
    1008         'form':         form,
    1009         'msg':          msg,
    1010         'msg_type':     msg_type,
    1011         'visible_roles':    visible_roles,
    1012     }
    1013     return render_to_response('groups/account_lookup.html', context, context_instance=RequestContext(request), )
Note: See TracChangeset for help on using the changeset viewer.