Changeset 90afb00 for asadb/forms
- Timestamp:
- May 13, 2010, 5:48:00 AM (16 years ago)
- Branches:
- master, fysm-4-1, iframe, space-access, stable, stage, test-hooks
- Children:
- e8ff26d
- Parents:
- de11699
- git-author:
- Alex Dehnert <adehnert@…> (05/13/10 05:48:00)
- git-committer:
- Alex Dehnert <adehnert@…> (05/13/10 05:48:00)
- File:
-
- 1 edited
-
asadb/forms/views.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
asadb/forms/views.py
r189506e r90afb00 1 1 import forms.models 2 import groups.models 3 import settings 4 2 5 from django.views.generic import list_detail 3 6 from django.shortcuts import render_to_response, get_object_or_404 7 from django.template import RequestContext 8 from django.http import Http404, HttpResponseRedirect 9 from django.core.urlresolvers import reverse 10 from django.forms import Form 11 from django.forms import ModelForm 12 from django.forms import ModelChoiceField 13 from django.core.mail import send_mail, mail_admins 14 from django.template import Context, Template 15 from django.template.loader import get_template 4 16 5 17 import datetime 18 19 ################# 20 # GENERIC VIEWS # 21 ################# 22 23 class SelectGroupForm(Form): 24 group = ModelChoiceField(queryset=groups.models.Group.objects.all()) 25 26 def select_group(request, url_name_after, pagename='homepage', ): 27 if request.method == 'POST': # If the form has been submitted... 28 form = SelectGroupForm(request.POST) # A form bound to the POST data 29 if form.is_valid(): # All validation rules pass 30 group = form.cleaned_data['group'].id 31 return HttpResponseRedirect(reverse(url_name_after, args=[group],)) # Redirect after POST 32 else: 33 form = SelectGroupForm() # An unbound form 34 35 context = { 36 'form':form, 37 'pagename':'request_reimbursement', 38 } 39 return render_to_response('forms/select.html', context, context_instance=RequestContext(request), ) 40 41 ############################# 42 # FIRST-YEAR SUMMER MAILING # 43 ############################# 6 44 7 45 def fysm_by_years(request, year, category, ): … … 16 54 request, 17 55 queryset=queryset, 18 template_name="f orms/fysm_listing.html",56 template_name="fysm/fysm_listing.html", 19 57 template_object_name="fysm", 20 58 extra_context={ … … 25 63 } 26 64 ) 65 66 class FYSMRequestForm(ModelForm): 67 class Meta: 68 model = forms.models.FYSM 69 fields = ( 70 'display_name', 71 'website', 72 'join_url', 73 'contact_email', 74 'description', 75 'logo', 76 'tags', 77 ) 78 79 def fysm_manage(request, group, ): 80 year = datetime.date.today().year 81 group_obj = get_object_or_404(groups.models.Group, pk=group) 82 83 initial = {} 84 try: 85 fysm_obj = forms.models.FYSM.objects.get(group=group_obj, year=year, ) 86 print "Successfully found", fysm_obj.__dict__ 87 except forms.models.FYSM.DoesNotExist: 88 fysm_obj = forms.models.FYSM() 89 fysm_obj.group = group_obj 90 fysm_obj.year = year 91 initial['display_name'] = group_obj.name 92 initial['year'] = year 93 initial['website'] = group_obj.website_url 94 initial['join_url'] = group_obj.website_url 95 initial['contact_email'] = group_obj.officer_email 96 97 if request.method == 'POST': # If the form has been submitted... 98 form = FYSMRequestForm(request.POST, request.FILES, instance=fysm_obj, ) # A form bound to the POST data 99 100 if form.is_valid(): # All validation rules pass 101 request_obj = form.save() 102 103 # Send email 104 tmpl = get_template('fysm/update_email.txt') 105 ctx = Context({ 106 'group': group_obj, 107 'fysm': fysm_obj, 108 'submitter': request.user, 109 'request': request, 110 'sender': "ASA FYSM team", 111 }) 112 body = tmpl.render(ctx) 113 recipients = ['asa-fysm@mit.edu', group_obj.officer_email, ] 114 send_mail( 115 'FYSM entry for "%s" updated by "%s"' % ( 116 group_obj.name, 117 request.user, 118 ), 119 body, 120 'asa-fysm@mit.edu', 121 recipients, 122 ) 123 return HttpResponseRedirect(reverse('fysm-thanks', args=[fysm_obj.pk],)) # Redirect after POST 124 125 else: 126 form = FYSMRequestForm(instance=fysm_obj, initial=initial, ) # An unbound form 127 128 context = { 129 'group':group_obj, 130 'fysm':fysm_obj, 131 'form':form, 132 'pagename':'fysm', 133 } 134 return render_to_response('fysm/submit.html', context, context_instance=RequestContext(request), ) 135 136 137 def fysm_thanks(request, fysm, ): 138 year = datetime.date.today().year 139 fysm_obj = get_object_or_404(forms.models.FYSM, pk=fysm) 140 141 context = { 142 'group':fysm_obj.group, 143 'fysm':fysm_obj, 144 'pagename':'fysm', 145 } 146 return render_to_response('fysm/thanks.html', context, context_instance=RequestContext(request), )
Note: See TracChangeset
for help on using the changeset viewer.