diff --git a/.gitignore b/.gitignore
index e06f8dbd963dde805c2ee4be219a32cd4d0deacd..8220b2e02a0e7b76565b2e92d9ef300a126089f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,5 +3,7 @@ __pycache__/
 webpack-stats.json
 staticfiles
 node_modules
-shared/static/shared/*.{js,css,txt}
+shared/static/shared/*.js
+shared/static/shared/*.css
+shared/static/shared/*.txt
 media/*
diff --git a/lectures/migrations/0016_alter_lecture_groups.py b/lectures/migrations/0016_alter_lecture_groups.py
new file mode 100644
index 0000000000000000000000000000000000000000..eeccf089f26013cd0557956d06668d4fd5e89820
--- /dev/null
+++ b/lectures/migrations/0016_alter_lecture_groups.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.1.4 on 2023-05-25 16:21
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('lectures', '0015_alter_lecture_options_alter_lecture_type_and_more'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='lecture',
+            name='groups',
+            field=models.ManyToManyField(blank=True, help_text='Pokud nevybereš žádné skupiny, školení je dostupné všem.', related_name='lectures', to='lectures.lecturegroup', verbose_name='Výukové skupiny'),
+        ),
+    ]
diff --git a/lectures/models.py b/lectures/models.py
index c03b51e99dff8b425dde9bf0ace84e588c39566d..54f254c234b08ae21f51a7209f02f6772712063a 100644
--- a/lectures/models.py
+++ b/lectures/models.py
@@ -58,6 +58,7 @@ class Lecture(NameStrMixin, models.Model):
         blank=True,
         related_name="lectures",
         verbose_name="Výukové skupiny",
+        help_text="Pokud nevybereš žádné skupiny, školení je dostupné všem."
     )
 
     type = models.CharField(
@@ -178,15 +179,26 @@ class LectureMaterial(NameStrMixin, models.Model):
     )
 
     def clean(self) -> None:
-        BOTH_FILE_AND_LINK_DEFINED_ERROR = (
+        BOTH_FILE_AND_LINK_DEFINED = (
             "Definuj prosím pouze odkaz, nebo soubor. Nemůžeš mít oboje najednou."
         )
+        NEITHER_FILE_NOR_LINK_DEFINED = (
+            "Definuj prosím odkaz, nebo soubor. Aspoň jedna hodnota musí být vyplněna."
+        )
+
+        if not self.file and not self.link:
+            raise ValidationError(
+                {
+                    "link": NEITHER_FILE_NOR_LINK_DEFINED,
+                    "file": NEITHER_FILE_NOR_LINK_DEFINED,
+                }
+            )
 
         if self.file and self.link:
             raise ValidationError(
                 {
-                    "link": BOTH_FILE_AND_LINK_DEFINED_ERROR,
-                    "file": BOTH_FILE_AND_LINK_DEFINED_ERROR,
+                    "link": BOTH_FILE_AND_LINK_DEFINED,
+                    "file": BOTH_FILE_AND_LINK_DEFINED,
                 }
             )
 
diff --git a/lectures/templates/lectures/view_group_lectures.html b/lectures/templates/lectures/view_group_lectures.html
index ec2891bfccc5a0591ca01c51c41ff5631df9cff8..2d835f32c283d7d5150ddf0ff713c00b16aae25f 100644
--- a/lectures/templates/lectures/view_group_lectures.html
+++ b/lectures/templates/lectures/view_group_lectures.html
@@ -27,17 +27,17 @@
                 <div class="switch overflow-x-auto">
                     <a
                         @click="toggleView('current_lectures')"
-                        class="switch__item"
+                        class="switch__item whitespace-nowrap"
                         :class="{'switch__item--active': isCurrentView('current_lectures')}"
                     >Aktuálně</a>
                     <a
                         @click="toggleView('timeline')"
-                        class="switch__item"
+                        class="switch__item whitespace-nowrap"
                         :class="{'switch__item--active': isCurrentView('timeline')}"
                     >Časová osa</a>
                     <a
                         @click="toggleView('recordings')"
-                        class="switch__item"
+                        class="switch__item whitespace-nowrap"
                         :class="{'switch__item--active': isCurrentView('recordings')}"
                     >Záznamy</a>
                 </div>