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