diff --git a/.isort.cfg b/.isort.cfg
index b098b4334fa9d2844dd5ad414528724068d8071d..501b4b490f70c8c72d984ffb8e6aaa58f902fed6 100644
--- a/.isort.cfg
+++ b/.isort.cfg
@@ -2,6 +2,6 @@
 # config compatible with Black
 line_length = 88
 multi_line_output = 3
-default_sectiont = "THIRDPARTY"
+default_section = "THIRDPARTY"
 include_trailing_comma = true
 known_third_party = arrow,django,environ,faker,ics,markdown,modelcluster,nbconvert,pirates,pytest,pytz,requests,requests_cache,sentry_sdk,snapshottest,taggit,traitlets,wagtail,wagtailmetadata
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 4c5c8d37ea6b0f106967f730e7d856f68351d80c..853c6cbbffc5c9b47abf5df414f18c5e5765fade 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -4,7 +4,7 @@ default_language_version:
 exclude: snapshots/
 repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v2.5.0
+    rev: v3.3.0
     hooks:
       - id: trailing-whitespace
         exclude: ^.*\.md$
@@ -16,11 +16,16 @@ repos:
       - id: check-merge-conflict
 
   - repo: https://github.com/asottile/seed-isort-config
-    rev: v2.1.0
+    rev: v2.2.0
     hooks:
       - id: seed-isort-config
 
+  - repo: https://github.com/timothycrosley/isort
+    rev: 5.6.4
+    hooks:
+      - id: isort
+
   - repo: https://github.com/psf/black
-    rev: 19.10b0
+    rev: 20.8b1
     hooks:
       - id: black
diff --git a/calendar_utils/migrations/0002_auto_20200523_0243.py b/calendar_utils/migrations/0002_auto_20200523_0243.py
index adaa9a64bd2229daa8fcec337f7dd6efafc2cba0..c28ed715502efb4642bc8e3c0f13afcc817a0506 100644
--- a/calendar_utils/migrations/0002_auto_20200523_0243.py
+++ b/calendar_utils/migrations/0002_auto_20200523_0243.py
@@ -11,6 +11,8 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.AlterField(
-            model_name="calendar", name="url", field=models.URLField(),
+            model_name="calendar",
+            name="url",
+            field=models.URLField(),
         ),
     ]
diff --git a/district/migrations/0001_initial.py b/district/migrations/0001_initial.py
index f849b73bdeb9d945ceb1145277d2c32ab86f7f2a..50801c1b402c6f160ea374716bef112ee2a7d677 100644
--- a/district/migrations/0001_initial.py
+++ b/district/migrations/0001_initial.py
@@ -74,7 +74,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Web mĂ­stnĂ­ho sdruĹľenĂ­",},
+            options={
+                "verbose_name": "Web mĂ­stnĂ­ho sdruĹľenĂ­",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
diff --git a/district/migrations/0002_districtarticles.py b/district/migrations/0002_districtarticles.py
index ce672eb99587bfdadb911c816b61d1c96c1d53b3..768ba41c1c0e5fb1b548a4557b90cec894aef3c9 100644
--- a/district/migrations/0002_districtarticles.py
+++ b/district/migrations/0002_districtarticles.py
@@ -48,7 +48,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Aktuality",},
+            options={
+                "verbose_name": "Aktuality",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
diff --git a/district/migrations/0008_districtcontact.py b/district/migrations/0008_districtcontact.py
index 5d74e011c65cad2bf86e1a50c02a918ed169caf8..f4adec5671a5b936d46035541b1857288bd0dab0 100644
--- a/district/migrations/0008_districtcontact.py
+++ b/district/migrations/0008_districtcontact.py
@@ -71,7 +71,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"abstract": False,},
+            options={
+                "abstract": False,
+            },
             bases=(
                 district.models.SubpageMixin,
                 wagtailmetadata.models.MetadataMixin,
diff --git a/district/migrations/0009_auto_20201014_1343.py b/district/migrations/0009_auto_20201014_1343.py
index 99515389db0d522b32f40eb3eab55f82eac3e34b..de2384d14833f5ede20382a4fd288e34f91fa669 100644
--- a/district/migrations/0009_auto_20201014_1343.py
+++ b/district/migrations/0009_auto_20201014_1343.py
@@ -11,7 +11,8 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.AlterModelOptions(
-            name="districtcontact", options={"verbose_name": "Kontakty"},
+            name="districtcontact",
+            options={"verbose_name": "Kontakty"},
         ),
         migrations.AddField(
             model_name="districthomepage",
diff --git a/district/migrations/0010_districttags.py b/district/migrations/0010_districttags.py
index 57066ec1061188a3bb8003993cd2adf2c3de766a..342cf1e6a0cd8651d843745f5e16f6aace185c01 100644
--- a/district/migrations/0010_districttags.py
+++ b/district/migrations/0010_districttags.py
@@ -42,7 +42,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Stránka s tagy",},
+            options={
+                "verbose_name": "Stránka s tagy",
+            },
             bases=(
                 shared.models.SharedSubpageMixin,
                 wagtailmetadata.models.MetadataMixin,
diff --git a/district/models.py b/district/models.py
index 9f6f459088d81c65507d480788dcc9add4a3860a..90afaf9a038d598ccd717d9b33e78b27e267ee4e 100644
--- a/district/models.py
+++ b/district/models.py
@@ -12,8 +12,8 @@ from shared.models import Article, PeoplePage, SharedSubpageMixin
 
 class SubpageMixin:
     """Must be used in class definition before MetadataPageMixin!
-        Obsolete, misto nej pouzivat SharedSubpageMixin
-        TODO je pouze v migracich, po odstraneni z nich lze smazat
+    Obsolete, misto nej pouzivat SharedSubpageMixin
+    TODO je pouze v migracich, po odstraneni z nich lze smazat
     """
 
     pass
@@ -23,7 +23,9 @@ class DistrictHomePage(MetadataPageMixin, Page):
     ### FIELDS
 
     content = StreamField(
-        [("title", blocks.CharBlock(label="nadpis", icon="title")),],
+        [
+            ("title", blocks.CharBlock(label="nadpis", icon="title")),
+        ],
         verbose_name="obsah stránky",
         blank=True,
     )
@@ -78,7 +80,10 @@ class DistrictHomePage(MetadataPageMixin, Page):
 
     promote_panels = [
         MultiFieldPanel(
-            [FieldPanel("facebook"), FieldPanel("forum"),],
+            [
+                FieldPanel("facebook"),
+                FieldPanel("forum"),
+            ],
             gettext_lazy("Common page configuration"),
         ),
     ]
@@ -172,7 +177,8 @@ class DistrictArticles(SharedSubpageMixin, MetadataPageMixin, Page):
     def get_context(self, request):
         context = super().get_context(request)
         context["articles"] = Paginator(
-            self.get_children().live().specific(), self.max_items or 5,
+            self.get_children().live().specific(),
+            self.max_items or 5,
         ).get_page(request.GET.get("page"))
         return context
 
@@ -181,14 +187,17 @@ class DistrictContact(SharedSubpageMixin, MetadataPageMixin, Page):
     class ContactItemBlock(blocks.StructBlock):
         name = blocks.CharBlock(label="Role")
         person = blocks.PageChooserBlock(
-            label="Osoba", page_type=["shared.PersonPage"],
+            label="Osoba",
+            page_type=["shared.PersonPage"],
         )
 
         class Meta:
             label = "Kontakt"
 
     contact_persons = StreamField(
-        [("item", ContactItemBlock())], verbose_name="Kontakty", blank=True,
+        [("item", ContactItemBlock())],
+        verbose_name="Kontakty",
+        blank=True,
     )
 
     content_panels = Page.content_panels + [
diff --git a/districts/migrations/0001_initial.py b/districts/migrations/0001_initial.py
index ade02eec7b53eda97eb8795e9bab7ef165c69246..d270a1150eb9926a860d2244b1e8a2c440f5e22c 100644
--- a/districts/migrations/0001_initial.py
+++ b/districts/migrations/0001_initial.py
@@ -49,7 +49,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "KrajskĂ˝ rozcestnĂ­k",},
+            options={
+                "verbose_name": "KrajskĂ˝ rozcestnĂ­k",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
diff --git a/donate/migrations/0001_initial.py b/donate/migrations/0001_initial.py
index 712433023ce16fbd77f51ab7fcf7d3b261fa6dcb..a94e7286e65698b796661c9b89a73c5e6300f415 100644
--- a/donate/migrations/0001_initial.py
+++ b/donate/migrations/0001_initial.py
@@ -31,7 +31,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Přehled projektů",},
+            options={
+                "verbose_name": "Přehled projektů",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -49,7 +51,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Přehled krajů",},
+            options={
+                "verbose_name": "Přehled krajů",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -78,7 +82,9 @@ class Migration(migrations.Migration):
                 ),
                 ("body", wagtail.core.fields.RichTextField(verbose_name="obsah")),
             ],
-            options={"verbose_name": "Kraj",},
+            options={
+                "verbose_name": "Kraj",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -128,7 +134,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Projekt",},
+            options={
+                "verbose_name": "Projekt",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -228,7 +236,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Dary",},
+            options={
+                "verbose_name": "Dary",
+            },
             bases=("wagtailcore.page",),
         ),
     ]
diff --git a/donate/migrations/0003_donatecookiespage_donateinfopage.py b/donate/migrations/0003_donatecookiespage_donateinfopage.py
index b546764f6eb0adffe238179c3871b138437ed8ca..fbdeb547588aef9bebf19f4abec839e32b637388 100644
--- a/donate/migrations/0003_donatecookiespage_donateinfopage.py
+++ b/donate/migrations/0003_donatecookiespage_donateinfopage.py
@@ -47,7 +47,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Info",},
+            options={
+                "verbose_name": "Info",
+            },
             bases=(
                 "wagtailcore.page",
                 donate.models.SubpageMixin,
@@ -85,7 +87,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Cookies",},
+            options={
+                "verbose_name": "Cookies",
+            },
             bases=(
                 "wagtailcore.page",
                 donate.models.SubpageMixin,
diff --git a/donate/migrations/0005_auto_20200715_1415.py b/donate/migrations/0005_auto_20200715_1415.py
index b806953e2a6cec0d788719046e75b1c12c3ff917..fb9cc72b9955835992906596eca06a4e1a2c2f37 100644
--- a/donate/migrations/0005_auto_20200715_1415.py
+++ b/donate/migrations/0005_auto_20200715_1415.py
@@ -18,7 +18,10 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
-        migrations.RemoveField(model_name="donateregionpage", name="perex",),
+        migrations.RemoveField(
+            model_name="donateregionpage",
+            name="perex",
+        ),
         migrations.CreateModel(
             name="DonateTargetedDonationsPage",
             fields=[
@@ -80,7 +83,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"abstract": False,},
+            options={
+                "abstract": False,
+            },
             bases=(
                 "wagtailcore.page",
                 donate.models.SubpageMixin,
diff --git a/donate/migrations/0007_auto_20200724_1658.py b/donate/migrations/0007_auto_20200724_1658.py
index a16b9556d5a6659e9c6419c717c940becf508753..56288187702dd7c14896c371dc33dcbef7a8ad35 100644
--- a/donate/migrations/0007_auto_20200724_1658.py
+++ b/donate/migrations/0007_auto_20200724_1658.py
@@ -18,12 +18,15 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.RenameModel(
-            old_name="DonateCookiesPage", new_name="DonateTextPage",
+            old_name="DonateCookiesPage",
+            new_name="DonateTextPage",
         ),
         migrations.AlterModelOptions(
-            name="donateinfopage", options={"verbose_name": "Infostránka s formulářem"},
+            name="donateinfopage",
+            options={"verbose_name": "Infostránka s formulářem"},
         ),
         migrations.AlterModelOptions(
-            name="donatetextpage", options={"verbose_name": "Stránka s textem"},
+            name="donatetextpage",
+            options={"verbose_name": "Stránka s textem"},
         ),
     ]
diff --git a/donate/migrations/0012_auto_20200915_0114.py b/donate/migrations/0012_auto_20200915_0114.py
index 081f64e18bce135811a5a9d7efdd3e77536b01db..9799aa8785eae83452a69da1fe7ffa58b532361f 100644
--- a/donate/migrations/0012_auto_20200915_0114.py
+++ b/donate/migrations/0012_auto_20200915_0114.py
@@ -13,7 +13,8 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.RemoveField(
-            model_name="donatetargeteddonationspage", name="targeted_donations",
+            model_name="donatetargeteddonationspage",
+            name="targeted_donations",
         ),
         migrations.CreateModel(
             name="TargetedDonation",
@@ -63,6 +64,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"ordering": ["sort_order"], "abstract": False,},
+            options={
+                "ordering": ["sort_order"],
+                "abstract": False,
+            },
         ),
     ]
diff --git a/donate/models.py b/donate/models.py
index 0540fb968ff058a132ffd36eaf1136173ff526e8..e2aafa03e456c29747a11d3a77437fb60f85b8bd 100644
--- a/donate/models.py
+++ b/donate/models.py
@@ -119,13 +119,16 @@ class DonateHomePage(DonateFormMixin, Page, MetadataPageMixin):
             "hlavnĂ­ sekce",
         ),
         MultiFieldPanel(
-            [FieldPanel("support_title"), FieldPanel("support_body")], "podpoĹ™ stranu",
+            [FieldPanel("support_title"), FieldPanel("support_body")],
+            "podpoĹ™ stranu",
         ),
         MultiFieldPanel(
-            [FieldPanel("project_title"), FieldPanel("project_body")], "podpoĹ™ projekt",
+            [FieldPanel("project_title"), FieldPanel("project_body")],
+            "podpoĹ™ projekt",
         ),
         MultiFieldPanel(
-            [FieldPanel("region_title"), FieldPanel("region_body")], "podpoĹ™ kraj",
+            [FieldPanel("region_title"), FieldPanel("region_body")],
+            "podpoĹ™ kraj",
         ),
     ]
 
diff --git a/home/migrations/0001_initial.py b/home/migrations/0001_initial.py
index 6ed701753141af789de88fe77b1613b993b44449..e7dea3f6f63c91336d970f30e050a7cc49dbf7c3 100644
--- a/home/migrations/0001_initial.py
+++ b/home/migrations/0001_initial.py
@@ -30,7 +30,9 @@ class Migration(migrations.Migration):
                 ),
                 ("body", wagtail.core.fields.RichTextField(verbose_name="obsah")),
             ],
-            options={"verbose_name": "Maják homepage",},
+            options={
+                "verbose_name": "Maják homepage",
+            },
             bases=("wagtailcore.page",),
         ),
     ]
diff --git a/home/migrations/0002_homeunderconstructionpage.py b/home/migrations/0002_homeunderconstructionpage.py
index 7b61ae484f95bbcd0ebe70b394cf2f046d637473..f7912e279d6e90c7675fdd1ae1153943d26b17be 100644
--- a/home/migrations/0002_homeunderconstructionpage.py
+++ b/home/migrations/0002_homeunderconstructionpage.py
@@ -27,7 +27,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Web se připravuje",},
+            options={
+                "verbose_name": "Web se připravuje",
+            },
             bases=("wagtailcore.page",),
         ),
     ]
diff --git a/majak/settings/base.py b/majak/settings/base.py
index 93e7bb42997bfe1e8052b5ed06b47cb2b7993b74..708df784afd201b0d7733703deffe4abbc198a6d 100644
--- a/majak/settings/base.py
+++ b/majak/settings/base.py
@@ -191,7 +191,9 @@ CACHES["renditions"]["TIMEOUT"] = 60 * 60 * 24
 SENTRY_DSN = env.str("SENTRY_DSN", default="")
 if SENTRY_DSN:
     sentry_sdk.init(
-        dsn=SENTRY_DSN, integrations=[DjangoIntegration()], send_default_pii=True,
+        dsn=SENTRY_DSN,
+        integrations=[DjangoIntegration()],
+        send_default_pii=True,
     )
 
 # WAGTAIL SETTINGS
diff --git a/program2021/migrations/0001_initial.py b/program2021/migrations/0001_initial.py
index 0d09f03a1628fa81651b6733693055b8fb3fe466..f81d5a1b33f6465dbb1833ee0d885f520be97788 100644
--- a/program2021/migrations/0001_initial.py
+++ b/program2021/migrations/0001_initial.py
@@ -36,7 +36,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Program 2021",},
+            options={
+                "verbose_name": "Program 2021",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -259,7 +261,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "ProgramovĂ˝ bod",},
+            options={
+                "verbose_name": "ProgramovĂ˝ bod",
+            },
             bases=(
                 "wagtailcore.page",
                 wagtailmetadata.models.MetadataMixin,
@@ -294,7 +298,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"abstract": False,},
+            options={
+                "abstract": False,
+            },
         ),
         migrations.AddField(
             model_name="program2021pointpage",
diff --git a/program2021/migrations/0003_auto_20200805_1034.py b/program2021/migrations/0003_auto_20200805_1034.py
index 396d02db3cb8fc25cd54ff16925404176a99c7d1..fcc26724e1b79dad8364f9871f16e6551b611313 100644
--- a/program2021/migrations/0003_auto_20200805_1034.py
+++ b/program2021/migrations/0003_auto_20200805_1034.py
@@ -42,7 +42,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"abstract": False,},
+            options={
+                "abstract": False,
+            },
         ),
         migrations.AddField(
             model_name="program2021pointpage",
diff --git a/program2021/migrations/0008_auto_20200812_2117.py b/program2021/migrations/0008_auto_20200812_2117.py
index ebbb30e09deece80e6b7c0f321c8a119fbd3de37..6ba95fa360086640722e089eaa48cf7950056c9e 100644
--- a/program2021/migrations/0008_auto_20200812_2117.py
+++ b/program2021/migrations/0008_auto_20200812_2117.py
@@ -10,6 +10,11 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
-        migrations.RemoveField(model_name="program2021pointpage", name="search_tags",),
-        migrations.DeleteModel(name="Program2021PointPageSearchTag",),
+        migrations.RemoveField(
+            model_name="program2021pointpage",
+            name="search_tags",
+        ),
+        migrations.DeleteModel(
+            name="Program2021PointPageSearchTag",
+        ),
     ]
diff --git a/program2021/models.py b/program2021/models.py
index d0f7eb244108b23e1b8b9cd4e70afa9080383c0e..8f21c313824c9eb1608167059ce13bb0c0998385 100644
--- a/program2021/models.py
+++ b/program2021/models.py
@@ -63,14 +63,21 @@ class Program2021HomePage(Page):
         help_text="Hlavní titulek domovské stránky",
     )
     perex = models.TextField(
-        "perex", max_length=512, blank=True, null=True, help_text="Text pod titulkem",
+        "perex",
+        max_length=512,
+        blank=True,
+        null=True,
+        help_text="Text pod titulkem",
     )
 
     ### PANELS
 
     content_panels = Page.content_panels + [
         MultiFieldPanel(
-            [FieldPanel("headline"), FieldPanel("perex"),],
+            [
+                FieldPanel("headline"),
+                FieldPanel("perex"),
+            ],
             heading="Vyhledávací formulář",
         ),
     ]
@@ -278,7 +285,8 @@ class Program2021PointPage(Page, MetadataPageMixin):
             heading="základní informace",
         ),
         MultiFieldPanel(
-            [FieldPanel("owner_name"), FieldPanel("owner_url")], heading="garant",
+            [FieldPanel("owner_name"), FieldPanel("owner_url")],
+            heading="garant",
         ),
         StreamFieldPanel("images"),
         StreamFieldPanel("related"),
diff --git a/regulace_konopi/migrations/0001_initial.py b/regulace_konopi/migrations/0001_initial.py
index 078182ac1e6e9bcbe1fde933ff907a5db93f02b2..400b37fb4d9321f12b57bd06f2915599e434278d 100644
--- a/regulace_konopi/migrations/0001_initial.py
+++ b/regulace_konopi/migrations/0001_initial.py
@@ -157,7 +157,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Podstránka",},
+            options={
+                "verbose_name": "Podstránka",
+            },
             bases=(
                 "wagtailcore.page",
                 uniweb.models.SubpageMixin,
@@ -280,7 +282,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Regulace konpĂ­",},
+            options={
+                "verbose_name": "Regulace konpĂ­",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
diff --git a/regulace_konopi/models.py b/regulace_konopi/models.py
index 834aecc9a54d2b53ce04917ec20829a8761ffbea..810f40f9b13d4900fb53246042694b3afd498e53 100644
--- a/regulace_konopi/models.py
+++ b/regulace_konopi/models.py
@@ -1,6 +1,4 @@
 from django.db import models
-
-# Create your models here.
 from django.utils.translation import gettext_lazy
 from wagtail.admin import blocks
 from wagtail.admin.edit_handlers import (
@@ -92,7 +90,9 @@ class RegkonHomePage(MetadataPageMixin, Page):
         "Matomo ID pro sledování návštěvnosti", blank=True, null=True
     )
     top_menu = StreamField(
-        [("item", MenuItemBlock())], verbose_name="hornĂ­ menu", blank=True,
+        [("item", MenuItemBlock())],
+        verbose_name="hornĂ­ menu",
+        blank=True,
     )
 
     ### PANELS
diff --git a/search/views.py b/search/views.py
index ef20987c5157a14f0df23c172e2caefd837d985b..40d08c0670ddb2e212e4d66aa287b8465e205598 100644
--- a/search/views.py
+++ b/search/views.py
@@ -30,5 +30,8 @@ def search(request):
     return render(
         request,
         "search/search.html",
-        {"search_query": search_query, "search_results": search_results,},
+        {
+            "search_query": search_query,
+            "search_results": search_results,
+        },
     )
diff --git a/senat_campaign/migrations/0001_initial.py b/senat_campaign/migrations/0001_initial.py
index b8a967edb7bf7f21bc8873e0b87d73eb1a0daf3d..aca262c1184f462e0dcf55eeebfef38a006886c2 100644
--- a/senat_campaign/migrations/0001_initial.py
+++ b/senat_campaign/migrations/0001_initial.py
@@ -37,7 +37,9 @@ class Migration(migrations.Migration):
                     wagtail.core.fields.RichTextField(blank=True, verbose_name="obsah"),
                 ),
             ],
-            options={"verbose_name": "Cookies",},
+            options={
+                "verbose_name": "Cookies",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -55,7 +57,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Aktuality",},
+            options={
+                "verbose_name": "Aktuality",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -126,7 +130,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Program",},
+            options={
+                "verbose_name": "Program",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -222,7 +228,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Senát kampaň",},
+            options={
+                "verbose_name": "Senát kampaň",
+            },
         ),
         migrations.CreateModel(
             name="SenatCampaignNewsPage",
@@ -257,7 +265,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Aktualita",},
+            options={
+                "verbose_name": "Aktualita",
+            },
             bases=("wagtailcore.page",),
         ),
         migrations.CreateModel(
@@ -372,7 +382,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Senát kampaň",},
+            options={
+                "verbose_name": "Senát kampaň",
+            },
             bases=("wagtailcore.page",),
         ),
     ]
diff --git a/senat_campaign/migrations/0005_delete_senatcampaignwebsettings.py b/senat_campaign/migrations/0005_delete_senatcampaignwebsettings.py
index 47c4a3fdee4364816b1cf48e6d25aacde5b6f235..9c66839c3c7976368d1241f17afff7bed61891d1 100644
--- a/senat_campaign/migrations/0005_delete_senatcampaignwebsettings.py
+++ b/senat_campaign/migrations/0005_delete_senatcampaignwebsettings.py
@@ -10,5 +10,7 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
-        migrations.DeleteModel(name="SenatCampaignWebSettings",),
+        migrations.DeleteModel(
+            name="SenatCampaignWebSettings",
+        ),
     ]
diff --git a/senat_campaign/models.py b/senat_campaign/models.py
index dde1a117fbf8d7288280a02ecde1189d120a35f2..33bcf2d7e426a7c55fed48230a703c09c31f5fc2 100644
--- a/senat_campaign/models.py
+++ b/senat_campaign/models.py
@@ -145,7 +145,10 @@ class SenatCampaignHomePage(Page, MetadataPageMixin, CalendarMixin):
             heading="Ăşvod",
         ),
         MultiFieldPanel(
-            [ImageChooserPanel("top_photo"), FieldPanel("claim"),],
+            [
+                ImageChooserPanel("top_photo"),
+                FieldPanel("claim"),
+            ],
             heading="ĂşvodnĂ­ foto",
         ),
         MultiFieldPanel(
diff --git a/senate/migrations/0001_initial.py b/senate/migrations/0001_initial.py
index 0f949c603f4509536cc2d8c6f04c24b5b0e17d68..d9f6ea52911735a74c93e02f219b90108e07a575 100644
--- a/senate/migrations/0001_initial.py
+++ b/senate/migrations/0001_initial.py
@@ -155,7 +155,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Senát",},
+            options={
+                "verbose_name": "Senát",
+            },
             bases=("wagtailcore.page",),
         ),
     ]
diff --git a/senate/migrations/0003_auto_20200702_1831.py b/senate/migrations/0003_auto_20200702_1831.py
index 07895bddaf64c294fc7664021857c98dbd537e9a..71f35d5daa16fcabdfc37a444731792b00c3f639 100644
--- a/senate/migrations/0003_auto_20200702_1831.py
+++ b/senate/migrations/0003_auto_20200702_1831.py
@@ -11,6 +11,7 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.AlterModelOptions(
-            name="senatehomepage", options={"verbose_name": "Senátní rozcestník"},
+            name="senatehomepage",
+            options={"verbose_name": "Senátní rozcestník"},
         ),
     ]
diff --git a/shared/migrations/0001_initial.py b/shared/migrations/0001_initial.py
index 495fb8cbf4febb1f3018b58994d17f73005218dd..258de701db3bd719b60aa720f6455f3bbb761297 100644
--- a/shared/migrations/0001_initial.py
+++ b/shared/migrations/0001_initial.py
@@ -90,7 +90,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Článek",},
+            options={
+                "verbose_name": "Článek",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
diff --git a/shared/migrations/0002_auto_20201007_0933.py b/shared/migrations/0002_auto_20201007_0933.py
index b1e5d69c00badb7b93e7378293b08dffce5571fc..6534c9333d53e10242ad4f19393a6f065e175f0f 100644
--- a/shared/migrations/0002_auto_20201007_0933.py
+++ b/shared/migrations/0002_auto_20201007_0933.py
@@ -42,12 +42,16 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Článek",},
+            options={
+                "verbose_name": "Článek",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
                 models.Model,
             ),
         ),
-        migrations.DeleteModel(name="SharedArticle",),
+        migrations.DeleteModel(
+            name="SharedArticle",
+        ),
     ]
diff --git a/shared/migrations/0005_auto_20201007_1028.py b/shared/migrations/0005_auto_20201007_1028.py
index 6a71466287349dcf0ed41617b84ad51d5d3d9509..b601a4f4c1f810525c92ec596a1cb1fa3d8bcfff 100644
--- a/shared/migrations/0005_auto_20201007_1028.py
+++ b/shared/migrations/0005_auto_20201007_1028.py
@@ -41,7 +41,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"abstract": False,},
+            options={
+                "abstract": False,
+            },
         ),
         migrations.AddField(
             model_name="article",
diff --git a/shared/migrations/0006_personpage.py b/shared/migrations/0006_personpage.py
index eaf40c5056af25b1348b0591d7ff5f9db85d1d04..d8e27a71a1e1ab006d4108fefc0d699015fcca00 100644
--- a/shared/migrations/0006_personpage.py
+++ b/shared/migrations/0006_personpage.py
@@ -29,7 +29,9 @@ class Migration(migrations.Migration):
                 ("pirate_id", models.TextField(verbose_name="Pirate ID osoby")),
                 ("perex", models.TextField(blank=True, verbose_name="Perex osoby")),
             ],
-            options={"verbose_name": "Člověk",},
+            options={
+                "verbose_name": "Člověk",
+            },
             bases=("wagtailcore.page",),
         ),
     ]
diff --git a/shared/migrations/0007_peoplepage.py b/shared/migrations/0007_peoplepage.py
index 154b35ddc42e72278aa48f7b5a6164a4db5e13f8..7d5c3269e331eb24836f843f33cfde999d5800bd 100644
--- a/shared/migrations/0007_peoplepage.py
+++ b/shared/migrations/0007_peoplepage.py
@@ -40,7 +40,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Stránka Lidé",},
+            options={
+                "verbose_name": "Stránka Lidé",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
diff --git a/shared/migrations/0009_remove_article_author.py b/shared/migrations/0009_remove_article_author.py
index b2eab9f311148816dd85535606f5167ace7ebf0a..c42fe614587c131ee29b4745a5aa80f3be7eaab9 100644
--- a/shared/migrations/0009_remove_article_author.py
+++ b/shared/migrations/0009_remove_article_author.py
@@ -10,5 +10,8 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
-        migrations.RemoveField(model_name="article", name="author",),
+        migrations.RemoveField(
+            model_name="article",
+            name="author",
+        ),
     ]
diff --git a/shared/migrations/0013_auto_20201104_1053.py b/shared/migrations/0013_auto_20201104_1053.py
index 92f5df8ec9824ef9fd34fccc7829926b93758803..aa135331fcdb6172f41447374697cc67acebe55e 100644
--- a/shared/migrations/0013_auto_20201104_1053.py
+++ b/shared/migrations/0013_auto_20201104_1053.py
@@ -11,6 +11,8 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.RenameField(
-            model_name="personpage", old_name="pirate_id", new_name="username",
+            model_name="personpage",
+            old_name="pirate_id",
+            new_name="username",
         ),
     ]
diff --git a/shared/migrations/0014_auto_20201104_1134.py b/shared/migrations/0014_auto_20201104_1134.py
index 2566564697cb39bf43f372d06860a4e2342754c4..0bbe1292b4c54f86b93e66b337b60b551e53a314 100644
--- a/shared/migrations/0014_auto_20201104_1134.py
+++ b/shared/migrations/0014_auto_20201104_1134.py
@@ -1,7 +1,7 @@
 # Generated by Django 3.1.1 on 2020-11-04 10:34
 
-from django.db import migrations
 import wagtail.core.fields
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
diff --git a/shared/models.py b/shared/models.py
index 66ba50126356bee0756526151276ea8723656f24..462ec6b7c00a2ff0e1e838408d00caf8e388026b 100644
--- a/shared/models.py
+++ b/shared/models.py
@@ -4,12 +4,12 @@ import random
 import requests
 import requests_cache
 from django.core.validators import MaxValueValidator, MinValueValidator
-from wagtail.core.fields import RichTextField
 from django.db import models
 from modelcluster.contrib.taggit import ClusterTaggableManager
 from modelcluster.fields import ParentalKey
 from taggit.models import TaggedItemBase
 from wagtail.admin.edit_handlers import FieldPanel, HelpPanel
+from wagtail.core.fields import RichTextField
 from wagtail.core.models import Page
 from wagtail.images.edit_handlers import ImageChooserPanel
 from wagtailmetadata.models import MetadataPageMixin
@@ -93,9 +93,9 @@ class Article(ArticleMixin, Page, SharedSubpageMixin, MetadataPageMixin):
 
 
 class PersonPage(SharedSubpageMixin, MetadataPageMixin, Page):
-    """ Stranka Pirata.
-        Snaha je zadavat tady minimum informaci o osobe a zbytek vytahovat via API z jinych zdroju,
-        neb nechceme dalsi databazi lidi.
+    """Stranka Pirata.
+    Snaha je zadavat tady minimum informaci o osobe a zbytek vytahovat via API z jinych zdroju,
+    neb nechceme dalsi databazi lidi.
     """
 
     # ve formatu iapi: https://iapi.pirati.cz/v1/user?username=john.doe
diff --git a/uniweb/migrations/0001_initial.py b/uniweb/migrations/0001_initial.py
index a66edfeba9657ce2b525b7bd63f9bddea18c788f..906b56e9f080b558ee637b08ca6b8e79da7dc566 100644
--- a/uniweb/migrations/0001_initial.py
+++ b/uniweb/migrations/0001_initial.py
@@ -148,7 +148,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Univerzální web",},
+            options={
+                "verbose_name": "Univerzální web",
+            },
             bases=(
                 wagtailmetadata.models.MetadataMixin,
                 "wagtailcore.page",
@@ -247,7 +249,9 @@ class Migration(migrations.Migration):
                     ),
                 ),
             ],
-            options={"verbose_name": "Flexibilní stránka",},
+            options={
+                "verbose_name": "Flexibilní stránka",
+            },
             bases=(
                 "wagtailcore.page",
                 uniweb.models.SubpageMixin,
diff --git a/uniweb/models.py b/uniweb/models.py
index 2e9e00f4dfad9c53121c917841dcfc8b8293ead7..867bdce598fff81eb95381f19b662de6009b197f 100644
--- a/uniweb/models.py
+++ b/uniweb/models.py
@@ -88,7 +88,10 @@ class UniwebHomePage(MetadataPageMixin, Page):
             ),
             (
                 "table",
-                TableBlock(label="tabulka", template="uniweb/snippet_table.html",),
+                TableBlock(
+                    label="tabulka",
+                    template="uniweb/snippet_table.html",
+                ),
             ),
             ("jupyter", DocumentChooserBlock(label="Jupyter notebook")),
         ],
@@ -100,7 +103,9 @@ class UniwebHomePage(MetadataPageMixin, Page):
         "Matomo ID pro sledování návštěvnosti", blank=True, null=True
     )
     top_menu = StreamField(
-        [("item", MenuItemBlock())], verbose_name="hornĂ­ menu", blank=True,
+        [("item", MenuItemBlock())],
+        verbose_name="hornĂ­ menu",
+        blank=True,
     )
 
     ### PANELS
@@ -158,7 +163,10 @@ class UniwebFlexiblePage(Page, SubpageMixin, MetadataPageMixin):
             ),
             (
                 "table",
-                TableBlock(label="tabulka", template="uniweb/snippet_table.html",),
+                TableBlock(
+                    label="tabulka",
+                    template="uniweb/snippet_table.html",
+                ),
             ),
             ("jupyter", DocumentChooserBlock(label="Jupyter notebook")),
         ],
diff --git a/uniweb/templatetags/uniweb_filters.py b/uniweb/templatetags/uniweb_filters.py
index bf858a057486ae5d43b27aacde809fc7985c6010..95b7390e21c8f85011f1c2ebec4052ed65327a30 100644
--- a/uniweb/templatetags/uniweb_filters.py
+++ b/uniweb/templatetags/uniweb_filters.py
@@ -12,8 +12,8 @@ register = template.Library()
 
 @register.filter
 def jupyterize(value):
-    """ Exportuje jupyterovsky notebook do raw HTML s vyuzitim vlastnich templates.
-        Vynechava tagy
+    """Exportuje jupyterovsky notebook do raw HTML s vyuzitim vlastnich templates.
+    Vynechava tagy
     """
 
     # lokalni soubor