parent
185aa29f3d
commit
e019cea984
@ -0,0 +1,28 @@ |
|||||||
|
# Generated by Django 5.1 on 2025-04-10 19:13 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0121_tournament_stripe_account_id'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='enable_online_payments', |
||||||
|
field=models.BooleanField(default=False), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='user_role', |
||||||
|
field=models.IntegerField(blank=True, choices=[(0, 'Juge-Arbitre'), (1, 'Club Owner'), (2, 'Player')], null=True), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='tournament', |
||||||
|
name='enable_time_to_confirm', |
||||||
|
field=models.BooleanField(default=False), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,28 @@ |
|||||||
|
# Generated by Django 5.1 on 2025-04-11 05:03 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0122_customuser_enable_online_payments_and_more'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='tournament', |
||||||
|
name='is_staff_tournament', |
||||||
|
field=models.BooleanField(default=False), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='tournament', |
||||||
|
name='is_template', |
||||||
|
field=models.BooleanField(default=False), |
||||||
|
), |
||||||
|
migrations.AlterField( |
||||||
|
model_name='customuser', |
||||||
|
name='is_staff', |
||||||
|
field=models.BooleanField(default=False), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
# Generated by Django 5.1 on 2025-04-11 05:13 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0123_tournament_is_staff_tournament_and_more'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='playerregistration', |
||||||
|
name='registration_status', |
||||||
|
field=models.IntegerField(choices=[(0, 'Waiting'), (1, 'Pending'), (2, 'Confirmed'), (3, 'Canceled')], default=0), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,43 @@ |
|||||||
|
# Generated by Django 5.1 on 2025-04-11 07:17 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0124_alter_playerregistration_registration_status'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='disable_ranking_federal_ruling', |
||||||
|
field=models.BooleanField(default=False), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='hide_umpire_mail', |
||||||
|
field=models.BooleanField(default=False), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='hide_umpire_phone', |
||||||
|
field=models.BooleanField(default=True), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='umpire_custom_contact', |
||||||
|
field=models.CharField(blank=True, max_length=200, null=True), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='umpire_custom_mail', |
||||||
|
field=models.EmailField(blank=True, max_length=254, null=True), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='umpire_custom_phone', |
||||||
|
field=models.CharField(blank=True, max_length=15, null=True), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,27 @@ |
|||||||
|
# Generated by Django 5.1 on 2025-04-11 08:25 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0125_customuser_disable_ranking_federal_ruling_and_more'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.RemoveField( |
||||||
|
model_name='customuser', |
||||||
|
name='enable_online_payments', |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='customuser', |
||||||
|
name='registration_payment_mode', |
||||||
|
field=models.IntegerField(choices=[(0, 'No Payment'), (1, 'Direct Payment'), (2, 'No Service Fee')], default=0), |
||||||
|
), |
||||||
|
migrations.AlterField( |
||||||
|
model_name='customuser', |
||||||
|
name='is_staff', |
||||||
|
field=models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status'), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
# Generated by Django 5.1 on 2025-04-11 08:26 |
||||||
|
|
||||||
|
from django.db import migrations |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('tournaments', '0126_remove_customuser_enable_online_payments_and_more'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.RenameField( |
||||||
|
model_name='tournament', |
||||||
|
old_name='is_staff_tournament', |
||||||
|
new_name='is_corporate_tournament', |
||||||
|
), |
||||||
|
] |
||||||
@ -1,81 +0,0 @@ |
|||||||
from .models import TeamRegistration, PlayerRegistration |
|
||||||
from .models.player_enums import PlayerSexType, PlayerDataSource |
|
||||||
from .models.enums import FederalCategory |
|
||||||
from tournaments.utils.licence_validator import LicenseValidator |
|
||||||
|
|
||||||
class TournamentRegistrationRepository: |
|
||||||
@staticmethod |
|
||||||
def create_team_registration(tournament, registration_date): |
|
||||||
team_registration = TeamRegistration.objects.create( |
|
||||||
tournament=tournament, |
|
||||||
registration_date=registration_date |
|
||||||
) |
|
||||||
return team_registration |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def create_player_registrations(request, team_registration, players_data, team_form_data): |
|
||||||
stripped_license = None |
|
||||||
if request.user.is_authenticated and request.user.licence_id: |
|
||||||
stripped_license = LicenseValidator(request.user.licence_id).stripped_license |
|
||||||
|
|
||||||
for player_data in players_data: |
|
||||||
is_captain = False |
|
||||||
player_licence_id = player_data['licence_id'] |
|
||||||
if player_licence_id and stripped_license: |
|
||||||
if stripped_license.lower() in player_licence_id.lower(): |
|
||||||
is_captain = True |
|
||||||
|
|
||||||
sex, rank, computed_rank = TournamentRegistrationRepository._compute_rank_and_sex( |
|
||||||
team_registration.tournament, |
|
||||||
player_data |
|
||||||
) |
|
||||||
|
|
||||||
print("create_player_registrations", player_data.get('last_name'), sex, rank, computed_rank) |
|
||||||
data_source = None |
|
||||||
if player_data.get('found_in_french_federation', False) == True: |
|
||||||
data_source = PlayerDataSource.FRENCH_FEDERATION |
|
||||||
|
|
||||||
player_registration = PlayerRegistration.objects.create( |
|
||||||
team_registration=team_registration, |
|
||||||
captain=is_captain, |
|
||||||
source=data_source, |
|
||||||
registered_online=True, |
|
||||||
first_name=player_data.get('first_name'), |
|
||||||
last_name=player_data.get('last_name'), |
|
||||||
points=player_data.get('points'), |
|
||||||
assimilation=player_data.get('assimilation'), |
|
||||||
tournament_played=player_data.get('tournament_count'), |
|
||||||
ligue_name=player_data.get('ligue_name'), |
|
||||||
club_name=player_data.get('club_name'), |
|
||||||
birthdate=player_data.get('birth_year'), |
|
||||||
sex=sex, |
|
||||||
rank=rank, |
|
||||||
computed_rank=computed_rank, |
|
||||||
licence_id=player_data['licence_id'], |
|
||||||
email=player_data.get('email'), |
|
||||||
phone_number=player_data.get('mobile_number'), |
|
||||||
) |
|
||||||
|
|
||||||
player_registration.save() |
|
||||||
|
|
||||||
team_registration.set_weight() |
|
||||||
team_registration.save() |
|
||||||
|
|
||||||
@staticmethod |
|
||||||
def _compute_rank_and_sex(tournament, player_data): |
|
||||||
is_woman = player_data.get('is_woman', False) |
|
||||||
rank = player_data.get('rank', None) |
|
||||||
if rank is None: |
|
||||||
computed_rank = 100000 |
|
||||||
else: |
|
||||||
computed_rank = rank |
|
||||||
|
|
||||||
sex = PlayerSexType.MALE |
|
||||||
if is_woman: |
|
||||||
sex = PlayerSexType.FEMALE |
|
||||||
if tournament.federal_category == FederalCategory.MEN: |
|
||||||
computed_rank = str(int(computed_rank) + |
|
||||||
FederalCategory.female_in_male_assimilation_addition(int(rank))) |
|
||||||
|
|
||||||
print("_compute_rank_and_sex", sex, rank, computed_rank) |
|
||||||
return sex, rank, computed_rank |
|
||||||
Loading…
Reference in new issue