diff --git a/addressfield/fields.py b/addressfield/fields.py
index 8a7338237e99f2c343143c201819eee139eccd37..ad0887b41390bab21525f5298991c8305c86e274 100644
--- a/addressfield/fields.py
+++ b/addressfield/fields.py
@@ -6,7 +6,6 @@ from django.core.exceptions import ValidationError
 
 from .widgets import AddressWidget
 
-
 basepath = path.dirname(__file__)
 filepath = path.abspath(path.join(basepath, "static", "addressfield.min.json"))
 with open(filepath, encoding='utf8') as address_data:
diff --git a/addressfield/widgets.py b/addressfield/widgets.py
index 3b85a1f5ac725a5b86820a572fd787a6dedaa8d5..e8561b09e9f0c12ae9bed310e6a7db0fdbba8273 100644
--- a/addressfield/widgets.py
+++ b/addressfield/widgets.py
@@ -1,5 +1,4 @@
 from django import forms
-
 from django_countries import countries
 from django_select2.forms import Select2Widget
 
diff --git a/hypha/apply/activity/admin.py b/hypha/apply/activity/admin.py
index 11d7238c6b4652b7912534b3786a58316ced1cec..ba4883b4e30c9b8236045d184eb14d9022ff4e70 100644
--- a/hypha/apply/activity/admin.py
+++ b/hypha/apply/activity/admin.py
@@ -1,4 +1,5 @@
 from django.contrib import admin
+
 from .models import Event, Message
 
 
diff --git a/hypha/apply/activity/forms.py b/hypha/apply/activity/forms.py
index af781fb6222cb0913935d5cdc4c5a9abffdaf20a..13462fa88b3bb7182a97fc6c0fbfb7a588514e4d 100644
--- a/hypha/apply/activity/forms.py
+++ b/hypha/apply/activity/forms.py
@@ -1,10 +1,9 @@
 from django import forms
 from django.core.exceptions import ValidationError
 from django.utils.safestring import mark_safe
-
 from pagedown.widgets import PagedownWidget
 
-from .models import Activity, VISIBILILTY_HELP_TEXT, VISIBILITY
+from .models import VISIBILILTY_HELP_TEXT, VISIBILITY, Activity
 
 
 class CommentForm(forms.ModelForm):
diff --git a/hypha/apply/activity/management/commands/migrate_comments.py b/hypha/apply/activity/management/commands/migrate_comments.py
index 3b9e326f836d6d9be02df4a328534a391016e9ad..728d795315b5f5b206c21857cb60d814aa231164 100644
--- a/hypha/apply/activity/management/commands/migrate_comments.py
+++ b/hypha/apply/activity/management/commands/migrate_comments.py
@@ -1,6 +1,5 @@
 import argparse
 import json
-
 from datetime import datetime, timezone
 
 from django.contrib.auth import get_user_model
diff --git a/hypha/apply/activity/messaging.py b/hypha/apply/activity/messaging.py
index 6ef6fe78515958b86ff620502edaf8e3259b9cbb..d3872bab38d50dae1de453ee8274f38937cd9a0a 100644
--- a/hypha/apply/activity/messaging.py
+++ b/hypha/apply/activity/messaging.py
@@ -1,16 +1,16 @@
 import json
-import requests
 import logging
 from collections import defaultdict
 
-from django.db import models
+import requests
 from django.conf import settings
 from django.contrib import messages
 from django.contrib.auth import get_user_model
+from django.db import models
 from django.template.loader import render_to_string
 from django.utils import timezone
 
-from .models import TEAM, ALL
+from .models import ALL, TEAM
 from .options import MESSAGES
 from .tasks import send_mail
 
diff --git a/hypha/apply/activity/models.py b/hypha/apply/activity/models.py
index 82b87a65445c2510d139a0696a9e6243a5ccd588..e8908e38dd6ac6c179fbc2a8f9e49e06386919d7 100644
--- a/hypha/apply/activity/models.py
+++ b/hypha/apply/activity/models.py
@@ -2,12 +2,11 @@ from django.conf import settings
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.contrib.contenttypes.models import ContentType
 from django.db import models
-from django.db.models import Case, When, Value
+from django.db.models import Case, Value, When
 from django.db.models.functions import Concat
 
 from .options import MESSAGES
 
-
 COMMENT = 'comment'
 ACTION = 'action'
 
diff --git a/hypha/apply/activity/tasks.py b/hypha/apply/activity/tasks.py
index 569c2775323dcce3630b021ab52e3d5280f62e8b..247c8ceda95de33fc5cd4d347528d1a1181f45fc 100644
--- a/hypha/apply/activity/tasks.py
+++ b/hypha/apply/activity/tasks.py
@@ -1,5 +1,4 @@
 from celery import Celery
-
 from django.conf import settings
 from django.core.mail import EmailMessage
 
diff --git a/hypha/apply/activity/templatetags/activity_tags.py b/hypha/apply/activity/templatetags/activity_tags.py
index 758210d56ebfaea671b625525bfb009e1611e51a..0e6cb23846bb90cdfc300a00c95e2c3d9f7b87e1 100644
--- a/hypha/apply/activity/templatetags/activity_tags.py
+++ b/hypha/apply/activity/templatetags/activity_tags.py
@@ -6,7 +6,7 @@ from hypha.apply.determinations.models import Determination
 from hypha.apply.projects.models import Contract
 from hypha.apply.review.models import Review
 
-from ..models import TEAM, ALL, REVIEWER
+from ..models import ALL, REVIEWER, TEAM
 
 register = template.Library()
 
diff --git a/hypha/apply/activity/tests/factories.py b/hypha/apply/activity/tests/factories.py
index d26b0f03e35266eb5976ff2e03eca95073e4d2c4..da49d6f5097a7b4fba6bb1f1f21d6c379feba00e 100644
--- a/hypha/apply/activity/tests/factories.py
+++ b/hypha/apply/activity/tests/factories.py
@@ -3,7 +3,14 @@ import uuid
 import factory
 from django.utils import timezone
 
-from hypha.apply.activity.models import Activity, Event, TEAM, Message, MESSAGES, REVIEWER
+from hypha.apply.activity.models import (
+    MESSAGES,
+    REVIEWER,
+    TEAM,
+    Activity,
+    Event,
+    Message,
+)
 from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory
 from hypha.apply.users.tests.factories import UserFactory
 
diff --git a/hypha/apply/activity/tests/test_messaging.py b/hypha/apply/activity/tests/test_messaging.py
index 5c9620fca406c125250af0db360257a90cb29fee..73e9ab5ad252fc929c7e429bfd612261ff014541 100644
--- a/hypha/apply/activity/tests/test_messaging.py
+++ b/hypha/apply/activity/tests/test_messaging.py
@@ -4,39 +4,35 @@ import json
 from unittest.mock import Mock, patch
 
 import responses
-
+from django.contrib.messages import get_messages
 from django.core import mail
 from django.test import TestCase, override_settings
-from django.contrib.messages import get_messages
 
-from hypha.apply.utils.testing import make_request
 from hypha.apply.funds.tests.factories import (
     ApplicationSubmissionFactory,
     AssignedReviewersFactory,
     AssignedWithRoleReviewersFactory,
 )
+from hypha.apply.projects.tests.factories import PaymentRequestFactory, ProjectFactory
 from hypha.apply.review.tests.factories import ReviewFactory
 from hypha.apply.users.tests.factories import (
     ApplicantFactory,
     ReviewerFactory,
     StaffFactory,
-    UserFactory
-)
-from hypha.apply.projects.tests.factories import (
-    ProjectFactory,
-    PaymentRequestFactory
+    UserFactory,
 )
+from hypha.apply.utils.testing import make_request
 
-from ..models import Activity, Event, Message, TEAM, ALL
 from ..messaging import (
-    AdapterBase,
+    MESSAGES,
     ActivityAdapter,
+    AdapterBase,
     EmailAdapter,
     MessengerBackend,
-    neat_related,
-    MESSAGES,
     SlackAdapter,
+    neat_related,
 )
+from ..models import ALL, TEAM, Activity, Event, Message
 from .factories import CommentFactory, EventFactory, MessageFactory
 
 
diff --git a/hypha/apply/activity/tests/test_models.py b/hypha/apply/activity/tests/test_models.py
index 2230036f34e6a4796565d09f05f6e7cc52515d80..4331229a1ec12a185cb07b19af98590e4078334d 100644
--- a/hypha/apply/activity/tests/test_models.py
+++ b/hypha/apply/activity/tests/test_models.py
@@ -1,7 +1,7 @@
 from django.test import TestCase
 
-from .factories import CommentFactory
 from ..models import Activity
+from .factories import CommentFactory
 
 
 class TestActivityOnlyIncludesCurrent(TestCase):
diff --git a/hypha/apply/activity/tests/test_tasks.py b/hypha/apply/activity/tests/test_tasks.py
index 42e1482b2882d3122b19224fdc5bce6e20a6cffb..163ffcbbd945e068d0a5a69a7e6305fb777797f9 100644
--- a/hypha/apply/activity/tests/test_tasks.py
+++ b/hypha/apply/activity/tests/test_tasks.py
@@ -3,7 +3,6 @@ from unittest.mock import patch
 from django.test import TestCase
 
 from ..tasks import send_mail
-
 from .factories import MessageFactory
 
 
diff --git a/hypha/apply/activity/urls.py b/hypha/apply/activity/urls.py
index cdad5c3af33c762c1c1758d709d10609ac7b4078..19c0855275d45f3e4ee2837471121ea044a2d764 100644
--- a/hypha/apply/activity/urls.py
+++ b/hypha/apply/activity/urls.py
@@ -1,6 +1,5 @@
 from django.urls import include, path
 
-
 app_name = 'activity'
 
 
diff --git a/hypha/apply/activity/views.py b/hypha/apply/activity/views.py
index bc0f58c83ddbbce0de9d24c0399c84bf1ff96cd0..7b75221f084be8092a1fbf1062a7b649c4cf138e 100644
--- a/hypha/apply/activity/views.py
+++ b/hypha/apply/activity/views.py
@@ -1,11 +1,11 @@
-from django.views.generic import CreateView
 from django.utils import timezone
+from django.views.generic import CreateView
 
 from hypha.apply.utils.views import DelegatedViewMixin
 
 from .forms import CommentForm
-from .messaging import messenger, MESSAGES
-from .models import Activity, COMMENT
+from .messaging import MESSAGES, messenger
+from .models import COMMENT, Activity
 
 
 class ActivityContextMixin:
diff --git a/hypha/apply/api/v1/serializers.py b/hypha/apply/api/v1/serializers.py
index 7efb05b1b84e61b9b593e4c7fd54f85be309b5cd..ba8ccc4530a85689f73cb742f45a1d493d43ecb2 100644
--- a/hypha/apply/api/v1/serializers.py
+++ b/hypha/apply/api/v1/serializers.py
@@ -1,7 +1,5 @@
 import mistune
-
 from django.contrib.auth import get_user_model
-
 from django_bleach.templatetags.bleach_tags import bleach_value
 from rest_framework import serializers
 
diff --git a/hypha/apply/api/v1/tests/test_serializers.py b/hypha/apply/api/v1/tests/test_serializers.py
index f2905558de461c9d0147dca25b64820770d43eb6..fb460f8542d85b422fe94878c58e173606d86729 100644
--- a/hypha/apply/api/v1/tests/test_serializers.py
+++ b/hypha/apply/api/v1/tests/test_serializers.py
@@ -1,4 +1,4 @@
-from django.test import override_settings, TestCase
+from django.test import TestCase, override_settings
 
 from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory
 from hypha.apply.review.tests.factories import ReviewFactory
diff --git a/hypha/apply/api/v1/tests/test_views.py b/hypha/apply/api/v1/tests/test_views.py
index 10923edbf2c3646c541a302622185ca090e397ea..07e356baffcbbdf31508f392be66bf0c924bfcad 100644
--- a/hypha/apply/api/v1/tests/test_views.py
+++ b/hypha/apply/api/v1/tests/test_views.py
@@ -1,9 +1,8 @@
 from django.test import TestCase, override_settings
 from django.urls import reverse_lazy
 
-from hypha.apply.activity.models import Activity, APPLICANT, ALL
+from hypha.apply.activity.models import ALL, APPLICANT, Activity
 from hypha.apply.activity.tests.factories import CommentFactory
-
 from hypha.apply.users.tests.factories import UserFactory
 
 
diff --git a/hypha/apply/api/v1/urls.py b/hypha/apply/api/v1/urls.py
index df7f62c6de314c09b97f47534f16ad12ea6e9768..102a359202867b8098c0e14b507723f3288befbc 100644
--- a/hypha/apply/api/v1/urls.py
+++ b/hypha/apply/api/v1/urls.py
@@ -7,8 +7,8 @@ from .views import (
     RoundLabDetail,
     RoundLabList,
     SubmissionAction,
-    SubmissionList,
     SubmissionDetail,
+    SubmissionList,
 )
 
 app_name = 'v1'
diff --git a/hypha/apply/api/v1/views.py b/hypha/apply/api/v1/views.py
index 8cefcbcd4a6de117f087ef8549f30750f3d1577b..668a623344a456ac720cbb24a7be746966b055a1 100644
--- a/hypha/apply/api/v1/views.py
+++ b/hypha/apply/api/v1/views.py
@@ -1,37 +1,37 @@
 from django.core.exceptions import PermissionDenied as DjangoPermissionDenied
 from django.db import transaction
-from django.db.models import Q, Prefetch
+from django.db.models import Prefetch, Q
 from django.utils import timezone
-
-from wagtail.core.models import Page
-
+from django_filters import rest_framework as filters
 from rest_framework import generics, mixins, permissions
+from rest_framework.exceptions import NotFound, PermissionDenied, ValidationError
 from rest_framework.response import Response
-from rest_framework.exceptions import (NotFound, PermissionDenied,
-                                       ValidationError)
 from rest_framework_api_key.permissions import HasAPIKey
-from django_filters import rest_framework as filters
-
-from hypha.apply.funds.models import ApplicationSubmission, RoundsAndLabs
-from hypha.apply.funds.workflow import PHASES
+from wagtail.core.models import Page
 
-from hypha.apply.activity.models import Activity, COMMENT
-from hypha.apply.activity.messaging import messenger, MESSAGES
+from hypha.apply.activity.messaging import MESSAGES, messenger
+from hypha.apply.activity.models import COMMENT, Activity
 from hypha.apply.determinations.views import DeterminationCreateOrUpdateView
+from hypha.apply.funds.models import (
+    ApplicationSubmission,
+    FundType,
+    LabType,
+    RoundsAndLabs,
+)
+from hypha.apply.funds.workflow import PHASES
 from hypha.apply.review.models import Review
-from hypha.apply.funds.models import FundType, LabType
 
 from .pagination import StandardResultsSetPagination
 from .permissions import IsApplyStaffUser, IsAuthor
 from .serializers import (
-    CommentSerializer,
     CommentCreateSerializer,
     CommentEditSerializer,
+    CommentSerializer,
     RoundLabDetailSerializer,
     RoundLabSerializer,
     SubmissionActionSerializer,
-    SubmissionListSerializer,
     SubmissionDetailSerializer,
+    SubmissionListSerializer,
 )
 
 
diff --git a/hypha/apply/categories/admin_helpers.py b/hypha/apply/categories/admin_helpers.py
index 6937b6b342ff387d1a9d293d97bd725f87470a36..f803d14413cea732d89f84874f10a26196fff6f7 100644
--- a/hypha/apply/categories/admin_helpers.py
+++ b/hypha/apply/categories/admin_helpers.py
@@ -1,5 +1,4 @@
 from django.contrib.admin.utils import quote
-
 from wagtail.contrib.modeladmin.helpers import ButtonHelper
 
 
diff --git a/hypha/apply/categories/admin_views.py b/hypha/apply/categories/admin_views.py
index 98faa64a6489dfcc4e50e8eab0c00a52445faab5..96c6f96955e12b2be3b6ca853b3afe5d6562ac89 100644
--- a/hypha/apply/categories/admin_views.py
+++ b/hypha/apply/categories/admin_views.py
@@ -1,6 +1,5 @@
 from django.contrib.admin.utils import unquote
 from django.shortcuts import get_object_or_404
-
 from wagtail.contrib.modeladmin.views import CreateView
 
 
diff --git a/hypha/apply/categories/blocks.py b/hypha/apply/categories/blocks.py
index bb6b2cf9287bf134e0caf21d34fa1498d5d6e224..13e0f75e9e06449eb25771bf16032e1b3ba7a767 100644
--- a/hypha/apply/categories/blocks.py
+++ b/hypha/apply/categories/blocks.py
@@ -1,12 +1,11 @@
 from django import forms
-from django.utils.functional import cached_property, SimpleLazyObject
+from django.utils.functional import SimpleLazyObject, cached_property
 from django.utils.translation import ugettext_lazy as _
-
+from django_select2.forms import Select2MultipleWidget
 from wagtail.core.blocks import BooleanBlock, CharBlock, ChooserBlock, TextBlock
 from wagtail.core.utils import resolve_model_string
 
 from hypha.apply.stream_forms.blocks import OptionalFormFieldBlock
-from django_select2.forms import Select2MultipleWidget
 
 
 class ModelChooserBlock(ChooserBlock):
diff --git a/hypha/apply/categories/management/commands/seed_categories.py b/hypha/apply/categories/management/commands/seed_categories.py
index 660e0033899d8342fb31ce99b30b37d0502c7a05..e5b0526db74c296293a7e82eb382b94ffb90a1a1 100644
--- a/hypha/apply/categories/management/commands/seed_categories.py
+++ b/hypha/apply/categories/management/commands/seed_categories.py
@@ -1,8 +1,8 @@
 from django.core.management.base import BaseCommand
 from django.db import transaction
 
-from hypha.apply.categories.models import Category, Option
 from hypha.apply.categories.categories_seed import CATEGORIES
+from hypha.apply.categories.models import Category, Option
 
 
 class Command(BaseCommand):
diff --git a/hypha/apply/categories/models.py b/hypha/apply/categories/models.py
index a21ec1a12f7227103e40f60527f9164e7c16f452..e5d508b03a10956e8552d4ea708a29d92c53f433 100644
--- a/hypha/apply/categories/models.py
+++ b/hypha/apply/categories/models.py
@@ -3,21 +3,15 @@ from django.core.exceptions import PermissionDenied
 from django.db import models
 from django.template.loader import render_to_string
 from django.utils.translation import ugettext_lazy as _
-
 from modelcluster.fields import ParentalKey
 from modelcluster.models import ClusterableModel
-from wagtail.admin.edit_handlers import (
-    FieldPanel,
-    InlinePanel,
-    MultiFieldPanel,
-)
+from treebeard.mp_tree import MP_Node
+from wagtail.admin.edit_handlers import FieldPanel, InlinePanel, MultiFieldPanel
 from wagtail.admin.forms import WagtailAdminModelForm
 from wagtail.core.fields import RichTextField
 from wagtail.core.models import Orderable
 from wagtail.search import index
 
-from treebeard.mp_tree import MP_Node
-
 
 class Option(Orderable):
     value = models.CharField(max_length=255)
diff --git a/hypha/apply/dashboard/tests/test_views.py b/hypha/apply/dashboard/tests/test_views.py
index eeee74dcc647211ec9695996b772fb1e3b10510e..493c870c7038d32372624f25d0f710c3f7962c51 100644
--- a/hypha/apply/dashboard/tests/test_views.py
+++ b/hypha/apply/dashboard/tests/test_views.py
@@ -1,6 +1,6 @@
 from hypha.apply.funds.tests.factories import (
-    ApplicationSubmissionFactory,
     ApplicationRevisionFactory,
+    ApplicationSubmissionFactory,
     InvitedToProposalFactory,
 )
 from hypha.apply.projects.models import (
@@ -11,17 +11,14 @@ from hypha.apply.projects.models import (
     SUBMITTED,
     UNDER_REVIEW,
 )
-from hypha.apply.projects.tests.factories import (
-    PaymentRequestFactory,
-    ProjectFactory
-)
+from hypha.apply.projects.tests.factories import PaymentRequestFactory, ProjectFactory
 from hypha.apply.review.tests.factories import ReviewFactory, ReviewOpinionFactory
 from hypha.apply.users.groups import APPROVER_GROUP_NAME
 from hypha.apply.users.tests.factories import (
     ApplicantFactory,
     GroupFactory,
     ReviewerFactory,
-    StaffFactory
+    StaffFactory,
 )
 from hypha.apply.utils.testing.tests import BaseViewTestCase
 
diff --git a/hypha/apply/dashboard/urls.py b/hypha/apply/dashboard/urls.py
index d8710de3c1d3730bf0ac5960335a8e549ba8e85f..1c906f43b08660fb471cab4ddb5ead6a499067ec 100644
--- a/hypha/apply/dashboard/urls.py
+++ b/hypha/apply/dashboard/urls.py
@@ -2,7 +2,6 @@ from django.urls import path
 
 from .views import DashboardView
 
-
 app_name = 'dashboard'
 
 urlpatterns = [
diff --git a/hypha/apply/dashboard/views.py b/hypha/apply/dashboard/views.py
index 735b1c1f24b3603ab44b87f605ef00d7d82ec79e..9ed14ac5fbf034544e7d86b1176afd423bf33626 100644
--- a/hypha/apply/dashboard/views.py
+++ b/hypha/apply/dashboard/views.py
@@ -12,16 +12,13 @@ from hypha.apply.funds.tables import (
     SubmissionsTable,
     SummarySubmissionsTable,
     SummarySubmissionsTableWithRole,
-    review_filter_for_user
+    review_filter_for_user,
 )
 from hypha.apply.projects.filters import ProjectListFilter
-from hypha.apply.projects.models import (
-    PaymentRequest,
-    Project
-)
+from hypha.apply.projects.models import PaymentRequest, Project
 from hypha.apply.projects.tables import (
     PaymentRequestsDashboardTable,
-    ProjectsDashboardTable
+    ProjectsDashboardTable,
 )
 from hypha.apply.utils.views import ViewDispatcher
 
diff --git a/hypha/apply/dashboard/wagtail_hooks.py b/hypha/apply/dashboard/wagtail_hooks.py
index 6c466b05ce871742d336221e9e71db09cb000a35..6d4cc3dd16b1f5c9be5b89e892654582d4fa5c3b 100644
--- a/hypha/apply/dashboard/wagtail_hooks.py
+++ b/hypha/apply/dashboard/wagtail_hooks.py
@@ -1,9 +1,8 @@
 from urllib.parse import urljoin
 
 from django.urls import reverse
-
-from wagtail.core import hooks
 from wagtail.admin.menu import MenuItem
+from wagtail.core import hooks
 
 from hypha.apply.home.models import ApplyHomePage
 
diff --git a/hypha/apply/determinations/forms.py b/hypha/apply/determinations/forms.py
index 51604b433a8dc6db29ba2f36c1a3871a91e466a5..1e3daf4e9400208dfc6ab5ec676f43de1baf912c 100644
--- a/hypha/apply/determinations/forms.py
+++ b/hypha/apply/determinations/forms.py
@@ -2,14 +2,14 @@ from django import forms
 from django.contrib.auth import get_user_model
 from django.core.exceptions import NON_FIELD_ERRORS
 
-from hypha.apply.utils.fields import RichTextField
 from hypha.apply.funds.models import ApplicationSubmission
+from hypha.apply.utils.fields import RichTextField
 
 from .models import (
-    Determination,
-    DeterminationFormSettings,
     DETERMINATION_CHOICES,
     TRANSITION_DETERMINATION,
+    Determination,
+    DeterminationFormSettings,
 )
 from .utils import determination_actions
 
diff --git a/hypha/apply/determinations/management/commands/migrate_concept_determinations.py b/hypha/apply/determinations/management/commands/migrate_concept_determinations.py
index aca56786da4992caac706daddd7f414191f444bd..48078e6c694b89e654e75e836b5dc00a7d5737a1 100644
--- a/hypha/apply/determinations/management/commands/migrate_concept_determinations.py
+++ b/hypha/apply/determinations/management/commands/migrate_concept_determinations.py
@@ -1,6 +1,5 @@
 import argparse
 import json
-
 from datetime import datetime, timezone
 
 from django.contrib.auth import get_user_model
diff --git a/hypha/apply/determinations/management/commands/migrate_proposal_determinations.py b/hypha/apply/determinations/management/commands/migrate_proposal_determinations.py
index 644f10da13d621297bc8512f9145be5f97321624..4333565d77224b97b1d906acf6e75835e5b2a929 100644
--- a/hypha/apply/determinations/management/commands/migrate_proposal_determinations.py
+++ b/hypha/apply/determinations/management/commands/migrate_proposal_determinations.py
@@ -1,6 +1,5 @@
 import argparse
 import json
-
 from datetime import datetime, timezone
 
 from django.contrib.auth import get_user_model
diff --git a/hypha/apply/determinations/models.py b/hypha/apply/determinations/models.py
index 92695da35f6fcb2b296f6e07da5a5a137b1638b2..34abe12be3302805415106cb2f1954e2da8cf9a4 100644
--- a/hypha/apply/determinations/models.py
+++ b/hypha/apply/determinations/models.py
@@ -4,13 +4,17 @@ from django.contrib.postgres.fields import JSONField
 from django.db import models
 from django.urls import reverse
 from django.utils.translation import ugettext_lazy as _
-from wagtail.admin.edit_handlers import TabbedInterface, ObjectList, FieldPanel, MultiFieldPanel
+from wagtail.admin.edit_handlers import (
+    FieldPanel,
+    MultiFieldPanel,
+    ObjectList,
+    TabbedInterface,
+)
 from wagtail.contrib.settings.models import BaseSetting, register_setting
 from wagtail.core.fields import RichTextField
 
 from hypha.apply.funds.workflow import DETERMINATION_OUTCOMES
 
-
 REJECTED = 0
 NEEDS_MORE_INFO = 1
 ACCEPTED = 2
diff --git a/hypha/apply/determinations/tests/factories.py b/hypha/apply/determinations/tests/factories.py
index ab7bc79900e722b423573bf246431603a68046ab..53708005d129597526db4b7e10b5cceba4fa56f6 100644
--- a/hypha/apply/determinations/tests/factories.py
+++ b/hypha/apply/determinations/tests/factories.py
@@ -2,7 +2,7 @@ import factory
 
 from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory
 
-from ..models import Determination, ACCEPTED, NEEDS_MORE_INFO, REJECTED
+from ..models import ACCEPTED, NEEDS_MORE_INFO, REJECTED, Determination
 from ..views import get_form_for_stage
 
 
diff --git a/hypha/apply/determinations/tests/test_views.py b/hypha/apply/determinations/tests/test_views.py
index fea56814c2990702d7b87dff9350278c1d9b8076..1171319db3a8bb3dcd99058c42638fc49783c553 100644
--- a/hypha/apply/determinations/tests/test_views.py
+++ b/hypha/apply/determinations/tests/test_views.py
@@ -2,15 +2,15 @@ import urllib
 
 from django.contrib.messages.storage.fallback import FallbackStorage
 from django.contrib.sessions.middleware import SessionMiddleware
-from django.test import override_settings, RequestFactory
+from django.test import RequestFactory, override_settings
 from django.urls import reverse_lazy
 
 from hypha.apply.activity.models import Activity
-from hypha.apply.determinations.models import ACCEPTED, REJECTED, NEEDS_MORE_INFO
+from hypha.apply.determinations.models import ACCEPTED, NEEDS_MORE_INFO, REJECTED
 from hypha.apply.determinations.views import BatchDeterminationCreateView
-from hypha.apply.users.tests.factories import StaffFactory, UserFactory
 from hypha.apply.funds.models import ApplicationSubmission
 from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory
+from hypha.apply.users.tests.factories import StaffFactory, UserFactory
 from hypha.apply.utils.testing import BaseViewTestCase
 
 from .factories import DeterminationFactory
diff --git a/hypha/apply/determinations/views.py b/hypha/apply/determinations/views.py
index 37a3bf57aead9a45a96664ce904a2a97d67427a9..09f0f96736e23e4301df5ce4d437c7829b2d0d07 100644
--- a/hypha/apply/determinations/views.py
+++ b/hypha/apply/determinations/views.py
@@ -11,15 +11,15 @@ from django.urls import reverse_lazy
 from django.utils import timezone
 from django.utils.decorators import method_decorator
 from django.utils.translation import ugettext_lazy as _
-from django.views.generic import DetailView, CreateView
+from django.views.generic import CreateView, DetailView
 
+from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.activity.models import Activity
-from hypha.apply.activity.messaging import messenger, MESSAGES
 from hypha.apply.funds.models import ApplicationSubmission
 from hypha.apply.funds.workflow import DETERMINATION_OUTCOMES
 from hypha.apply.projects.models import Project
-from hypha.apply.utils.views import CreateOrUpdateView, ViewDispatcher
 from hypha.apply.users.decorators import staff_required
+from hypha.apply.utils.views import CreateOrUpdateView, ViewDispatcher
 
 from .forms import (
     BatchConceptDeterminationForm,
@@ -27,8 +27,12 @@ from .forms import (
     ConceptDeterminationForm,
     ProposalDeterminationForm,
 )
-from .models import Determination, DeterminationMessageSettings, NEEDS_MORE_INFO, TRANSITION_DETERMINATION
-
+from .models import (
+    NEEDS_MORE_INFO,
+    TRANSITION_DETERMINATION,
+    Determination,
+    DeterminationMessageSettings,
+)
 from .utils import (
     can_create_determination,
     can_edit_determination,
diff --git a/hypha/apply/flags/models.py b/hypha/apply/flags/models.py
index 726fd0be4a41e1546c38c343d3d915ed859e708e..d5fc714824329fb20bea0a9fd739e14da78d123f 100644
--- a/hypha/apply/flags/models.py
+++ b/hypha/apply/flags/models.py
@@ -1,7 +1,7 @@
 from django.conf import settings
-from django.db import models
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.contrib.contenttypes.models import ContentType
+from django.db import models
 
 
 class Flag(models.Model):
diff --git a/hypha/apply/flags/views.py b/hypha/apply/flags/views.py
index e806d450180b7f7878ed7968c8ca4b9da46d6c4f..9cff528b7546213008cecbbb54be120df122aa85 100644
--- a/hypha/apply/flags/views.py
+++ b/hypha/apply/flags/views.py
@@ -1,6 +1,6 @@
 from django.contrib.contenttypes.models import ContentType
+from django.http import HttpResponseNotAllowed, JsonResponse
 from django.utils.decorators import method_decorator
-from django.http import JsonResponse, HttpResponseNotAllowed
 from django.views import View
 
 from hypha.apply.funds.models import ApplicationSubmission
diff --git a/hypha/apply/funds/admin.py b/hypha/apply/funds/admin.py
index ed29bb65e3e41e6f757906c3d9420fb603082b65..53b97773f5c91ec8539150d2aaa84ca11f55edf3 100644
--- a/hypha/apply/funds/admin.py
+++ b/hypha/apply/funds/admin.py
@@ -4,21 +4,28 @@ from django.utils.safestring import mark_safe
 from wagtail.contrib.modeladmin.helpers import PermissionHelper
 from wagtail.contrib.modeladmin.options import ModelAdmin, ModelAdminGroup
 
+from hypha.apply.categories.admin import CategoryAdmin, MetaTermAdmin
 from hypha.apply.funds.models import ReviewerRole, ScreeningStatus
 from hypha.apply.review.admin import ReviewFormAdmin
 from hypha.apply.utils.admin import ListRelatedMixin
-from hypha.apply.categories.admin import CategoryAdmin, MetaTermAdmin
 
 from .admin_helpers import (
+    ApplicationFormButtonHelper,
     ButtonsWithPreview,
     FormsFundRoundListFilter,
-    RoundStateListFilter,
-    RoundFundChooserView,
     RoundAdminURLHelper,
-    ApplicationFormButtonHelper,
+    RoundFundChooserView,
+    RoundStateListFilter,
 )
 from .admin_views import CopyApplicationFormViewClass
-from .models import ApplicationForm, FundType, LabType, RequestForPartners, Round, SealedRound
+from .models import (
+    ApplicationForm,
+    FundType,
+    LabType,
+    RequestForPartners,
+    Round,
+    SealedRound,
+)
 
 
 class BaseRoundAdmin(ModelAdmin):
diff --git a/hypha/apply/funds/admin_forms.py b/hypha/apply/funds/admin_forms.py
index bfcf8ae8e21c3373a5fb1a296856b6043cbf4021..4d6c7b0b74526aa1d25a51041ea9245e8cd49626 100644
--- a/hypha/apply/funds/admin_forms.py
+++ b/hypha/apply/funds/admin_forms.py
@@ -1,4 +1,5 @@
 from collections import Counter
+
 from wagtail.admin.forms import WagtailAdminPageForm
 
 from .workflow import WORKFLOWS
diff --git a/hypha/apply/funds/admin_helpers.py b/hypha/apply/funds/admin_helpers.py
index e0791f0c093240c10c8045cadac759dc6e48a266..8922875cc4c3e823191bf8d30e4b1b294687da73 100644
--- a/hypha/apply/funds/admin_helpers.py
+++ b/hypha/apply/funds/admin_helpers.py
@@ -5,9 +5,12 @@ from django.contrib import admin
 from django.urls import reverse
 from django.utils.functional import cached_property
 from django.utils.translation import ugettext as _
-
 from wagtail.contrib.modeladmin.forms import ParentChooserForm
-from wagtail.contrib.modeladmin.helpers import PageAdminURLHelper, PageButtonHelper, ButtonHelper
+from wagtail.contrib.modeladmin.helpers import (
+    ButtonHelper,
+    PageAdminURLHelper,
+    PageButtonHelper,
+)
 from wagtail.contrib.modeladmin.views import ChooseParentView
 from wagtail.core.models import Page
 
diff --git a/hypha/apply/funds/admin_views.py b/hypha/apply/funds/admin_views.py
index dcb6eb55ef18c086e5910c6e4386c7f46cbcd9f6..1b2688534eaabb6a814d6fb18db27eca15d5442a 100644
--- a/hypha/apply/funds/admin_views.py
+++ b/hypha/apply/funds/admin_views.py
@@ -1,14 +1,13 @@
+from django.contrib.admin.utils import unquote
 from django.core.exceptions import PermissionDenied
-from django.shortcuts import redirect, get_object_or_404
+from django.shortcuts import get_object_or_404, redirect
 from django.utils.translation import ugettext as _
-from django.contrib.admin.utils import unquote
-
 from wagtail.admin import messages
 from wagtail.admin.forms.pages import CopyForm
 from wagtail.admin.views.pages import get_valid_next_url_from_request
+from wagtail.contrib.modeladmin.views import CreateView
 from wagtail.core import hooks
 from wagtail.core.models import Page
-from wagtail.contrib.modeladmin.views import CreateView
 
 
 def custom_admin_round_copy_view(request, page):
diff --git a/hypha/apply/funds/blocks.py b/hypha/apply/funds/blocks.py
index 1253aee1cde11433089d733a759d3204828a978b..ca986923c1ec1357e1ba9ef62ad7984d2aa1b8f5 100644
--- a/hypha/apply/funds/blocks.py
+++ b/hypha/apply/funds/blocks.py
@@ -2,10 +2,9 @@ import json
 
 from django import forms
 from django.utils.translation import ugettext_lazy as _
-
 from wagtail.core import blocks
 
-from addressfield.fields import AddressField, ADDRESS_FIELDS_ORDER
+from addressfield.fields import ADDRESS_FIELDS_ORDER, AddressField
 from hypha.apply.categories.blocks import CategoryQuestionBlock
 from hypha.apply.stream_forms.blocks import FormFieldsBlock
 from hypha.apply.utils.blocks import (
diff --git a/hypha/apply/funds/differ.py b/hypha/apply/funds/differ.py
index 51d4e46249668f367b98396d2c479c47321eb17d..ea077c4900e9fefabb7fc6da2a036b39cfe8a3e1 100644
--- a/hypha/apply/funds/differ.py
+++ b/hypha/apply/funds/differ.py
@@ -1,8 +1,7 @@
 import re
-
-from bleach.sanitizer import Cleaner
 from difflib import SequenceMatcher
 
+from bleach.sanitizer import Cleaner
 from django.utils.html import format_html
 from django.utils.safestring import mark_safe
 
diff --git a/hypha/apply/funds/edit_handlers.py b/hypha/apply/funds/edit_handlers.py
index 80d961ac36b8b9594657204919e473bbc5390638..26ceb81fb8904e2dc03cb3a3a6ffcc2ffb7af7a2 100644
--- a/hypha/apply/funds/edit_handlers.py
+++ b/hypha/apply/funds/edit_handlers.py
@@ -1,10 +1,9 @@
 from django.forms import Field, Widget
 from django.forms.utils import pretty_name
-from django.urls import reverse
 from django.template.loader import render_to_string
-
-from wagtail.core.models import Page
+from django.urls import reverse
 from wagtail.admin.edit_handlers import EditHandler, FieldPanel
+from wagtail.core.models import Page
 
 
 def reverse_edit(obj):
diff --git a/hypha/apply/funds/files.py b/hypha/apply/funds/files.py
index fa9ddb5eb8445bd62f54387dce07a35d30c3747d..b5ee6c23ea36005f9d54691068f70c10d2500d62 100644
--- a/hypha/apply/funds/files.py
+++ b/hypha/apply/funds/files.py
@@ -1,4 +1,5 @@
 import os
+
 from django.urls import reverse
 
 from hypha.apply.stream_forms.files import StreamFieldFile
diff --git a/hypha/apply/funds/forms.py b/hypha/apply/funds/forms.py
index 3cfa9d47ca1c9083b4a9afbd4202228c1c0dcacb..b8071e3d1e3b045f2da2b9ca9e5bd770f0be36a7 100644
--- a/hypha/apply/funds/forms.py
+++ b/hypha/apply/funds/forms.py
@@ -3,16 +3,16 @@ from itertools import groupby
 from operator import methodcaller
 
 from django import forms
+from django.utils.safestring import mark_safe
 from django.utils.text import slugify
 from django.utils.translation import ugettext_lazy as _
-from django.utils.safestring import mark_safe
 
 from hypha.apply.categories.models import MetaTerm
 from hypha.apply.users.models import User
 
-from .models import AssignedReviewers, ApplicationSubmission, ReviewerRole
+from .models import ApplicationSubmission, AssignedReviewers, ReviewerRole
 from .utils import render_icon
-from .widgets import Select2MultiCheckboxesWidget, MetaTermSelect2Widget
+from .widgets import MetaTermSelect2Widget, Select2MultiCheckboxesWidget
 from .workflow import get_action_mapping
 
 
diff --git a/hypha/apply/funds/management/commands/migration_base.py b/hypha/apply/funds/management/commands/migration_base.py
index d16b19b2d171635d4003ee13dfee6b76d837b51f..a23abaaa9a2f31ad07d0d7e05af10f5a99e2a7e5 100644
--- a/hypha/apply/funds/management/commands/migration_base.py
+++ b/hypha/apply/funds/management/commands/migration_base.py
@@ -1,9 +1,8 @@
 import argparse
 import json
 import os
-from urllib.parse import urlsplit
-
 from datetime import datetime, timezone
+from urllib.parse import urlsplit
 
 from django.conf import settings
 from django.contrib.auth import get_user_model
@@ -13,10 +12,10 @@ from django.db.utils import IntegrityError
 from django_fsm import FSMField
 from storages.backends.s3boto3 import S3Boto3Storage
 
-from hypha.apply.categories.models import Category, Option
 from hypha.apply.categories.categories_seed import CATEGORIES
-from hypha.apply.funds.models import ApplicationSubmission, FundType, Round, LabType
-from hypha.apply.funds.models.forms import RoundBaseForm, LabBaseForm
+from hypha.apply.categories.models import Category, Option
+from hypha.apply.funds.models import ApplicationSubmission, FundType, LabType, Round
+from hypha.apply.funds.models.forms import LabBaseForm, RoundBaseForm
 from hypha.apply.funds.workflow import INITIAL_STATE
 
 
diff --git a/hypha/apply/funds/management/commands/seed_community_lab_application.py b/hypha/apply/funds/management/commands/seed_community_lab_application.py
index 94619bece44e70a11467f9053bb9e23dcd45453d..aee979426916066b009fd2013a90e7a6cbbc9256 100644
--- a/hypha/apply/funds/management/commands/seed_community_lab_application.py
+++ b/hypha/apply/funds/management/commands/seed_community_lab_application.py
@@ -6,9 +6,8 @@ from django.db import transaction
 
 from hypha.apply.funds.models import ApplicationForm, LabType
 from hypha.apply.funds.models.forms import LabBaseForm, LabBaseReviewForm
-from hypha.apply.review.models import ReviewForm
-
 from hypha.apply.home.models import ApplyHomePage
+from hypha.apply.review.models import ReviewForm
 from hypha.apply.users.groups import STAFF_GROUP_NAME
 
 CL_FUND_TITLE = 'Community lab (archive fund)'
diff --git a/hypha/apply/funds/management/commands/seed_concept_note.py b/hypha/apply/funds/management/commands/seed_concept_note.py
index 6f53b547bb62ae9d28db819e32564703b03add64..28f3ee793f1a5ddd58b7b937b5ef9e7806429b0d 100644
--- a/hypha/apply/funds/management/commands/seed_concept_note.py
+++ b/hypha/apply/funds/management/commands/seed_concept_note.py
@@ -1,5 +1,4 @@
 import json
-
 from datetime import date
 
 from django.contrib.auth import get_user_model
@@ -8,10 +7,12 @@ from django.db import transaction
 
 from hypha.apply.categories.models import Category
 from hypha.apply.funds.models import ApplicationForm, FundType, Round
-from hypha.apply.funds.models.forms import ApplicationBaseForm, ApplicationBaseReviewForm
-from hypha.apply.review.models import ReviewForm
-
+from hypha.apply.funds.models.forms import (
+    ApplicationBaseForm,
+    ApplicationBaseReviewForm,
+)
 from hypha.apply.home.models import ApplyHomePage
+from hypha.apply.review.models import ReviewForm
 from hypha.apply.users.groups import STAFF_GROUP_NAME
 
 CN_ROUND_TITLE = 'Internet Freedom Fund (archive round)'
diff --git a/hypha/apply/funds/management/commands/seed_fellowship.py b/hypha/apply/funds/management/commands/seed_fellowship.py
index dc8bc069891f7f62b3ee67e28761112fccfd8584..42fc743dfd7e473e53ee9b8925212a150b64209d 100644
--- a/hypha/apply/funds/management/commands/seed_fellowship.py
+++ b/hypha/apply/funds/management/commands/seed_fellowship.py
@@ -1,5 +1,4 @@
 import json
-
 from datetime import date
 
 from django.contrib.auth import get_user_model
@@ -8,10 +7,12 @@ from django.db import transaction
 
 from hypha.apply.categories.models import Category
 from hypha.apply.funds.models import ApplicationForm, FundType, Round
-from hypha.apply.funds.models.forms import ApplicationBaseForm, ApplicationBaseReviewForm
-from hypha.apply.review.models import ReviewForm
-
+from hypha.apply.funds.models.forms import (
+    ApplicationBaseForm,
+    ApplicationBaseReviewForm,
+)
 from hypha.apply.home.models import ApplyHomePage
+from hypha.apply.review.models import ReviewForm
 from hypha.apply.users.groups import STAFF_GROUP_NAME
 
 FS_ROUND_TITLE = 'Fellowship (archive round)'
diff --git a/hypha/apply/funds/management/commands/seed_rapid_response.py b/hypha/apply/funds/management/commands/seed_rapid_response.py
index 8ea67e676a3feffc11df124a58817358ead88403..398a9510f433992367d5104909b02ceffa57746f 100644
--- a/hypha/apply/funds/management/commands/seed_rapid_response.py
+++ b/hypha/apply/funds/management/commands/seed_rapid_response.py
@@ -1,5 +1,4 @@
 import json
-
 from datetime import date
 
 from django.contrib.auth import get_user_model
@@ -8,10 +7,12 @@ from django.db import transaction
 
 from hypha.apply.categories.models import Category
 from hypha.apply.funds.models import ApplicationForm, FundType, Round
-from hypha.apply.funds.models.forms import ApplicationBaseForm, ApplicationBaseReviewForm
-from hypha.apply.review.models import ReviewForm
-
+from hypha.apply.funds.models.forms import (
+    ApplicationBaseForm,
+    ApplicationBaseReviewForm,
+)
 from hypha.apply.home.models import ApplyHomePage
+from hypha.apply.review.models import ReviewForm
 from hypha.apply.users.groups import STAFF_GROUP_NAME
 
 RR_ROUND_TITLE = 'Rapid Response (archive round)'
diff --git a/hypha/apply/funds/models/__init__.py b/hypha/apply/funds/models/__init__.py
index 4730a3a44167279ff536202439cdaa88cd6c12c0..9b9fb053cb7716418b4f0218e3f506e21bf46bb3 100644
--- a/hypha/apply/funds/models/__init__.py
+++ b/hypha/apply/funds/models/__init__.py
@@ -1,11 +1,10 @@
 from django.utils.translation import ugettext_lazy as _
 
-from .applications import ApplicationBase, RoundBase, LabBase, RoundsAndLabs  # NOQA
+from .applications import ApplicationBase, LabBase, RoundBase, RoundsAndLabs  # NOQA
 from .forms import ApplicationForm
 from .reviewer_role import ReviewerRole
 from .screening import ScreeningStatus
-from .submissions import ApplicationSubmission, AssignedReviewers, ApplicationRevision
-
+from .submissions import ApplicationRevision, ApplicationSubmission, AssignedReviewers
 
 __all__ = ['ApplicationSubmission', 'AssignedReviewers', 'ApplicationRevision', 'ApplicationForm', 'ScreeningStatus', 'ReviewerRole']
 
diff --git a/hypha/apply/funds/models/applications.py b/hypha/apply/funds/models/applications.py
index 2191bd0f640fe9525fdf0e5b6e4b63b98e30b597..a27909d7bf2543e497d0e8d127d86a4cfc3177c5 100644
--- a/hypha/apply/funds/models/applications.py
+++ b/hypha/apply/funds/models/applications.py
@@ -16,16 +16,13 @@ from django.db.models import (
     Subquery,
     When,
 )
-from django.db.models.functions import Coalesce, Length, Left
-from django.shortcuts import render
-
+from django.db.models.functions import Coalesce, Left, Length
 from django.http import Http404
+from django.shortcuts import render
 from django.utils.functional import cached_property
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext_lazy as _
-
 from modelcluster.fields import ParentalManyToManyField
-
 from wagtail.admin.edit_handlers import (
     FieldPanel,
     FieldRowPanel,
@@ -36,11 +33,17 @@ from wagtail.admin.edit_handlers import (
 from wagtail.core.models import Page, PageManager, PageQuerySet
 
 from ..admin_forms import RoundBasePageAdminForm, WorkflowFormAdminForm
-from ..edit_handlers import ReadOnlyPanel, ReadOnlyInlinePanel
+from ..edit_handlers import ReadOnlyInlinePanel, ReadOnlyPanel
 from ..workflow import OPEN_CALL_PHASES
-
 from .submissions import ApplicationSubmission
-from .utils import admin_url, EmailForm, SubmittableStreamForm, WorkflowStreamForm, LIMIT_TO_REVIEWERS, LIMIT_TO_STAFF
+from .utils import (
+    LIMIT_TO_REVIEWERS,
+    LIMIT_TO_STAFF,
+    EmailForm,
+    SubmittableStreamForm,
+    WorkflowStreamForm,
+    admin_url,
+)
 
 
 class ApplicationBaseManager(PageQuerySet):
diff --git a/hypha/apply/funds/models/forms.py b/hypha/apply/funds/models/forms.py
index 088841286ce032b5a35b3c86b8c009defdcc6ee9..e1868c0bae1b1f8cd5a145e64e7c627351728749 100644
--- a/hypha/apply/funds/models/forms.py
+++ b/hypha/apply/funds/models/forms.py
@@ -1,11 +1,6 @@
 from django.db import models
-
 from modelcluster.fields import ParentalKey
-
-from wagtail.admin.edit_handlers import (
-    FieldPanel,
-    StreamFieldPanel,
-)
+from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel
 from wagtail.core.fields import StreamField
 from wagtail.core.models import Orderable
 
diff --git a/hypha/apply/funds/models/mixins.py b/hypha/apply/funds/models/mixins.py
index 90147651f17e54cadd5ea3f665ffc1363cb8421c..b686a3df3f219c3fd6afababcbecd68da25b1bc0 100644
--- a/hypha/apply/funds/models/mixins.py
+++ b/hypha/apply/funds/models/mixins.py
@@ -1,12 +1,15 @@
-from django.utils.safestring import mark_safe
 from django.core.files import File
+from django.utils.safestring import mark_safe
 
 from hypha.apply.stream_forms.blocks import (
-    FileFieldBlock, FormFieldBlock, GroupToggleBlock, ImageFieldBlock, MultiFileFieldBlock
+    FileFieldBlock,
+    FormFieldBlock,
+    GroupToggleBlock,
+    ImageFieldBlock,
+    MultiFileFieldBlock,
+    UploadableMediaBlock,
 )
 from hypha.apply.utils.blocks import SingleIncludeMixin
-
-from hypha.apply.stream_forms.blocks import UploadableMediaBlock
 from hypha.apply.utils.storage import PrivateStorage
 
 from ..files import SubmissionStreamFieldFile
diff --git a/hypha/apply/funds/models/submissions.py b/hypha/apply/funds/models/submissions.py
index 0aa1f1315440d4e31d258afcb6cbde471e9370d0..04c20c12776317d9e40b2903db4561690cd62972 100644
--- a/hypha/apply/funds/models/submissions.py
+++ b/hypha/apply/funds/models/submissions.py
@@ -1,17 +1,17 @@
 from functools import partialmethod
 
 from django.conf import settings
-from django.contrib.contenttypes.fields import GenericRelation
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Group
+from django.contrib.contenttypes.fields import GenericRelation
 from django.contrib.postgres.fields import JSONField
 from django.core.exceptions import PermissionDenied
 from django.db import models
 from django.db.models import (
     Case,
     Count,
-    IntegerField,
     F,
+    IntegerField,
     OuterRef,
     Prefetch,
     Q,
@@ -19,52 +19,50 @@ from django.db.models import (
     Sum,
     When,
 )
-from django.db.models.expressions import RawSQL, OrderBy
+from django.db.models.expressions import OrderBy, RawSQL
 from django.db.models.functions import Coalesce
 from django.dispatch import receiver
 from django.urls import reverse
 from django.utils.text import slugify
-
-from django_fsm import can_proceed, FSMField, transition, RETURN_VALUE
+from django_fsm import RETURN_VALUE, FSMField, can_proceed, transition
 from django_fsm.signals import post_transition
-
-from wagtail.core.fields import StreamField
 from wagtail.contrib.forms.models import AbstractFormSubmission
+from wagtail.core.fields import StreamField
 
-from hypha.apply.activity.messaging import messenger, MESSAGES
+from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.categories.models import MetaTerm
 from hypha.apply.determinations.models import Determination
 from hypha.apply.flags.models import Flag
 from hypha.apply.review.models import ReviewOpinion
-from hypha.apply.review.options import MAYBE, AGREE, DISAGREE
+from hypha.apply.review.options import AGREE, DISAGREE, MAYBE
 from hypha.apply.stream_forms.files import StreamFieldDataEncoder
 from hypha.apply.stream_forms.models import BaseStreamForm
 
+from ..blocks import NAMED_BLOCKS, ApplicationCustomFormFieldsBlock
+from ..workflow import (
+    COMMUNITY_REVIEW_PHASES,
+    DETERMINATION_RESPONSE_PHASES,
+    INITIAL_STATE,
+    PHASES,
+    PHASES_MAPPING,
+    STAGE_CHANGE_ACTIONS,
+    WORKFLOWS,
+    UserPermissions,
+    active_statuses,
+    get_review_active_statuses,
+    review_statuses,
+)
 from .mixins import AccessFormData
 from .utils import (
     COMMUNITY_REVIEWER_GROUP_NAME,
-    LIMIT_TO_STAFF,
-    LIMIT_TO_REVIEWER_GROUPS,
     LIMIT_TO_PARTNERS,
+    LIMIT_TO_REVIEWER_GROUPS,
+    LIMIT_TO_STAFF,
     REVIEW_GROUPS,
     REVIEWER_GROUP_NAME,
     STAFF_GROUP_NAME,
     WorkflowHelpers,
 )
-from ..blocks import ApplicationCustomFormFieldsBlock, NAMED_BLOCKS
-from ..workflow import (
-    active_statuses,
-    DETERMINATION_RESPONSE_PHASES,
-    get_review_active_statuses,
-    INITIAL_STATE,
-    PHASES,
-    PHASES_MAPPING,
-    review_statuses,
-    STAGE_CHANGE_ACTIONS,
-    UserPermissions,
-    WORKFLOWS,
-    COMMUNITY_REVIEW_PHASES,
-)
 
 
 class JSONOrderable(models.QuerySet):
diff --git a/hypha/apply/funds/models/utils.py b/hypha/apply/funds/models/utils.py
index 0d785dab69106027b8f099d92c609ce98924ef52..caa8194a2d7205fd4d212abed754e20cdc19b389 100644
--- a/hypha/apply/funds/models/utils.py
+++ b/hypha/apply/funds/models/utils.py
@@ -1,6 +1,5 @@
 from django.db import models
 from django.urls import reverse
-
 from wagtail.admin.edit_handlers import (
     FieldPanel,
     FieldRowPanel,
@@ -10,13 +9,17 @@ from wagtail.admin.edit_handlers import (
 )
 from wagtail.contrib.forms.models import AbstractEmailForm
 
-from hypha.apply.activity.messaging import messenger, MESSAGES
+from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.stream_forms.models import AbstractStreamForm
-from hypha.apply.users.groups import REVIEWER_GROUP_NAME, STAFF_GROUP_NAME, PARTNER_GROUP_NAME, COMMUNITY_REVIEWER_GROUP_NAME
+from hypha.apply.users.groups import (
+    COMMUNITY_REVIEWER_GROUP_NAME,
+    PARTNER_GROUP_NAME,
+    REVIEWER_GROUP_NAME,
+    STAFF_GROUP_NAME,
+)
 
 from ..workflow import WORKFLOWS
 
-
 REVIEW_GROUPS = [
     STAFF_GROUP_NAME,
     REVIEWER_GROUP_NAME,
diff --git a/hypha/apply/funds/tables.py b/hypha/apply/funds/tables.py
index 8192a8c1f1155328daba0fa5237231cb2fe04390..cff5208cc5259465c6314580d1965b3194ffe4b6 100644
--- a/hypha/apply/funds/tables.py
+++ b/hypha/apply/funds/tables.py
@@ -1,18 +1,16 @@
 import json
 import textwrap
 
+import django_filters as filters
+import django_tables2 as tables
 from django import forms
 from django.contrib.auth import get_user_model
 from django.db.models import F, Q
 from django.utils.html import format_html
+from django.utils.safestring import mark_safe
 from django.utils.text import slugify
 from django.utils.translation import ugettext_lazy as _
-from django.utils.safestring import mark_safe
-
-import django_filters as filters
-import django_tables2 as tables
 from django_tables2.utils import A
-
 from wagtail.core.models import Page
 
 from hypha.apply.funds.models import ApplicationSubmission, Round, ScreeningStatus
diff --git a/hypha/apply/funds/templatetags/markdown_tags.py b/hypha/apply/funds/templatetags/markdown_tags.py
index bddae4d8a14e7e8c522967c64fd4eafa261e78a7..e0f31f7b2b3c6c6352959a631cc1a9f8f87e35b2 100644
--- a/hypha/apply/funds/templatetags/markdown_tags.py
+++ b/hypha/apply/funds/templatetags/markdown_tags.py
@@ -1,6 +1,5 @@
 import mistune
 import tomd
-
 from django import template
 
 register = template.Library()
diff --git a/hypha/apply/funds/tests/factories/__init__.py b/hypha/apply/funds/tests/factories/__init__.py
index c9d2b8ebadf12898359444c6059e84c4383a94cc..609b423ab4a0373180921e113b60b8a76aea4ed5 100644
--- a/hypha/apply/funds/tests/factories/__init__.py
+++ b/hypha/apply/funds/tests/factories/__init__.py
@@ -1,7 +1,6 @@
-from . import models
-from .models import * # noqa
-from . import blocks
+from . import blocks, models
 from .blocks import *  # noqa
+from .models import *  # noqa
 
 __all__ = []
 
diff --git a/hypha/apply/funds/tests/factories/blocks.py b/hypha/apply/funds/tests/factories/blocks.py
index 3f2e617844dacac133cbb5778bb76ea8572e4331..ea3d81d9f488e0ed589f670d35dc6cc5d8d920af 100644
--- a/hypha/apply/funds/tests/factories/blocks.py
+++ b/hypha/apply/funds/tests/factories/blocks.py
@@ -1,5 +1,6 @@
 import json
 import random
+
 import factory
 
 from hypha.apply.funds import blocks
diff --git a/hypha/apply/funds/tests/factories/models.py b/hypha/apply/funds/tests/factories/models.py
index 0d2b5f2504ca4d5d7511aaf53e1b1997cbcb2e88..87f7647c882350481cd4bd680fb43168605a69f0 100644
--- a/hypha/apply/funds/tests/factories/models.py
+++ b/hypha/apply/funds/tests/factories/models.py
@@ -4,8 +4,8 @@ import factory
 import wagtail_factories
 
 from hypha.apply.funds.models import (
-    ApplicationSubmission,
     ApplicationRevision,
+    ApplicationSubmission,
     AssignedReviewers,
     FundType,
     LabType,
@@ -16,9 +16,9 @@ from hypha.apply.funds.models import (
     SealedRound,
 )
 from hypha.apply.funds.models.forms import (
-    ApplicationForm,
     ApplicationBaseForm,
     ApplicationBaseReviewForm,
+    ApplicationForm,
     LabBaseForm,
     LabBaseReviewForm,
     RoundBaseForm,
@@ -27,12 +27,15 @@ from hypha.apply.funds.models.forms import (
 from hypha.apply.funds.workflow import ConceptProposal, Request
 from hypha.apply.home.factories import ApplyHomePageFactory
 from hypha.apply.stream_forms.testing.factories import FormDataFactory
-from hypha.apply.users.groups import STAFF_GROUP_NAME, REVIEWER_GROUP_NAME
-from hypha.apply.users.tests.factories import StaffFactory, ApplicantFactory, GroupFactory
+from hypha.apply.users.groups import REVIEWER_GROUP_NAME, STAFF_GROUP_NAME
+from hypha.apply.users.tests.factories import (
+    ApplicantFactory,
+    GroupFactory,
+    StaffFactory,
+)
 
 from . import blocks
 
-
 __all__ = [
     'FundTypeFactory',
     'ApplicationBaseFormFactory',
diff --git a/hypha/apply/funds/tests/models/test_roundsandlabs.py b/hypha/apply/funds/tests/models/test_roundsandlabs.py
index f35ca23d5c602a9a5e4ee3d6803ee716489e66a3..f1c8c5a7b189b1ae6aaddcc251ead7d9cf6c45e8 100644
--- a/hypha/apply/funds/tests/models/test_roundsandlabs.py
+++ b/hypha/apply/funds/tests/models/test_roundsandlabs.py
@@ -1,7 +1,6 @@
 from django.test import TestCase
 
 from hypha.apply.funds.models import RoundsAndLabs
-
 from hypha.apply.funds.tests.factories import (
     ApplicationSubmissionFactory,
     FundTypeFactory,
diff --git a/hypha/apply/funds/tests/test_admin_form.py b/hypha/apply/funds/tests/test_admin_form.py
index ce7fc3cda9a3ff2a9fc4062f456005b8b62444d4..0975734e77d6b51ca3161d05ea394e5c26a1d2c2 100644
--- a/hypha/apply/funds/tests/test_admin_form.py
+++ b/hypha/apply/funds/tests/test_admin_form.py
@@ -1,11 +1,10 @@
-from django.test import TestCase
-
 import factory
+from django.test import TestCase
 
 from hypha.apply.funds.models import FundType
+from hypha.apply.review.tests.factories import ReviewFormFactory
 
 from .factories import ApplicationFormFactory, FundTypeFactory, workflow_for_stages
-from hypha.apply.review.tests.factories import ReviewFormFactory
 
 
 def formset_base(field, total, delete, factory, same=False, form_stage_info=None):
diff --git a/hypha/apply/funds/tests/test_forms.py b/hypha/apply/funds/tests/test_forms.py
index 05fb22518d137fdffeb0c37d745045557e693b83..6cc07a4cd5d282e12654e5301ee2976067413aff 100644
--- a/hypha/apply/funds/tests/test_forms.py
+++ b/hypha/apply/funds/tests/test_forms.py
@@ -1,19 +1,15 @@
 from django.test import TestCase
+
+from hypha.apply.funds.forms import UpdateReviewersForm
 from hypha.apply.funds.tests.factories import (
     ApplicationSubmissionFactory,
-    AssignedWithRoleReviewersFactory,
     AssignedReviewersFactory,
+    AssignedWithRoleReviewersFactory,
     InvitedToProposalFactory,
     ReviewerRoleFactory,
 )
 from hypha.apply.review.tests.factories import ReviewFactory
-from hypha.apply.users.tests.factories import (
-    ReviewerFactory,
-    StaffFactory,
-)
-
-
-from hypha.apply.funds.forms import UpdateReviewersForm
+from hypha.apply.users.tests.factories import ReviewerFactory, StaffFactory
 
 
 class TestReviewerFormQueries(TestCase):
diff --git a/hypha/apply/funds/tests/test_models.py b/hypha/apply/funds/tests/test_models.py
index 460792ee6e78f50f874d9a79d70e24d0d64df525..9d903d7ffca1cf11031685fc2b198728e5f7d728 100644
--- a/hypha/apply/funds/tests/test_models.py
+++ b/hypha/apply/funds/tests/test_models.py
@@ -1,22 +1,22 @@
-from datetime import date, timedelta
 import itertools
 import os
+from datetime import date, timedelta
 
+from django.conf import settings
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import AnonymousUser
-from django.conf import settings
 from django.core import mail
 from django.core.exceptions import ValidationError
 from django.test import TestCase, override_settings
 from django.urls import reverse
 
-from hypha.apply.funds.models import ApplicationSubmission
 from hypha.apply.funds.blocks import EmailBlock, FullNameBlock
+from hypha.apply.funds.models import ApplicationSubmission
 from hypha.apply.funds.workflow import Request
+from hypha.apply.review.options import MAYBE, NO
 from hypha.apply.review.tests.factories import ReviewFactory, ReviewOpinionFactory
-from hypha.apply.review.options import NO, MAYBE
-from hypha.apply.utils.testing import make_request
 from hypha.apply.users.tests.factories import StaffFactory
+from hypha.apply.utils.testing import make_request
 
 from .factories import (
     ApplicationSubmissionFactory,
diff --git a/hypha/apply/funds/tests/test_tags.py b/hypha/apply/funds/tests/test_tags.py
index b0b681749d6cf4e2451f9f04609781172b07b53e..fc8630b81a660ba40cdc1cac4034974cb89fe79c 100644
--- a/hypha/apply/funds/tests/test_tags.py
+++ b/hypha/apply/funds/tests/test_tags.py
@@ -1,5 +1,5 @@
 from django.template import Context, Template
-from django.test import override_settings, TestCase
+from django.test import TestCase, override_settings
 
 from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory
 
diff --git a/hypha/apply/funds/tests/test_views.py b/hypha/apply/funds/tests/test_views.py
index ba74299567c121d761e40ea2a8b67aa537d968f2..3908abf8e2e61e284ed1cd6560c64d8201534f30 100644
--- a/hypha/apply/funds/tests/test_views.py
+++ b/hypha/apply/funds/tests/test_views.py
@@ -8,15 +8,13 @@ from django.urls import reverse
 from django.utils import timezone
 from django.utils.text import slugify
 
-from hypha.apply.activity.models import Activity, TEAM
-from hypha.apply.projects.models import Project
-from hypha.apply.projects.tests.factories import ProjectFactory
+from hypha.apply.activity.models import TEAM, Activity
 from hypha.apply.determinations.tests.factories import DeterminationFactory
 from hypha.apply.funds.tests.factories import (
-    ApplicationSubmissionFactory,
     ApplicationRevisionFactory,
-    AssignedWithRoleReviewersFactory,
+    ApplicationSubmissionFactory,
     AssignedReviewersFactory,
+    AssignedWithRoleReviewersFactory,
     InvitedToProposalFactory,
     LabSubmissionFactory,
     ReviewerRoleFactory,
@@ -24,12 +22,14 @@ from hypha.apply.funds.tests.factories import (
     SealedRoundFactory,
     SealedSubmissionFactory,
 )
+from hypha.apply.projects.models import Project
+from hypha.apply.projects.tests.factories import ProjectFactory
 from hypha.apply.review.tests.factories import ReviewFactory
 from hypha.apply.users.tests.factories import (
+    ApplicantFactory,
     ReviewerFactory,
     StaffFactory,
     SuperUserFactory,
-    ApplicantFactory,
 )
 from hypha.apply.utils.testing import make_request
 from hypha.apply.utils.testing.tests import BaseViewTestCase
diff --git a/hypha/apply/funds/tests/views/test_batch_progress.py b/hypha/apply/funds/tests/views/test_batch_progress.py
index b9f92fb9b046e8b4aa46da42ebd46523f3f3bc45..5326d0fbe8660a0928786e3f46f7ac45de592be4 100644
--- a/hypha/apply/funds/tests/views/test_batch_progress.py
+++ b/hypha/apply/funds/tests/views/test_batch_progress.py
@@ -1,19 +1,12 @@
 from unittest import mock
 
+from hypha.apply.determinations.tests.factories import DeterminationFactory
 from hypha.apply.funds.models import ApplicationSubmission
-
-from hypha.apply.determinations.tests.factories import (
-    DeterminationFactory
-)
 from hypha.apply.funds.tests.factories import (
     ApplicationSubmissionFactory,
     InvitedToProposalFactory,
 )
-from hypha.apply.users.tests.factories import (
-    ReviewerFactory,
-    StaffFactory,
-    UserFactory,
-)
+from hypha.apply.users.tests.factories import ReviewerFactory, StaffFactory, UserFactory
 from hypha.apply.utils.testing.tests import BaseViewTestCase
 
 
diff --git a/hypha/apply/funds/tests/views/test_batch_reviewers.py b/hypha/apply/funds/tests/views/test_batch_reviewers.py
index 9d0cbdc73874f5a2e0930374e360ce8d1238ecff..87cec4694a0937dadb25f3859fc7421b7654c882 100644
--- a/hypha/apply/funds/tests/views/test_batch_reviewers.py
+++ b/hypha/apply/funds/tests/views/test_batch_reviewers.py
@@ -5,11 +5,8 @@ from hypha.apply.funds.tests.factories import (
     AssignedWithRoleReviewersFactory,
     ReviewerRoleFactory,
 )
-from hypha.apply.users.tests.factories import (
-    ReviewerFactory,
-    StaffFactory,
-)
 from hypha.apply.review.tests.factories import ReviewFactory
+from hypha.apply.users.tests.factories import ReviewerFactory, StaffFactory
 from hypha.apply.utils.testing.tests import BaseViewTestCase
 
 
diff --git a/hypha/apply/funds/tests/views/test_rounds.py b/hypha/apply/funds/tests/views/test_rounds.py
index c1056b2e521fd797993b6c0803285de33a98187a..4607b78fa907d97ee7db8139c448c1ff5d3e26a4 100644
--- a/hypha/apply/funds/tests/views/test_rounds.py
+++ b/hypha/apply/funds/tests/views/test_rounds.py
@@ -1,13 +1,5 @@
-from hypha.apply.funds.tests.factories import (
-    LabFactory,
-    RoundFactory,
-)
-
-from hypha.apply.users.tests.factories import (
-    ReviewerFactory,
-    StaffFactory,
-    UserFactory,
-)
+from hypha.apply.funds.tests.factories import LabFactory, RoundFactory
+from hypha.apply.users.tests.factories import ReviewerFactory, StaffFactory, UserFactory
 from hypha.apply.utils.testing.tests import BaseViewTestCase
 
 
diff --git a/hypha/apply/funds/urls.py b/hypha/apply/funds/urls.py
index 8be9868f7fae7bdeda0f4cbb6f9a389d997d64ec..2a089d7a065f2865355a36bb777feb62943dfa2f 100644
--- a/hypha/apply/funds/urls.py
+++ b/hypha/apply/funds/urls.py
@@ -6,22 +6,21 @@ from .views import (
     RevisionCompareView,
     RevisionListView,
     RoundListView,
-    SubmissionsByRound,
-    SubmissionsByStatus,
+    SubmissionDeleteView,
+    SubmissionDetailPDFView,
+    SubmissionDetailSimplifiedView,
     SubmissionDetailView,
     SubmissionEditView,
     SubmissionListView,
     SubmissionOverviewView,
-    SubmissionSealedView,
-    SubmissionDeleteView,
     SubmissionPrivateMediaView,
-    SubmissionDetailPDFView,
-    SubmissionDetailSimplifiedView,
-    SubmissionUserFlaggedView,
+    SubmissionsByRound,
+    SubmissionsByStatus,
+    SubmissionSealedView,
     SubmissionStaffFlaggedView,
+    SubmissionUserFlaggedView,
 )
 
-
 revision_urls = ([
     path('', RevisionListView.as_view(), name='list'),
     path('compare/<int:to>/<int:from>/', RevisionCompareView.as_view(), name='compare'),
diff --git a/hypha/apply/funds/views.py b/hypha/apply/funds/views.py
index dd8e7413c8ecc00fe5163073dc07bd1570e06243..011928529e05385d6e0afb973e4b69f4e74f9d74 100644
--- a/hypha/apply/funds/views.py
+++ b/hypha/apply/funds/views.py
@@ -1,72 +1,89 @@
 from copy import copy
 
+from django.contrib import messages
 from django.contrib.auth.decorators import login_required, permission_required
 from django.contrib.auth.mixins import UserPassesTestMixin
-from django.contrib import messages
 from django.core.exceptions import PermissionDenied
 from django.db.models import Count, F, Q
-from django.http import FileResponse, HttpResponseRedirect, Http404
+from django.http import FileResponse, Http404, HttpResponseRedirect
 from django.shortcuts import get_object_or_404
 from django.urls import reverse_lazy
 from django.utils.decorators import method_decorator
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext_lazy as _
 from django.views import View
-from django.views.generic import CreateView, DetailView, FormView, ListView, UpdateView, DeleteView
+from django.views.generic import (
+    CreateView,
+    DeleteView,
+    DetailView,
+    FormView,
+    ListView,
+    UpdateView,
+)
 from django.views.generic.detail import SingleObjectMixin
-
 from django_filters.views import FilterView
 from django_tables2.views import SingleTableMixin
-
 from wagtail.core.models import Page
 
+from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.activity.views import (
     ActivityContextMixin,
     CommentFormView,
     DelegatedViewMixin,
 )
-from hypha.apply.activity.messaging import messenger, MESSAGES
-from hypha.apply.determinations.views import BatchDeterminationCreateView, DeterminationCreateOrUpdateView
+from hypha.apply.determinations.views import (
+    BatchDeterminationCreateView,
+    DeterminationCreateOrUpdateView,
+)
 from hypha.apply.projects.forms import CreateProjectForm
 from hypha.apply.projects.models import Project
 from hypha.apply.review.views import ReviewContextMixin
 from hypha.apply.users.decorators import staff_required
 from hypha.apply.utils.pdfs import make_pdf
 from hypha.apply.utils.storage import PrivateMediaView
-from hypha.apply.utils.views import DelegateableListView, DelegateableView, ViewDispatcher
+from hypha.apply.utils.views import (
+    DelegateableListView,
+    DelegateableView,
+    ViewDispatcher,
+)
 
 from .differ import compare
 from .files import generate_submission_file_path
 from .forms import (
-    BatchUpdateSubmissionLeadForm,
-    BatchUpdateReviewersForm,
     BatchProgressSubmissionForm,
+    BatchUpdateReviewersForm,
+    BatchUpdateSubmissionLeadForm,
     ProgressSubmissionForm,
     ScreeningSubmissionForm,
+    UpdateMetaTermsForm,
+    UpdatePartnersForm,
     UpdateReviewersForm,
     UpdateSubmissionLeadForm,
-    UpdatePartnersForm,
-    UpdateMetaTermsForm,
 )
 from .models import (
-    ApplicationSubmission,
     ApplicationRevision,
-    RoundsAndLabs,
+    ApplicationSubmission,
+    LabBase,
     RoundBase,
-    LabBase
+    RoundsAndLabs,
 )
 from .paginators import LazyPaginator
 from .permissions import is_user_has_access_to_view_submission
 from .tables import (
     AdminSubmissionsTable,
     ReviewerSubmissionsTable,
-    RoundsTable,
     RoundsFilter,
+    RoundsTable,
     SubmissionFilterAndSearch,
     SubmissionReviewerFilterAndSearch,
     SummarySubmissionsTable,
 )
-from .workflow import INITIAL_STATE, STAGE_CHANGE_ACTIONS, PHASES_MAPPING, review_statuses
+from .workflow import (
+    INITIAL_STATE,
+    PHASES_MAPPING,
+    STAGE_CHANGE_ACTIONS,
+    review_statuses,
+)
 
 
 class BaseAdminSubmissionsTable(SingleTableMixin, FilterView):
diff --git a/hypha/apply/funds/wagtail_hooks.py b/hypha/apply/funds/wagtail_hooks.py
index c1e302ee6ee1937c11de18b2770d023cf8e4d7a1..3ccbcdea67ceb860603341527f7fb8f5da4d6dfc 100644
--- a/hypha/apply/funds/wagtail_hooks.py
+++ b/hypha/apply/funds/wagtail_hooks.py
@@ -1,13 +1,11 @@
 from django.contrib.auth.models import Permission
-
-from wagtail.core import hooks
 from wagtail.contrib.modeladmin.options import modeladmin_register
+from wagtail.core import hooks
 
 from .admin import ApplyAdminGroup
 from .admin_views import custom_admin_round_copy_view
 from .models import RoundBase
 
-
 modeladmin_register(ApplyAdminGroup)
 
 
diff --git a/hypha/apply/funds/widgets.py b/hypha/apply/funds/widgets.py
index 3c0b8101d2d663114b83bc02c616f970aeb9ce3c..dc0c5866ec650cb9ce4ab459bb4e04e974d7e861 100644
--- a/hypha/apply/funds/widgets.py
+++ b/hypha/apply/funds/widgets.py
@@ -1,5 +1,4 @@
 from django.contrib.staticfiles.templatetags.staticfiles import static
-
 from django_select2.forms import Select2MultipleWidget
 
 
diff --git a/hypha/apply/funds/workflow.py b/hypha/apply/funds/workflow.py
index 5c2c7a42ee229a6809f0cc11d3181ea953730c72..b0c35390c9ea0f19c860f3162d670f29576ff08d 100644
--- a/hypha/apply/funds/workflow.py
+++ b/hypha/apply/funds/workflow.py
@@ -1,10 +1,11 @@
+import itertools
 from collections import defaultdict
 from enum import Enum
-import itertools
 
 from django.conf import settings
 from django.utils.text import slugify
 
+
 """
 This file defines classes which allow you to compose workflows based on the following structure:
 
diff --git a/hypha/apply/home/models.py b/hypha/apply/home/models.py
index 6857926fa4b5a29adbc5e97458879d7312ec39be..f49400181ca506694e97ead49884a720bb6dc74a 100644
--- a/hypha/apply/home/models.py
+++ b/hypha/apply/home/models.py
@@ -1,12 +1,10 @@
 from django.conf import settings
 from django.db import models
 from django.utils.decorators import method_decorator
-
 from wagtail.admin.edit_handlers import FieldPanel
 from wagtail.core.models import Page
 from wagtail.search import index
-
-from wagtailcache.cache import cache_page, WagtailCacheMixin
+from wagtailcache.cache import WagtailCacheMixin, cache_page
 
 from hypha.apply.funds.models import ApplicationBase, LabBase
 
diff --git a/hypha/apply/projects/filters.py b/hypha/apply/projects/filters.py
index 9afde93fcc61356f398be8cc33d759da91c6a858..4917e4c273f5e335b4ea14672aef2b2922dd937e 100644
--- a/hypha/apply/projects/filters.py
+++ b/hypha/apply/projects/filters.py
@@ -5,7 +5,7 @@ from django.contrib.auth import get_user_model
 from hypha.apply.funds.tables import (
     Select2ModelMultipleChoiceFilter,
     Select2MultipleChoiceFilter,
-    get_used_funds
+    get_used_funds,
 )
 
 from .models import (
diff --git a/hypha/apply/projects/forms.py b/hypha/apply/projects/forms.py
index f49c0d08d34a5226190ba17990363b29599cec51..660a2d34b82e51a06fce65bdc0e5534adb1f60ee 100644
--- a/hypha/apply/projects/forms.py
+++ b/hypha/apply/projects/forms.py
@@ -31,11 +31,10 @@ from .models import (
     Project,
     Report,
     ReportConfig,
-    ReportVersion,
     ReportPrivateFiles,
+    ReportVersion,
 )
 
-
 User = get_user_model()
 
 
diff --git a/hypha/apply/projects/management/commands/notify_report_due.py b/hypha/apply/projects/management/commands/notify_report_due.py
index 298957e5b0ea9444c0c154b687d14bf1c369e571..b02f05f302600e14279bc7441740f7c1fb54acb2 100644
--- a/hypha/apply/projects/management/commands/notify_report_due.py
+++ b/hypha/apply/projects/management/commands/notify_report_due.py
@@ -1,11 +1,11 @@
 from dateutil.relativedelta import relativedelta
-
 from django.conf import settings
 from django.contrib.messages.storage.fallback import FallbackStorage
 from django.core.management.base import BaseCommand
 from django.http import HttpRequest
-from django.utils import timezone
 from django.urls import set_urlconf
+from django.utils import timezone
+
 from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.home.models import ApplyHomePage
 from hypha.apply.projects.models import Project
diff --git a/hypha/apply/projects/models.py b/hypha/apply/projects/models.py
index 1a4b044637dba606e1b752b045005f7ebb4e62ab..bdea1de3d0e0e6b8f28c8eb5c54c4f9f56b937ff 100644
--- a/hypha/apply/projects/models.py
+++ b/hypha/apply/projects/models.py
@@ -13,18 +13,9 @@ from django.contrib.postgres.fields import JSONField
 from django.core.exceptions import ValidationError
 from django.core.validators import MinValueValidator
 from django.db import models
-from django.db.models import (
-    Case,
-    F,
-    ExpressionWrapper,
-    Max,
-    OuterRef,
-    Q,
-    Subquery,
-    Sum,
-    Value as V,
-    When,
-)
+from django.db.models import Case, ExpressionWrapper, F, Max, OuterRef, Q, Subquery, Sum
+from django.db.models import Value as V
+from django.db.models import When
 from django.db.models.functions import Cast, Coalesce
 from django.db.models.signals import post_delete
 from django.dispatch.dispatcher import receiver
@@ -32,20 +23,16 @@ from django.urls import reverse
 from django.utils import timezone
 from django.utils.functional import cached_property
 from django.utils.translation import ugettext as _
+from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel
 from wagtail.contrib.settings.models import BaseSetting, register_setting
-from wagtail.admin.edit_handlers import (
-    FieldPanel,
-    StreamFieldPanel,
-)
 from wagtail.core.fields import StreamField
 
+from addressfield.fields import ADDRESS_FIELDS_ORDER
+from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.funds.models.mixins import AccessFormData
 from hypha.apply.stream_forms.blocks import FormFieldsBlock
 from hypha.apply.stream_forms.files import StreamFieldDataEncoder
 from hypha.apply.stream_forms.models import BaseStreamForm
-
-from addressfield.fields import ADDRESS_FIELDS_ORDER
-from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.utils.storage import PrivateStorage
 
 logger = logging.getLogger(__name__)
diff --git a/hypha/apply/projects/tables.py b/hypha/apply/projects/tables.py
index dc07414b3c84cd08f2eedd791f63a043c9de6834..2c86e162e6f05e8fb55c9d50aad75766d3f756a9 100644
--- a/hypha/apply/projects/tables.py
+++ b/hypha/apply/projects/tables.py
@@ -1,8 +1,8 @@
 import textwrap
 
 import django_tables2 as tables
-from django.db.models import F, Sum
 from django.contrib.humanize.templatetags.humanize import intcomma
+from django.db.models import F, Sum
 from django.utils.safestring import mark_safe
 
 from .models import PaymentRequest, Project, Report
diff --git a/hypha/apply/projects/tests/factories.py b/hypha/apply/projects/tests/factories.py
index 2f5a3752c27a2bc1e0f479b19f34564c5c562650..6a8251cfa4a22c9bee49bc93b3502a1a93a2e343 100644
--- a/hypha/apply/projects/tests/factories.py
+++ b/hypha/apply/projects/tests/factories.py
@@ -9,9 +9,9 @@ from django.utils import timezone
 from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory
 from hypha.apply.projects.models import (
     COMPLETE,
+    IN_PROGRESS,
     Contract,
     DocumentCategory,
-    IN_PROGRESS,
     PacketFile,
     PaymentReceipt,
     PaymentRequest,
@@ -21,7 +21,10 @@ from hypha.apply.projects.models import (
     ReportConfig,
     ReportVersion,
 )
-from hypha.apply.stream_forms.testing.factories import FormDataFactory, FormFieldsBlockFactory
+from hypha.apply.stream_forms.testing.factories import (
+    FormDataFactory,
+    FormFieldsBlockFactory,
+)
 from hypha.apply.users.tests.factories import StaffFactory, UserFactory
 
 ADDRESS = {
diff --git a/hypha/apply/projects/tests/test_commands.py b/hypha/apply/projects/tests/test_commands.py
index 41b4522c9c1692d7972bd09d4072955b27fd0f59..685162fe7c85d3503ca2931f9cfc152ff02b8b95 100644
--- a/hypha/apply/projects/tests/test_commands.py
+++ b/hypha/apply/projects/tests/test_commands.py
@@ -1,18 +1,13 @@
 from io import StringIO
 
 from dateutil.relativedelta import relativedelta
-
 from django.core.management import call_command
-from django.test import override_settings, TestCase
+from django.test import TestCase, override_settings
 from django.utils import timezone
 
 from hypha.apply.home.models import ApplyHomePage
 
-from .factories import (
-    ProjectFactory,
-    ReportConfigFactory,
-    ReportFactory,
-)
+from .factories import ProjectFactory, ReportConfigFactory, ReportFactory
 
 
 @override_settings(ROOT_URLCONF='hypha.apply.urls')
diff --git a/hypha/apply/projects/tests/test_forms.py b/hypha/apply/projects/tests/test_forms.py
index c00edf1ab78078bf04974422b637283d65a1bd08..77b5c4595cd519abe85cb8ea136dcc4c3c1a3aa2 100644
--- a/hypha/apply/projects/tests/test_forms.py
+++ b/hypha/apply/projects/tests/test_forms.py
@@ -4,9 +4,7 @@ from unittest import mock
 from django.core.files.uploadedfile import SimpleUploadedFile
 from django.test import TestCase, override_settings
 
-from hypha.apply.users.tests.factories import (
-    UserFactory,
-)
+from hypha.apply.users.tests.factories import UserFactory
 
 from ..files import get_files
 from ..forms import (
@@ -17,20 +15,14 @@ from ..forms import (
     StaffUploadContractForm,
     UploadContractForm,
     filter_choices,
-    filter_request_choices
-)
-from ..models import (
-    CHANGES_REQUESTED,
-    DECLINED,
-    PAID,
-    SUBMITTED,
-    UNDER_REVIEW,
+    filter_request_choices,
 )
+from ..models import CHANGES_REQUESTED, DECLINED, PAID, SUBMITTED, UNDER_REVIEW
 from .factories import (
     DocumentCategoryFactory,
     PaymentRequestFactory,
     ProjectFactory,
-    address_to_form_data
+    address_to_form_data,
 )
 
 
diff --git a/hypha/apply/projects/tests/test_models.py b/hypha/apply/projects/tests/test_models.py
index acc86486f9fcc58193ff019dde21c12ec631af22..68e566ff24b8e703ab16876be545150347ac7b31 100644
--- a/hypha/apply/projects/tests/test_models.py
+++ b/hypha/apply/projects/tests/test_models.py
@@ -13,8 +13,8 @@ from ..models import (
     PAID,
     SUBMITTED,
     UNDER_REVIEW,
-    Project,
     PaymentRequest,
+    Project,
     Report,
     ReportConfig,
 )
@@ -23,8 +23,8 @@ from .factories import (
     PacketFileFactory,
     PaymentRequestFactory,
     ProjectFactory,
-    ReportFactory,
     ReportConfigFactory,
+    ReportFactory,
 )
 
 
diff --git a/hypha/apply/projects/tests/test_templatetags.py b/hypha/apply/projects/tests/test_templatetags.py
index 30448e448b6b3678ac9f0b3f7e12b3165349fc5d..50cf3f09b79f6993f82771da06d304cd347bd40e 100644
--- a/hypha/apply/projects/tests/test_templatetags.py
+++ b/hypha/apply/projects/tests/test_templatetags.py
@@ -12,14 +12,10 @@ from ..models import (
     IN_PROGRESS,
     PAID,
     SUBMITTED,
-    UNDER_REVIEW
+    UNDER_REVIEW,
 )
 from ..templatetags.contract_tools import user_can_upload_contract
-from ..templatetags.payment_request_tools import (
-    can_change_status,
-    can_delete,
-    can_edit
-)
+from ..templatetags.payment_request_tools import can_change_status, can_delete, can_edit
 from .factories import ContractFactory, PaymentRequestFactory, ProjectFactory
 
 
diff --git a/hypha/apply/projects/tests/test_views.py b/hypha/apply/projects/tests/test_views.py
index ac82d4ca10cc364887027448934ee23d17483442..7e5b1e8b9c08f919028f3d35c5444138d0280e24 100644
--- a/hypha/apply/projects/tests/test_views.py
+++ b/hypha/apply/projects/tests/test_views.py
@@ -1,7 +1,7 @@
 from decimal import Decimal
 from io import BytesIO
-from dateutil.relativedelta import relativedelta
 
+from dateutil.relativedelta import relativedelta
 from django.contrib.auth.models import AnonymousUser
 from django.core.exceptions import PermissionDenied
 from django.test import RequestFactory, TestCase, override_settings
@@ -15,19 +15,13 @@ from hypha.apply.users.tests.factories import (
     ReviewerFactory,
     StaffFactory,
     SuperUserFactory,
-    UserFactory
+    UserFactory,
 )
 from hypha.apply.utils.testing.tests import BaseViewTestCase
 
-from ..forms import SetPendingForm
 from ..files import get_files
-from ..models import (
-    CHANGES_REQUESTED,
-    COMMITTED,
-    CONTRACTING,
-    IN_PROGRESS,
-    SUBMITTED,
-)
+from ..forms import SetPendingForm
+from ..models import CHANGES_REQUESTED, COMMITTED, CONTRACTING, IN_PROGRESS, SUBMITTED
 from ..views import ContractsMixin, ProjectDetailSimplifiedView
 from .factories import (
     ContractFactory,
diff --git a/hypha/apply/projects/views/payment.py b/hypha/apply/projects/views/payment.py
index 1ae549abafd482277887cea764e010efbe71fffe..ca73b497a8a85f256c2fea91b1af751130db5855 100644
--- a/hypha/apply/projects/views/payment.py
+++ b/hypha/apply/projects/views/payment.py
@@ -4,34 +4,22 @@ from django.core.exceptions import PermissionDenied
 from django.db import transaction
 from django.shortcuts import get_object_or_404, redirect
 from django.utils.decorators import method_decorator
-from django.views.generic import (
-    CreateView,
-    DeleteView,
-    DetailView,
-    UpdateView
-)
+from django.views.generic import CreateView, DeleteView, DetailView, UpdateView
 from django_filters.views import FilterView
 from django_tables2 import SingleTableMixin
 
 from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.users.decorators import staff_required
 from hypha.apply.utils.storage import PrivateMediaView
-from hypha.apply.utils.views import (
-    DelegateableView,
-    DelegatedViewMixin,
-    ViewDispatcher,
-)
+from hypha.apply.utils.views import DelegateableView, DelegatedViewMixin, ViewDispatcher
 
+from ..filters import PaymentRequestListFilter
 from ..forms import (
     ChangePaymentRequestStatusForm,
     CreatePaymentRequestForm,
     EditPaymentRequestForm,
 )
-from ..filters import PaymentRequestListFilter
-from ..models import (
-    PaymentRequest,
-    Project
-)
+from ..models import PaymentRequest, Project
 from ..tables import PaymentRequestsListTable
 
 
diff --git a/hypha/apply/projects/views/project.py b/hypha/apply/projects/views/project.py
index 4a149cf055a21542d3d26a7fa8f4256df0dc1e4e..f90774d2f882a253a9442c3383056243d4aca24a 100644
--- a/hypha/apply/projects/views/project.py
+++ b/hypha/apply/projects/views/project.py
@@ -19,7 +19,7 @@ from django.views.generic import (
     DetailView,
     FormView,
     TemplateView,
-    UpdateView
+    UpdateView,
 )
 from django_filters.views import FilterView
 from django_tables2 import SingleTableMixin
@@ -28,18 +28,10 @@ from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.activity.views import ActivityContextMixin, CommentFormView
 from hypha.apply.users.decorators import approver_required, staff_required
 from hypha.apply.utils.storage import PrivateMediaView
-from hypha.apply.utils.views import (
-    DelegateableView,
-    DelegatedViewMixin,
-    ViewDispatcher,
-)
+from hypha.apply.utils.views import DelegateableView, DelegatedViewMixin, ViewDispatcher
 
 from ..files import get_files
-from ..filters import (
-    PaymentRequestListFilter,
-    ProjectListFilter,
-    ReportListFilter,
-)
+from ..filters import PaymentRequestListFilter, ProjectListFilter, ReportListFilter
 from ..forms import (
     ApproveContractForm,
     CreateApprovalForm,
@@ -52,7 +44,7 @@ from ..forms import (
     StaffUploadContractForm,
     UpdateProjectLeadForm,
     UploadContractForm,
-    UploadDocumentForm
+    UploadDocumentForm,
 )
 from ..models import (
     CONTRACTING,
@@ -65,16 +57,9 @@ from ..models import (
     Project,
     Report,
 )
-from ..tables import (
-    PaymentRequestsListTable,
-    ProjectsListTable,
-    ReportListTable,
-)
-
-from .report import ReportingMixin, ReportFrequencyUpdate
-
+from ..tables import PaymentRequestsListTable, ProjectsListTable, ReportListTable
+from .report import ReportFrequencyUpdate, ReportingMixin
 
-# APPROVAL VIEWS
 
 @method_decorator(staff_required, name='dispatch')
 class SendForApprovalView(DelegatedViewMixin, UpdateView):
diff --git a/hypha/apply/projects/views/report.py b/hypha/apply/projects/views/report.py
index bb9c54bcfe5f7f13a48dad0cf1761729bc916fe9..ae27c9f8c374d48854195f8840168328c06b828f 100644
--- a/hypha/apply/projects/views/report.py
+++ b/hypha/apply/projects/views/report.py
@@ -5,24 +5,18 @@ from django.http import Http404
 from django.shortcuts import get_object_or_404, redirect
 from django.utils.decorators import method_decorator
 from django.views import View
-from django.views.generic import (
-    DetailView,
-    UpdateView,
-)
+from django.views.generic import DetailView, UpdateView
 from django.views.generic.detail import SingleObjectMixin
 from django_filters.views import FilterView
 from django_tables2 import SingleTableMixin
 
 from hypha.apply.activity.messaging import MESSAGES, messenger
+from hypha.apply.users.decorators import staff_required
 from hypha.apply.utils.storage import PrivateMediaView
 from hypha.apply.utils.views import DelegatedViewMixin
-from hypha.apply.users.decorators import staff_required
 
 from ..filters import ReportListFilter
-from ..forms import (
-    ReportEditForm,
-    ReportFrequencyForm,
-)
+from ..forms import ReportEditForm, ReportFrequencyForm
 from ..models import Report, ReportConfig, ReportPrivateFiles
 from ..tables import ReportListTable
 
diff --git a/hypha/apply/projects/wagtail_hooks.py b/hypha/apply/projects/wagtail_hooks.py
index b33974ab8c280ff6e53c4268739dda3350746c3b..af6ea6f845d37d6faa5439663a5129bc0a29d4a0 100644
--- a/hypha/apply/projects/wagtail_hooks.py
+++ b/hypha/apply/projects/wagtail_hooks.py
@@ -2,5 +2,4 @@ from wagtail.contrib.modeladmin.options import modeladmin_register
 
 from .admin import ManageAdminGoup
 
-
 modeladmin_register(ManageAdminGoup)
diff --git a/hypha/apply/review/admin.py b/hypha/apply/review/admin.py
index cb96ff944810f3c874c83838c34f695fb11bbeb2..1c771b2cdbaa4354cc3ad29392691ac9d4d56e72 100644
--- a/hypha/apply/review/admin.py
+++ b/hypha/apply/review/admin.py
@@ -1,5 +1,4 @@
 from django.conf.urls import url
-
 from wagtail.contrib.modeladmin.options import ModelAdmin
 from wagtail.contrib.modeladmin.views import CreateView, InstanceSpecificView
 
diff --git a/hypha/apply/review/blocks.py b/hypha/apply/review/blocks.py
index 34b46d64d379873a3f48d8aa3895f8062829c6d4..fd4330801f5ee418570c56952a294fd5eb18fd4d 100644
--- a/hypha/apply/review/blocks.py
+++ b/hypha/apply/review/blocks.py
@@ -1,15 +1,27 @@
 import json
 
 from django import forms
-
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext_lazy as _
-
 from wagtail.core.blocks import RichTextBlock
 
 from hypha.apply.review.fields import ScoredAnswerField
-from hypha.apply.review.options import RECOMMENDATION_CHOICES, RATE_CHOICES_DICT, RATE_CHOICE_NA, NA, VISIBILITY, VISIBILILTY_HELP_TEXT, PRIVATE
-from hypha.apply.stream_forms.blocks import OptionalFormFieldBlock, CharFieldBlock, TextFieldBlock, CheckboxFieldBlock, DropdownFieldBlock
+from hypha.apply.review.options import (
+    NA,
+    PRIVATE,
+    RATE_CHOICE_NA,
+    RATE_CHOICES_DICT,
+    RECOMMENDATION_CHOICES,
+    VISIBILILTY_HELP_TEXT,
+    VISIBILITY,
+)
+from hypha.apply.stream_forms.blocks import (
+    CharFieldBlock,
+    CheckboxFieldBlock,
+    DropdownFieldBlock,
+    OptionalFormFieldBlock,
+    TextFieldBlock,
+)
 from hypha.apply.utils.blocks import CustomFormFieldsBlock, MustIncludeFieldBlock
 from hypha.apply.utils.options import RICH_TEXT_WIDGET_SHORT
 
diff --git a/hypha/apply/review/fields.py b/hypha/apply/review/fields.py
index ac2529a3d39f044ce277becf405c14b7e97314a8..1750f265066a335e4714bc63f347a4900a1c4bd0 100644
--- a/hypha/apply/review/fields.py
+++ b/hypha/apply/review/fields.py
@@ -1,10 +1,9 @@
 from django import forms
-from tinymce import TinyMCE
-
 from django.forms import widgets
 from django.utils.safestring import mark_safe
+from tinymce import TinyMCE
 
-from hypha.apply.review.options import RATE_CHOICES, NA
+from hypha.apply.review.options import NA, RATE_CHOICES
 from hypha.apply.utils.options import MCE_ATTRIBUTES_SHORT
 
 
diff --git a/hypha/apply/review/management/commands/migration_review_base.py b/hypha/apply/review/management/commands/migration_review_base.py
index 7a76fcef9e8d25457e2efc7226fc38c05e702a8c..7ef22d250de0a0555e25aecaa5a125abf9a31ef3 100644
--- a/hypha/apply/review/management/commands/migration_review_base.py
+++ b/hypha/apply/review/management/commands/migration_review_base.py
@@ -1,6 +1,5 @@
 import argparse
 import json
-
 from datetime import datetime, timezone
 
 from django.contrib.auth import get_user_model
@@ -8,8 +7,8 @@ from django.core.management.base import BaseCommand
 from django.db import transaction
 from django.db.utils import IntegrityError
 
-from hypha.apply.funds.models import ApplicationSubmission, Round, LabType
-from hypha.apply.funds.models.forms import RoundBaseReviewForm, LabBaseReviewForm
+from hypha.apply.funds.models import ApplicationSubmission, LabType, Round
+from hypha.apply.funds.models.forms import LabBaseReviewForm, RoundBaseReviewForm
 from hypha.apply.review.models import Review
 from hypha.apply.review.options import NA
 
diff --git a/hypha/apply/review/models.py b/hypha/apply/review/models.py
index 99f7822d0f27b9e9a2db17e362eeaa87b00a38f5..0f91ec9def67aa6df9c0c0a339c9218fa5f455f3 100644
--- a/hypha/apply/review/models.py
+++ b/hypha/apply/review/models.py
@@ -9,16 +9,31 @@ from wagtail.core.fields import StreamField
 
 from hypha.apply.funds.models.mixins import AccessFormData
 from hypha.apply.stream_forms.models import BaseStreamForm
-from hypha.apply.users.groups import STAFF_GROUP_NAME, REVIEWER_GROUP_NAME, PARTNER_GROUP_NAME
+from hypha.apply.users.groups import (
+    PARTNER_GROUP_NAME,
+    REVIEWER_GROUP_NAME,
+    STAFF_GROUP_NAME,
+)
 
 from .blocks import (
-    ReviewCustomFormFieldsBlock,
     RecommendationBlock,
     RecommendationCommentsBlock,
+    ReviewCustomFormFieldsBlock,
     ScoreFieldBlock,
     VisibilityBlock,
 )
-from .options import NA, YES, NO, MAYBE, RECOMMENDATION_CHOICES, DISAGREE, OPINION_CHOICES, VISIBILITY, PRIVATE, REVIEWER
+from .options import (
+    DISAGREE,
+    MAYBE,
+    NA,
+    NO,
+    OPINION_CHOICES,
+    PRIVATE,
+    RECOMMENDATION_CHOICES,
+    REVIEWER,
+    VISIBILITY,
+    YES,
+)
 
 
 class ReviewFormFieldsMixin(models.Model):
diff --git a/hypha/apply/review/tests/factories/__init__.py b/hypha/apply/review/tests/factories/__init__.py
index c9d2b8ebadf12898359444c6059e84c4383a94cc..609b423ab4a0373180921e113b60b8a76aea4ed5 100644
--- a/hypha/apply/review/tests/factories/__init__.py
+++ b/hypha/apply/review/tests/factories/__init__.py
@@ -1,7 +1,6 @@
-from . import models
-from .models import * # noqa
-from . import blocks
+from . import blocks, models
 from .blocks import *  # noqa
+from .models import *  # noqa
 
 __all__ = []
 
diff --git a/hypha/apply/review/tests/factories/blocks.py b/hypha/apply/review/tests/factories/blocks.py
index 1a0e473221dc13c0e0968a006c3317a535b53bd8..a3b651dc29ac0ed3b2d17922f1f78d7d9a4fd649 100644
--- a/hypha/apply/review/tests/factories/blocks.py
+++ b/hypha/apply/review/tests/factories/blocks.py
@@ -1,11 +1,15 @@
 import json
 import random
+
 import factory
 
 from hypha.apply.review import blocks
-from hypha.apply.review.options import YES, MAYBE, NO, PRIVATE, REVIEWER
-from hypha.apply.stream_forms.testing.factories import FormFieldBlockFactory, CharFieldBlockFactory, \
-    StreamFieldUUIDFactory
+from hypha.apply.review.options import MAYBE, NO, PRIVATE, REVIEWER, YES
+from hypha.apply.stream_forms.testing.factories import (
+    CharFieldBlockFactory,
+    FormFieldBlockFactory,
+    StreamFieldUUIDFactory,
+)
 from hypha.apply.utils.testing.factories import RichTextFieldBlockFactory
 
 __all__ = ['ReviewFormFieldsFactory', 'RecommendationBlockFactory', 'ScoreFieldBlockFactory']
diff --git a/hypha/apply/review/tests/factories/models.py b/hypha/apply/review/tests/factories/models.py
index 7c4a84ea5e82b931cf9b29f7f4e3a800d611866c..97c72de35cc946cab9f717004a1a13133128917f 100644
--- a/hypha/apply/review/tests/factories/models.py
+++ b/hypha/apply/review/tests/factories/models.py
@@ -1,11 +1,13 @@
 import factory
 
-from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory, AssignedReviewersFactory
+from hypha.apply.funds.tests.factories import (
+    ApplicationSubmissionFactory,
+    AssignedReviewersFactory,
+)
 from hypha.apply.stream_forms.testing.factories import FormDataFactory
 
-from ...options import YES, NO, MAYBE, AGREE, DISAGREE, PRIVATE, REVIEWER
 from ...models import Review, ReviewForm, ReviewOpinion
-
+from ...options import AGREE, DISAGREE, MAYBE, NO, PRIVATE, REVIEWER, YES
 from . import blocks
 
 __all__ = ['ReviewFactory', 'ReviewFormFactory', 'ReviewOpinionFactory']
diff --git a/hypha/apply/review/tests/test_admin.py b/hypha/apply/review/tests/test_admin.py
index 544653d6a3cffb659b424d2fbe96ede1e87589e9..56b02b381ba5bae93b161b58fa6a27bad5c83eb0 100644
--- a/hypha/apply/review/tests/test_admin.py
+++ b/hypha/apply/review/tests/test_admin.py
@@ -1,6 +1,7 @@
 from unittest import TestCase
 
 from hypha.apply.review.models import ReviewForm
+
 from .factories import ReviewFormFactory
 
 
diff --git a/hypha/apply/review/tests/test_models.py b/hypha/apply/review/tests/test_models.py
index 498de981a88805461dc0746b7f9216ffc81a8c25..e511859996541e05cc75bdf04ef5235889534cc5 100644
--- a/hypha/apply/review/tests/test_models.py
+++ b/hypha/apply/review/tests/test_models.py
@@ -1,8 +1,9 @@
 from django.test import TestCase
 
 from hypha.apply.funds.tests.factories import ApplicationSubmissionFactory
-from .factories import ReviewFactory, ReviewOpinionFactory
+
 from ..options import MAYBE, NO, YES
+from .factories import ReviewFactory, ReviewOpinionFactory
 
 
 class TestReviewQueryset(TestCase):
diff --git a/hypha/apply/review/tests/test_views.py b/hypha/apply/review/tests/test_views.py
index fb7608d62aecffceb161315c6687045bc6e4fa62..f92f26f6ff4ced18c207b9322a28c4ec5ce9893c 100644
--- a/hypha/apply/review/tests/test_views.py
+++ b/hypha/apply/review/tests/test_views.py
@@ -5,9 +5,14 @@ from hypha.apply.funds.tests.factories.models import ApplicationSubmissionFactor
 from hypha.apply.users.tests.factories import ReviewerFactory, StaffFactory, UserFactory
 from hypha.apply.utils.testing.tests import BaseViewTestCase
 
-from .factories import ReviewFactory, ReviewFormFieldsFactory, ReviewFormFactory, ReviewOpinionFactory
 from ..models import Review, ReviewOpinion
-from ..options import NA, AGREE, DISAGREE
+from ..options import AGREE, DISAGREE, NA
+from .factories import (
+    ReviewFactory,
+    ReviewFormFactory,
+    ReviewFormFieldsFactory,
+    ReviewOpinionFactory,
+)
 
 
 class StaffReviewsTestCase(BaseViewTestCase):
diff --git a/hypha/apply/review/urls.py b/hypha/apply/review/urls.py
index e7d575eb459f3a45cfe9f8b30c69dddc7825d5c7..0d389652ec6325d4e9103c8338e7d1779f817192 100644
--- a/hypha/apply/review/urls.py
+++ b/hypha/apply/review/urls.py
@@ -1,6 +1,12 @@
 from django.urls import path
 
-from .views import ReviewDetailView, ReviewListView, ReviewCreateOrUpdateView, ReviewDeleteView, ReviewEditView
+from .views import (
+    ReviewCreateOrUpdateView,
+    ReviewDeleteView,
+    ReviewDetailView,
+    ReviewEditView,
+    ReviewListView,
+)
 
 app_name = 'reviews'
 
diff --git a/hypha/apply/review/views.py b/hypha/apply/review/views.py
index 135f13c144108722b033b6db5cdd8a8fcec78b62..a6e75b4e30a6dd078c26dff4e64bb6ba97f75f47 100644
--- a/hypha/apply/review/views.py
+++ b/hypha/apply/review/views.py
@@ -6,11 +6,16 @@ from django.shortcuts import get_object_or_404
 from django.template.loader import get_template
 from django.urls import reverse_lazy
 from django.utils.decorators import method_decorator
-from django.views.generic import CreateView, ListView, DetailView, DeleteView, UpdateView
-
+from django.views.generic import (
+    CreateView,
+    DeleteView,
+    DetailView,
+    ListView,
+    UpdateView,
+)
 from wagtail.core.blocks import RichTextBlock
 
-from hypha.apply.activity.messaging import messenger, MESSAGES
+from hypha.apply.activity.messaging import MESSAGES, messenger
 from hypha.apply.funds.models import ApplicationSubmission, AssignedReviewers
 from hypha.apply.funds.workflow import INITIAL_STATE
 from hypha.apply.review.blocks import RecommendationBlock, RecommendationCommentsBlock
@@ -18,8 +23,8 @@ from hypha.apply.review.forms import ReviewModelForm, ReviewOpinionForm
 from hypha.apply.stream_forms.models import BaseStreamForm
 from hypha.apply.users.decorators import staff_required
 from hypha.apply.users.groups import REVIEWER_GROUP_NAME
-from hypha.apply.utils.views import CreateOrUpdateView
 from hypha.apply.utils.image import generate_image_tag
+from hypha.apply.utils.views import CreateOrUpdateView
 
 from .models import Review
 from .options import DISAGREE
diff --git a/hypha/apply/review/wagtail_hooks.py b/hypha/apply/review/wagtail_hooks.py
index 71f122fb74e779aa73c878ed427d79d88480aa36..64cad0a7fb44ac9ca409ed133b3a7b2d29707143 100644
--- a/hypha/apply/review/wagtail_hooks.py
+++ b/hypha/apply/review/wagtail_hooks.py
@@ -1,5 +1,4 @@
 from django.contrib.auth.models import Permission
-
 from wagtail.core import hooks
 
 
diff --git a/hypha/apply/stream_forms/blocks.py b/hypha/apply/stream_forms/blocks.py
index 09b37619c0924ab73539e4166cd6d7eb260ed05a..7c454d3f907fc8aaa12c7cc5a57c225e9b1eb526 100644
--- a/hypha/apply/stream_forms/blocks.py
+++ b/hypha/apply/stream_forms/blocks.py
@@ -1,8 +1,6 @@
 # Credit to https://github.com/BertrandBordage for initial implementation
 import bleach
 from dateutil.parser import isoparse, parse
-from django_bleach.templatetags.bleach_tags import bleach_value
-
 from django import forms
 from django.conf import settings
 from django.core.validators import FileExtensionValidator
@@ -12,10 +10,22 @@ from django.utils.dateparse import parse_datetime
 from django.utils.encoding import force_str
 from django.utils.text import slugify
 from django.utils.translation import ugettext_lazy as _
+from django_bleach.templatetags.bleach_tags import bleach_value
 from unidecode import unidecode
 from wagtail.core.blocks import (
-    StructBlock, TextBlock, CharBlock, BooleanBlock, ListBlock, StreamBlock,
-    DateBlock, TimeBlock, DateTimeBlock, ChoiceBlock, RichTextBlock, StaticBlock, URLBlock
+    BooleanBlock,
+    CharBlock,
+    ChoiceBlock,
+    DateBlock,
+    DateTimeBlock,
+    ListBlock,
+    RichTextBlock,
+    StaticBlock,
+    StreamBlock,
+    StructBlock,
+    TextBlock,
+    TimeBlock,
+    URLBlock,
 )
 
 from .fields import MultiFileField
diff --git a/hypha/apply/stream_forms/fields.py b/hypha/apply/stream_forms/fields.py
index e8ab53369377896a620a032005c6e95778121db8..e2f630ae742455a4edf58701b182d397ad72cb0f 100644
--- a/hypha/apply/stream_forms/fields.py
+++ b/hypha/apply/stream_forms/fields.py
@@ -1,6 +1,6 @@
 from django.conf import settings
 from django.core.validators import FileExtensionValidator
-from django.forms import ClearableFileInput, FileField, CheckboxInput
+from django.forms import CheckboxInput, ClearableFileInput, FileField
 
 
 class MultiFileInput(ClearableFileInput):
diff --git a/hypha/apply/stream_forms/forms.py b/hypha/apply/stream_forms/forms.py
index d4de59b9d7284da9da2f4250531b2af8fc65dbbf..d503b3d70c2583a40aa70771fc5ea975d1aa89af 100644
--- a/hypha/apply/stream_forms/forms.py
+++ b/hypha/apply/stream_forms/forms.py
@@ -1,6 +1,5 @@
 from django import forms
 from django.forms.forms import DeclarativeFieldsMetaclass
-
 from wagtail.contrib.forms.forms import BaseForm
 
 
diff --git a/hypha/apply/stream_forms/testing/factories.py b/hypha/apply/stream_forms/testing/factories.py
index 4520f19c16d64134f4c3c9a85b97b6713c3dc9f6..49d7c5bfc0624606b4ce67604be43418dbf354bc 100644
--- a/hypha/apply/stream_forms/testing/factories.py
+++ b/hypha/apply/stream_forms/testing/factories.py
@@ -1,13 +1,13 @@
-from collections import defaultdict
 import json
 import uuid
+from collections import defaultdict
 
+import factory
+import wagtail_factories
 from django.core.files.uploadedfile import SimpleUploadedFile
 from django.core.serializers.json import DjangoJSONEncoder
-import factory
 from wagtail.core.blocks import RichTextBlock
 from wagtail.core.rich_text import RichText
-import wagtail_factories
 
 from hypha.apply.stream_forms import blocks as stream_blocks
 
diff --git a/hypha/apply/stream_forms/tests.py b/hypha/apply/stream_forms/tests.py
index 52fe2970de36c2393091a69f5501b5d17507c2b9..3fa97e3c7faf18e6694fdfd9adb156b56c21ca7a 100644
--- a/hypha/apply/stream_forms/tests.py
+++ b/hypha/apply/stream_forms/tests.py
@@ -1,11 +1,10 @@
 from django.core.files.uploadedfile import SimpleUploadedFile
 from django.test import TestCase
-
 from faker import Faker
 
-from .files import StreamFieldFile
-from .fields import MultiFileField, MultiFileInput
 from .blocks import FormFieldBlock, FormFieldsBlock
+from .fields import MultiFileField, MultiFileInput
+from .files import StreamFieldFile
 
 fake = Faker()
 
diff --git a/hypha/apply/urls.py b/hypha/apply/urls.py
index c290ceb9fcb527fc1799ed1a34fba581b2aee530..080d7bcf522a1a344b95086ce6b3dc12344740e4 100644
--- a/hypha/apply/urls.py
+++ b/hypha/apply/urls.py
@@ -1,15 +1,13 @@
 from django.conf import settings
 from django.urls import include, path
-
 from two_factor.urls import urlpatterns as tf_urls
 
-from .utils import views
-from .users import urls as users_urls
-from .dashboard import urls as dashboard_urls
-from .api import urls as api_urls
-
 from hypha.urls import base_urlpatterns
 
+from .api import urls as api_urls
+from .dashboard import urls as dashboard_urls
+from .users import urls as users_urls
+from .utils import views
 
 urlpatterns = [
     path('apply/', include('hypha.apply.funds.urls', 'apply')),
diff --git a/hypha/apply/users/admin_views.py b/hypha/apply/users/admin_views.py
index 77826bdc62433d79f53fc290415d83378e446f1f..643dfcf86d60d2a97123d83ca25aaabf7750fa0b 100644
--- a/hypha/apply/users/admin_views.py
+++ b/hypha/apply/users/admin_views.py
@@ -4,7 +4,6 @@ from django.db.models import Q
 from django.shortcuts import render
 from django.utils.translation import ugettext as _
 from django.views.decorators.vary import vary_on_headers
-
 from wagtail.admin.forms.search import SearchForm
 from wagtail.admin.utils import any_permission_required
 from wagtail.core.compat import AUTH_USER_APP_LABEL, AUTH_USER_MODEL_NAME
diff --git a/hypha/apply/users/decorators.py b/hypha/apply/users/decorators.py
index b41a4aaee89d268e53e97700d2fb91b8d897377c..726113b54eff5d513da7225d24db43a1346d8657 100644
--- a/hypha/apply/users/decorators.py
+++ b/hypha/apply/users/decorators.py
@@ -1,5 +1,5 @@
-from django.core.exceptions import PermissionDenied
 from django.contrib.auth.decorators import login_required, user_passes_test
+from django.core.exceptions import PermissionDenied
 
 from .utils import can_use_oauth_check
 
diff --git a/hypha/apply/users/forms.py b/hypha/apply/users/forms.py
index d89f45a9c45d41e81acc16958517f0fa6354a88a..7b74060d9c68e0548d956dcbeedc0ce5c212b94a 100644
--- a/hypha/apply/users/forms.py
+++ b/hypha/apply/users/forms.py
@@ -1,10 +1,8 @@
 from django import forms
 from django.contrib.auth import get_user_model
 from django.utils.translation import gettext_lazy as _
-
-from wagtail.users.forms import UserEditForm, UserCreationForm
-
 from django_select2.forms import Select2Widget
+from wagtail.users.forms import UserCreationForm, UserEditForm
 
 User = get_user_model()
 
diff --git a/hypha/apply/users/middleware.py b/hypha/apply/users/middleware.py
index 8affe31bc4e52aaf652fc0901730d67a27d2c97e..4ebdf2d0e55453a10ffbe6b5069c04ec03f1d53a 100644
--- a/hypha/apply/users/middleware.py
+++ b/hypha/apply/users/middleware.py
@@ -1,5 +1,7 @@
 from social_core.exceptions import AuthForbidden
-from social_django.middleware import SocialAuthExceptionMiddleware as _SocialAuthExceptionMiddleware
+from social_django.middleware import (
+    SocialAuthExceptionMiddleware as _SocialAuthExceptionMiddleware,
+)
 
 
 class SocialAuthExceptionMiddleware(_SocialAuthExceptionMiddleware):
diff --git a/hypha/apply/users/models.py b/hypha/apply/users/models.py
index 1c60d84be3766d124aa41c2a7616f04ba16a8a1a..a00f87cdc469593d139f1f438b55fcc85f1e342e 100644
--- a/hypha/apply/users/models.py
+++ b/hypha/apply/users/models.py
@@ -5,9 +5,14 @@ from django.db.models import Q
 from django.utils.functional import cached_property
 from django.utils.translation import gettext_lazy as _
 
-from .groups import (APPLICANT_GROUP_NAME, APPROVER_GROUP_NAME,
-                     COMMUNITY_REVIEWER_GROUP_NAME, PARTNER_GROUP_NAME,
-                     REVIEWER_GROUP_NAME, STAFF_GROUP_NAME)
+from .groups import (
+    APPLICANT_GROUP_NAME,
+    APPROVER_GROUP_NAME,
+    COMMUNITY_REVIEWER_GROUP_NAME,
+    PARTNER_GROUP_NAME,
+    REVIEWER_GROUP_NAME,
+    STAFF_GROUP_NAME,
+)
 from .utils import send_activation_email
 
 
diff --git a/hypha/apply/users/tests/factories.py b/hypha/apply/users/tests/factories.py
index 0fb5bee111ed2029b74d7fd4b48c2285be66fe88..f9b4b231293629c2be50c9c0d2b26d26f66d656e 100644
--- a/hypha/apply/users/tests/factories.py
+++ b/hypha/apply/users/tests/factories.py
@@ -1,11 +1,10 @@
 import uuid
 
+import factory
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Group
 from django.utils.text import slugify
 
-import factory
-
 from ..groups import (
     APPLICANT_GROUP_NAME,
     APPROVER_GROUP_NAME,
diff --git a/hypha/apply/users/tests/test_oauth_access.py b/hypha/apply/users/tests/test_oauth_access.py
index 4fa5c4b4447516e0c68872d7b9dafee57890bd35..8de97b56be0926b66ed25ea915b4e942e31a8c0e 100644
--- a/hypha/apply/users/tests/test_oauth_access.py
+++ b/hypha/apply/users/tests/test_oauth_access.py
@@ -1,5 +1,5 @@
-from django.contrib.auth import get_user_model
 from django.conf import settings
+from django.contrib.auth import get_user_model
 from django.test import TestCase, override_settings
 from django.urls import reverse
 
diff --git a/hypha/apply/users/tests/test_views.py b/hypha/apply/users/tests/test_views.py
index 49fb30d8cfd707ec3b2c8776e8822c2f13153626..1529f86fec0188af398874434f63d93e88324e62 100644
--- a/hypha/apply/users/tests/test_views.py
+++ b/hypha/apply/users/tests/test_views.py
@@ -1,14 +1,10 @@
 from django.core import mail
-from django.test import override_settings, TestCase
+from django.test import TestCase, override_settings
 from django.urls import reverse
 
 from hypha.apply.utils.testing.tests import BaseViewTestCase
-from .factories import (
-    OAuthUserFactory,
-    StaffFactory,
-    SuperUserFactory,
-    UserFactory,
-)
+
+from .factories import OAuthUserFactory, StaffFactory, SuperUserFactory, UserFactory
 
 
 @override_settings(ROOT_URLCONF='hypha.apply.urls')
diff --git a/hypha/apply/users/urls.py b/hypha/apply/users/urls.py
index 943ea9c9d337d34394cf07b9ca2f0e8937699eb5..ee0affa8516918deecb0fcf5b6aa0c6c94da148b 100644
--- a/hypha/apply/users/urls.py
+++ b/hypha/apply/users/urls.py
@@ -1,9 +1,14 @@
-from django.urls import path, include
 from django.contrib.auth import views as auth_views
-from django.urls import reverse_lazy
-
-from hypha.apply.users.views import LoginView, AccountView, become, oauth, ActivationView, create_password
+from django.urls import include, path, reverse_lazy
 
+from hypha.apply.users.views import (
+    AccountView,
+    ActivationView,
+    LoginView,
+    become,
+    create_password,
+    oauth,
+)
 
 app_name = 'users'
 
diff --git a/hypha/apply/users/utils.py b/hypha/apply/users/utils.py
index d556002730df36283b386533a3c2f37ee1d02ec6..f044ec2f57d3a093896e34adee2b06452b20d3b0 100644
--- a/hypha/apply/users/utils.py
+++ b/hypha/apply/users/utils.py
@@ -1,9 +1,9 @@
 from django.conf import settings
 from django.contrib.auth.tokens import PasswordResetTokenGenerator
 from django.template.loader import render_to_string
+from django.urls import reverse
 from django.utils.encoding import force_bytes
 from django.utils.http import urlsafe_base64_encode
-from django.urls import reverse
 
 
 def can_use_oauth_check(user):
diff --git a/hypha/apply/users/views.py b/hypha/apply/users/views.py
index 91cc1102454fa49e237f537bd1da298db233ce67..d7a1fd35ee265609a5bf2a96740dedcccf2f607d 100644
--- a/hypha/apply/users/views.py
+++ b/hypha/apply/users/views.py
@@ -18,16 +18,13 @@ from django.views.decorators.csrf import csrf_protect
 from django.views.decorators.debug import sensitive_post_parameters
 from django.views.generic import UpdateView
 from django.views.generic.base import TemplateView
-
 from hijack.views import login_with_id
 from two_factor.views import LoginView as TwoFactorLoginView
-
 from wagtail.admin.views.account import password_management_enabled
 
 from .decorators import require_oauth_whitelist
 from .forms import BecomeUserForm, ProfileForm
 
-
 User = get_user_model()
 
 
diff --git a/hypha/apply/users/wagtail_hooks.py b/hypha/apply/users/wagtail_hooks.py
index f0b7fbddbffb79a7ae96ee97714b549ff9240961..7c33cead2c263a4444fe36f8cc5a8068089b192b 100644
--- a/hypha/apply/users/wagtail_hooks.py
+++ b/hypha/apply/users/wagtail_hooks.py
@@ -1,6 +1,5 @@
 from django.conf.urls import url
 from django.urls import reverse
-
 from wagtail.core import hooks
 
 from hypha.apply.utils.notifications import slack_notify
diff --git a/hypha/apply/utils/blocks.py b/hypha/apply/utils/blocks.py
index 17193826dea06d806e6f5446e66bb86b01c07f45..76c8ef555ff821c45a7a9aeada0b8c1af1f516d9 100644
--- a/hypha/apply/utils/blocks.py
+++ b/hypha/apply/utils/blocks.py
@@ -1,16 +1,18 @@
 from collections import Counter
-from pagedown.widgets import PagedownWidget
 
 import bleach
-
 from django.core.exceptions import ValidationError
 from django.forms.utils import ErrorList
-from django.utils.translation import ugettext_lazy as _
 from django.utils.safestring import mark_safe
+from django.utils.translation import ugettext_lazy as _
+from pagedown.widgets import PagedownWidget
+from wagtail.core.blocks import StaticBlock, StreamBlock, StreamValue
 
-from wagtail.core.blocks import StaticBlock, StreamValue, StreamBlock
-
-from hypha.apply.stream_forms.blocks import FormFieldBlock, OptionalFormFieldBlock, TextFieldBlock
+from hypha.apply.stream_forms.blocks import (
+    FormFieldBlock,
+    OptionalFormFieldBlock,
+    TextFieldBlock,
+)
 from hypha.apply.utils.options import RICH_TEXT_WIDGET
 
 
diff --git a/hypha/apply/utils/notifications.py b/hypha/apply/utils/notifications.py
index 037b23a32bec317028ad8baf077e2ad85e4f7c92..13e403e4b1800de4ea94de5e90580cdcdbaf2e30 100644
--- a/hypha/apply/utils/notifications.py
+++ b/hypha/apply/utils/notifications.py
@@ -1,5 +1,4 @@
 import requests
-
 from django.conf import settings
 
 
diff --git a/hypha/apply/utils/pdfs.py b/hypha/apply/utils/pdfs.py
index e44e6898eee8eb71832867afd06ee6e6a2e63a10..505b9c2d74b5afb1316247e7be227f3a87a3cfa3 100644
--- a/hypha/apply/utils/pdfs.py
+++ b/hypha/apply/utils/pdfs.py
@@ -1,6 +1,7 @@
-import os
 import io
+import os
 
+from bs4 import BeautifulSoup, NavigableString
 from reportlab.lib import pagesizes
 from reportlab.lib.colors import Color, white
 from reportlab.lib.styles import ParagraphStyle as PS
@@ -18,9 +19,6 @@ from reportlab.platypus import (
     TableStyle,
 )
 
-
-from bs4 import BeautifulSoup, NavigableString
-
 styles = {
     'Question': PS(fontName='MontserratBold', fontSize=14, name='Question', spaceAfter=0, spaceBefore=18, leading=21),
     'Normal': PS(fontName='NotoSans', name='Normal'),
diff --git a/hypha/apply/utils/storage.py b/hypha/apply/utils/storage.py
index f431b20096f174bb795f4b72c33300ede5e44b74..5e65e8beb9c8d0c24cc481758434738bc43a2962 100644
--- a/hypha/apply/utils/storage.py
+++ b/hypha/apply/utils/storage.py
@@ -3,7 +3,6 @@ from django.core.files.storage import get_storage_class
 from django.http import FileResponse
 from django.views.generic import View
 
-
 private_file_storage = getattr(settings, 'PRIVATE_FILE_STORAGE', None)
 PrivateStorage = get_storage_class(private_file_storage)
 
diff --git a/hypha/apply/utils/testing/__init__.py b/hypha/apply/utils/testing/__init__.py
index 51bee7cf554f86ae3460ee4e30dfa08ff549188c..543930639558bca50676ca3cd739729ff86f2e0a 100644
--- a/hypha/apply/utils/testing/__init__.py
+++ b/hypha/apply/utils/testing/__init__.py
@@ -1 +1 @@
-from .tests import make_request, BaseViewTestCase  # NOQA
+from .tests import BaseViewTestCase, make_request  # NOQA
diff --git a/hypha/apply/utils/testing/tests.py b/hypha/apply/utils/testing/tests.py
index 3fec6e085ae154b85a2b6ee7369a96037b27cd5e..f3b2592c346ac396df3185ff86cf84a1f10b1be3 100644
--- a/hypha/apply/utils/testing/tests.py
+++ b/hypha/apply/utils/testing/tests.py
@@ -1,9 +1,8 @@
-from django.contrib.messages.storage.fallback import FallbackStorage
 from django.contrib.auth.models import AnonymousUser
-from django.test import override_settings, TestCase, RequestFactory
+from django.contrib.messages.storage.fallback import FallbackStorage
+from django.test import RequestFactory, TestCase, override_settings
 from django.urls import reverse
 
-
 request_factory = RequestFactory()
 
 
diff --git a/hypha/apply/utils/views.py b/hypha/apply/utils/views.py
index 5f01b74d6cf95f1c7d5e2559d5edb9b9f19d6b68..0e7d61744a3eb563a3393cc4ecc3e3711409c7fd 100644
--- a/hypha/apply/utils/views.py
+++ b/hypha/apply/utils/views.py
@@ -1,13 +1,13 @@
 from django.contrib.auth.decorators import login_required
 from django.forms.models import ModelForm
 from django.http import HttpResponseForbidden
+from django.shortcuts import redirect
 from django.utils.decorators import method_decorator
 from django.views import defaults
 from django.views.generic import View
 from django.views.generic.base import ContextMixin
 from django.views.generic.detail import SingleObjectTemplateResponseMixin
 from django.views.generic.edit import ModelFormMixin, ProcessFormView
-from django.shortcuts import redirect
 
 
 def page_not_found(request, exception=None, template_name='apply/404.html'):
diff --git a/hypha/images/models.py b/hypha/images/models.py
index dbc5e50c8e9ccd64513b2a8190fd5a4a3554fdf9..6ae7525cc31db60d8da87d69d63b9453b59ddebf 100644
--- a/hypha/images/models.py
+++ b/hypha/images/models.py
@@ -1,9 +1,5 @@
 from django.db import models
-from wagtail.images.models import (
-    AbstractImage,
-    AbstractRendition,
-    Image,
-)
+from wagtail.images.models import AbstractImage, AbstractRendition, Image
 
 
 # We define our own custom image class to replace wagtailimages.Image,
diff --git a/hypha/public/forms/models.py b/hypha/public/forms/models.py
index a0cb6b662d945d5792dff462835be99f437e40b7..b5f4af0ef71ac41737759d263525f4631740cd20 100644
--- a/hypha/public/forms/models.py
+++ b/hypha/public/forms/models.py
@@ -1,25 +1,28 @@
-import os
 import json
+import os
 
+from django.conf import settings
 from django.core.files.storage import get_storage_class
 from django.core.serializers.json import DjangoJSONEncoder
-from django.conf import settings
 from django.db import models
 from django.forms import FileField
 from django.utils.decorators import method_decorator
 from django.utils.translation import ugettext_lazy as _
 from django.views.decorators.cache import never_cache
-
 from modelcluster.fields import ParentalKey
-
-from wagtail.core.fields import RichTextField
 from wagtail.admin.edit_handlers import (
-    FieldPanel, FieldRowPanel, MultiFieldPanel, InlinePanel
+    FieldPanel,
+    FieldRowPanel,
+    InlinePanel,
+    MultiFieldPanel,
 )
 from wagtail.contrib.forms.forms import FormBuilder
 from wagtail.contrib.forms.models import (
-    AbstractEmailForm, AbstractFormField, FORM_FIELD_CHOICES
+    FORM_FIELD_CHOICES,
+    AbstractEmailForm,
+    AbstractFormField,
 )
+from wagtail.core.fields import RichTextField
 from wagtail.search import index
 
 from hypha.public.utils.models import BasePage
diff --git a/hypha/public/forms/wagtail_hooks.py b/hypha/public/forms/wagtail_hooks.py
index fc2f84a6c3b6f0dba1ec8f2183c49badb8beda14..6bf68a1f8e868d56330a3603ace23ffcf3f75eae 100644
--- a/hypha/public/forms/wagtail_hooks.py
+++ b/hypha/public/forms/wagtail_hooks.py
@@ -1,5 +1,4 @@
 from django.contrib.contenttypes.models import ContentType
-
 from wagtail.core import hooks
 
 from hypha.public.forms.models import FormPage
diff --git a/hypha/public/funds/models.py b/hypha/public/funds/models.py
index 3d84800729dc1fc5030bda8e5a9bd487dd546b56..75511e170db4d1e63ebfad07e2be74396b916ad3 100644
--- a/hypha/public/funds/models.py
+++ b/hypha/public/funds/models.py
@@ -1,13 +1,11 @@
 from django.conf import settings
+from django.core import validators
 from django.core.exceptions import ValidationError
 from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
-from django.core import validators
 from django.db import models
 from django.utils.deconstruct import deconstructible
-
 from modelcluster.fields import ParentalKey
 from pagedown.widgets import PagedownWidget
-
 from wagtail.admin.edit_handlers import (
     FieldPanel,
     FieldRowPanel,
@@ -22,10 +20,7 @@ from wagtail.search import index
 
 from hypha.apply.funds.models import ApplicationSubmission
 from hypha.apply.funds.workflow import OPEN_CALL_PHASES
-from hypha.public.utils.models import (
-    BasePage,
-    RelatedPage,
-)
+from hypha.public.utils.models import BasePage, RelatedPage
 
 from .blocks import FundBlock, LabBlock
 
diff --git a/hypha/public/home/blocks.py b/hypha/public/home/blocks.py
index c7e9dddc92acc55b013e2295a2ab4e9f29b24bb7..50da83dcc9ba616a7f7545bd84d5c46778cb5d6a 100644
--- a/hypha/public/home/blocks.py
+++ b/hypha/public/home/blocks.py
@@ -1,5 +1,4 @@
 from wagtail.core import blocks
-
 from wagtail.images.blocks import ImageChooserBlock
 
 
diff --git a/hypha/public/home/models.py b/hypha/public/home/models.py
index 10d9bc992d064d1e1cff02fa03dc5f48f8b31d4a..d2598eb8e11ce79b47299e7aa6c6accc30ac8780 100644
--- a/hypha/public/home/models.py
+++ b/hypha/public/home/models.py
@@ -1,15 +1,19 @@
 import datetime
-from django.db import models
 
+from django.db import models
 from modelcluster.fields import ParentalKey
-
-from wagtail.admin.edit_handlers import FieldPanel, InlinePanel, PageChooserPanel, MultiFieldPanel, StreamFieldPanel
+from wagtail.admin.edit_handlers import (
+    FieldPanel,
+    InlinePanel,
+    MultiFieldPanel,
+    PageChooserPanel,
+    StreamFieldPanel,
+)
 from wagtail.core.fields import StreamField
 from wagtail.search import index
 
-from hypha.public.utils.models import BasePage, RelatedPage
-
 from hypha.public.funds.models import FundPage, LabPage, RFPPage
+from hypha.public.utils.models import BasePage, RelatedPage
 
 from .blocks import OurWorkBlock
 
diff --git a/hypha/public/home/templatetags/home_tags.py b/hypha/public/home/templatetags/home_tags.py
index 48902fb8703286def7d60e618394e8f9f1d7af24..5e4e438690e9e520271d0c17e216cfb798d61880 100644
--- a/hypha/public/home/templatetags/home_tags.py
+++ b/hypha/public/home/templatetags/home_tags.py
@@ -1,7 +1,6 @@
 from django import template
 from django.utils.safestring import mark_safe
 
-
 register = template.Library()
 
 
diff --git a/hypha/public/mailchimp/models.py b/hypha/public/mailchimp/models.py
index b337a66a4b9b3af65bc69216040e8679c6c68900..300bd4015b66849053f831f28d1da35884f3d0dc 100644
--- a/hypha/public/mailchimp/models.py
+++ b/hypha/public/mailchimp/models.py
@@ -1,5 +1,4 @@
 from django.db import models
-
 from wagtail.admin.edit_handlers import FieldPanel
 from wagtail.contrib.settings.models import BaseSetting, register_setting
 
diff --git a/hypha/public/mailchimp/tests.py b/hypha/public/mailchimp/tests.py
index 1b91ba015684d7905f5b014fb81fd088fa01f608..772cc990d9db8fefc0a2e4dab22d604558fe9e92 100644
--- a/hypha/public/mailchimp/tests.py
+++ b/hypha/public/mailchimp/tests.py
@@ -1,12 +1,10 @@
-from urllib import parse
-from unittest import mock
 import re
-
-from django.test import override_settings, TestCase
-from django.urls import reverse
+from unittest import mock
+from urllib import parse
 
 import responses
-
+from django.test import TestCase, override_settings
+from django.urls import reverse
 
 any_url = re.compile(".")
 
diff --git a/hypha/public/mailchimp/urls.py b/hypha/public/mailchimp/urls.py
index 4fe8fd700905dce757a61635859439915c5eb90f..f6500f54045cc9e2c3b338a28f60c79d1f369f79 100644
--- a/hypha/public/mailchimp/urls.py
+++ b/hypha/public/mailchimp/urls.py
@@ -2,7 +2,6 @@ from django.urls import path
 
 from .views import MailchimpSubscribeView
 
-
 app_name = 'newsletter'
 
 
diff --git a/hypha/public/mailchimp/views.py b/hypha/public/mailchimp/views.py
index 84b4b2abd7bc6272125e3f421bac3ff5299676b5..8efd3640b5d8f07659438d5e106c5200a3e7326a 100644
--- a/hypha/public/mailchimp/views.py
+++ b/hypha/public/mailchimp/views.py
@@ -1,5 +1,4 @@
 import logging
-
 import uuid
 
 from django.conf import settings
@@ -10,7 +9,6 @@ from django.utils.translation import ugettext_lazy as _
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic import RedirectView
 from django.views.generic.edit import FormMixin
-
 from mailchimp3 import MailChimp
 
 from .forms import NewsletterForm
diff --git a/hypha/public/navigation/models.py b/hypha/public/navigation/models.py
index adce6c8af60137134d9b0072d09a82a1c68004e3..8bdde4a92c384cced4832806b993a6c84fb1c4a6 100644
--- a/hypha/public/navigation/models.py
+++ b/hypha/public/navigation/models.py
@@ -1,6 +1,6 @@
 from modelcluster.models import ClusterableModel
-from wagtail.contrib.settings.models import BaseSetting, register_setting
 from wagtail.admin.edit_handlers import StreamFieldPanel
+from wagtail.contrib.settings.models import BaseSetting, register_setting
 from wagtail.core import blocks
 from wagtail.core.fields import StreamField
 
diff --git a/hypha/public/navigation/templatetags/navigation_tags.py b/hypha/public/navigation/templatetags/navigation_tags.py
index 2b7f4bb7d2bc87955ffdcb2610fce3e73b398477..e474fd0127d545179284c349f7e3fefb912d8a2d 100644
--- a/hypha/public/navigation/templatetags/navigation_tags.py
+++ b/hypha/public/navigation/templatetags/navigation_tags.py
@@ -2,7 +2,6 @@ from django import template
 
 from hypha.public.navigation.models import NavigationSettings
 
-
 register = template.Library()
 
 
diff --git a/hypha/public/news/feeds.py b/hypha/public/news/feeds.py
index 545502509659a361e04eb9708f927ae0eda204a0..cee735c307dbc9dbc1106303847170410ffe81d2 100644
--- a/hypha/public/news/feeds.py
+++ b/hypha/public/news/feeds.py
@@ -3,10 +3,9 @@ from django.contrib.syndication.views import Feed
 from django.core.cache import cache
 from django.db.models.functions import Coalesce
 from django.http import Http404
-
 from wagtail.core.models import Site
 
-from hypha.public.news.models import NewsPage, NewsType, NewsIndex, NewsFeedSettings
+from hypha.public.news.models import NewsFeedSettings, NewsIndex, NewsPage, NewsType
 
 
 class NewsFeed(Feed):
diff --git a/hypha/public/news/management/commands/migrate_news.py b/hypha/public/news/management/commands/migrate_news.py
index bc518bfe80d610dd6f1af579e737459e625fad03..0c82a63cdea69c3ef02c9dfaf3fd94f84c8e069f 100644
--- a/hypha/public/news/management/commands/migrate_news.py
+++ b/hypha/public/news/management/commands/migrate_news.py
@@ -1,28 +1,26 @@
 import argparse
 import json
-
 from datetime import datetime, timezone
 
 from django.core.management.base import BaseCommand
 from django.db import transaction
 from django.db.utils import IntegrityError
-
 from wagtail.admin.rich_text.converters.editor_html import EditorHTMLConverter
 from wagtail.core.rich_text import RichText
 
-from hypha.apply.categories.models import Category, Option
 from hypha.apply.categories.categories_seed import CATEGORIES
+from hypha.apply.categories.models import Category, Option
 from hypha.apply.users.models import User
-from hypha.public.people.models import PersonPage
-from hypha.public.projects.models import ProjectPage
 from hypha.public.news.models import (
     NewsIndex,
     NewsPage,
     NewsPageAuthor,
-    NewsType,
     NewsPageNewsType,
     NewsProjectRelatedPage,
+    NewsType,
 )
+from hypha.public.people.models import PersonPage
+from hypha.public.projects.models import ProjectPage
 
 
 class Command(BaseCommand):
diff --git a/hypha/public/news/models.py b/hypha/public/news/models.py
index 8b1d43abc1b8ac8c4a52e8272bc27783c8d86a1e..c860f6bb9eba47c91c8f4d37d58b3bbf957a7161 100644
--- a/hypha/public/news/models.py
+++ b/hypha/public/news/models.py
@@ -1,20 +1,18 @@
-from django.db import models
-from django.db.models.functions import Coalesce
 from django.conf import settings
 from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
-
+from django.db import models
+from django.db.models.functions import Coalesce
 from modelcluster.fields import ParentalKey
 from pagedown.widgets import PagedownWidget
-
-from wagtail.core.models import Orderable
-from wagtail.core.fields import StreamField
 from wagtail.admin.edit_handlers import (
-    InlinePanel,
     FieldPanel,
+    InlinePanel,
     PageChooserPanel,
     StreamFieldPanel,
 )
 from wagtail.contrib.settings.models import BaseSetting, register_setting
+from wagtail.core.fields import StreamField
+from wagtail.core.models import Orderable
 from wagtail.search import index
 
 from hypha.public.utils.models import BasePage, RelatedPage
diff --git a/hypha/public/people/management/commands/migrate_people.py b/hypha/public/people/management/commands/migrate_people.py
index 770cc24edfb7094a249d9e1bda4073198497e2c8..6780ec45168e4a9390a51932b20cf9d67b4e483f 100644
--- a/hypha/public/people/management/commands/migrate_people.py
+++ b/hypha/public/people/management/commands/migrate_people.py
@@ -2,39 +2,35 @@ import argparse
 import itertools
 import json
 import mimetypes
-
 from datetime import datetime, timezone
-from urllib.parse import urlsplit
 from io import BytesIO
-
-import requests
-from PIL import Image
+from urllib.parse import urlsplit
 
 import bleach
+import requests
 from django.core.files.images import ImageFile
 from django.core.management.base import BaseCommand
 from django.db import transaction
 from django.db.utils import IntegrityError
-
+from PIL import Image
 from wagtail.admin.rich_text.converters.editor_html import EditorHTMLConverter
 from wagtail.core.models import Page
 from wagtail.core.rich_text import RichText
 from wagtail.images import get_image_model
 
-from hypha.apply.categories.models import Category, Option
 from hypha.apply.categories.categories_seed import CATEGORIES
+from hypha.apply.categories.models import Category, Option
 from hypha.public.people.models import (
     Funding,
     FundReviewers,
     PersonContactInfomation,
-    PersonPage,
     PersonIndexPage,
-    PersonType,
+    PersonPage,
     PersonPagePersonType,
+    PersonType,
     SocialMediaProfile,
 )
 
-
 WagtailImage = get_image_model()
 
 VALID_IMAGE_EXTENSIONS = [
diff --git a/hypha/public/people/models.py b/hypha/public/people/models.py
index 256314f95331b6af324dcbfb9b3f7ba9d6b76131..dc2e686424a3465f9d75fc58b93541d9b1a6b247 100644
--- a/hypha/public/people/models.py
+++ b/hypha/public/people/models.py
@@ -1,26 +1,24 @@
-from django.db import models
+from django.conf import settings
 from django.core.exceptions import ValidationError
 from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
-from django.conf import settings
-
+from django.db import models
 from modelcluster.fields import ParentalKey
 from pagedown.widgets import PagedownWidget
-
-from wagtail.core.models import Orderable, PageManager, PageQuerySet
-from wagtail.core.fields import StreamField
 from wagtail.admin.edit_handlers import (
     FieldPanel,
     FieldRowPanel,
     InlinePanel,
     MultiFieldPanel,
     PageChooserPanel,
-    StreamFieldPanel
+    StreamFieldPanel,
 )
+from wagtail.core.fields import StreamField
+from wagtail.core.models import Orderable, PageManager, PageQuerySet
 from wagtail.images.edit_handlers import ImageChooserPanel
 from wagtail.search import index
 
 from hypha.public.utils.blocks import StoryBlock
-from hypha.public.utils.models import BasePage, BaseFunding, FundingMixin, RelatedPage
+from hypha.public.utils.models import BaseFunding, BasePage, FundingMixin, RelatedPage
 
 
 class SocialMediaProfile(models.Model):
diff --git a/hypha/public/people/wagtail_hooks.py b/hypha/public/people/wagtail_hooks.py
index ed2a0fce2c6dd8432105e3337c051a0d28635533..25fd275c3eab6bf9bcce3c8a2dbc8a703740e831 100644
--- a/hypha/public/people/wagtail_hooks.py
+++ b/hypha/public/people/wagtail_hooks.py
@@ -1,6 +1,5 @@
 from django.contrib.staticfiles.templatetags.staticfiles import static
 from django.utils.safestring import mark_safe
-
 from wagtail.core import hooks
 
 
diff --git a/hypha/public/projects/management/commands/migrate_projects.py b/hypha/public/projects/management/commands/migrate_projects.py
index 4279079a49eadaa9ba5b39653a89a752f11f1b58..93d4aaf68ac48941fe2eaa91f9dc0b13b59b918a 100644
--- a/hypha/public/projects/management/commands/migrate_projects.py
+++ b/hypha/public/projects/management/commands/migrate_projects.py
@@ -2,27 +2,24 @@ import argparse
 import itertools
 import json
 import mimetypes
-
 from datetime import datetime, timezone
-from urllib.parse import urlsplit
 from io import BytesIO
-
-import requests
-from PIL import Image
+from urllib.parse import urlsplit
 
 import bleach
+import requests
 from django.core.files.images import ImageFile
 from django.core.management.base import BaseCommand
 from django.db import transaction
 from django.db.utils import IntegrityError
-
+from PIL import Image
 from wagtail.admin.rich_text.converters.editor_html import EditorHTMLConverter
 from wagtail.core.models import Page
 from wagtail.core.rich_text import RichText
 from wagtail.images import get_image_model
 
-from hypha.apply.categories.models import Category, Option
 from hypha.apply.categories.categories_seed import CATEGORIES
+from hypha.apply.categories.models import Category, Option
 from hypha.public.projects.models import (
     ProjectContactDetails,
     ProjectFunding,
@@ -30,7 +27,6 @@ from hypha.public.projects.models import (
     ProjectPage,
 )
 
-
 WagtailImage = get_image_model()
 
 VALID_IMAGE_EXTENSIONS = [
diff --git a/hypha/public/projects/models.py b/hypha/public/projects/models.py
index f3656df2492102093d1b0021b9aca599362bdc1c..6cefcf7d8981cf73f523e89219f4a178ed9b9660 100644
--- a/hypha/public/projects/models.py
+++ b/hypha/public/projects/models.py
@@ -1,14 +1,12 @@
 import json
 
-from django.db import models
 from django.conf import settings
 from django.core.exceptions import ValidationError
 from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
 from django.core.validators import URLValidator
-
+from django.db import models
 from modelcluster.fields import ParentalKey
 from pagedown.widgets import PagedownWidget
-
 from wagtail.admin.edit_handlers import (
     FieldPanel,
     InlinePanel,
@@ -16,19 +14,13 @@ from wagtail.admin.edit_handlers import (
     PageChooserPanel,
     StreamFieldPanel,
 )
-
 from wagtail.core.fields import StreamField
 from wagtail.images.edit_handlers import ImageChooserPanel
 from wagtail.search import index
 
 from hypha.apply.categories.models import Option
 from hypha.public.utils.blocks import StoryBlock
-from hypha.public.utils.models import (
-    BaseFunding,
-    BasePage,
-    FundingMixin,
-    RelatedPage,
-)
+from hypha.public.utils.models import BaseFunding, BasePage, FundingMixin, RelatedPage
 
 from .widgets import CategoriesWidget
 
diff --git a/hypha/public/standardpages/models.py b/hypha/public/standardpages/models.py
index 01b93997c8193810758d2553c4a601dcf9171703..2de8b3a76bf33752960dac8fb02940ae8ad01e7d 100644
--- a/hypha/public/standardpages/models.py
+++ b/hypha/public/standardpages/models.py
@@ -1,23 +1,14 @@
-from django.db import models
 from django.conf import settings
 from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
-
+from django.db import models
 from modelcluster.fields import ParentalKey
 from pagedown.widgets import PagedownWidget
-
-from wagtail.admin.edit_handlers import (
-    FieldPanel, StreamFieldPanel,
-    InlinePanel
-)
-
+from wagtail.admin.edit_handlers import FieldPanel, InlinePanel, StreamFieldPanel
 from wagtail.core.fields import StreamField
 from wagtail.search import index
 
 from hypha.public.utils.blocks import StoryBlock
-from hypha.public.utils.models import (
-    BasePage,
-    RelatedPage,
-)
+from hypha.public.utils.models import BasePage, RelatedPage
 
 
 class InformationPageRelatedPage(RelatedPage):
diff --git a/hypha/public/urls.py b/hypha/public/urls.py
index 7d27061f5c0ebd716c7eaeb69a0377029c62e9f3..a1868e486fe4e5b2079e4c954b1589e7f77da439 100644
--- a/hypha/public/urls.py
+++ b/hypha/public/urls.py
@@ -1,8 +1,8 @@
 from django.urls import include, path
 
-from .search import views as search_views
 from .mailchimp import urls as newsletter_urls
 from .news import feeds as news_feeds
+from .search import views as search_views
 
 urlpatterns = [
     path('search/', search_views.search, name='search'),
diff --git a/hypha/public/utils/models.py b/hypha/public/utils/models.py
index f5cf5403eda61231a9aa9936516d2b9da29c5af4..f1e33523a89e3580dbebccc7ecdd2785c18b25d3 100644
--- a/hypha/public/utils/models.py
+++ b/hypha/public/utils/models.py
@@ -1,8 +1,7 @@
-from django.core.exceptions import ValidationError
 from django.conf import settings
+from django.core.exceptions import ValidationError
 from django.db import models
 from django.utils.decorators import method_decorator
-
 from wagtail.admin.edit_handlers import (
     FieldPanel,
     FieldRowPanel,
@@ -11,14 +10,13 @@ from wagtail.admin.edit_handlers import (
     PageChooserPanel,
     StreamFieldPanel,
 )
+from wagtail.contrib.settings.models import BaseSetting, register_setting
 from wagtail.core import blocks
-from wagtail.core.fields import StreamField, RichTextField
+from wagtail.core.fields import RichTextField, StreamField
 from wagtail.core.models import Orderable, Page
 from wagtail.images.edit_handlers import ImageChooserPanel
 from wagtail.snippets.models import register_snippet
-from wagtail.contrib.settings.models import BaseSetting, register_setting
-
-from wagtailcache.cache import cache_page, WagtailCacheMixin
+from wagtailcache.cache import WagtailCacheMixin, cache_page
 
 
 class LinkFields(models.Model):
diff --git a/hypha/public/utils/templatetags/util_tags.py b/hypha/public/utils/templatetags/util_tags.py
index d1be553d859b152ec3ac058c2eea5bbc80ad6702..270a4eb71580c7ae2cc6aefcf24bf0def5a9f363 100644
--- a/hypha/public/utils/templatetags/util_tags.py
+++ b/hypha/public/utils/templatetags/util_tags.py
@@ -1,10 +1,8 @@
 from django import template
-
 from wagtail.core.utils import camelcase_to_underscore
 
 from hypha.public.utils.models import SocialMediaSettings
 
-
 register = template.Library()
 
 
diff --git a/hypha/public/utils/wagtail_hooks.py b/hypha/public/utils/wagtail_hooks.py
index 914642e22827eb926b69ab52211070333983caff..12448438468019269b07cfab7a21b0b8f4170ed3 100644
--- a/hypha/public/utils/wagtail_hooks.py
+++ b/hypha/public/utils/wagtail_hooks.py
@@ -1,8 +1,10 @@
 from django.contrib.staticfiles.templatetags.staticfiles import static
-
-from wagtail.contrib.modeladmin.options import ModelAdminGroup, ModelAdmin, modeladmin_register
+from wagtail.contrib.modeladmin.options import (
+    ModelAdmin,
+    ModelAdminGroup,
+    modeladmin_register,
+)
 from wagtail.core import hooks
-
 from wagtailcache.cache import clear_cache
 
 from hypha.public.news.models import NewsType
diff --git a/hypha/settings/base.py b/hypha/settings/base.py
index 2a3fa51da9138b2091b2ce5984b28a1149089cdf..f9cedc9c54e31200cd315760cca3f7973814c430 100644
--- a/hypha/settings/base.py
+++ b/hypha/settings/base.py
@@ -4,6 +4,7 @@ Django settings for hypha project.
 
 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 import os
+
 import dj_database_url
 
 env = os.environ.copy()
diff --git a/hypha/settings/test.py b/hypha/settings/test.py
index b5990e4589a7d9032045a653a0bcd2d9ad501a14..ebbfa77f6b798ced0d9a1e45ac9ad48fd12430e1 100644
--- a/hypha/settings/test.py
+++ b/hypha/settings/test.py
@@ -1,8 +1,9 @@
 import logging
 
+from .base import *  # noqa
+
 logging.disable(logging.CRITICAL)
 
-from .base import *  # noqa
 
 # Should only include explicit testing settings
 
diff --git a/hypha/urls.py b/hypha/urls.py
index 60db2bb458048d465120314cd90a5251cca92675..d060adff04b94fd5d8187009c478d2c4db21a50f 100644
--- a/hypha/urls.py
+++ b/hypha/urls.py
@@ -1,18 +1,17 @@
 from django.conf import settings
-from django.urls import include, path
+from django.conf.urls import url
 from django.contrib import admin
+from django.urls import include, path
 from django.views.generic import TemplateView
-from django.conf.urls import url
-
-from wagtail.contrib.sitemaps.views import sitemap
 from wagtail.admin import urls as wagtailadmin_urls
+from wagtail.contrib.sitemaps.views import sitemap
 from wagtail.core import urls as wagtail_urls
 from wagtail.documents import urls as wagtaildocs_urls
 from wagtail.images.views.serve import ServeView
 
-from hypha.public import urls as public_urls
 from hypha.apply.users.urls import public_urlpatterns as user_urls
 from hypha.apply.users.views import LoginView
+from hypha.public import urls as public_urls
 
 urlpatterns = [
     path('django-admin/', admin.site.urls),