diff --git a/requirements.txt b/requirements.txt
index 83d66431530342db426469989fa4a293a3928085..e245cfaee3958c44f943b0d846424917a0c01ca1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,7 +2,9 @@ appdirs==1.4.4
 asgiref==3.3.4
 asn1crypto==1.4.0
 backcall==0.2.0
+certifi==2021.5.30
 cffi==1.14.6
+charset-normalizer==2.0.4
 confusable-homoglyphs==3.2.0
 cryptography==3.3.2
 dbus-python==1.2.16
@@ -10,8 +12,10 @@ decorator==5.0.9
 distlib==0.3.1
 Django==3.2.3
 django-registration==3.2
+django-tinymce==3.3.0
 entrypoints==0.3
 filelock==3.0.12
+idna==3.2
 importlib-metadata==1.6.0
 ipython==7.27.0
 ipython-genutils==0.2.0
@@ -27,6 +31,7 @@ more-itertools==4.2.0
 parso==0.8.2
 pexpect==4.8.0
 pickleshare==0.7.5
+Pillow==8.3.2
 prompt-toolkit==3.0.20
 ptyprocess==0.7.0
 pycairo==1.20.1
@@ -38,11 +43,13 @@ PyGObject==3.38.0
 pytz==2021.1
 pyxdg==0.27
 PyYAML==5.3.1
+requests==2.26.0
 SecretStorage==3.3.1
 six==1.16.0
 sqlparse==0.4.1
 traitlets==5.0.5
 typing-extensions==3.10.0.0
+urllib3==1.26.6
 virtualenv==20.4.0+ds
 wcwidth==0.2.5
 xdg==5
diff --git a/sifrovacka/migrations/0022_auto_20210905_1653.py b/sifrovacka/migrations/0022_auto_20210905_1653.py
new file mode 100644
index 0000000000000000000000000000000000000000..4baf52cf4a1bc4e0d62c5828391967c13250ad0e
--- /dev/null
+++ b/sifrovacka/migrations/0022_auto_20210905_1653.py
@@ -0,0 +1,28 @@
+# 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),
+        ),
+    ]
diff --git a/sifrovacka/migrations/0023_auto_20210905_1654.py b/sifrovacka/migrations/0023_auto_20210905_1654.py
new file mode 100644
index 0000000000000000000000000000000000000000..c84bfc6e24b37e25913d52a4f049026a5efc516e
--- /dev/null
+++ b/sifrovacka/migrations/0023_auto_20210905_1654.py
@@ -0,0 +1,28 @@
+# 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),
+        ),
+    ]
diff --git a/sifrovacka/migrations/0024_auto_20210905_1719.py b/sifrovacka/migrations/0024_auto_20210905_1719.py
new file mode 100644
index 0000000000000000000000000000000000000000..4fc421d8a01f5d5132038ebedc8358ca929370da
--- /dev/null
+++ b/sifrovacka/migrations/0024_auto_20210905_1719.py
@@ -0,0 +1,29 @@
+# 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),
+        ),
+    ]
diff --git a/sifrovacka/migrations/0025_alter_stages_stage_urlhash.py b/sifrovacka/migrations/0025_alter_stages_stage_urlhash.py
new file mode 100644
index 0000000000000000000000000000000000000000..834eaab1a20e6ad3772d52a4e884e726461ed1fc
--- /dev/null
+++ b/sifrovacka/migrations/0025_alter_stages_stage_urlhash.py
@@ -0,0 +1,18 @@
+# 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),
+        ),
+    ]
diff --git a/sifrovacka/migrations/0026_alter_stages_stage_urlhash.py b/sifrovacka/migrations/0026_alter_stages_stage_urlhash.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ab4de590b264debbcc0e0cb1ecf2150bad98ada
--- /dev/null
+++ b/sifrovacka/migrations/0026_alter_stages_stage_urlhash.py
@@ -0,0 +1,18 @@
+# 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),
+        ),
+    ]
diff --git a/sifrovacka/models.py b/sifrovacka/models.py
index 1920448eab9f85673b0921204e371c1b74132cf7..dbd2b2acf7e753b8149503d0d08f75e6fda277f1 100644
--- a/sifrovacka/models.py
+++ b/sifrovacka/models.py
@@ -5,19 +5,28 @@ from django.db import models
 from django.conf import settings
 from uuid import uuid1
 from django.utils import encoding
+from tinymce.models import HTMLField
 
 def UserDirectoryPath(instance, filename):
-    # file will be uploaded to MEDIA_ROOT/sifrovacka_<id>/<filename>
-    return 'sifrovacka_{0}/stage{1}/{2}'.format(instance.sifrovacka_id,
+    try:
+         # 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,
             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):
     '''
     model which describes sifrovacka
     '''
     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)
     #pub_date = models.DateField()
     pub_date = models.DateTimeField('date published')
@@ -35,21 +44,13 @@ class Stages(models.Model):
     sifrovacka = models.ForeignKey(Sifrovacka, on_delete=models.CASCADE)
     stage_number = models.IntegerField()
     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,
                        default='hesl0Sifrovacka')
     stage_img = models.ImageField(blank=True, upload_to=UserDirectoryPath)
     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):
         return str(self.sifrovacka) + " - Stage " + str(self.stage_number)
 
diff --git a/sifrovacka/templates/sifrovacka.html b/sifrovacka/templates/sifrovacka.html
index dea9fff8f974f19429348e0e0cd3692e11c1c96d..237f4902893d42a4a804756f3203cd085ffa6611 100644
--- a/sifrovacka/templates/sifrovacka.html
+++ b/sifrovacka/templates/sifrovacka.html
@@ -1,4 +1,5 @@
 {% extends "base.html" %}
+{% load static %}
 
 {% block content %}
 <p> Toto je detail sifrovacky se jmenem: <b>{{sifrovacka_detail}} </b> a id: {{sifrovacka_id}}. </p>
@@ -8,8 +9,18 @@
     Casova narocnost: NONE</p>
 
 </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 not sifrovacka_current %}
+ {% if not sifrovacka_current_stage_urlhash %}
   <form action="{% url 'home' %}" method="post">
   {% csrf_token %}
   <button type="submit" value={{ sifrovacka_id }} name='signupsif'>Prihlasit se k sifrovacce</button>
@@ -35,6 +46,11 @@ Debug:
 </div>
 {% comment %}
 <form action="{% url 'sifrovacka:home' sifrovacka.id %}" method="post">
+
+
+	<img src="{{ MEDIA_URL }}{{sifrovacka_detail.sifrovacka_img}}" alt="16x9 Image">
+
+
 {% csrf_token %}
 <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>
diff --git a/sifrovacka/templates/stage.html b/sifrovacka/templates/stage.html
index 4c153e6c4094f3347ee3986d37bab2bc144f43f5..bcb15c870fdd424fc720db5c90407f695c82d381 100644
--- a/sifrovacka/templates/stage.html
+++ b/sifrovacka/templates/stage.html
@@ -1,8 +1,26 @@
 {% extends "sifrovacka.html" %}
+{% load static %}
+
+{% comment %}
+
+   {{ sifrovacka_current_id }} - {{ sifrovacka_current_stage_url_hash.at_stage }}
+
+{% endcomment %}
 {% block content %}
- {% if sifrovacka_current %}
+ {% if sifrovacka_current_stage_urlhash %}
   {% 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 %}
  {% else %}
   <div class="alert alert--red-600">
diff --git a/sifrovacka/urls.py b/sifrovacka/urls.py
index c5c0d1f37cd42a145f257f5b1b4fc7c6247065e3..f1d65ad9378bd3f6b1ae4d2932e1f0a2f36c4bbf 100644
--- a/sifrovacka/urls.py
+++ b/sifrovacka/urls.py
@@ -1,4 +1,4 @@
-from django.urls import include,path
+from django.urls import include,path,re_path
 from django.conf import settings
 from django.conf.urls.static import static
 
@@ -13,10 +13,14 @@ urlpatterns = [
     path('<int:sifrovacka_id>/<slug:stage_urlhash>/', views.stage, name='stage'),
     # home page
     path('home/', views.home, name='home'),
+    # rich test editor
+    re_path(r'^tinymce/', include('tinymce.urls')),
     # /
     path('', views.index, name='index'),
-    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
-#if settings.DEBUG:
-#    urlpatterns += static(settings.MEDIA_URL,
-#                   document_root=settings.MEDIA_ROOT)
+    ]
+#    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
+if settings.DEBUG:
+    print("XXXXXX")
+    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
+    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
 
diff --git a/sifrovacka/views.py b/sifrovacka/views.py
index 064f596ce6a616da62b35b6ea2768858f0ff9c0c..a011d658e639c6d6477c6aa04067d89ca1ca61d1 100644
--- a/sifrovacka/views.py
+++ b/sifrovacka/views.py
@@ -14,7 +14,8 @@ def stage(request, sifrovacka_id, stage_urlhash):
 #    print(stage_urlhash)
 #    print(request.user.participants_set.values())
 #    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_stages = Stages.objects.filter(sifrovacka__sifrovacka_name = sifrovacka_detail)
     sifrovacka_stage_count = sifrovacka_stages.count()
@@ -31,26 +32,29 @@ def stage(request, sifrovacka_id, stage_urlhash):
                                                     tmp_stage_id)
                 if (sifrovacka_current_stage_urlhash.at_stage == stage_urlhash):
                     print('hehe')
-                    sifrovacka_current = Participants.objects.get(id = \
-                                          tmp_stage_id)
+                    stage_current_id = Stages.objects.get(stage_urlhash =
+                                        sifrovacka_current_stage_urlhash.at_stage)
+                    #sifrovacka_current = Participants.objects.get(id = \
+                    #                      tmp_stage_id)
                 else:
                     print('not same')
 #    else:
 #        sifrovacka_current = None
 
-    print(sifrovacka_current)
+    print(sifrovacka_current_id)
     context = {"sifrovacka_id": sifrovacka_id,
                "sifrovacka_detail": sifrovacka_detail,
                "sifrovacka_stages": sifrovacka_stages,
                "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)
 
 def detail(request, sifrovacka_id):
 #    print(dir(request))
     sifrovacka_current_stage_urlhash = None
-    sifrovacka_current = None
+    sifrovacka_current_id = 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()
@@ -67,8 +71,9 @@ def detail(request, sifrovacka_id):
                                                     tmp_stage_id)
 #                if (sifrovacka_current_stage_urlhash.at_stage == stage_urlhash):
 #                print('hehe')
-                sifrovacka_current = Participants.objects.get(id = \
-                                      tmp_stage_id)
+                sifrovacka_current_id = tmp_stage_id
+                #sifrovacka_current_id = Participants.objects.get(id = \
+                #                      tmp_stage_id)
 
 #                else:
 #                    print('not same')
@@ -77,7 +82,7 @@ def detail(request, sifrovacka_id):
                "sifrovacka_detail": sifrovacka_detail,
                "sifrovacka_stages": sifrovacka_stages,
                "sifrovacka_stage_count": sifrovacka_stage_count,
-               "sifrovacka_current": sifrovacka_current,
+               "sifrovacka_current_id": sifrovacka_current_id,
                "sifrovacka_current_stage_urlhash":
                sifrovacka_current_stage_urlhash
               }