Changeset 41ebbd1
- Timestamp:
- Mar 31, 2012, 7:39:14 PM (14 years ago)
- 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)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
asadb/groups/views.py
r9becc84 r41ebbd1 36 36 emailvalidator = EmailValidator(email_re) 37 37 38 39 38 40 ############ 39 41 # Homepage # … … 206 208 } 207 209 return render_to_response('groups/group_change_main.html', context, context_instance=RequestContext(request), ) 210 211 212 213 ################## 214 # ACCOUNT LOOKUP # 215 ################## 216 217 class AccountLookupForm(forms.Form): 218 account_number = forms.IntegerField() 219 username = forms.CharField(help_text="Athena username of person to check") 220 221 def 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 208 264 209 265 … … 546 602 context['pagename'] = 'groups' 547 603 return context 604 548 605 549 606 … … 782 839 return render_to_response('groups/group_search.html', context, context_instance=RequestContext(request), ) 783 840 841 842 class 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 784 877 class ReportingForm(form_utils.forms.BetterForm): 785 878 basic_fields_choices = groups.models.Group.reporting_fields() … … 831 924 super(GroupReportingFilter, self).__init__(data, *args, **kwargs) 832 925 926 def format_id(pk): 927 url = reverse('groups:group-detail', kwargs={'pk':pk}) 928 return mark_safe("<a href='%s'>%d</a>" % (url, pk)) 929 833 930 def format_url(url): 834 931 try: … … 848 945 escaped = html.escape(email) 849 946 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))855 947 856 948 reporting_html_formatters = { … … 912 1004 report_groups.append(group_data) 913 1005 1006 # Handle output as CSV 914 1007 if output_format == 'csv': 915 1008 if output_disposition == 'download': … … 926 1019 return response 927 1020 1021 # Handle output as HTML 928 1022 context = { 929 1023 'form': form, … … 934 1028 } 935 1029 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 = None944 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_entries955 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'] = group963 else:964 context['title'] = "Recent Changes"965 return context966 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 = None974 msg_type = ""975 account_number = None976 username = None977 group = None978 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 data986 form = AccountLookupForm(request.GET)987 988 if form.is_valid(): # All validation rules pass989 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.