Ignore:
Timestamp:
Feb 3, 2010, 3:36:28 PM (15 years ago)
Author:
Alex Dehnert <adehnert@…>
Branches:
master, client
Children:
84b3640
Parents:
e2f2aa9
git-author:
Alex Dehnert <adehnert@…> (02/03/10 15:36:28)
git-committer:
Alex Dehnert <adehnert@…> (02/03/10 15:36:28)
Message:

Mostly done with the voucher approval workflow

File:
1 edited

Legend:

Unmodified
Added
Removed
  • remit/vouchers/views.py

    re2f2aa9 r587bb95  
    77from django.template import RequestContext
    88from django.http import Http404, HttpResponseRedirect
     9import django.forms
    910from django.forms import Form
    1011from django.forms import ModelForm
    1112from django.forms import ModelChoiceField
    1213from django.core.urlresolvers import reverse
     14
     15import settings
    1316
    1417class RequestForm(ModelForm):
     
    127130    return render_to_response('vouchers/submit.html', context, context_instance=RequestContext(http_request), )
    128131
     132class VoucherizeForm(Form):
     133    name = django.forms.CharField(max_length=100)
     134    email = django.forms.EmailField(max_length=100)
     135
     136
    129137@user_passes_test(lambda u: u.is_authenticated())
    130138def review_request(http_request, object_id):
    131139    request_obj = get_object_or_404(ReimbursementRequest, pk=object_id)
     140
     141    if http_request.user.has_perm('vouchers.can_approve'):
     142        # Voucherize form
     143        # Prefill from certs / config
     144        initial = {}
     145        try:
     146            name = http_request.META['SSL_CLIENT_S_DN_CN']
     147            initial['name'] = name
     148        except KeyError:
     149            pass
     150        if settings.SIGNATORY_EMAIL:
     151            initial['email'] = settings.SIGNATORY_EMAIL
     152        else:
     153            try:
     154                initial['email'] = http_request.META['SSL_CLIENT_S_DN_Email']
     155            except KeyError:
     156                pass
     157
     158        approve_message = ''
     159        if http_request.method == 'POST' and 'approve' in http_request.REQUEST:
     160            approve_form = VoucherizeForm(http_request.POST)
     161            if approve_form.is_valid():
     162                voucher = request_obj.convert(
     163                    approve_form.cleaned_data['name'],
     164                    signatory_email=approve_form.cleaned_data['email'],)
     165                approve_message = 'Created new voucher from request'
     166        else:
     167            approve_form = VoucherizeForm(initial=initial)
     168
     169    # Display the content
    132170    if not (http_request.user.has_perm('vouchers.view_requests')
    133171        or http_request.user.username == request_obj.submitter):
     
    140178        'rr':request_obj,
    141179    }
     180    if http_request.user.has_perm('vouchers.can_approve'):
     181        context['approve_form'] = approve_form
     182        context['approve_message'] = approve_message
    142183    return render_to_response('vouchers/ReimbursementRequest_review.html', context, context_instance=RequestContext(http_request), )
    143184
Note: See TracChangeset for help on using the changeset viewer.