views.py 4.85 KB
Newer Older
Skia's avatar
Skia committed
1 2
from django.views.generic import ListView, DetailView, RedirectView
from django.views.generic.edit import UpdateView, CreateView, DeleteView
Skia's avatar
Skia committed
3
from django.shortcuts import render
Skia's avatar
Skia committed
4
from django.core.urlresolvers import reverse_lazy
5 6
from django.forms.models import modelform_factory
from django.forms import HiddenInput
Skia's avatar
Skia committed
7

8
from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, CanCreateMixin
Skia's avatar
Skia committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
from accounting.models import BankAccount, ClubAccount, GeneralJournal, Operation, AccountingType

# Accounting types

class AccountingTypeListView(CanViewMixin, ListView):
    """
    A list view for the admins
    """
    model = AccountingType
    template_name = 'accounting/accountingtype_list.jinja'

class AccountingTypeEditView(CanViewMixin, UpdateView):
    """
    An edit view for the admins
    """
    model = AccountingType
    pk_url_kwarg = "type_id"
    fields = ['code', 'label', 'movement_type']
    template_name = 'accounting/account_edit.jinja'

Skia's avatar
Skia committed
29
class AccountingTypeCreateView(CanEditPropMixin, CreateView): # TODO: move to CanCreateMixin
Skia's avatar
Skia committed
30 31 32 33 34 35
    """
    Create an accounting type (for the admins)
    """
    model = AccountingType
    fields = ['code', 'label', 'movement_type']
    template_name = 'accounting/account_edit.jinja'
Skia's avatar
Skia committed
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

# BankAccount views

class BankAccountListView(CanViewMixin, ListView):
    """
    A list view for the admins
    """
    model = BankAccount
    template_name = 'accounting/bank_account_list.jinja'

class BankAccountEditView(CanViewMixin, UpdateView):
    """
    An edit view for the admins
    """
    model = BankAccount
    pk_url_kwarg = "b_account_id"
    fields = ['name', 'rib', 'number']
    template_name = 'accounting/account_edit.jinja'

class BankAccountDetailView(CanViewMixin, DetailView):
    """
    A detail view, listing every club account
    """
    model = BankAccount
    pk_url_kwarg = "b_account_id"
    template_name = 'accounting/bank_account_details.jinja'

Skia's avatar
Skia committed
63
class BankAccountCreateView(CanEditPropMixin, CreateView): # TODO: move to CanCreateMixin
Skia's avatar
Skia committed
64 65 66 67 68 69 70
    """
    Create a bank account (for the admins)
    """
    model = BankAccount
    fields = ['name', 'rib', 'number']
    template_name = 'accounting/account_edit.jinja'

Skia's avatar
Skia committed
71
class BankAccountDeleteView(CanEditPropMixin, DeleteView): # TODO change Delete to Close
Skia's avatar
Skia committed
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
    """
    Delete a bank account (for the admins)
    """
    model = BankAccount
    pk_url_kwarg = "b_account_id"
    template_name = 'core/delete_confirm.jinja'
    success_url = reverse_lazy('accounting:bank_list')

# ClubAccount views

class ClubAccountEditView(CanViewMixin, UpdateView):
    """
    An edit view for the admins
    """
    model = ClubAccount
    pk_url_kwarg = "c_account_id"
    fields = ['name', 'club', 'bank_account']
    template_name = 'accounting/account_edit.jinja'

class ClubAccountDetailView(CanViewMixin, DetailView):
    """
    A detail view, listing every journal
    """
    model = ClubAccount
    pk_url_kwarg = "c_account_id"
    template_name = 'accounting/club_account_details.jinja'

Skia's avatar
Skia committed
99
class ClubAccountCreateView(CanEditPropMixin, CreateView): # TODO: move to CanCreateMixin
Skia's avatar
Skia committed
100 101 102 103 104 105 106
    """
    Create a club account (for the admins)
    """
    model = ClubAccount
    fields = ['name', 'club', 'bank_account']
    template_name = 'accounting/account_edit.jinja'

Skia's avatar
Skia committed
107
class ClubAccountDeleteView(CanEditPropMixin, DeleteView): # TODO change Delete to Close
Skia's avatar
Skia committed
108 109 110 111 112 113 114 115 116 117
    """
    Delete a club account (for the admins)
    """
    model = ClubAccount
    pk_url_kwarg = "c_account_id"
    template_name = 'core/delete_confirm.jinja'
    success_url = reverse_lazy('accounting:bank_list')

# Journal views

Skia's avatar
Skia committed
118
class JournalCreateView(CanCreateMixin, CreateView):
Skia's avatar
Skia committed
119 120 121 122
    """
    Create a general journal
    """
    model = GeneralJournal
Skia's avatar
Skia committed
123
    template_name = 'accounting/account_edit.jinja'
124
    fields = ['name', 'start_date', 'club_account']
Skia's avatar
Skia committed
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144

class JournalDetailView(CanViewMixin, DetailView):
    """
    A detail view, listing every operation
    """
    model = GeneralJournal
    pk_url_kwarg = "j_id"
    template_name = 'accounting/journal_details.jinja'

class JournalEditView(CanEditMixin, UpdateView):
    """
    Update a general journal
    """
    model = GeneralJournal
    pk_url_kwarg = "j_id"
    fields = ['name', 'start_date', 'club_account']
    template_name = 'accounting/account_edit.jinja'

# Operation views

Skia's avatar
Skia committed
145
class OperationCreateView(CanEditMixin, CreateView): # TODO: move to CanCreateMixin
Skia's avatar
Skia committed
146 147 148 149
    """
    Create an operation
    """
    model = Operation
Skia's avatar
Skia committed
150
    fields = ['type', 'amount', 'label', 'remark', 'journal', 'date', 'cheque_number', 'accounting_type', 'done']
Skia's avatar
Skia committed
151 152 153 154 155 156 157 158
    template_name = 'accounting/account_edit.jinja'

class OperationEditView(CanViewMixin, UpdateView):
    """
    An edit view, working as detail for the moment
    """
    model = Operation
    pk_url_kwarg = "op_id"
Skia's avatar
Skia committed
159
    fields = ['amount', 'label', 'remark', 'date', 'cheque_number', 'accounting_type', 'done']
Skia's avatar
Skia committed
160
    template_name = 'accounting/account_edit.jinja'
Skia's avatar
Skia committed
161