diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index efd78632c..a8bc357c0 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -33,6 +33,7 @@ Changelog
* Fix: Specific page permission checks are now enforced when viewing a page revision (Andy Chosak)
* Fix: `pageurl` and `slugurl` tags no longer fail when `request.site` is `None` (Samir Shah)
* Fix: Output form media on add/edit image forms with custom models (Matt Westcott)
+ * Fix: Output form media on add/edit document forms with custom models (Sergey Fedoseev)
* Fix: Layout for the clear checkbox in default FileField widget (Mikalai Radchuk)
* Fix: Remove ASCII conversion from Postgres search backend, to support stemming in non-Latin alphabets (Pavel Denisov)
* Fix: Prevent tab labels on page edit view from being cut off on very narrow screens (Kevin Howbrook)
diff --git a/docs/releases/2.7.rst b/docs/releases/2.7.rst
index 9bf80d3e6..61e536415 100644
--- a/docs/releases/2.7.rst
+++ b/docs/releases/2.7.rst
@@ -57,6 +57,7 @@ Bug fixes
* Specific page permission checks are now enforced when viewing a page revision (Andy Chosak)
* ``pageurl`` and ``slugurl`` tags no longer fail when ``request.site`` is ``None`` (Samir Shah)
* Output form media on add/edit image forms with custom models (Matt Westcott)
+ * Output form media on add/edit document forms with custom models (Sergey Fedoseev)
* Fixes layout for the clear checkbox in default FileField widget (Mikalai Radchuk)
* Remove ASCII conversion from Postgres search backend, to support stemming in non-Latin alphabets (Pavel Denisov)
* Prevent tab labels on page edit view from being cut off on very narrow screens (Kevin Howbrook)
diff --git a/wagtail/documents/templates/wagtaildocs/chooser/chooser.html b/wagtail/documents/templates/wagtaildocs/chooser/chooser.html
index 1b9d4c4d0..ce2d8bd53 100644
--- a/wagtail/documents/templates/wagtaildocs/chooser/chooser.html
+++ b/wagtail/documents/templates/wagtaildocs/chooser/chooser.html
@@ -2,6 +2,8 @@
{% trans "Choose a document" as choose_str %}
{% include "wagtailadmin/shared/header.html" with title=choose_str tabbed=1 merged=1 icon="doc-full-inverse" %}
+{{ uploadform.media.js }}
+{{ uploadform.media.css }}
{% if uploadform %}
diff --git a/wagtail/documents/templates/wagtaildocs/documents/add.html b/wagtail/documents/templates/wagtaildocs/documents/add.html
index 4e5e37ceb..db38922c7 100644
--- a/wagtail/documents/templates/wagtaildocs/documents/add.html
+++ b/wagtail/documents/templates/wagtaildocs/documents/add.html
@@ -6,6 +6,8 @@
{% block extra_js %}
{{ block.super }}
+ {{ form.media.js }}
+
{% url 'wagtailadmin_tag_autocomplete' as autocomplete_url %}
{% endblock %}
+{% block extra_css %}
+ {{ block.super }}
+ {{ form.media.css }}
+{% endblock %}
+
{% block content %}
{% trans "Add document" as add_str %}
{% include "wagtailadmin/shared/header.html" with title=add_str icon="doc-full-inverse" %}
diff --git a/wagtail/documents/templates/wagtaildocs/documents/edit.html b/wagtail/documents/templates/wagtaildocs/documents/edit.html
index b81c23117..d1a755c69 100644
--- a/wagtail/documents/templates/wagtaildocs/documents/edit.html
+++ b/wagtail/documents/templates/wagtaildocs/documents/edit.html
@@ -6,6 +6,8 @@
{% block extra_js %}
{{ block.super }}
+ {{ form.media.js }}
+
{% url 'wagtailadmin_tag_autocomplete' as autocomplete_url %}
{% endblock %}
+{% block extra_css %}
+ {{ block.super }}
+ {{ form.media.css }}
+{% endblock %}
+
{% block content %}
{% trans "Editing" as editing_str %}
{% include "wagtailadmin/shared/header.html" with title=editing_str subtitle=document.title icon="doc-full-inverse" %}
diff --git a/wagtail/documents/templates/wagtaildocs/multiple/add.html b/wagtail/documents/templates/wagtaildocs/multiple/add.html
index 48dda205a..5d60a1a01 100644
--- a/wagtail/documents/templates/wagtaildocs/multiple/add.html
+++ b/wagtail/documents/templates/wagtaildocs/multiple/add.html
@@ -6,6 +6,8 @@
{% block extra_css %}
{{ block.super }}
+ {{ form_media.css }}
+
{% endblock %}
@@ -67,6 +69,8 @@
{% block extra_js %}
{{ block.super }}
+ {{ form_media.js }}
+
diff --git a/wagtail/documents/tests/test_admin_views.py b/wagtail/documents/tests/test_admin_views.py
index a679eb098..d4496cae5 100644
--- a/wagtail/documents/tests/test_admin_views.py
+++ b/wagtail/documents/tests/test_admin_views.py
@@ -11,7 +11,7 @@ from django.urls import reverse
from wagtail.core.models import Collection, GroupCollectionPermission, Page
from wagtail.documents import models
from wagtail.documents.tests.utils import get_test_document_file
-from wagtail.tests.testapp.models import EventPage, EventPageRelatedLink
+from wagtail.tests.testapp.models import CustomDocument, EventPage, EventPageRelatedLink
from wagtail.tests.utils import WagtailTestUtils
@@ -115,6 +115,9 @@ class TestDocumentAddView(TestCase, WagtailTestUtils):
# Ensure the form supports file uploads
self.assertContains(response, 'enctype="multipart/form-data"')
+ # draftail should NOT be a standard JS include on this page
+ self.assertNotContains(response, 'wagtailadmin/js/draftail.js')
+
def test_get_with_collections(self):
root_collection = Collection.get_first_root_node()
root_collection.add_child(name="Evil plans")
@@ -126,6 +129,21 @@ class TestDocumentAddView(TestCase, WagtailTestUtils):
self.assertContains(response, '