Skip to content
Snippets Groups Projects
Commit 5a845e71 authored by Zdenek Kubala's avatar Zdenek Kubala
Browse files

visual enhancements of sifrovacka and stage page

parent 17aea347
No related branches found
No related tags found
1 merge request!2Added stage web page
...@@ -2,7 +2,9 @@ appdirs==1.4.4 ...@@ -2,7 +2,9 @@ appdirs==1.4.4
asgiref==3.3.4 asgiref==3.3.4
asn1crypto==1.4.0 asn1crypto==1.4.0
backcall==0.2.0 backcall==0.2.0
certifi==2021.5.30
cffi==1.14.6 cffi==1.14.6
charset-normalizer==2.0.4
confusable-homoglyphs==3.2.0 confusable-homoglyphs==3.2.0
cryptography==3.3.2 cryptography==3.3.2
dbus-python==1.2.16 dbus-python==1.2.16
...@@ -10,8 +12,10 @@ decorator==5.0.9 ...@@ -10,8 +12,10 @@ decorator==5.0.9
distlib==0.3.1 distlib==0.3.1
Django==3.2.3 Django==3.2.3
django-registration==3.2 django-registration==3.2
django-tinymce==3.3.0
entrypoints==0.3 entrypoints==0.3
filelock==3.0.12 filelock==3.0.12
idna==3.2
importlib-metadata==1.6.0 importlib-metadata==1.6.0
ipython==7.27.0 ipython==7.27.0
ipython-genutils==0.2.0 ipython-genutils==0.2.0
...@@ -27,6 +31,7 @@ more-itertools==4.2.0 ...@@ -27,6 +31,7 @@ more-itertools==4.2.0
parso==0.8.2 parso==0.8.2
pexpect==4.8.0 pexpect==4.8.0
pickleshare==0.7.5 pickleshare==0.7.5
Pillow==8.3.2
prompt-toolkit==3.0.20 prompt-toolkit==3.0.20
ptyprocess==0.7.0 ptyprocess==0.7.0
pycairo==1.20.1 pycairo==1.20.1
...@@ -38,11 +43,13 @@ PyGObject==3.38.0 ...@@ -38,11 +43,13 @@ PyGObject==3.38.0
pytz==2021.1 pytz==2021.1
pyxdg==0.27 pyxdg==0.27
PyYAML==5.3.1 PyYAML==5.3.1
requests==2.26.0
SecretStorage==3.3.1 SecretStorage==3.3.1
six==1.16.0 six==1.16.0
sqlparse==0.4.1 sqlparse==0.4.1
traitlets==5.0.5 traitlets==5.0.5
typing-extensions==3.10.0.0 typing-extensions==3.10.0.0
urllib3==1.26.6
virtualenv==20.4.0+ds virtualenv==20.4.0+ds
wcwidth==0.2.5 wcwidth==0.2.5
xdg==5 xdg==5
......
# Generated by Django 3.2.3 on 2021-09-05 16:53
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sifrovacka', '0021_auto_20210905_0835'),
]
operations = [
migrations.AlterField(
model_name='sifrovacka',
name='sifrovacka_description',
field=models.CharField(max_length=800),
),
migrations.AlterField(
model_name='stages',
name='stage_description',
field=models.CharField(max_length=800),
),
migrations.AlterField(
model_name='stages',
name='stage_urlhash',
field=models.CharField(default='baacf3800e6911eca1db2016b9b07b5b', max_length=32),
),
]
# Generated by Django 3.2.3 on 2021-09-05 16:54
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sifrovacka', '0022_auto_20210905_1653'),
]
operations = [
migrations.AlterField(
model_name='sifrovacka',
name='sifrovacka_description',
field=models.CharField(max_length=2000),
),
migrations.AlterField(
model_name='stages',
name='stage_description',
field=models.CharField(max_length=2000),
),
migrations.AlterField(
model_name='stages',
name='stage_urlhash',
field=models.CharField(default='f70c86ec0e6911ecb6a22016b9b07b5b', max_length=32),
),
]
# Generated by Django 3.2.3 on 2021-09-05 17:19
from django.db import migrations, models
import tinymce.models
class Migration(migrations.Migration):
dependencies = [
('sifrovacka', '0023_auto_20210905_1654'),
]
operations = [
migrations.AlterField(
model_name='sifrovacka',
name='sifrovacka_description',
field=tinymce.models.HTMLField(),
),
migrations.AlterField(
model_name='stages',
name='stage_description',
field=tinymce.models.HTMLField(),
),
migrations.AlterField(
model_name='stages',
name='stage_urlhash',
field=models.CharField(default='60bf43560e6d11ecba282016b9b07b5b', max_length=32),
),
]
# Generated by Django 3.2.3 on 2021-09-05 17:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sifrovacka', '0024_auto_20210905_1719'),
]
operations = [
migrations.AlterField(
model_name='stages',
name='stage_urlhash',
field=models.CharField(default='3f5301b00e6f11ecbda72016b9b07b5b', max_length=32),
),
]
# Generated by Django 3.2.3 on 2021-09-05 17:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sifrovacka', '0025_alter_stages_stage_urlhash'),
]
operations = [
migrations.AlterField(
model_name='stages',
name='stage_urlhash',
field=models.CharField(default='43efd7700e6f11ecb08f2016b9b07b5b', max_length=32),
),
]
...@@ -5,19 +5,28 @@ from django.db import models ...@@ -5,19 +5,28 @@ from django.db import models
from django.conf import settings from django.conf import settings
from uuid import uuid1 from uuid import uuid1
from django.utils import encoding from django.utils import encoding
from tinymce.models import HTMLField
def UserDirectoryPath(instance, filename): def UserDirectoryPath(instance, filename):
# file will be uploaded to MEDIA_ROOT/sifrovacka_<id>/<filename> try:
return 'sifrovacka_{0}/stage{1}/{2}'.format(instance.sifrovacka_id, # file will be uploaded to MEDIA_ROOT/sifrovacka_<id>/stage_<id>/<filename>
return 'sifrovacka_{0}/stage_{1}/{2}'.format(instance.sifrovacka_id,
instance.stage_number, instance.stage_number,
encoding.smart_str(filename, encoding='utf-8', strings_only = True)) encoding.smart_str(filename, encoding='utf-8', strings_only = True))
except:
pass
finally:
# file will be uploaded to MEDIA_ROOT/sifrovacka_<id>/<filename>
return 'sifrovacka_{0}/{1}'.format(instance.id,
encoding.smart_str(filename, encoding='utf-8', strings_only = True))
class Sifrovacka(models.Model): class Sifrovacka(models.Model):
''' '''
model which describes sifrovacka model which describes sifrovacka
''' '''
sifrovacka_name = models.CharField(max_length=200) sifrovacka_name = models.CharField(max_length=200)
sifrovacka_description = models.CharField(max_length=500) sifrovacka_description = HTMLField()
#sifrovacka_description = models.CharField(max_length=2000)
sifrovacka_img = models.ImageField(blank=True, upload_to=UserDirectoryPath) sifrovacka_img = models.ImageField(blank=True, upload_to=UserDirectoryPath)
#pub_date = models.DateField() #pub_date = models.DateField()
pub_date = models.DateTimeField('date published') pub_date = models.DateTimeField('date published')
...@@ -35,21 +44,13 @@ class Stages(models.Model): ...@@ -35,21 +44,13 @@ class Stages(models.Model):
sifrovacka = models.ForeignKey(Sifrovacka, on_delete=models.CASCADE) sifrovacka = models.ForeignKey(Sifrovacka, on_delete=models.CASCADE)
stage_number = models.IntegerField() stage_number = models.IntegerField()
stage_name = models.CharField(max_length=80) stage_name = models.CharField(max_length=80)
stage_description = models.CharField(max_length=500) stage_description = HTMLField()
#sifrovacka_description = models.CharField(max_length=2000)
stage_passphrase = models.CharField(max_length=30, stage_passphrase = models.CharField(max_length=30,
default='hesl0Sifrovacka') default='hesl0Sifrovacka')
stage_img = models.ImageField(blank=True, upload_to=UserDirectoryPath) stage_img = models.ImageField(blank=True, upload_to=UserDirectoryPath)
stage_urlhash = models.CharField(max_length=32, default=uuid1().hex) stage_urlhash = models.CharField(max_length=32, default=uuid1().hex)
# if not stage_name_text models:
# stage_name = getattr(Stages, sifrovacka_name)
# "-" + getattr(Stages, stage_number))
# else:
# stage_name = stage_name_text
# votes = models.IntegerField(default=0)
# startdate_stages = models.DateField()
# enddate_stages= models.DateField()
def __str__(self): def __str__(self):
return str(self.sifrovacka) + " - Stage " + str(self.stage_number) return str(self.sifrovacka) + " - Stage " + str(self.stage_number)
......
{% extends "base.html" %} {% extends "base.html" %}
{% load static %}
{% block content %} {% block content %}
<p> Toto je detail sifrovacky se jmenem: <b>{{sifrovacka_detail}} </b> a id: {{sifrovacka_id}}. </p> <p> Toto je detail sifrovacky se jmenem: <b>{{sifrovacka_detail}} </b> a id: {{sifrovacka_id}}. </p>
...@@ -8,8 +9,18 @@ ...@@ -8,8 +9,18 @@
Casova narocnost: NONE</p> Casova narocnost: NONE</p>
</br> </br>
{{ sifrovacka_detail.sifrovacka_description | safe }}
{% if sifrovacka_detail.sifrovacka_img %}
<figure class="figure">
<img src=" {% get_media_prefix %}{{sifrovacka_detail.sifrovacka_img}}" alt="16x9 Image">
<figcaption>
Autor: Junius Koolen CC-BY-SA
</figcaption>
</figure>
{{ sifrovacka_detail.sifrovacka_img }}
{% endif%}
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
{% if not sifrovacka_current %} {% if not sifrovacka_current_stage_urlhash %}
<form action="{% url 'home' %}" method="post"> <form action="{% url 'home' %}" method="post">
{% csrf_token %} {% csrf_token %}
<button type="submit" value={{ sifrovacka_id }} name='signupsif'>Prihlasit se k sifrovacce</button> <button type="submit" value={{ sifrovacka_id }} name='signupsif'>Prihlasit se k sifrovacce</button>
...@@ -35,6 +46,11 @@ Debug: ...@@ -35,6 +46,11 @@ Debug:
</div> </div>
{% comment %} {% comment %}
<form action="{% url 'sifrovacka:home' sifrovacka.id %}" method="post"> <form action="{% url 'sifrovacka:home' sifrovacka.id %}" method="post">
<img src="{{ MEDIA_URL }}{{sifrovacka_detail.sifrovacka_img}}" alt="16x9 Image">
{% csrf_token %} {% csrf_token %}
<button type="submit" value=signupsif name='signupsif'>Prihlasit se k sifrovacce</button> <button type="submit" value=signupsif name='signupsif'>Prihlasit se k sifrovacce</button>
<button type="submit" value=signupsif onclick="location.href='{% url 'home' %}'" name='_signupsif'>Prihlasit se k sifrovacce</button> <button type="submit" value=signupsif onclick="location.href='{% url 'home' %}'" name='_signupsif'>Prihlasit se k sifrovacce</button>
......
{% extends "sifrovacka.html" %} {% extends "sifrovacka.html" %}
{% load static %}
{% comment %}
{{ sifrovacka_current_id }} - {{ sifrovacka_current_stage_url_hash.at_stage }}
{% endcomment %}
{% block content %} {% block content %}
{% if sifrovacka_current %} {% if sifrovacka_current_stage_urlhash %}
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
{{ sifrovacka_current }} - {{ sifrovacka_current.at_stage }}
<p> <b>{{ sifrovacka_current_stage_urlhash }} </b> - krok cislo {{ stage_current_id.stage_number }} z {{ sifrovacka_stage_count }}. </p>
{{ stage_current_id.stage_description | safe }}
{% if stage_current_id.stage_img %}
<figure class="figure">
<img src=" {% get_media_prefix %}{{stage_current_id.stage_img}}" alt="16x9 Image">
<figcaption>
Autor: Junius Koolen CC-BY-SA
</figcaption>
</figure>
{{ sifrovacka_detail.sifrovacka_img }}
{% endif%}
{% endif %} {% endif %}
{% else %} {% else %}
<div class="alert alert--red-600"> <div class="alert alert--red-600">
......
from django.urls import include,path from django.urls import include,path,re_path
from django.conf import settings from django.conf import settings
from django.conf.urls.static import static from django.conf.urls.static import static
...@@ -13,10 +13,14 @@ urlpatterns = [ ...@@ -13,10 +13,14 @@ urlpatterns = [
path('<int:sifrovacka_id>/<slug:stage_urlhash>/', views.stage, name='stage'), path('<int:sifrovacka_id>/<slug:stage_urlhash>/', views.stage, name='stage'),
# home page # home page
path('home/', views.home, name='home'), path('home/', views.home, name='home'),
# rich test editor
re_path(r'^tinymce/', include('tinymce.urls')),
# / # /
path('', views.index, name='index'), path('', views.index, name='index'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ]
#if settings.DEBUG: # ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# urlpatterns += static(settings.MEDIA_URL, if settings.DEBUG:
# document_root=settings.MEDIA_ROOT) print("XXXXXX")
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
...@@ -14,7 +14,8 @@ def stage(request, sifrovacka_id, stage_urlhash): ...@@ -14,7 +14,8 @@ def stage(request, sifrovacka_id, stage_urlhash):
# print(stage_urlhash) # print(stage_urlhash)
# print(request.user.participants_set.values()) # print(request.user.participants_set.values())
# sifrovacka_current_stage = request.user.participants_set.values_list('id') # sifrovacka_current_stage = request.user.participants_set.values_list('id')
sifrovacka_current = None sifrovacka_current_stage_urlhash = None
sifrovacka_current_id = None
sifrovacka_detail = Sifrovacka.objects.get(id = sifrovacka_id) sifrovacka_detail = Sifrovacka.objects.get(id = sifrovacka_id)
sifrovacka_stages = Stages.objects.filter(sifrovacka__sifrovacka_name = sifrovacka_detail) sifrovacka_stages = Stages.objects.filter(sifrovacka__sifrovacka_name = sifrovacka_detail)
sifrovacka_stage_count = sifrovacka_stages.count() sifrovacka_stage_count = sifrovacka_stages.count()
...@@ -31,26 +32,29 @@ def stage(request, sifrovacka_id, stage_urlhash): ...@@ -31,26 +32,29 @@ def stage(request, sifrovacka_id, stage_urlhash):
tmp_stage_id) tmp_stage_id)
if (sifrovacka_current_stage_urlhash.at_stage == stage_urlhash): if (sifrovacka_current_stage_urlhash.at_stage == stage_urlhash):
print('hehe') print('hehe')
sifrovacka_current = Participants.objects.get(id = \ stage_current_id = Stages.objects.get(stage_urlhash =
tmp_stage_id) sifrovacka_current_stage_urlhash.at_stage)
#sifrovacka_current = Participants.objects.get(id = \
# tmp_stage_id)
else: else:
print('not same') print('not same')
# else: # else:
# sifrovacka_current = None # sifrovacka_current = None
print(sifrovacka_current) print(sifrovacka_current_id)
context = {"sifrovacka_id": sifrovacka_id, context = {"sifrovacka_id": sifrovacka_id,
"sifrovacka_detail": sifrovacka_detail, "sifrovacka_detail": sifrovacka_detail,
"sifrovacka_stages": sifrovacka_stages, "sifrovacka_stages": sifrovacka_stages,
"sifrovacka_stage_count": sifrovacka_stage_count, "sifrovacka_stage_count": sifrovacka_stage_count,
"sifrovacka_current": sifrovacka_current "stage_current_id": stage_current_id,
"sifrovacka_current_stage_urlhash": sifrovacka_current_stage_urlhash
} }
return render(request, 'stage.html', context) return render(request, 'stage.html', context)
def detail(request, sifrovacka_id): def detail(request, sifrovacka_id):
# print(dir(request)) # print(dir(request))
sifrovacka_current_stage_urlhash = None sifrovacka_current_stage_urlhash = None
sifrovacka_current = None sifrovacka_current_id = None
sifrovacka_detail = Sifrovacka.objects.get(id = sifrovacka_id) sifrovacka_detail = Sifrovacka.objects.get(id = sifrovacka_id)
sifrovacka_stages = Stages.objects.filter(sifrovacka__sifrovacka_name = sifrovacka_detail) sifrovacka_stages = Stages.objects.filter(sifrovacka__sifrovacka_name = sifrovacka_detail)
sifrovacka_stage_count = sifrovacka_stages.count() sifrovacka_stage_count = sifrovacka_stages.count()
...@@ -67,8 +71,9 @@ def detail(request, sifrovacka_id): ...@@ -67,8 +71,9 @@ def detail(request, sifrovacka_id):
tmp_stage_id) tmp_stage_id)
# if (sifrovacka_current_stage_urlhash.at_stage == stage_urlhash): # if (sifrovacka_current_stage_urlhash.at_stage == stage_urlhash):
# print('hehe') # print('hehe')
sifrovacka_current = Participants.objects.get(id = \ sifrovacka_current_id = tmp_stage_id
tmp_stage_id) #sifrovacka_current_id = Participants.objects.get(id = \
# tmp_stage_id)
# else: # else:
# print('not same') # print('not same')
...@@ -77,7 +82,7 @@ def detail(request, sifrovacka_id): ...@@ -77,7 +82,7 @@ def detail(request, sifrovacka_id):
"sifrovacka_detail": sifrovacka_detail, "sifrovacka_detail": sifrovacka_detail,
"sifrovacka_stages": sifrovacka_stages, "sifrovacka_stages": sifrovacka_stages,
"sifrovacka_stage_count": sifrovacka_stage_count, "sifrovacka_stage_count": sifrovacka_stage_count,
"sifrovacka_current": sifrovacka_current, "sifrovacka_current_id": sifrovacka_current_id,
"sifrovacka_current_stage_urlhash": "sifrovacka_current_stage_urlhash":
sifrovacka_current_stage_urlhash sifrovacka_current_stage_urlhash
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment