Transaction types are now properties

This commit is contained in:
Yohann D'ANELLO 2020-03-16 13:14:06 +01:00 committed by Bombar Maxime
parent 7313e5a337
commit 4909a7f09c
3 changed files with 19 additions and 22 deletions

View File

@ -7,7 +7,7 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from polymorphic.models import PolymorphicModel from polymorphic.models import PolymorphicModel
from .notes import Note, NoteClub from .notes import Note, NoteClub, NoteSpecial
""" """
Defines transactions Defines transactions
@ -111,20 +111,6 @@ class Transaction(PolymorphicModel):
verbose_name=_('amount'), verbose_name=_('amount'),
) )
type = models.CharField(
verbose_name=_('type'),
choices=(
('gift', _('Gift')),
('transfer', _('Transfer')),
('template', _('Template')),
('credit', _('Credit')),
('debit', _('Debit')),
('membership', _('membership transaction')),
),
default='transfer',
max_length=10,
)
reason = models.CharField( reason = models.CharField(
verbose_name=_('reason'), verbose_name=_('reason'),
max_length=255, max_length=255,
@ -175,6 +161,10 @@ class Transaction(PolymorphicModel):
def total(self): def total(self):
return self.amount * self.quantity return self.amount * self.quantity
@property
def type(self):
return _('Transfer')
class TemplateTransaction(Transaction): class TemplateTransaction(Transaction):
""" """
@ -191,6 +181,10 @@ class TemplateTransaction(Transaction):
on_delete=models.PROTECT, on_delete=models.PROTECT,
) )
@property
def type(self):
return _('Template')
class SpecialTransaction(Transaction): class SpecialTransaction(Transaction):
""" """
@ -213,6 +207,10 @@ class SpecialTransaction(Transaction):
blank=True, blank=True,
) )
@property
def type(self):
return _('Credit') if isinstance(self.source, NoteSpecial) else _("Debit")
class MembershipTransaction(Transaction): class MembershipTransaction(Transaction):
""" """
@ -229,3 +227,7 @@ class MembershipTransaction(Transaction):
class Meta: class Meta:
verbose_name = _("membership transaction") verbose_name = _("membership transaction")
verbose_name_plural = _("membership transactions") verbose_name_plural = _("membership transactions")
@property
def type(self):
return _('membership transaction')

View File

@ -193,7 +193,6 @@ function consume(source, dest, quantity, amount, reason, type, category, templat
"valid": true, "valid": true,
"polymorphic_ctype": type, "polymorphic_ctype": type,
"resourcetype": "TemplateTransaction", "resourcetype": "TemplateTransaction",
"type": "template",
"source": source, "source": source,
"destination": dest, "destination": dest,
"category": category, "category": category,

View File

@ -201,8 +201,8 @@ SPDX-License-Identifier: GPL-2.0-or-later
$("#type_transfer").removeAttr('checked'); $("#type_transfer").removeAttr('checked');
$("#type_credit").removeAttr('checked'); $("#type_credit").removeAttr('checked');
$("#type_debit").removeAttr('checked'); $("#type_debit").removeAttr('checked');
$("label[for='type_gift']").attr('class', 'btn btn-sm btn-outline-primary');
$("label[for='type_transfer']").attr('class', 'btn btn-sm btn-outline-primary'); $("label[for='type_transfer']").attr('class', 'btn btn-sm btn-outline-primary');
$("label[for='type_credit']").attr('class', 'btn btn-sm btn-outline-primary');
$("label[for='type_debit']").attr('class', 'btn btn-sm btn-outline-primary'); $("label[for='type_debit']").attr('class', 'btn btn-sm btn-outline-primary');
}); });
@ -246,7 +246,6 @@ SPDX-License-Identifier: GPL-2.0-or-later
"valid": true, "valid": true,
"polymorphic_ctype": {{ polymorphic_ctype }}, "polymorphic_ctype": {{ polymorphic_ctype }},
"resourcetype": "Transaction", "resourcetype": "Transaction",
"type": "gift",
"source": {{ user.note.id }}, "source": {{ user.note.id }},
"destination": dest.id "destination": dest.id
}, function () { }, function () {
@ -276,7 +275,6 @@ SPDX-License-Identifier: GPL-2.0-or-later
"valid": true, "valid": true,
"polymorphic_ctype": {{ polymorphic_ctype }}, "polymorphic_ctype": {{ polymorphic_ctype }},
"resourcetype": "Transaction", "resourcetype": "Transaction",
"type": "transfer",
"source": source.id, "source": source.id,
"destination": dest.id "destination": dest.id
}, function () { }, function () {
@ -298,11 +296,10 @@ SPDX-License-Identifier: GPL-2.0-or-later
let special_note = $("#credit_type").val(); let special_note = $("#credit_type").val();
let user_note = dests_notes_display[0].id; let user_note = dests_notes_display[0].id;
let given_reason = $("#reason").val(); let given_reason = $("#reason").val();
let source, dest, reason, type; let source, dest, reason;
if ($("#type_credit").is(':checked')) { if ($("#type_credit").is(':checked')) {
source = special_note; source = special_note;
dest = user_note; dest = user_note;
type = "credit";
reason = "Crédit " + $("#credit_type option:selected").text().toLowerCase(); reason = "Crédit " + $("#credit_type option:selected").text().toLowerCase();
if (given_reason.length > 0) if (given_reason.length > 0)
reason += " (" + given_reason + ")"; reason += " (" + given_reason + ")";
@ -324,7 +321,6 @@ SPDX-License-Identifier: GPL-2.0-or-later
"valid": true, "valid": true,
"polymorphic_ctype": {{ special_polymorphic_ctype }}, "polymorphic_ctype": {{ special_polymorphic_ctype }},
"resourcetype": "SpecialTransaction", "resourcetype": "SpecialTransaction",
"type": type,
"source": source, "source": source,
"destination": dest, "destination": dest,
"last_name": $("#last_name").val(), "last_name": $("#last_name").val(),