mirror of https://gitlab.crans.org/bde/nk20
Use TableView for conso page
This commit is contained in:
parent
62573a35df
commit
94ab2c81f7
|
@ -6,7 +6,7 @@ from django import forms
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from .models import Alias
|
from .models import Alias
|
||||||
from .models import Transaction, TransactionTemplate, TemplateTransaction
|
from .models import Transaction, TransactionTemplate
|
||||||
|
|
||||||
|
|
||||||
class AliasForm(forms.ModelForm):
|
class AliasForm(forms.ModelForm):
|
||||||
|
@ -99,33 +99,3 @@ class TransactionForm(forms.ModelForm):
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class ConsoForm(forms.ModelForm):
|
|
||||||
def save(self, commit=True):
|
|
||||||
button: TransactionTemplate = TransactionTemplate.objects.filter(
|
|
||||||
name=self.data['button']).get()
|
|
||||||
self.instance.destination = button.destination
|
|
||||||
self.instance.amount = button.amount
|
|
||||||
self.instance.reason = '{} ({})'.format(button.name, button.category)
|
|
||||||
self.instance.template = button
|
|
||||||
self.instance.category = button.category
|
|
||||||
super().save(commit)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = TemplateTransaction
|
|
||||||
fields = ('source',)
|
|
||||||
|
|
||||||
# Le champ d'utilisateur est remplacé par un champ d'auto-complétion.
|
|
||||||
# Quand des lettres sont tapées, une requête est envoyée sur l'API d'auto-complétion
|
|
||||||
# et récupère les aliases de note valides
|
|
||||||
widgets = {
|
|
||||||
'source':
|
|
||||||
autocomplete.ModelSelect2(
|
|
||||||
url='note:note_autocomplete',
|
|
||||||
attrs={
|
|
||||||
'data-placeholder': 'Note ...',
|
|
||||||
'data-minimum-input-length': 1,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
}
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from django.db.models import F
|
||||||
from django_tables2.utils import A
|
from django_tables2.utils import A
|
||||||
|
|
||||||
from .models.notes import Alias
|
from .models.notes import Alias
|
||||||
from .models.transactions import Transaction, TransactionTemplate
|
from .models.transactions import Transaction
|
||||||
from .templatetags.pretty_money import pretty_money
|
from .templatetags.pretty_money import pretty_money
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,11 @@ from django.db.models import Q
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.views.generic import CreateView, ListView, UpdateView
|
from django.views.generic import CreateView, ListView, UpdateView
|
||||||
|
from django_tables2 import SingleTableView
|
||||||
|
|
||||||
from .forms import TransactionForm, TransactionTemplateForm, ConsoForm
|
from .forms import TransactionForm, TransactionTemplateForm
|
||||||
from .models import Transaction, TransactionTemplate, Alias, TemplateTransaction
|
from .models import Transaction, TransactionTemplate, Alias
|
||||||
|
from .tables import HistoryTable
|
||||||
|
|
||||||
|
|
||||||
class TransactionCreate(LoginRequiredMixin, CreateView):
|
class TransactionCreate(LoginRequiredMixin, CreateView):
|
||||||
|
@ -121,13 +123,16 @@ class TransactionTemplateUpdateView(LoginRequiredMixin, UpdateView):
|
||||||
form_class = TransactionTemplateForm
|
form_class = TransactionTemplateForm
|
||||||
|
|
||||||
|
|
||||||
class ConsoView(LoginRequiredMixin, CreateView):
|
class ConsoView(LoginRequiredMixin, SingleTableView):
|
||||||
"""
|
"""
|
||||||
Consume
|
Consume
|
||||||
"""
|
"""
|
||||||
model = TemplateTransaction
|
model = Transaction
|
||||||
template_name = "note/conso_form.html"
|
template_name = "note/conso_form.html"
|
||||||
form_class = ConsoForm
|
|
||||||
|
# Transaction history table
|
||||||
|
table_class = HistoryTable
|
||||||
|
table_pagination = {"per_page": 10}
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -142,9 +147,3 @@ class ConsoView(LoginRequiredMixin, CreateView):
|
||||||
context['no_cache'] = True
|
context['no_cache'] = True
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
def get_success_url(self):
|
|
||||||
"""
|
|
||||||
When clicking a button, reload the same page
|
|
||||||
"""
|
|
||||||
return reverse('note:consos')
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
{% load i18n static pretty_money %}
|
{% load i18n static pretty_money django_tables2 %}
|
||||||
|
|
||||||
{# Remove page title #}
|
{# Remove page title #}
|
||||||
{% block contenttitle %}{% endblock %}
|
{% block contenttitle %}{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue