Add refresh highlighted buttons script

This commit is contained in:
Yohann D'ANELLO 2020-07-25 17:23:54 +02:00
parent f5967359a9
commit 580948fe1d
1 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,27 @@
#!/usr/bin/env python3
from datetime import timedelta
from django.core.management.base import BaseCommand
from django.db.models import Count
from django.utils import timezone
from note.models import RecurrentTransaction, TransactionTemplate
class Command(BaseCommand):
"""
Command to add the ten most used buttons of the past month to the highlighted buttons.
"""
def add_arguments(self, parser):
return parser
def handle(self, *args, **kwargs):
queryset = RecurrentTransaction.objects.filter(template__display=True, created_at__gte=timezone.now() - timedelta(days=30)).values("template").annotate(transaction_count=Count("template")).order_by("-transaction_count")[:10]
for d in queryset.all():
button_id = d["template"]
button = TransactionTemplate.objects.get(pk=button_id)
self.stdout.write(self.style.WARNING("Highlight button {name} ({count:d} transactions)...".format(name=button.name, count=d["transaction_count"])))
button.highlighted = True
button.save()