diff --git a/apps/note/admin.py b/apps/note/admin.py index f403dcd12a8e52588445d8ae2d7cf2022dec8141..e8966d44e36d34aa77c24a1b865af168a3b2377e 100644 --- a/apps/note/admin.py +++ b/apps/note/admin.py @@ -7,7 +7,7 @@ from polymorphic.admin import PolymorphicChildModelAdmin, \ PolymorphicChildModelFilter, PolymorphicParentModelAdmin from .models.notes import Alias, Note, NoteClub, NoteSpecial, NoteUser -from .models.transactions import Transaction, TransactionCategory, TransactionTemplate, TransactionType +from .models.transactions import Transaction, TemplateCategory, TransactionTemplate, TransactionType class AliasInlines(admin.TabularInline): @@ -154,8 +154,8 @@ class TransactionTemplateAdmin(admin.ModelAdmin): poly_destination.short_description = _('destination') -@admin.register(TransactionCategory) -class TransactionCategoryAdmin(admin.ModelAdmin): +@admin.register(TemplateCategory) +class TemplateCategoryAdmin(admin.ModelAdmin): """ Admin customisation for TransactionTemplate """ diff --git a/apps/note/fixtures/initial.json b/apps/note/fixtures/initial.json index f853d3cbb0ec8c248162c65bacc033cabdde9fb9..c0e92bda3aa9c6d2d7be0193b3b70b0df3300c0b 100644 --- a/apps/note/fixtures/initial.json +++ b/apps/note/fixtures/initial.json @@ -162,59 +162,59 @@ } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 1, "fields": { "name": "Soft" } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 2, "fields": { "name": "Pulls" } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 3, "fields": { "name": "Gala" } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 4, "fields": { "name": "Clubs" } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 5, "fields": { "name": "Bouffe" } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 6, "fields": { "name": "BDA" } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 7, "fields": { "name": "Autre" } }, { - "model": "note.transactioncategory", + "model": "note.templatecategory", "pk": 8, "fields": { "name": "Alcool" } } -] \ No newline at end of file +] diff --git a/apps/note/models/__init__.py b/apps/note/models/__init__.py index e372fc46af0f58b14cd2cf7cf3b658eb5c6f91f4..bac4f0ba77f0810b22c52eb6380dedd54079b327 100644 --- a/apps/note/models/__init__.py +++ b/apps/note/models/__init__.py @@ -3,11 +3,11 @@ from .notes import Alias, Note, NoteClub, NoteSpecial, NoteUser from .transactions import MembershipTransaction, Transaction, \ - TransactionCategory, TransactionTemplate, TransactionType + TemplateCategory, TransactionTemplate, TransactionType __all__ = [ # Notes 'Alias', 'Note', 'NoteClub', 'NoteSpecial', 'NoteUser', # Transactions - 'MembershipTransaction', 'Transaction', 'TransactionCategory', 'TransactionTemplate','TransactionType', + 'MembershipTransaction', 'Transaction', 'TemplateCategory', 'TransactionTemplate','TransactionType', ] diff --git a/apps/note/models/transactions.py b/apps/note/models/transactions.py index d441785ee3c597084324095c2e6010908af35bbf..388efb3d43fddd03a29e54c193ed27e7ebe2d6a5 100644 --- a/apps/note/models/transactions.py +++ b/apps/note/models/transactions.py @@ -13,7 +13,7 @@ Defines transactions """ -class TransactionCategory(models.Model): +class TemplateCategory(models.Model): """ Defined a recurrent transaction category @@ -55,7 +55,7 @@ class TransactionTemplate(models.Model): help_text=_('in centimes'), ) category = models.ForeignKey( - TransactionCategory, + TemplateCategory, on_delete=models.PROTECT, verbose_name=_('type'), max_length=31, @@ -173,6 +173,26 @@ class Transaction(models.Model): return self.amount * self.quantity +class TemplateTransaction(Transaction): + """ + Special type of :model:`note.Transaction` associated to a :model:`note.TransactionTemplate`. + + """ + + template = models.ForeignKey( + TransactionTemplate, + null=True + on_delete=models.SET_NULL + ) + category = models.ForeignKey( + TemplateCategory, + on_delete=models.PROTECT + ) + name = models.CharField( + max_length=255 + ) + + class MembershipTransaction(Transaction): """ Special type of :model:`note.Transaction` associated to a :model:`member.Membership`.