mirror of
https://github.com/ae-utbm/sith.git
synced 2024-12-22 07:41:14 +00:00
Fix the account dump command.
- a missing `fail_silently` flag made the whole command fail if an invalid recipient is used (like closed utbm mail address) - Not specifying the seller make the account detail pages crash.
This commit is contained in:
parent
b3eb7693e3
commit
007e17fd8b
@ -55,7 +55,9 @@ class Command(BaseCommand):
|
|||||||
customer__user__in=reactivated_users
|
customer__user__in=reactivated_users
|
||||||
).delete()
|
).delete()
|
||||||
self._dump_accounts({u.customer for u in users_to_dump})
|
self._dump_accounts({u.customer for u in users_to_dump})
|
||||||
self._send_mails(users_to_dump)
|
self.stdout.write("Accounts dumped")
|
||||||
|
nb_successful_mails = self._send_mails(users_to_dump)
|
||||||
|
self.stdout.write(f"{nb_successful_mails} were successfuly sent.")
|
||||||
self.stdout.write("Finished !")
|
self.stdout.write("Finished !")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -103,13 +105,14 @@ class Command(BaseCommand):
|
|||||||
if len(pending_dumps) != len(customer_ids):
|
if len(pending_dumps) != len(customer_ids):
|
||||||
raise ValueError("One or more accounts were not engaged in a dump process")
|
raise ValueError("One or more accounts were not engaged in a dump process")
|
||||||
counter = Counter.objects.get(pk=settings.SITH_COUNTER_ACCOUNT_DUMP_ID)
|
counter = Counter.objects.get(pk=settings.SITH_COUNTER_ACCOUNT_DUMP_ID)
|
||||||
|
seller = User.objects.get(pk=settings.SITH_ROOT_USER_ID)
|
||||||
sales = Selling.objects.bulk_create(
|
sales = Selling.objects.bulk_create(
|
||||||
[
|
[
|
||||||
Selling(
|
Selling(
|
||||||
label="Vidange compte inactif",
|
label="Vidange compte inactif",
|
||||||
club=counter.club,
|
club=counter.club,
|
||||||
counter=counter,
|
counter=counter,
|
||||||
seller=None,
|
seller=seller,
|
||||||
product=None,
|
product=None,
|
||||||
customer=account,
|
customer=account,
|
||||||
quantity=1,
|
quantity=1,
|
||||||
@ -134,8 +137,12 @@ class Command(BaseCommand):
|
|||||||
Customer.objects.filter(pk__in=customer_ids).update(amount=0)
|
Customer.objects.filter(pk__in=customer_ids).update(amount=0)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _send_mails(users: Iterable[User]):
|
def _send_mails(users: Iterable[User]) -> int:
|
||||||
"""Send the mails informing users that their account has been dumped."""
|
"""Send the mails informing users that their account has been dumped.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The number of emails successfully sent.
|
||||||
|
"""
|
||||||
mails = [
|
mails = [
|
||||||
(
|
(
|
||||||
_("Your AE account has been emptied"),
|
_("Your AE account has been emptied"),
|
||||||
@ -145,4 +152,4 @@ class Command(BaseCommand):
|
|||||||
)
|
)
|
||||||
for user in users
|
for user in users
|
||||||
]
|
]
|
||||||
send_mass_mail(mails)
|
return send_mass_mail(mails, fail_silently=True)
|
||||||
|
@ -351,6 +351,9 @@ SITH_SEMESTER_START_SPRING = (2, 15) # 15 February
|
|||||||
# Used to determine the valid promos
|
# Used to determine the valid promos
|
||||||
SITH_SCHOOL_START_YEAR = 1999
|
SITH_SCHOOL_START_YEAR = 1999
|
||||||
|
|
||||||
|
# id of the Root account
|
||||||
|
SITH_ROOT_USER_ID = 0
|
||||||
|
|
||||||
SITH_GROUP_ROOT_ID = 1
|
SITH_GROUP_ROOT_ID = 1
|
||||||
SITH_GROUP_PUBLIC_ID = 2
|
SITH_GROUP_PUBLIC_ID = 2
|
||||||
SITH_GROUP_SUBSCRIBERS_ID = 3
|
SITH_GROUP_SUBSCRIBERS_ID = 3
|
||||||
|
Loading…
Reference in New Issue
Block a user