mirror of
				https://gitlab.crans.org/bde/nk20-scripts
				synced 2025-10-30 22:59:52 +01:00 
			
		
		
		
	➕ Add refresh highlighted buttons script
This commit is contained in:
		
							
								
								
									
										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() | ||||
		Reference in New Issue
	
	Block a user