mirror of
https://gitlab.crans.org/bde/nk20-scripts
synced 2024-12-26 01:12:25 +00:00
➕ Add refresh highlighted buttons script
This commit is contained in:
parent
f5967359a9
commit
580948fe1d
27
management/commands/refresh_highlighted_buttons.py
Normal file
27
management/commands/refresh_highlighted_buttons.py
Normal 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()
|
Loading…
Reference in New Issue
Block a user