コード例 #1
0
    def create_invoice_form(self):

        kwargs = {'instance': self.get_object()}
        if self.request.method == 'POST':
            kwargs.update({'data': self.request.POST})

        self.invoice_form = InvoiceCreateForm(**kwargs)
コード例 #2
0
class ManageApplication(ManagerPermissionMixin, SetCompetitionContextMixin, DetailView):
    model = Application
    pk_url_kwarg = 'pk2'
    template_name = 'manager/application.html'

    invoice_form = None

    def get_context_data(self, **kwargs):
        context = super(ManageApplication, self).get_context_data(**kwargs)
        context.update({'invoice_form': self.invoice_form})
        context.update({'payments': self.object.payment_set.all()})
        return context

    def create_invoice_form(self):

        kwargs = {'instance': self.get_object()}
        if self.request.method == 'POST':
            kwargs.update({'data': self.request.POST})

        self.invoice_form = InvoiceCreateForm(**kwargs)

    @method_decorator(xframe_options_exempt)
    def get(self, request, *args, **kwargs):
        self.create_invoice_form()
        return super(ManageApplication, self).get(request, *args, **kwargs)

    def process_post(self, request):
        action = request.POST.get('action', '')
        if action == 'mark_as_payed':
            self.object.payment_status = Application.PAY_STATUS_PAYED
            for participant in self.object.participant_set.all():
                participant.is_participating = True
                participant.save()
            self.object.save()
        elif action == 'create_invoice':
            self.create_invoice_form()
            if self.invoice_form.is_valid():
                self.invoice_form.save()

    @method_decorator(xframe_options_exempt)
    def post(self, request, *args, **kwargs):
        self.object = self.get_object()
        self.process_post(request)
        return super(ManageApplication, self).get(request, *args, **kwargs)