mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2025-07-22 17:26:50 +02:00
Move apps in main directory
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
api
locale/fr/LC_MESSAGES
logs
participation
__init__.pyadmin.pytests.pyurls.pyviews.py
api
apps.pyforms.pymanagement
__init__.py
commands
migrations
models.pysearch_indexes.pysignals.pytables.pytemplates
participation
chat.htmlcreate_team.htmljoin_team.html
mails
request_validation.htmlrequest_validation.txtteam_not_validated.htmlteam_not_validated.txtteam_validated.htmlteam_validated.txt
note_form.htmlparticipation_detail.htmlpassage_detail.htmlpassage_form.htmlpool_detail.htmlpool_form.htmlteam_detail.htmlteam_leave.htmlteam_list.htmltournament_detail.htmltournament_form.htmltournament_list.htmlupdate_team.htmlupload_motivation_letter.htmlupload_notes.htmlupload_solution.htmlupload_synthesis.htmlsearch
indexes
registration
__init__.pyadmin.py
api
apps.pyauth.pyfixtures
forms.pymigrations
0001_initial.py0002_auto_20230110_2031.py0003_alter_participantregistration_zip_code.py0004_volunteer_admin.py0005_studentregistration_vaccine_sheet.py__init__.py
models.pysearch_indexes.pysignals.pytables.pytemplates
registration
add_organizer.htmlemail_validation_complete.htmlemail_validation_email_sent.html
mails
password_change_done.htmlpassword_change_form.htmlpassword_reset_complete.htmlpassword_reset_confirm.htmlpassword_reset_done.htmlpassword_reset_form.htmlpayment_form.htmlsignup.htmltex
Autorisation_droit_image_majeur.texAutorisation_droit_image_mineur.texAutorisation_parentale.texInstructions.tex
update_user.htmlupload_health_sheet.htmlupload_parental_authorization.htmlupload_photo_authorization.htmlupload_vaccine_sheet.htmluser_detail.htmluser_list.htmlsearch
templatetags
tests.pyurls.pyviews.pytfjm
tox.ini
56
registration/signals.py
Normal file
56
registration/signals.py
Normal file
@ -0,0 +1,56 @@
|
||||
# Copyright (C) 2020 by Animath
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from tfjm.lists import get_sympa_client
|
||||
|
||||
from .models import Payment, Registration, VolunteerRegistration
|
||||
|
||||
|
||||
def set_username(instance, **_):
|
||||
"""
|
||||
Ensure that the user username is always equal to the user email address.
|
||||
"""
|
||||
instance.username = instance.email
|
||||
|
||||
|
||||
def send_email_link(instance, **_):
|
||||
"""
|
||||
If the email address got changed, send a new validation link
|
||||
and update the registration status in the team mailing list.
|
||||
"""
|
||||
if instance.pk:
|
||||
old_instance = User.objects.get(pk=instance.pk)
|
||||
if old_instance.email != instance.email:
|
||||
registration = Registration.objects.get(user=instance)
|
||||
registration.email_confirmed = False
|
||||
registration.save()
|
||||
registration.user = instance
|
||||
registration.send_email_validation_link()
|
||||
|
||||
if registration.participates and registration.team:
|
||||
get_sympa_client().unsubscribe(old_instance.email, f"equipe-{registration.team.trigram.lower()}", False)
|
||||
get_sympa_client().subscribe(instance.email, f"equipe-{registration.team.trigram.lower()}", False,
|
||||
f"{instance.first_name} {instance.last_name}")
|
||||
|
||||
|
||||
def create_admin_registration(instance, **_):
|
||||
"""
|
||||
When a super user got created through console,
|
||||
ensure that an admin registration is created.
|
||||
"""
|
||||
if instance.is_superuser:
|
||||
VolunteerRegistration.objects.get_or_create(user=instance, admin=True)
|
||||
|
||||
|
||||
def create_payment(instance: Registration, **_):
|
||||
"""
|
||||
When a user is saved, create the associated payment.
|
||||
For a free tournament, the payment is valid.
|
||||
"""
|
||||
if instance.participates:
|
||||
payment = Payment.objects.get_or_create(registration=instance)[0]
|
||||
if instance.team and instance.team.participation.valid and instance.team.participation.tournament.price == 0:
|
||||
payment.valid = True
|
||||
payment.type = "free"
|
||||
payment.save()
|
Reference in New Issue
Block a user