From 17aea34762d44c202f8d640f0c2957c20556105d Mon Sep 17 00:00:00 2001
From: Zdenek Kubala <zdenek.kubala@pirati.cz>
Date: Sun, 5 Sep 2021 08:36:32 +0000
Subject: [PATCH] enhanced sifrovacka model + current stage diplay

* sifrovacka page now shows current user stage and
  if applicable signup button to start sifrovacka

* sifrovacka model enhanced to upload picture and
  descrtioption acting as STAGE O visible for all
---
 sifrovacka/forms.py                           |  0
 .../migrations/0020_auto_20210905_0834.py     | 29 +++++++++++++++++
 .../migrations/0021_auto_20210905_0835.py     | 23 +++++++++++++
 sifrovacka/models.py                          |  2 ++
 sifrovacka/templates/sifrovacka.html          | 20 +++++++++---
 sifrovacka/views.py                           | 32 ++++++++++++++++---
 6 files changed, 96 insertions(+), 10 deletions(-)
 create mode 100644 sifrovacka/forms.py
 create mode 100644 sifrovacka/migrations/0020_auto_20210905_0834.py
 create mode 100644 sifrovacka/migrations/0021_auto_20210905_0835.py

diff --git a/sifrovacka/forms.py b/sifrovacka/forms.py
new file mode 100644
index 0000000..e69de29
diff --git a/sifrovacka/migrations/0020_auto_20210905_0834.py b/sifrovacka/migrations/0020_auto_20210905_0834.py
new file mode 100644
index 0000000..3dc1c54
--- /dev/null
+++ b/sifrovacka/migrations/0020_auto_20210905_0834.py
@@ -0,0 +1,29 @@
+# Generated by Django 3.2.3 on 2021-09-05 08:34
+
+from django.db import migrations, models
+import sifrovacka.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('sifrovacka', '0019_auto_20210904_1913'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='sifrovacka',
+            name='sifrovacka_description',
+            field=models.CharField(default='', max_length=500),
+        ),
+        migrations.AddField(
+            model_name='sifrovacka',
+            name='sifrovacka_img',
+            field=models.ImageField(blank=True, upload_to=sifrovacka.models.UserDirectoryPath),
+        ),
+        migrations.AlterField(
+            model_name='stages',
+            name='stage_urlhash',
+            field=models.CharField(default='25aaa7720e2411ecb82f2016b9b07b5b', max_length=32),
+        ),
+    ]
diff --git a/sifrovacka/migrations/0021_auto_20210905_0835.py b/sifrovacka/migrations/0021_auto_20210905_0835.py
new file mode 100644
index 0000000..ef836e4
--- /dev/null
+++ b/sifrovacka/migrations/0021_auto_20210905_0835.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.3 on 2021-09-05 08:35
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('sifrovacka', '0020_auto_20210905_0834'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='sifrovacka',
+            name='sifrovacka_description',
+            field=models.CharField(max_length=500),
+        ),
+        migrations.AlterField(
+            model_name='stages',
+            name='stage_urlhash',
+            field=models.CharField(default='39acc55c0e2411ec9d5e2016b9b07b5b', max_length=32),
+        ),
+    ]
diff --git a/sifrovacka/models.py b/sifrovacka/models.py
index f7f5682..1920448 100644
--- a/sifrovacka/models.py
+++ b/sifrovacka/models.py
@@ -17,6 +17,8 @@ class Sifrovacka(models.Model):
     model which describes sifrovacka
     '''
     sifrovacka_name = models.CharField(max_length=200)
+    sifrovacka_description = models.CharField(max_length=500)
+    sifrovacka_img = models.ImageField(blank=True, upload_to=UserDirectoryPath)
     #pub_date = models.DateField()
     pub_date = models.DateTimeField('date published')
     startdate_sifrovacka = models.DateField()
diff --git a/sifrovacka/templates/sifrovacka.html b/sifrovacka/templates/sifrovacka.html
index 6796278..dea9fff 100644
--- a/sifrovacka/templates/sifrovacka.html
+++ b/sifrovacka/templates/sifrovacka.html
@@ -9,10 +9,19 @@
 
 </br>
 {% if request.user.is_authenticated %}
-<form action="{% url 'home' %}" method="post">
-{% csrf_token %}
-<button type="submit" value={{ sifrovacka_id }} name='signupsif'>Prihlasit se k sifrovacce</button>
-</form>
+ {% if not sifrovacka_current %}
+  <form action="{% url 'home' %}" method="post">
+  {% csrf_token %}
+  <button type="submit" value={{ sifrovacka_id }} name='signupsif'>Prihlasit se k sifrovacce</button>
+  </form>
+ {% else %}
+   <p> Vase Aktualni uroven: </p>
+  {% for stage in sifrovacka_stages %}
+      {% if sifrovacka_current_stage_urlhash.at_stage == stage.stage_urlhash %}
+       <li><a href={% url 'stage' stage.sifrovacka_id stage.stage_urlhash %}>{{ stage }}</a></li>
+      {% endif %}
+  {% endfor %}
+ {% endif %}
 {% endif %}
 </br>
 </br>
@@ -20,8 +29,9 @@
 Debug:
 <div>
 {% for stage in sifrovacka_stages %}
- {{ stage }}</br>
+     <li><a href={% url 'stage' stage.sifrovacka_id stage.stage_urlhash %}>{{ stage }}</a></li>
 {% endfor %}
+</br>
 </div>
 {% comment %}
 <form action="{% url 'sifrovacka:home' sifrovacka.id %}" method="post">
diff --git a/sifrovacka/views.py b/sifrovacka/views.py
index 299ece6..064f596 100644
--- a/sifrovacka/views.py
+++ b/sifrovacka/views.py
@@ -19,9 +19,6 @@ def stage(request, sifrovacka_id, stage_urlhash):
     sifrovacka_stages = Stages.objects.filter(sifrovacka__sifrovacka_name = sifrovacka_detail)
     sifrovacka_stage_count = sifrovacka_stages.count()
     if request.user.is_authenticated:
-#        sifrovacka_current = Participants.objects.filter(user = \
-#                              request.user).filter(sifrovacka_id =
-#                              sifrovacka_id)
         sifrovacka_all_user_current_stages= Participants.objects.filter(user = \
                                              request.user).filter(sifrovacka_id = \
                                              sifrovacka_id).values('sifrovacka_id','id')
@@ -51,14 +48,39 @@ def stage(request, sifrovacka_id, stage_urlhash):
     return render(request, 'stage.html', context)
 
 def detail(request, sifrovacka_id):
-    print(request)
+#    print(dir(request))
+    sifrovacka_current_stage_urlhash = None
+    sifrovacka_current = None
     sifrovacka_detail = Sifrovacka.objects.get(id = sifrovacka_id)
     sifrovacka_stages = Stages.objects.filter(sifrovacka__sifrovacka_name = sifrovacka_detail)
     sifrovacka_stage_count = sifrovacka_stages.count()
+    if request.user.is_authenticated:
+        sifrovacka_all_user_current_stages= Participants.objects.filter(user = \
+                                             request.user).filter(sifrovacka_id = \
+                                             sifrovacka_id).values('sifrovacka_id','id')
+        for s in sifrovacka_all_user_current_stages:
+            if s['sifrovacka_id'] == sifrovacka_id:
+                print("---AA---")
+    #            print(s['at_stage'])
+                tmp_stage_id = s['id']
+                sifrovacka_current_stage_urlhash = Participants.objects.get(id = \
+                                                    tmp_stage_id)
+#                if (sifrovacka_current_stage_urlhash.at_stage == stage_urlhash):
+#                print('hehe')
+                sifrovacka_current = Participants.objects.get(id = \
+                                      tmp_stage_id)
+
+#                else:
+#                    print('not same')
+
     context = {"sifrovacka_id": sifrovacka_id,
                "sifrovacka_detail": sifrovacka_detail,
                "sifrovacka_stages": sifrovacka_stages,
-               "sifrovacka_stage_count": sifrovacka_stage_count}
+               "sifrovacka_stage_count": sifrovacka_stage_count,
+               "sifrovacka_current": sifrovacka_current,
+               "sifrovacka_current_stage_urlhash":
+               sifrovacka_current_stage_urlhash
+              }
     return render(request, 'sifrovacka.html', context)
 
 def home(request):
-- 
GitLab