Fix date range for snapshot transactions

This commit is contained in:
Edgar P. Burkhart 2022-05-22 14:41:15 +02:00
parent 5c01b8cd61
commit d96450aae2
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227
3 changed files with 11 additions and 13 deletions

View file

@ -162,11 +162,17 @@ class Snapshot(models.Model):
def sum(self):
if self.previous is None:
return None
trans = Transaction.objects.filter(
date__lt=self.date, date__gte=self.previous.date
).aggregate(sum=models.Sum("value"))
trans = self.transactions.aggregate(sum=models.Sum("value"))
return trans["sum"] or 0
@property
def transactions(self):
if self.previous is None:
return Transaction.objects.none()
return Transaction.objects.filter(
date__lte=self.date, date__gt=self.previous.date
)
class Meta:
ordering = ["-date"]

View file

@ -35,10 +35,10 @@
</div>
</form>
{% if transactions %}
{% if snapshot.transactions %}
<h2>Transactions ({% pmvalue sum %} / {% pmvalue snapshot.diff %})</h2>
{% transaction_table transactions %}
{% transaction_table snapshot.transactions %}
{% endif %}
{% endwith %}
{% endblock %}

View file

@ -127,22 +127,14 @@ def update_category(request, uuid):
def snapshot(request, date=None):
if date is None:
_snapshot = Snapshot()
_transactions = None
else:
_snapshot = get_object_or_404(Snapshot, date=date)
if _snapshot.previous is None:
_transactions = None
else:
_transactions = Transaction.objects.filter(
date__lt=_snapshot.date, date__gte=_snapshot.previous.date
)
return render(
request,
"main/snapshot.html",
{
"snapshot": _snapshot,
"form": SnapshotForm(instance=_snapshot),
"transactions": _transactions,
},
)