Skip to content

Commit 5cc83ea

Browse files
Merge pull request #37 from Kalgoc/fix/piggy-debts
Fix - Bidirectional unpaid debt history
2 parents f5578af + 4b8c1e5 commit 5cc83ea

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

debt/services/debt_services.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.contrib.auth import get_user_model
33
from datetime import timedelta
44
from django.utils import timezone
5+
from django.db.models import Q
56

67
User = get_user_model()
78

@@ -64,15 +65,22 @@ def toggle_debt_payment(debt_id):
6465
raise ValueError("Debt not found")
6566

6667

67-
def get_unpaid_debts_by_week(user_id):
68+
def get_unpaid_debts_by_week(user_id, piggy_id):
6869
now = timezone.now()
6970
start_of_week = (now - timedelta(days=now.weekday())).replace(hour=0, minute=0, second=0, microsecond=0)
7071
start_of_last_week = start_of_week - timedelta(weeks=1)
7172

72-
present_week_debts = Debt.objects.filter(user__user_id=user_id, is_paid=False, created_at__gte=start_of_week)
73+
present_week_debts = Debt.objects.filter(
74+
(Q(user__user_id=user_id) | Q(user__user_id=piggy_id)), is_paid=False, created_at__gte=start_of_week
75+
)
7376
last_week_debts = Debt.objects.filter(
74-
user__user_id=user_id, is_paid=False, created_at__gte=start_of_last_week, created_at__lt=start_of_week
77+
(Q(user__user_id=user_id) | Q(user__user_id=piggy_id)),
78+
is_paid=False,
79+
created_at__gte=start_of_last_week,
80+
created_at__lt=start_of_week,
81+
)
82+
previous_debts = Debt.objects.filter(
83+
(Q(user__user_id=user_id) | Q(user__user_id=piggy_id)), is_paid=False, created_at__lt=start_of_last_week
7584
)
76-
previous_debts = Debt.objects.filter(user__user_id=user_id, is_paid=False, created_at__lt=start_of_last_week)
7785

7886
return present_week_debts, last_week_debts, previous_debts

debt/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def toggle_payment(self, request, debt_id=None):
7777
@action(detail=False, methods=["get"], url_path="unpaid-history/(?P<other_user_id>[^/.]+)")
7878
def unpaid_history(self, request, other_user_id=None):
7979
user_id = get_user_id_from_token(request)
80-
present_week_debts, last_week_debts, previous_debts = get_unpaid_debts_by_week(user_id)
80+
present_week_debts, last_week_debts, previous_debts = get_unpaid_debts_by_week(user_id, other_user_id)
8181

8282
response_data = {
8383
"present_week": UnpaidDebtsHistorySerializer(present_week_debts, many=True).data,

0 commit comments

Comments
 (0)