Changeset 4b1f99b
- Timestamp:
- Mar 31, 2012, 7:07:26 PM (14 years ago)
- Branches:
- master, space-access, stable, stage
- Children:
- 9becc84
- Parents:
- c409ae1
- git-author:
- Alex Dehnert <adehnert@…> (03/31/12 19:07:26)
- git-committer:
- Alex Dehnert <adehnert@…> (03/31/12 19:07:26)
- File:
-
- 1 edited
-
asadb/groups/views.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
asadb/groups/views.py
rc409ae1 r4b1f99b 17 17 from django.http import HttpResponse, Http404, HttpResponseRedirect 18 18 from django.core.urlresolvers import reverse 19 from django.core.validators import URLValidator, EmailValidator, email_re 19 20 from django.core.mail import EmailMessage, mail_admins 20 21 from django import forms … … 22 23 from django.db import connection 23 24 from django.db.models import Q 25 from django.utils import html 24 26 from django.utils.safestring import mark_safe 25 27 … … 31 33 from util.emails import email_from_template 32 34 33 35 urlvalidator = URLValidator() 36 emailvalidator = EmailValidator(email_re) 34 37 35 38 ############ … … 822 825 super(GroupReportingFilter, self).__init__(data, *args, **kwargs) 823 826 827 def format_url(url): 828 try: 829 urlvalidator(url) 830 except ValidationError: 831 return url 832 else: 833 escaped = html.escape(url) 834 return mark_safe("<a href='%s'>%s</a>" % (escaped, escaped)) 835 836 def format_email(email): 837 try: 838 emailvalidator(email) 839 except ValidationError: 840 return email 841 else: 842 escaped = html.escape(email) 843 return mark_safe("<a href='mailto:%s'>%s</a>" % (escaped, escaped)) 844 845 846 def format_id(pk): 847 url = reverse('groups:group-detail', kwargs={'pk':pk}) 848 return mark_safe("<a href='%s'>%d</a>" % (url, pk)) 849 850 reporting_html_formatters = { 851 'id': format_id, 852 'website_url': format_url, 853 'constitution_url': format_url, 854 'group_email': format_email, 855 'officer_email': format_email, 856 } 857 824 858 @permission_required('groups.view_group_private_info') 825 859 def reporting(request, ): … … 843 877 if prefetch_fields: 844 878 qs = qs.select_related(*list(prefetch_fields)) 879 880 # Assemble data 881 if output_format == 'html': 882 formatters = reporting_html_formatters 883 else: 884 formatters = {} 885 def fetch_item(group, field): 886 val = getattr(group, field) 887 if field in formatters: 888 val = formatters[field](val) 889 return val 845 890 for group in qs: 846 group_data = [ getattr(group, field) for field in basic_fields]891 group_data = [fetch_item(group, field) for field in basic_fields] 847 892 report_groups.append(group_data) 848 893
Note: See TracChangeset
for help on using the changeset viewer.