In the mail that logs negative balances, add option to log old members
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
This commit is contained in:
parent
cf8b05d20a
commit
5ce65e36a8
|
@ -1,7 +1,7 @@
|
||||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
from datetime import date
|
from datetime import date, timedelta
|
||||||
|
|
||||||
from django.core.mail import send_mail
|
from django.core.mail import send_mail
|
||||||
from django.core.management import BaseCommand
|
from django.core.management import BaseCommand
|
||||||
|
@ -17,12 +17,22 @@ class Command(BaseCommand):
|
||||||
parser.add_argument("--spam", "-s", action='store_true', help="Spam negative users")
|
parser.add_argument("--spam", "-s", action='store_true', help="Spam negative users")
|
||||||
parser.add_argument("--report", "-r", action='store_true', help="Report the list of negative users to admins")
|
parser.add_argument("--report", "-r", action='store_true', help="Report the list of negative users to admins")
|
||||||
parser.add_argument("--negative-amount", "-n", action='store', type=int, default=1000,
|
parser.add_argument("--negative-amount", "-n", action='store', type=int, default=1000,
|
||||||
help="Maximum amount to be considered as very negative")
|
help="Maximum amount to be considered as very negative (inclusive)")
|
||||||
|
parser.add_argument("--add-years", "-y", action='store', type=int, default=0,
|
||||||
|
help="Add also people that have a negative balance since N years "
|
||||||
|
"(default to only active members)")
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
activate('fr')
|
activate('fr')
|
||||||
|
|
||||||
|
if options['negative_amount'] == 0:
|
||||||
|
# Don't log empty notes
|
||||||
|
options['negative_amount'] = 0.01
|
||||||
|
|
||||||
notes = Note.objects.filter(
|
notes = Note.objects.filter(
|
||||||
Q(noteuser__user__memberships__date_end__gte=date.today()) | Q(noteclub__isnull=False),
|
Q(noteuser__user__memberships__date_end__gte=
|
||||||
|
date.today() - timedelta(days=int(365.25 * options['add_years'])))
|
||||||
|
| Q(noteclub__isnull=False),
|
||||||
balance__lte=-options["negative_amount"],
|
balance__lte=-options["negative_amount"],
|
||||||
is_active=True,
|
is_active=True,
|
||||||
).order_by('balance').distinct().all()
|
).order_by('balance').distinct().all()
|
||||||
|
|
Loading…
Reference in New Issue