2019-07-17 11:34:07 +00:00
|
|
|
# -*- mode: python; coding: utf-8 -*-
|
|
|
|
# Copyright (C) 2018-2019 by BDE ENS Paris-Saclay
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
2020-02-08 19:23:17 +00:00
|
|
|
from dal import autocomplete
|
2019-07-17 11:53:58 +00:00
|
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
2020-02-08 19:23:17 +00:00
|
|
|
from django.db.models import Q
|
2019-07-17 11:34:07 +00:00
|
|
|
from django.utils.translation import gettext_lazy as _
|
2019-08-11 21:24:54 +00:00
|
|
|
from django.views.generic import CreateView, ListView, DetailView, UpdateView
|
2019-07-17 11:34:07 +00:00
|
|
|
|
2020-02-08 19:23:17 +00:00
|
|
|
from .models import Transaction, TransactionTemplate, Note
|
|
|
|
from .forms import TransactionForm, TransactionTemplateForm
|
2019-07-17 11:53:58 +00:00
|
|
|
|
|
|
|
class TransactionCreate(LoginRequiredMixin, CreateView):
|
2019-07-17 11:34:07 +00:00
|
|
|
"""
|
|
|
|
Show transfer page
|
|
|
|
|
|
|
|
TODO: If user have sufficient rights, they can transfer from an other note
|
|
|
|
"""
|
2019-07-17 11:53:58 +00:00
|
|
|
model = Transaction
|
2020-02-08 19:23:17 +00:00
|
|
|
form_class = TransactionForm
|
2019-07-17 11:53:58 +00:00
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Add some context variables in template such as page title
|
|
|
|
"""
|
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
context['title'] = _('Transfer money from your account '
|
|
|
|
'to one or others')
|
|
|
|
return context
|
2019-08-11 17:54:18 +00:00
|
|
|
|
2020-02-08 19:23:17 +00:00
|
|
|
|
|
|
|
class NoteAutocomplete(autocomplete.Select2QuerySetView):
|
|
|
|
"""
|
|
|
|
Auto complete note by aliases
|
|
|
|
"""
|
|
|
|
def get_queryset(self):
|
|
|
|
qs = Note.objects.all()
|
|
|
|
|
|
|
|
if self.q:
|
|
|
|
qs = qs.filter(Q(alias__name__regex=self.q) | Q(alias__normalized_name__regex=self.q))
|
|
|
|
|
|
|
|
return qs
|
|
|
|
|
|
|
|
|
2019-08-11 17:54:18 +00:00
|
|
|
class TransactionTemplateCreateView(LoginRequiredMixin,CreateView):
|
|
|
|
"""
|
|
|
|
Create TransactionTemplate
|
|
|
|
"""
|
|
|
|
model = TransactionTemplate
|
|
|
|
form_class = TransactionTemplateForm
|
2019-08-11 21:24:54 +00:00
|
|
|
|
2019-08-11 17:54:18 +00:00
|
|
|
class TransactionTemplateListView(LoginRequiredMixin,ListView):
|
|
|
|
"""
|
|
|
|
List TransactionsTemplates
|
|
|
|
"""
|
|
|
|
model = TransactionTemplate
|
|
|
|
form_class = TransactionTemplateForm
|
2019-08-11 21:24:54 +00:00
|
|
|
|
|
|
|
class TransactionTemplateUpdateView(LoginRequiredMixin,UpdateView):
|
2019-08-11 17:54:18 +00:00
|
|
|
"""
|
|
|
|
"""
|
|
|
|
model = TransactionTemplate
|
2019-08-11 21:24:54 +00:00
|
|
|
form_class=TransactionTemplateForm
|