Use TableView for conso page

This commit is contained in:
Alexandre Iooss 2020-03-10 08:07:09 +01:00
parent 62573a35df
commit 94ab2c81f7
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
4 changed files with 13 additions and 44 deletions

View File

@ -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,
},
),
}

View File

@ -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

View File

@ -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')

View File

@ -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 %}