]> err.no Git - peojumk/blob - invoice/views.py
Bootstrappify
[peojumk] / invoice / views.py
1 from django.shortcuts import render_to_response, get_object_or_404
2 from django.contrib.auth.decorators import login_required, permission_required
3 from django.http import HttpResponse
4 from django.forms.models import inlineformset_factory
5 from django.template import RequestContext
6 from django.views.generic.create_update import get_model_and_form_class, apply_extra_context, redirect, update_object, lookup_object, delete_object
7 from django.views.generic import UpdateView, DeleteView, CreateView, DetailView
8 from django.utils.decorators import method_decorator
9
10 from extra_views import CreateWithInlinesView, UpdateWithInlinesView, InlineFormSet
11 from extra_views.generic import GenericInlineFormSet
12
13 from invoice.models import Client, Invoice, InvoiceLine
14 from invoice.forms import ClientForm, InvoiceForm
15
16 @login_required
17 def index(request):
18     clients = Client.objects.all()
19     return render_to_response('invoice/index.html', {'clients': clients})
20
21 # ------------------- CLIENT ---------------
22
23 class DetailClient(DetailView):
24     model = Client
25     @method_decorator(login_required)
26     def dispatch(self, *args, **kwargs):
27         return super(DetailView, self).dispatch(*args, **kwargs)
28
29 class CreateClient(CreateView):
30     model = Client
31     form_class = ClientForm
32     success_url = '/'
33
34     @method_decorator(login_required)
35     def dispatch(self, *args, **kwargs):
36         return super(CreateClient, self).dispatch(*args, **kwargs)
37
38 class UpdateClient(UpdateView):
39     model = Client
40     form_class = ClientForm
41     success_url = '/'
42
43     @method_decorator(login_required)
44     def dispatch(self, *args, **kwargs):
45         return super(UpdateClient, self).dispatch(*args, **kwargs)
46     
47 class DeleteClient(DeleteView):
48     model = Client
49     form_class = ClientForm
50     success_url = '/'
51
52     @method_decorator(login_required)
53     def dispatch(self, *args, **kwargs):
54         return super(DeleteClient, self).dispatch(*args, **kwargs)
55
56 # ------------------- INVOICE ---------------
57
58 class InvoiceLineInline(InlineFormSet):
59     model = InvoiceLine
60
61 class DetailInvoice(DetailView):
62     model = Invoice
63
64     @method_decorator(login_required)
65     def dispatch(self, *args, **kwargs):
66         return super(DetailInvoice, self).dispatch(*args, **kwargs)
67
68 class CreateInvoice(CreateWithInlinesView):
69     model = Invoice
70     inlines = [InvoiceLineInline]
71     form_class = InvoiceForm
72     success_url = '/'
73
74     @method_decorator(login_required)
75     def dispatch(self, *args, **kwargs):
76         return super(CreateInvoice, self).dispatch(*args, **kwargs)
77
78     def get_initial(self):
79         initial = super(CreateInvoice, self).get_initial().copy()
80         if self.request.path
81         initial[''] = 
82         return initial