nk20/apps/note/views.py

70 lines
2.1 KiB
Python
Raw Normal View History

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 _
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
"""
2020-02-08 20:40:32 +00:00
2020-02-08 19:23:17 +00:00
def get_queryset(self):
2020-02-08 20:40:32 +00:00
"""
Quand une personne cherche un alias, une requête est envoyée sur l'API dédiée à l'auto-complétion.
Cette fonction récupère la requête, et renvoie la liste filtrée des notes par aliases.
"""
2020-02-08 19:23:17 +00:00
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 17:54:18 +00:00
class TransactionTemplateListView(LoginRequiredMixin,ListView):
"""
List TransactionsTemplates
"""
model = TransactionTemplate
form_class = TransactionTemplateForm
class TransactionTemplateUpdateView(LoginRequiredMixin,UpdateView):
2019-08-11 17:54:18 +00:00
"""
"""
model = TransactionTemplate
form_class=TransactionTemplateForm