diff --git a/qrtr_account/migrations/0013_auto_20211229_1935.py b/qrtr_account/migrations/0013_auto_20211229_1935.py new file mode 100644 index 0000000..9a019c5 --- /dev/null +++ b/qrtr_account/migrations/0013_auto_20211229_1935.py @@ -0,0 +1,24 @@ +# Generated by Django 3.2.3 on 2021-12-29 19:35 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('qrtr_account', '0012_slice_description'), + ] + + operations = [ + migrations.AddField( + model_name='transaction', + name='is_split', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='transaction', + name='split_parent', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='split_children', to='qrtr_account.transaction'), + ), + ] diff --git a/qrtr_account/models.py b/qrtr_account/models.py index 74b2671..3add035 100644 --- a/qrtr_account/models.py +++ b/qrtr_account/models.py @@ -124,7 +124,7 @@ class Transaction(models.Model): created_at = models.DateTimeField(auto_now_add=True) is_split = models.BooleanField(default=False) - split_parent = models.models.ForeignKey(Transaction, on_delete=models.CASCADE, blank=True, null=True, related_name="split_children") + split_parent = models.ForeignKey("Transaction", on_delete=models.CASCADE, blank=True, null=True, related_name="split_children") @property def qid(self): diff --git a/qrtr_account/views.py b/qrtr_account/views.py index a6cee41..fd2980d 100644 --- a/qrtr_account/views.py +++ b/qrtr_account/views.py @@ -2,6 +2,7 @@ from django.shortcuts import render from rest_framework import viewsets, mixins from .models import Account, Bank, Institution, Transaction, Slice, Rule from rest_framework.permissions import IsAuthenticated +from rest_framework.decorators import action from connection.models import Connection, ConnectionType from api.serializers import (AccountReadSerializer, AccountWriteSerializer, BankSerializer, BankSerializerPOST, @@ -72,23 +73,23 @@ class TransactionViewSet(viewsets.ModelViewSet): 'updated_at': ['exact', 'lte', 'gte', 'isnull'], 'created_at': ['exact', 'lte', 'gte', 'isnull'], 'trans_id': ['exact', 'lte', 'gte', 'isnull'], - } + } - @action(detail=True, methods=['post'], url_path='split') - def split_transaction(self, request, pk=None): - parent = self.get_object() - base_information = {"authorized_date": parent.authorized_date, - "bank": parent.bank, - "name": parent.name, - "details": parent.details, - "slice": parent.slice, - "trans_id": parent.trans_id, - "split_parent": parent - } - child1 = Transaction.objects.create(**base_information) - child1.name = f"{child1.name}.split1" - child2 = Transaction.objects.create(**base_information) - child2.name = f"{child1.name}.split2" + @action(detail=True, methods=['post'], url_path='split') + def split_transaction(self, request, pk=None): + parent = self.get_object() + base_information = {"authorized_date": parent.authorized_date, + "bank": parent.bank, + "name": parent.name, + "details": parent.details, + "slice": parent.slice, + "trans_id": parent.trans_id, + "split_parent": parent + } + child1 = Transaction.objects.create(**base_information) + child1.name = f"{child1.name}.split1" + child2 = Transaction.objects.create(**base_information) + child2.name = f"{child1.name}.split2" class RuleViewSet(viewsets.ReadOnlyModelViewSet):