diff --git a/API/Apps/Chat/migrations/0001_initial.py b/API/Apps/Chat/migrations/0001_initial.py index cea99045..3515f403 100644 --- a/API/Apps/Chat/migrations/0001_initial.py +++ b/API/Apps/Chat/migrations/0001_initial.py @@ -1,8 +1,7 @@ -# Generated by Django 5.0.3 on 2024-03-27 09:21 +# Generated by Django 5.0.3 on 2024-04-20 22:52 import django.db.models.deletion import uuid -from django.conf import settings from django.db import migrations, models @@ -11,7 +10,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Profile', '0001_initial'), ] operations = [ @@ -19,8 +18,8 @@ class Migration(migrations.Migration): name='Room', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), - ('firs_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='room_first', to=settings.AUTH_USER_MODEL)), - ('second_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='room_second', to=settings.AUTH_USER_MODEL)), + ('first_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='room_first', to='Profile.profile')), + ('second_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='room_second', to='Profile.profile')), ], ), migrations.CreateModel( @@ -29,7 +28,7 @@ class Migration(migrations.Migration): ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('content', models.TextField()), ('created_date', models.DateTimeField(auto_now_add=True)), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='Profile.profile')), ('room', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='Chat.room')), ], ), diff --git a/API/Apps/Chat/migrations/0002_rename_firs_user_room_first_user.py b/API/Apps/Chat/migrations/0002_rename_firs_user_room_first_user.py deleted file mode 100644 index 92b2f279..00000000 --- a/API/Apps/Chat/migrations/0002_rename_firs_user_room_first_user.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-27 09:22 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Chat', '0001_initial'), - ] - - operations = [ - migrations.RenameField( - model_name='room', - old_name='firs_user', - new_name='first_user', - ), - ] diff --git a/API/Apps/Chat/migrations/0003_alter_message_user_alter_room_first_user_and_more.py b/API/Apps/Chat/migrations/0003_alter_message_user_alter_room_first_user_and_more.py deleted file mode 100644 index 2ebee7db..00000000 --- a/API/Apps/Chat/migrations/0003_alter_message_user_alter_room_first_user_and_more.py +++ /dev/null @@ -1,30 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-27 09:23 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Chat', '0002_rename_firs_user_room_first_user'), - ('Profile', '0013_profile_stats'), - ] - - operations = [ - migrations.AlterField( - model_name='message', - name='user', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='Profile.profile'), - ), - migrations.AlterField( - model_name='room', - name='first_user', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='room_first', to='Profile.profile'), - ), - migrations.AlterField( - model_name='room', - name='second_user', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='room_second', to='Profile.profile'), - ), - ] diff --git a/API/Apps/Game/api/serializers.py b/API/Apps/Game/api/serializers.py index 202b45f2..28bf8648 100644 --- a/API/Apps/Game/api/serializers.py +++ b/API/Apps/Game/api/serializers.py @@ -7,7 +7,7 @@ class GameProfileSerializer(serializers.ModelSerializer): class Meta: model = Profile - fields = ['nickname', 'profile_picture'] + fields = ['nickname', 'profile_picture',] class GameSerializer(serializers.ModelSerializer): diff --git a/API/Apps/Game/migrations/0001_initial.py b/API/Apps/Game/migrations/0001_initial.py index 09213a25..d600116b 100644 --- a/API/Apps/Game/migrations/0001_initial.py +++ b/API/Apps/Game/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.3 on 2024-04-13 19:44 +# Generated by Django 5.0.3 on 2024-04-20 22:52 import django.db.models.deletion import uuid @@ -10,8 +10,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('Profile', '0020_profile_blocked_users_alter_profile_friends'), - ('Tournament', '0007_tournament_current_participants_and_more'), + ('Profile', '0001_initial'), ] operations = [ @@ -23,7 +22,6 @@ class Migration(migrations.Migration): ('date', models.DateTimeField(auto_now_add=True)), ('player1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='player1', to='Profile.profile')), ('player2', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='player2', to='Profile.profile')), - ('tournament', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='Tournament.tournament')), ('winner', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='winner', to='Profile.profile')), ], ), diff --git a/API/Apps/Game/models.py b/API/Apps/Game/models.py index 7adfb2d2..d8ff9738 100644 --- a/API/Apps/Game/models.py +++ b/API/Apps/Game/models.py @@ -1,11 +1,8 @@ import uuid from django.db import models - +from django.apps import apps from Apps.Profile.models import Profile -from Apps.Tournament.models import Tournament - - # Create your models here. @@ -14,13 +11,18 @@ class Game(models.Model): player1 = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='player1') player2 = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='player2') winner = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='winner', null=True, blank=True,default=None) - tournament = models.ForeignKey(Tournament, on_delete=models.SET_NULL, blank=True, null=True) is_finished = models.BooleanField(default=False) date = models.DateTimeField(auto_now_add=True) - def __str__(self): + + @property + def tournament(self): + Tournament = apps.get_model('Tournament', 'Tournament') + return models.ForeignKey(Tournament, on_delete=models.SET_NULL, blank=True, null=True) + + def str(self): return f'{self.player1} vs {self.player2} on {self.date} with Id {self.id}' - def save(self, *args, **kwargs): + def save(self, args, **kwargs): if self.winner: self.is_finished = True - super().save(*args, **kwargs) \ No newline at end of file + super().save(args, **kwargs) \ No newline at end of file diff --git a/API/Apps/Profile/migrations/0001_initial.py b/API/Apps/Profile/migrations/0001_initial.py index 76cbf4b9..18beea99 100644 --- a/API/Apps/Profile/migrations/0001_initial.py +++ b/API/Apps/Profile/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.3 on 2024-03-13 13:12 +# Generated by Django 5.0.3 on 2024-04-20 22:41 import django.db.models.deletion from django.conf import settings @@ -28,11 +28,15 @@ class Migration(migrations.Migration): name='Profile', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('nickname', models.CharField(max_length=100)), + ('nickname', models.CharField(blank=True, default=None, max_length=100, null=True, unique=True)), + ('profile_picture', models.ImageField(default='profile-pictures/default.svg', upload_to='profile-pictures/')), ('is_online', models.BooleanField(default=False)), - ('friends', models.ManyToManyField(blank=True, to='Profile.profile')), - ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ('stats', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='Profile.stats')), + ('is_verified', models.BooleanField(default=False)), + ('bio', models.TextField(blank=True, default=None, null=True)), + ('blocked_users', models.ManyToManyField(blank=True, related_name='users_blocked', to='Profile.profile')), + ('friends', models.ManyToManyField(blank=True, related_name='profile_friends', to='Profile.profile')), + ('user', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('stats', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to='Profile.stats')), ], ), ] diff --git a/API/Apps/Profile/migrations/0002_profile_is_verified_alter_profile_nickname.py b/API/Apps/Profile/migrations/0002_profile_is_verified_alter_profile_nickname.py deleted file mode 100644 index cb6f43fe..00000000 --- a/API/Apps/Profile/migrations/0002_profile_is_verified_alter_profile_nickname.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 12:42 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='is_verified', - field=models.BooleanField(default=False), - ), - migrations.AlterField( - model_name='profile', - name='nickname', - field=models.CharField(blank=True, default=None, max_length=100, null=True), - ), - ] diff --git a/API/Apps/Profile/migrations/0002_remove_profile_friends_remove_profile_stats_and_more.py b/API/Apps/Profile/migrations/0002_remove_profile_friends_remove_profile_stats_and_more.py deleted file mode 100644 index b4bc6f25..00000000 --- a/API/Apps/Profile/migrations/0002_remove_profile_friends_remove_profile_stats_and_more.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-16 21:41 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='profile', - name='friends', - ), - migrations.RemoveField( - model_name='profile', - name='stats', - ), - migrations.RemoveField( - model_name='profile', - name='user', - ), - ] diff --git a/API/Apps/Profile/migrations/0003_profile_bio.py b/API/Apps/Profile/migrations/0003_profile_bio.py deleted file mode 100644 index 9ebe8e40..00000000 --- a/API/Apps/Profile/migrations/0003_profile_bio.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-21 17:48 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0002_profile_is_verified_alter_profile_nickname'), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='bio', - field=models.TextField(blank=True, default=None, null=True), - ), - ] diff --git a/API/Apps/Profile/migrations/0003_profile_friends_profile_user.py b/API/Apps/Profile/migrations/0003_profile_friends_profile_user.py deleted file mode 100644 index 94620949..00000000 --- a/API/Apps/Profile/migrations/0003_profile_friends_profile_user.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 21:44 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0002_remove_profile_friends_remove_profile_stats_and_more'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='friends', - field=models.ManyToManyField(blank=True, to='Profile.profile'), - ), - migrations.AddField( - model_name='profile', - name='user', - field=models.OneToOneField(default=None, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/API/Apps/Profile/migrations/0004_alter_profile_bio.py b/API/Apps/Profile/migrations/0004_alter_profile_bio.py deleted file mode 100644 index 91619b73..00000000 --- a/API/Apps/Profile/migrations/0004_alter_profile_bio.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-21 17:49 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0003_profile_bio'), - ] - - operations = [ - migrations.AlterField( - model_name='profile', - name='bio', - field=models.TextField(blank=True, default=None, null=True), - ), - ] diff --git a/API/Apps/Profile/migrations/0004_alter_profile_user.py b/API/Apps/Profile/migrations/0004_alter_profile_user.py deleted file mode 100644 index 308b2357..00000000 --- a/API/Apps/Profile/migrations/0004_alter_profile_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 21:46 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0003_profile_friends_profile_user'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AlterField( - model_name='profile', - name='user', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/API/Apps/Profile/migrations/0005_alter_profile_bio.py b/API/Apps/Profile/migrations/0005_alter_profile_bio.py deleted file mode 100644 index ed5326d4..00000000 --- a/API/Apps/Profile/migrations/0005_alter_profile_bio.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-21 17:49 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0004_alter_profile_bio'), - ] - - operations = [ - migrations.AlterField( - model_name='profile', - name='bio', - field=models.TextField(blank=True, default=None, null=True), - ), - ] diff --git a/API/Apps/Profile/migrations/0005_remove_profile_user.py b/API/Apps/Profile/migrations/0005_remove_profile_user.py deleted file mode 100644 index f8eb431b..00000000 --- a/API/Apps/Profile/migrations/0005_remove_profile_user.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 21:48 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0004_alter_profile_user'), - ] - - operations = [ - migrations.RemoveField( - model_name='profile', - name='user', - ), - ] diff --git a/API/Apps/Profile/migrations/0006_remove_profile_friends.py b/API/Apps/Profile/migrations/0006_remove_profile_friends.py deleted file mode 100644 index 310d146b..00000000 --- a/API/Apps/Profile/migrations/0006_remove_profile_friends.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 21:48 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0005_remove_profile_user'), - ] - - operations = [ - migrations.RemoveField( - model_name='profile', - name='friends', - ), - ] diff --git a/API/Apps/Profile/migrations/0007_profile_user.py b/API/Apps/Profile/migrations/0007_profile_user.py deleted file mode 100644 index 99345b46..00000000 --- a/API/Apps/Profile/migrations/0007_profile_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 21:48 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0006_remove_profile_friends'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='user', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/API/Apps/Profile/migrations/0008_profile_friends.py b/API/Apps/Profile/migrations/0008_profile_friends.py deleted file mode 100644 index a65dcbef..00000000 --- a/API/Apps/Profile/migrations/0008_profile_friends.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 21:54 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0007_profile_user'), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='friends', - field=models.ManyToManyField(blank=True, to='Profile.profile'), - ), - ] diff --git a/API/Apps/Profile/migrations/0009_remove_profile_user.py b/API/Apps/Profile/migrations/0009_remove_profile_user.py deleted file mode 100644 index 0d4bc7e4..00000000 --- a/API/Apps/Profile/migrations/0009_remove_profile_user.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-18 09:47 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0008_profile_friends'), - ] - - operations = [ - migrations.RemoveField( - model_name='profile', - name='user', - ), - ] diff --git a/API/Apps/Profile/migrations/0010_profile_user.py b/API/Apps/Profile/migrations/0010_profile_user.py deleted file mode 100644 index d266cbad..00000000 --- a/API/Apps/Profile/migrations/0010_profile_user.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-18 11:05 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0009_remove_profile_user'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='user', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/API/Apps/Profile/migrations/0011_merge_20240318_1849.py b/API/Apps/Profile/migrations/0011_merge_20240318_1849.py deleted file mode 100644 index 906ed4d3..00000000 --- a/API/Apps/Profile/migrations/0011_merge_20240318_1849.py +++ /dev/null @@ -1,14 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-18 18:49 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0002_profile_is_verified_alter_profile_nickname'), - ('Profile', '0010_profile_user'), - ] - - operations = [ - ] diff --git a/API/Apps/Profile/migrations/0012_merge_0005_alter_profile_bio_0011_merge_20240318_1849.py b/API/Apps/Profile/migrations/0012_merge_0005_alter_profile_bio_0011_merge_20240318_1849.py deleted file mode 100644 index bda48568..00000000 --- a/API/Apps/Profile/migrations/0012_merge_0005_alter_profile_bio_0011_merge_20240318_1849.py +++ /dev/null @@ -1,14 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-26 17:32 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0005_alter_profile_bio'), - ('Profile', '0011_merge_20240318_1849'), - ] - - operations = [ - ] diff --git a/API/Apps/Profile/migrations/0013_profile_stats.py b/API/Apps/Profile/migrations/0013_profile_stats.py deleted file mode 100644 index a051a58a..00000000 --- a/API/Apps/Profile/migrations/0013_profile_stats.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-26 17:36 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0012_merge_0005_alter_profile_bio_0011_merge_20240318_1849'), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='stats', - field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to='Profile.stats'), - ), - ] diff --git a/API/Apps/Profile/migrations/0014_profile_profile_picture.py b/API/Apps/Profile/migrations/0014_profile_profile_picture.py deleted file mode 100644 index db565020..00000000 --- a/API/Apps/Profile/migrations/0014_profile_profile_picture.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-30 16:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0013_profile_stats'), - ] - - operations = [ - migrations.AddField( - model_name='profile', - name='profile_picture', - field=models.ImageField(blank=True, default=None, null=True, upload_to='profile-pictures/'), - ), - ] diff --git a/API/Apps/Profile/migrations/0015_alter_profile_profile_picture.py b/API/Apps/Profile/migrations/0015_alter_profile_profile_picture.py deleted file mode 100644 index e51598b2..00000000 --- a/API/Apps/Profile/migrations/0015_alter_profile_profile_picture.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-30 16:15 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0014_profile_profile_picture'), - ] - - operations = [ - migrations.AlterField( - model_name='profile', - name='profile_picture', - field=models.ImageField(blank=True, default='profile-pictures/default.svg', null=True, upload_to='profile-pictures/'), - ), - ] diff --git a/API/Apps/Profile/migrations/0016_alter_profile_profile_picture.py b/API/Apps/Profile/migrations/0016_alter_profile_profile_picture.py deleted file mode 100644 index b7b32271..00000000 --- a/API/Apps/Profile/migrations/0016_alter_profile_profile_picture.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-30 16:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0015_alter_profile_profile_picture'), - ] - - operations = [ - migrations.AlterField( - model_name='profile', - name='profile_picture', - field=models.ImageField(default='profile-pictures/default.svg', upload_to='profile-pictures/'), - ), - ] diff --git a/API/Apps/Profile/migrations/0017_alter_profile_profile_picture.py b/API/Apps/Profile/migrations/0017_alter_profile_profile_picture.py deleted file mode 100644 index 88a5e0cd..00000000 --- a/API/Apps/Profile/migrations/0017_alter_profile_profile_picture.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-30 16:27 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0016_alter_profile_profile_picture'), - ] - - operations = [ - migrations.AlterField( - model_name='profile', - name='profile_picture', - field=models.ImageField(default='profile-pictures/default.svg', upload_to='profile-pictures/'), - ), - ] diff --git a/API/Apps/Profile/migrations/0018_alter_profile_nickname.py b/API/Apps/Profile/migrations/0018_alter_profile_nickname.py deleted file mode 100644 index 51639a57..00000000 --- a/API/Apps/Profile/migrations/0018_alter_profile_nickname.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-03 10:56 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0017_alter_profile_profile_picture'), - ] - - operations = [ - migrations.AlterField( - model_name='profile', - name='nickname', - field=models.CharField(blank=True, default=None, max_length=100, null=True, unique=True), - ), - ] diff --git a/API/Apps/Profile/migrations/0018_remove_stats_points_alter_profile_nickname.py b/API/Apps/Profile/migrations/0018_remove_stats_points_alter_profile_nickname.py deleted file mode 100644 index 5e207b20..00000000 --- a/API/Apps/Profile/migrations/0018_remove_stats_points_alter_profile_nickname.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-03 12:45 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0017_alter_profile_profile_picture'), - ] - - operations = [ - migrations.RemoveField( - model_name='stats', - name='points', - ), - migrations.AlterField( - model_name='profile', - name='nickname', - field=models.CharField(blank=True, default=None, max_length=100, null=True, unique=True), - ), - ] diff --git a/API/Apps/Profile/migrations/0019_stats_points.py b/API/Apps/Profile/migrations/0019_stats_points.py deleted file mode 100644 index d8e40dd4..00000000 --- a/API/Apps/Profile/migrations/0019_stats_points.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-03 12:49 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0018_remove_stats_points_alter_profile_nickname'), - ] - - operations = [ - migrations.AddField( - model_name='stats', - name='points', - field=models.IntegerField(default=1), - preserve_default=False, - ), - ] diff --git a/API/Apps/Profile/migrations/0020_merge_0018_alter_profile_nickname_0019_stats_points.py b/API/Apps/Profile/migrations/0020_merge_0018_alter_profile_nickname_0019_stats_points.py deleted file mode 100644 index cf1b4ded..00000000 --- a/API/Apps/Profile/migrations/0020_merge_0018_alter_profile_nickname_0019_stats_points.py +++ /dev/null @@ -1,14 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-03 16:27 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0018_alter_profile_nickname'), - ('Profile', '0019_stats_points'), - ] - - operations = [ - ] diff --git a/API/Apps/Profile/migrations/0020_profile_blocked_users_alter_profile_friends.py b/API/Apps/Profile/migrations/0020_profile_blocked_users_alter_profile_friends.py deleted file mode 100644 index 40808c0b..00000000 --- a/API/Apps/Profile/migrations/0020_profile_blocked_users_alter_profile_friends.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-15 17:11 -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0019_stats_points'), - ] - - operations = [ - migrations.AddField( - - model_name="profile", - name="blocked_users", - field=models.ManyToManyField( - blank=True, related_name="users_blocked", to="Profile.profile" - ), - ), - migrations.AlterField( - model_name="profile", - name="friends", - field=models.ManyToManyField( - blank=True, related_name="profile_friends", to="Profile.profile" - ), - ), - ] diff --git a/API/Apps/Profile/migrations/0021_merge_20240416_1353.py b/API/Apps/Profile/migrations/0021_merge_20240416_1353.py deleted file mode 100644 index 29741ff1..00000000 --- a/API/Apps/Profile/migrations/0021_merge_20240416_1353.py +++ /dev/null @@ -1,14 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-16 10:53 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0020_merge_0018_alter_profile_nickname_0019_stats_points'), - ('Profile', '0020_profile_blocked_users_alter_profile_friends'), - ] - - operations = [ - ] diff --git a/API/Apps/Request/migrations/0001_initial.py b/API/Apps/Request/migrations/0001_initial.py index 6cc51f93..7f5dc4f7 100644 --- a/API/Apps/Request/migrations/0001_initial.py +++ b/API/Apps/Request/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.3 on 2024-04-09 09:48 +# Generated by Django 5.0.3 on 2024-04-20 22:52 import django.db.models.deletion import uuid @@ -10,7 +10,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('Profile', '0019_stats_points'), + ('Profile', '0001_initial'), ] operations = [ diff --git a/API/Apps/SocialMedia/migrations/0001_initial.py b/API/Apps/SocialMedia/migrations/0001_initial.py index 2b2282ce..f68b7c97 100644 --- a/API/Apps/SocialMedia/migrations/0001_initial.py +++ b/API/Apps/SocialMedia/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.3 on 2024-04-09 09:49 +# Generated by Django 5.0.3 on 2024-04-20 22:52 import django.db.models.deletion from django.db import migrations, models @@ -9,7 +9,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('Profile', '0019_stats_points'), + ('Profile', '0001_initial'), ] operations = [ diff --git a/API/Apps/Tournament/Serializers.py b/API/Apps/Tournament/Serializers.py index 5d6c6b4f..0c85a739 100644 --- a/API/Apps/Tournament/Serializers.py +++ b/API/Apps/Tournament/Serializers.py @@ -1,15 +1,16 @@ from rest_framework import serializers from ..Profile.models import Profile -from .models import Tournament, Match, Round +from .models import Tournament, Round +from ..Game.api.serializers import GameSerializer +from ..Game.models import Game - -class MatchGetSerializer(serializers.ModelSerializer): +class GameGetSerializer(serializers.ModelSerializer): class Meta: - model = Match + model = Game fields = "__all__" class RoundSerializer(serializers.ModelSerializer): - matches = MatchGetSerializer(many=True) + matches = GameGetSerializer(many=True, read_only=True) class Meta: model = Round fields = ['round_number', 'matches', 'participants'] diff --git a/API/Apps/Tournament/api/urls.py b/API/Apps/Tournament/api/urls.py index 7894e53b..15b034ac 100644 --- a/API/Apps/Tournament/api/urls.py +++ b/API/Apps/Tournament/api/urls.py @@ -1,15 +1,10 @@ from django.urls import path -from .views import create, get_tournaments, join, delete, StartTournament, MatchRound, PlayMatch, websocket_test - +from .views import create, get_tournaments,websocket_test urlpatterns = [ path('profile/', create), path('profile//', get_tournaments), - path('profile//join/', join), - path('profile//delete/', delete) , - path('profile//start', StartTournament), - path('profile//match', MatchRound), - path('profile///play', PlayMatch), path('profile/w//', websocket_test) -] \ No newline at end of file +] + diff --git a/API/Apps/Tournament/api/views.py b/API/Apps/Tournament/api/views.py index 3393e32b..94cb9fb1 100644 --- a/API/Apps/Tournament/api/views.py +++ b/API/Apps/Tournament/api/views.py @@ -2,7 +2,7 @@ from rest_framework import status from ...Profile.models import Profile -from ..models import Tournament, Round, Match +from ..models import Tournament, Round from django.http import HttpResponse from django.shortcuts import render from rest_framework.response import Response @@ -66,157 +66,4 @@ def get_tournaments(request, profile_id, tournament_id): tournament.delete() return Response(status=200) else: - return Response(status=400) - - - - -@api_view(['GET', 'POST']) -def join(request, profile_id, tournament_id): - try: - instance = Profile.objects.get(id=profile_id) - except Profile.DoesNotExist: - return Response(data={"error": "invalid user"},status=400) - - try: - tournament = Tournament.objects.get(id=tournament_id) - except Tournament.DoesNotExist: - return Response(data={"error": "invalid tournament"}, status=400) - - participants = tournament.current_participants.filter(id=profile_id) - if participants.exists(): - return Response(data={"error": "You are already on channel"}, status=400) - elif tournament.current_participants.count() < tournament.max_participants: - tournament.current_participants.add(instance) - tournament.save() - return Response(status=200) - else: - return Response(data={"error": "You have reached the maximum number of participants"}) - - - -@api_view(['GET', 'POST']) -def delete(request, tournament_id): - try: - tournament = Tournament.objects.get(id=tournament_id) - except Tournament.DoesNotExist: - return Response(data={"error": "invalid tournament"}, status=400) - - participants = tournament.current_participants.filter(id=request.user.profile.id) - if participants.exists(): - tournament.current_participants.remove(request.user.profile.id) - tournament.save() - if tournament.current_participants.count() == 0: - tournament.delete() - return Response(status=200) - else: - return Response(status=400) - - -@api_view(['GET', 'POST']) -def StartTournament(request, tournament_id): - try: - tournament = Tournament.objects.get(id=tournament_id) - except Tournament.DoesNotExist: - return Response(status=status.HTTP_400_BAD_REQUEST) - - if request.method == 'POST': - participants = tournament.current_participants.all() - if tournament.rounds.exists(): - return Response({"message": "Turnuva zaten başlatıldı."}, - status=status.HTTP_400_BAD_REQUEST) - if tournament.current_participants.count() > 1 : - round_number = 1 - round_obj = Round.objects.create(round_number=round_number) - round_obj.participants.set(participants) - tournament.rounds.add(round_obj) - return Response({"message": "Turnuva başarıyla başlatıldı."}, status=status.HTTP_200_OK) - else : - return Response({"message": "Katılımcı Sayısı 1 den büyük olmalı."}, status=status.HTTP_400_BAD_REQUEST) - - return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) - - -@api_view(['GET', 'POST']) -def MatchRound(request, tournament_id): - try: - tournament = Tournament.objects.get(id=tournament_id) - except Tournament.DoesNotExist: - return Response(status=status.HTTP_400_BAD_REQUEST) - if request.method == 'POST': - try: - round_obj = tournament.rounds.first() - participants = round_obj.participants.all() - for i in range(0,len(participants),2): - if i + 1 < len(participants): - match = Match.objects.create(player1=participants[i], player2=participants[i + 1]) - round_obj.matches.add(match) - round_obj.participants.remove(participants[i]) - round_obj.participants.remove(participants[i + 1]) - - - return Response({"message": "Maçlar başarıyla oluşturuldu."}, status=status.HTTP_200_OK) - - except Exception as e: - return Response({"error": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) - - - -@api_view(['GET', 'POST']) -def PlayMatch(request,profile_id,tournament_id): - try: - tournament = Tournament.objects.get(pk=tournament_id) - last_round = tournament.rounds.order_by('-round_number').first() - if tournament.is_finished == True: - return Response({"message": "Tournament is Finish"}) - print(last_round) - - if last_round: - all_matches_have_winner = all(match.winner is not None for match in last_round.matches.all()) - if all_matches_have_winner: - new_round_number = last_round.round_number + 1 - new_round = Round.objects.create(round_number=new_round_number) - - player_participated = False - for match in last_round.matches.all(): - if match.player1.id == profile_id or match.player2.id == profile_id: - print(match.player1.id, match.player2.id) - player_participated = True - if match.winner is None: - match.winner = match.player2 - match.save() - return Response({'message': 'Maçı player 2 kazandı'}) - - - if last_round.matches.count() == 1 and not last_round.participants.exists() and last_round.matches.first().winner: - match = last_round.matches.first() - tournament.winner = match.winner - tournament.is_finished = True - tournament.save() - if not player_participated: - return Response({'error': 'Profile maçlarda yok'}, - status=status.HTTP_404_NOT_FOUND) - - winners = [match.winner for match in last_round.matches.all()] - if len(last_round.participants.all()) == 1: - winners.append(last_round.participants.first()) - - new_round.participants.set(winners) - tournament.rounds.add(new_round) - - for i in range(0, len(winners), 2): - if i + 1 < len(winners): - match = Match.objects.create(player1=winners[i], player2=winners[i + 1]) - new_round.matches.add(match) - new_round.participants.remove(winners[i]) - new_round.participants.remove(winners[i + 1]) - new_round.save() - return Response({'error': 'Yeni Turnuva'}, - status=status.HTTP_404_NOT_FOUND) - - - except Tournament.DoesNotExist: - return Response({'error': ''}, - status=status.HTTP_404_NOT_FOUND) + return Response(status=400) \ No newline at end of file diff --git a/API/Apps/Tournament/consumers.py b/API/Apps/Tournament/consumers.py index 93dbd548..01936c23 100644 --- a/API/Apps/Tournament/consumers.py +++ b/API/Apps/Tournament/consumers.py @@ -42,7 +42,7 @@ def receive(self, text_data): print(message) print("selam") - self.PlayMatch(self.profile_id, self.tournament_id) + #self.PlayMatch(self.profile_id, self.tournament_id) self.StartTournament(self.profile_id, self.tournament_id) @@ -77,14 +77,17 @@ def disconnect(self,close_code): tournament.save() print(f"Kullanıcı {self.profile_id} bağlantısı kesildi.") - def StartTournament(self, profile_id,tournament_id): - print("tournament_id= ", tournament_id) + def StartTournament(self, profile_id,tournament_id1): + try: + tournament_id = int(tournament_id1) # Metni tamsayıya dönüştür + except ValueError: + print("Tournament ID metin olarak beklenen türde değil.") try: tournament = Tournament.objects.get(id=tournament_id) except Tournament.DoesNotExist: print("No tournament") - + print("tournament_id= ", tournament_id) participants = tournament.current_participants.all() if tournament.rounds.exists(): self.send_error("Tournament Already Started") @@ -96,16 +99,30 @@ def StartTournament(self, profile_id,tournament_id): tournament.rounds.add(round_obj) try: round_obj = tournament.rounds.first() - participants = round_obj.participants.all() - for i in range(0, len(participants), 2): - if i + 1 < len(participants): - game = Game.objects.create(player1=participants[i], player2=participants[i + 1]) + participants_ids = [participant.id for participant in round_obj.participants.all()] + print(participants_ids) + print("Merr") + print(participants) + for i in range(0, len(participants_ids), 2): + if i + 1 < len(participants_ids): + try: + profile1 = Profile.objects.get(id=participants_ids[i]) + except Profile.DoesNotExist: + return + try: + profile2 = Profile.objects.get(id=participants_ids[i + 1]) + except Profile.DoesNotExist: + return + print("Hello") + game = Game.objects.create(player1=profile1, player2=profile2) + print(game.player1.id) + print("Hello123") round_obj.matches.add(game) - round_obj.participants.remove(participants[i]) - round_obj.participants.remove(participants[i + 1]) - + round_obj.participants.remove(participants_ids[i]) + round_obj.participants.remove(participants_ids[i + 1]) except Exception as e: - print("Error") + print("Error", e) + print("Turnuva Başlatıldı") diff --git a/API/Apps/Tournament/migrations/0001_initial.py b/API/Apps/Tournament/migrations/0001_initial.py index 83631875..509254a2 100644 --- a/API/Apps/Tournament/migrations/0001_initial.py +++ b/API/Apps/Tournament/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.3 on 2024-03-17 03:24 +# Generated by Django 5.0.3 on 2024-04-20 22:51 import django.db.models.deletion from django.db import migrations, models @@ -9,19 +9,32 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('Profile', '0002_remove_profile_friends_remove_profile_stats_and_more'), + ('Game', '__first__'), + ('Profile', '0001_initial'), ] operations = [ + migrations.CreateModel( + name='Round', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('round_number', models.PositiveIntegerField()), + ('matches', models.ManyToManyField(blank=True, related_name='rounds', to='Game.game')), + ('participants', models.ManyToManyField(related_name='round_participants', to='Profile.profile')), + ], + ), migrations.CreateModel( name='Tournament', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100)), + ('name', models.CharField(max_length=100, unique=True)), ('max_participants', models.IntegerField()), ('is_started', models.BooleanField(default=False)), - ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Profile.profile')), + ('is_finished', models.BooleanField(default=False)), + ('created_by', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='Profile.profile')), ('current_participants', models.ManyToManyField(related_name='current_participants', to='Profile.profile')), + ('rounds', models.ManyToManyField(blank=True, related_name='Rounds', to='Tournament.round')), + ('winner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='won_tournaments', to='Profile.profile')), ], ), ] diff --git a/API/Apps/Tournament/migrations/0002_alter_tournament_created_by.py b/API/Apps/Tournament/migrations/0002_alter_tournament_created_by.py deleted file mode 100644 index b03a7b9b..00000000 --- a/API/Apps/Tournament/migrations/0002_alter_tournament_created_by.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 03:26 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0002_remove_profile_friends_remove_profile_stats_and_more'), - ('Tournament', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='tournament', - name='created_by', - field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='Profile.profile'), - ), - ] diff --git a/API/Apps/Tournament/migrations/0003_delete_tournament.py b/API/Apps/Tournament/migrations/0003_delete_tournament.py deleted file mode 100644 index 75eb479f..00000000 --- a/API/Apps/Tournament/migrations/0003_delete_tournament.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 03:34 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Tournament', '0002_alter_tournament_created_by'), - ] - - operations = [ - migrations.DeleteModel( - name='Tournament', - ), - ] diff --git a/API/Apps/Tournament/migrations/0004_initial.py b/API/Apps/Tournament/migrations/0004_initial.py deleted file mode 100644 index ea0b5e0a..00000000 --- a/API/Apps/Tournament/migrations/0004_initial.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-17 03:34 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('Profile', '0002_remove_profile_friends_remove_profile_stats_and_more'), - ('Tournament', '0003_delete_tournament'), - ] - - operations = [ - migrations.CreateModel( - name='Tournament', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100)), - ('max_participants', models.IntegerField()), - ('is_started', models.BooleanField(default=False)), - ('created_by', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='Profile.profile')), - ('current_participants', models.ManyToManyField(related_name='current_participants', to='Profile.profile')), - ], - ), - ] diff --git a/API/Apps/Tournament/migrations/0005_remove_tournament_created_by_and_more.py b/API/Apps/Tournament/migrations/0005_remove_tournament_created_by_and_more.py deleted file mode 100644 index 8b367e40..00000000 --- a/API/Apps/Tournament/migrations/0005_remove_tournament_created_by_and_more.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-18 19:23 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('Tournament', '0004_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='tournament', - name='created_by', - ), - migrations.RemoveField( - model_name='tournament', - name='current_participants', - ), - ] diff --git a/API/Apps/Tournament/migrations/0006_tournament_created_by.py b/API/Apps/Tournament/migrations/0006_tournament_created_by.py deleted file mode 100644 index 106fdb7b..00000000 --- a/API/Apps/Tournament/migrations/0006_tournament_created_by.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-19 10:42 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0011_merge_20240318_1849'), - ('Tournament', '0005_remove_tournament_created_by_and_more'), - ] - - operations = [ - migrations.AddField( - model_name='tournament', - name='created_by', - field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='Profile.profile'), - ), - ] diff --git a/API/Apps/Tournament/migrations/0007_tournament_current_participants_and_more.py b/API/Apps/Tournament/migrations/0007_tournament_current_participants_and_more.py deleted file mode 100644 index 09be89e6..00000000 --- a/API/Apps/Tournament/migrations/0007_tournament_current_participants_and_more.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 5.0.3 on 2024-03-19 11:54 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0011_merge_20240318_1849'), - ('Tournament', '0006_tournament_created_by'), - ] - - operations = [ - migrations.AddField( - model_name='tournament', - name='current_participants', - field=models.ManyToManyField(related_name='current_participants', to='Profile.profile'), - ), - migrations.AlterField( - model_name='tournament', - name='name', - field=models.CharField(max_length=100, unique=True), - ), - ] diff --git a/API/Apps/Tournament/migrations/0008_round_tournament_rounds.py b/API/Apps/Tournament/migrations/0008_round_tournament_rounds.py deleted file mode 100644 index 1d6814f8..00000000 --- a/API/Apps/Tournament/migrations/0008_round_tournament_rounds.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-16 10:53 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Tournament', '0007_tournament_current_participants_and_more'), - ] - - operations = [ - migrations.CreateModel( - name='Round', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('round_number', models.PositiveIntegerField()), - ], - ), - migrations.AddField( - model_name='tournament', - name='rounds', - field=models.ManyToManyField(blank=True, related_name='tournaments', to='Tournament.round'), - ), - ] diff --git a/API/Apps/Tournament/migrations/0009_match_round_matches.py b/API/Apps/Tournament/migrations/0009_match_round_matches.py deleted file mode 100644 index e37232b8..00000000 --- a/API/Apps/Tournament/migrations/0009_match_round_matches.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-16 10:54 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0021_merge_20240416_1353'), - ('Tournament', '0008_round_tournament_rounds'), - ] - - operations = [ - migrations.CreateModel( - name='Match', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('player1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='player1_matches', to='Profile.profile')), - ('player2', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='player2_matches', to='Profile.profile')), - ('winner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='won_matches', to='Profile.profile')), - ], - ), - migrations.AddField( - model_name='round', - name='matches', - field=models.ManyToManyField(blank=True, related_name='rounds', to='Tournament.match'), - ), - ] diff --git a/API/Apps/Tournament/migrations/0010_round_participants.py b/API/Apps/Tournament/migrations/0010_round_participants.py deleted file mode 100644 index d02f189d..00000000 --- a/API/Apps/Tournament/migrations/0010_round_participants.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-16 12:01 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0021_merge_20240416_1353'), - ('Tournament', '0009_match_round_matches'), - ] - - operations = [ - migrations.AddField( - model_name='round', - name='participants', - field=models.ManyToManyField(related_name='round_participants', to='Profile.profile'), - ), - ] diff --git a/API/Apps/Tournament/migrations/0011_tournament_is_finished_tournament_winner.py b/API/Apps/Tournament/migrations/0011_tournament_is_finished_tournament_winner.py deleted file mode 100644 index 6ee8f911..00000000 --- a/API/Apps/Tournament/migrations/0011_tournament_is_finished_tournament_winner.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 5.0.3 on 2024-04-18 10:41 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('Profile', '0021_merge_20240416_1353'), - ('Tournament', '0010_round_participants'), - ] - - operations = [ - migrations.AddField( - model_name='tournament', - name='is_finished', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='tournament', - name='winner', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='won_tournaments', to='Profile.profile'), - ), - ] diff --git a/API/Apps/Tournament/models.py b/API/Apps/Tournament/models.py index a23f1aa9..954be7f7 100644 --- a/API/Apps/Tournament/models.py +++ b/API/Apps/Tournament/models.py @@ -5,11 +5,10 @@ class Round(models.Model): round_number = models.PositiveIntegerField() - matches = models.ManyToManyField(Game, blank=True, related_name='rounds') + matches = models.ManyToManyField(Game, blank=True, related_name='game') participants = models.ManyToManyField(Profile, related_name='round_participants') - class Tournament(models.Model): name = models.CharField(max_length=100, unique=True) created_by = models.ForeignKey(Profile, on_delete=models.CASCADE, default=None) diff --git a/API/Apps/Tournament/templates/w.html b/API/Apps/Tournament/templates/w.html index 3606838f..6ba96522 100644 --- a/API/Apps/Tournament/templates/w.html +++ b/API/Apps/Tournament/templates/w.html @@ -16,7 +16,7 @@ const url = window.location.pathname; const param = url.split("/"); const profile_id = param[param.length - 2]; - const tournament_id = 19; + const tournament_id = 3; const socket = new WebSocket('ws://localhost:8000/ws/tournament/?profile_id=' + profile_id + '&tournament_id=' + tournament_id); socket.onmessage = function(event) {