From 6112396fa6bb9b2458c8432adef83914282971df Mon Sep 17 00:00:00 2001
From: Sofiane Lasri <alasri250@gmail.com>
Date: Mon, 12 Jun 2023 11:06:20 +0200
Subject: [PATCH] =?UTF-8?q?Modification=20des=20mod=C3=A8les=20et=20de=20l?=
 =?UTF-8?q?a=20vue.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WSR/migrations/0006_alter_race_type.py        | 18 ++++++++++
 ...cation_race_participation_type_and_more.py | 28 +++++++++++++++
 WSR/migrations/0008_race_name.py              | 18 ++++++++++
 WSR/models.py                                 | 14 ++++++--
 WSR/templates/home.html                       | 35 ++++++++-----------
 WSR/views.py                                  | 21 +++++++++++
 6 files changed, 112 insertions(+), 22 deletions(-)
 create mode 100644 WSR/migrations/0006_alter_race_type.py
 create mode 100644 WSR/migrations/0007_rename_name_race_location_race_participation_type_and_more.py
 create mode 100644 WSR/migrations/0008_race_name.py

diff --git a/WSR/migrations/0006_alter_race_type.py b/WSR/migrations/0006_alter_race_type.py
new file mode 100644
index 0000000..98fbb1a
--- /dev/null
+++ b/WSR/migrations/0006_alter_race_type.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.2.2 on 2023-06-12 08:26
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('WSR', '0005_alter_race_type'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='race',
+            name='type',
+            field=models.CharField(choices=[('invitation', 'Invitation'), ('championship', 'Championship'), ('single_race', 'Single Race'), ('face_to_face', 'Face To Face'), ('overtaking', 'Overtaking'), ('against_time', 'Against Time'), ('elimination', 'Elimination'), ('endurance', 'Endurance'), ('touge', 'Touge')], default='single_race', max_length=100),
+        ),
+    ]
diff --git a/WSR/migrations/0007_rename_name_race_location_race_participation_type_and_more.py b/WSR/migrations/0007_rename_name_race_location_race_participation_type_and_more.py
new file mode 100644
index 0000000..d7e78c9
--- /dev/null
+++ b/WSR/migrations/0007_rename_name_race_location_race_participation_type_and_more.py
@@ -0,0 +1,28 @@
+# Generated by Django 4.2.2 on 2023-06-12 08:35
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('WSR', '0006_alter_race_type'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='race',
+            old_name='name',
+            new_name='location',
+        ),
+        migrations.AddField(
+            model_name='race',
+            name='participation_type',
+            field=models.CharField(choices=[('invitation', 'Invitation'), ('participation', 'Participation')], default='participation', max_length=100),
+        ),
+        migrations.AlterField(
+            model_name='race',
+            name='type',
+            field=models.CharField(choices=[('championship', 'Championship'), ('single_race', 'Single Race'), ('face_to_face', 'Face To Face'), ('overtaking', 'Overtaking'), ('against_time', 'Against Time'), ('elimination', 'Elimination'), ('endurance', 'Endurance'), ('touge', 'Touge')], default='single_race', max_length=100),
+        ),
+    ]
diff --git a/WSR/migrations/0008_race_name.py b/WSR/migrations/0008_race_name.py
new file mode 100644
index 0000000..051a4ea
--- /dev/null
+++ b/WSR/migrations/0008_race_name.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.2.2 on 2023-06-12 08:42
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('WSR', '0007_rename_name_race_location_race_participation_type_and_more'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='race',
+            name='name',
+            field=models.CharField(blank=True, default=None, max_length=100, null=True),
+        ),
+    ]
diff --git a/WSR/models.py b/WSR/models.py
index d088d9d..29fc383 100644
--- a/WSR/models.py
+++ b/WSR/models.py
@@ -29,7 +29,6 @@ class Vehicle(models.Model):
 
 class Race(models.Model):
     class RaceType(models.TextChoices):
-        INVITATION = "invitation"
         CHAMPIONSHIP = "championship"
         SINGLE_RACE = "single_race"
         FACE_TO_FACE = "face_to_face"
@@ -37,13 +36,24 @@ class Race(models.Model):
         AGAINST_TIME = "against_time"
         ELIMINATION = "elimination"
         ENDURANCE = "endurance"
+        TOUGE = "touge"
 
-    name = models.CharField(max_length=100)
+    class RaceParticipationType(models.TextChoices):
+        INVITATION = "invitation"
+        PARTICIPATION = "participation"
+
+    location = models.CharField(max_length=100)
     circuit = models.CharField(max_length=100)
     finishing_position = models.PositiveIntegerField(verbose_name="Finishing Position")
     season = models.ForeignKey(Season, on_delete=models.CASCADE)
     image = models.ImageField(upload_to='race_images', verbose_name="Illustration Image")
     type = models.CharField(max_length=100, choices=RaceType.choices, default=RaceType.SINGLE_RACE)
+    participation_type = models.CharField(
+        max_length=100,
+        choices=RaceParticipationType.choices,
+        default=RaceParticipationType.PARTICIPATION
+    )
+    name = models.CharField(max_length=100, default=None, blank=True, null=True)
     date = models.DateField(default=datetime.date.today)
 
     def __str__(self):
diff --git a/WSR/templates/home.html b/WSR/templates/home.html
index 05c75dc..606086c 100644
--- a/WSR/templates/home.html
+++ b/WSR/templates/home.html
@@ -26,9 +26,15 @@
 <div class="container vitrine">
     <div class="main-frame eurostile">
         <div>
-            <div class="mid">{{ last_race_details.season_name }}</div>
-            <div class="large">{{ last_race_details.race.circuit }}</div>
-            <div class="mid">{{ last_race_details.race.name }}</div>
+            {% if race.participation_type == 'invitation' %}
+                <div class="mid">{{ last_race_details.season_name }}</div>
+                <div class="large">{{ last_race_details.race.type_string }} {{ last_race_details.race.name }}</div>
+                <div class="mid">{{ last_race_details.race.location }}, {{ last_race_details.race.circuit }}</div>
+            {% else %}
+                <div class="mid">{{ last_race_details.season_name }}</div>
+                <div class="large">{{ last_race_details.race.location }}</div>
+                <div class="mid">{{ last_race_details.race.circuit }}</div>
+            {% endif %}
         </div>
         <div class="detail">
             {% for stat in last_race_details.results %}
@@ -54,29 +60,18 @@
                         <div class="pos second">{{ race.pos_string }}</div>
                     {% endif %}
                 </div>
-                {% if race.type == 'invitation' %}
+                {% if race.participation_type == 'invitation' %}
                     <div class="event-type"><i class="fa-solid fa-envelope"></i> Invitation évènement</div>
-                {% elif race.type == 'championship' %}
-                    <div class="event-type"><i class="fa-solid fa-flag-checkered"></i> Championnat</div>
-                {% elif race.type == 'face_to_face' %}
-                    <div class="event-type"><i class="fa-solid fa-user"></i> Face à face</div>
-                {% elif race.type == 'overtaking' %}
-                    <div class="event-type"><i class="fa-solid fa-user"></i> Dépasssements</div>
-                {% elif race.type == 'against_time' %}
-                    <div class="event-type"><i class="fa-solid fa-timer"></i> Course contre-la-montre</div>
-                {% elif race.type == 'elimination' %}
-                    <div class="event-type"><i class="fa-solid fa-ranking-star"></i> Eliminations</div>
-                {% elif race.type == 'endurance' %}
-                    <div class="event-type"><i class="fa-solid fa-timer"></i> Endurance</div>
                 {% else %}
-                    <div class="event-type"><i class="fa-solid fa-flag-checkered"></i> Course simple</div>
+                    <div class="event-type"><i class="fa-solid fa-flag-checkered"></i> Participation</div>
                 {% endif %}
 
                 <div class="event-desc">
-                    <div class="eurostile w-75">{{ race.name }}</div>
-                    {% if race.type == 'championship' %}
-                        <div class="event-meta-info">3 manches</div>
+                    {% if race.participation_type == 'invitation' %}
+                        <div class="eurostile w-75">{{ race.type_string }}<br>{{ race.name }}</div>
+                        <div class="event-meta-info">{{ race.location }}, {{ race.circuit }}</div>
                     {% else %}
+                        <div class="eurostile w-75">{{ race.type_string }}<br>{{ race.location }}</div>
                         <div class="event-meta-info">{{ race.circuit }}</div>
                     {% endif %}
                 </div>
diff --git a/WSR/views.py b/WSR/views.py
index d4f072c..da9edbe 100644
--- a/WSR/views.py
+++ b/WSR/views.py
@@ -27,7 +27,28 @@ def home(request):
 
     for race in three_last_races[1:3]:
         pos_string = "1er" if race.finishing_position == 1 else str(race.finishing_position) + "ème"
+        type_string = ""
+
+        match race.type:
+            case 'championship':
+                type_string = "Championnat"
+            case 'single_race':
+                type_string = "Course simple"
+            case 'face_to_face':
+                type_string = "Face à face"
+            case 'overtaking':
+                type_string = "Dépassements"
+            case 'against_time':
+                type_string = "Contre-la-montre"
+            case 'elimination':
+                type_string = "Elimination"
+            case 'endurance':
+                type_string = "Endurance"
+            case 'touge':
+                type_string = "Touge"
+
         race.pos_string = pos_string
+        race.type_string = type_string
         second_frame_races.append(race)
 
     six_last_articles = Article.objects.order_by('-publication_date')[:6]
-- 
GitLab