Changeset 0b72bfd


Ignore:
Timestamp:
Oct 13, 2011, 1:46:58 AM (14 years ago)
Author:
Alex Dehnert <adehnert@…>
Branches:
master, space-access, stable, stage, test-hooks
Children:
e1f5425
Parents:
8dfd3db
git-author:
Alex Dehnert <adehnert@…> (10/13/11 01:46:58)
git-committer:
Alex Dehnert <adehnert@…> (10/13/11 01:46:58)
Message:

Add report on group activity confirmation problems

Location:
asadb
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • asadb/forms/views.py

    r8dfd3db r0b72bfd  
    44import settings
    55
    6 from django.contrib.auth.decorators import user_passes_test, login_required
     6from django.contrib.auth.decorators import user_passes_test, login_required, permission_required
    77from django.views.generic import list_detail, ListView, DetailView
    88from django.shortcuts import render_to_response, get_object_or_404
     
    1010from django.template import Context, Template
    1111from django.template.loader import get_template
    12 from django.http import Http404, HttpResponseRedirect
     12from django.http import Http404, HttpResponseRedirect, HttpResponse
    1313from django.core.urlresolvers import reverse
    1414from django.core.mail import EmailMessage, mail_admins
     
    1919from django.db.models import Q, Count
    2020
     21import csv
    2122import datetime
     23import StringIO
    2224
    2325#################
     
    444446    #        context['title'] = "Recent Changes"
    445447    #    return context
     448
     449
     450@permission_required('groups.view_group_private_info')
     451def group_confirmation_issues(request, ):
     452    active_groups = groups.models.Group.active_groups
     453    group_updates = forms.models.GroupMembershipUpdate.objects.all()
     454    people_confirmations = forms.models.PersonMembershipUpdate.objects.filter(
     455        deleted__isnull=True,
     456        valid__gt=0,
     457    )
     458
     459    buf = StringIO.StringIO()
     460    output = csv.writer(buf)
     461    output.writerow(['group_id', 'group_name', 'issue', 'num_confirm', 'officer_email', ])
     462
     463    q_present = Q(id__in=group_updates.values('group'))
     464    missing_groups = active_groups.filter(~q_present)
     465    #print len(list(group_updates))
     466    for group in missing_groups:
     467        num_confirms = len(people_confirmations.filter(groups=group))
     468        output.writerow([
     469            group.id,
     470            group.name,
     471            'unsubmitted',
     472            num_confirms,
     473            group.officer_email,
     474        ])
     475
     476    for group_update in group_updates:
     477        group = group_update.group
     478        num_confirms = len(people_confirmations.filter(groups=group))
     479        if num_confirms < 5:
     480            output.writerow([
     481                group.id,
     482                group.name,
     483                'confirmations',
     484                num_confirms,
     485                group.officer_email,
     486            ])
     487
     488
     489    return HttpResponse(buf.getvalue(), mimetype='text/plain', )
  • asadb/urls.py

    rea42397 r0b72bfd  
    3838    ),
    3939    url(r'^membership/submitted/$', forms.views.View_GroupMembershipList.as_view(), name='membership-submitted', ),
     40    url(r'^membership/admin/issues.csv$', forms.views.group_confirmation_issues, name='membership-issues', ),
    4041
    4142    # Group list
Note: See TracChangeset for help on using the changeset viewer.