Skip to content
GitLab
Explore
Sign in
Commits on Source (1)
➕
Add refresh highlighted buttons script
· 580948fe
ynerant
authored
Jul 25, 2020
580948fe
Hide whitespace changes
Inline
Side-by-side
management/commands/refresh_highlighted_buttons.py
0 → 100644
View file @
580948fe
#!/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
()