We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Raw HTML content type
<!-- Do you want to ask a question? Are you looking for support? The system administrator can help you: admin@utn.se -->

### Description
There is currently no content type for raw HTML that can be used for the Jexpo. A special content type could be created for Jexpo as it works right now but since the way Jexpo is initialized can change (according to themselves), they recommend using a raw HTML. 

There should be a content type for raw HTML.

<!-- Please select the appropriate "topic category"/blue and "issue type"/yellow label -->

Forms are missing form introduction.
### Description

Creating a new form in Wagtail lets you specify an introduction to the form, which isn't displayed.


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `src/home/models/web_page.py`
Content:
```
1 from __future__ import absolute_import, unicode_literals
2 from django.db import models
3 from django.utils.translation import ugettext_lazy as _
4 from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel, \
5         TabbedInterface, ObjectList
6 from wagtail.core.fields import StreamField
7 from wagtail.core.models import Page
8 from blocks.models import WAGTAIL_STATIC_BLOCKTYPES
9 from google.models import GoogleFormBlock, GoogleDriveBlock, \
10     GoogleCalendarBlock
11 from news.models import LatestNewsBlock
12 from utils.translation import TranslatedField
13 
14 
15 class WebPage(Page):
16     # ---- General Page information ------
17 
18     title_sv = models.CharField(max_length=255)
19     translated_title = TranslatedField('title', 'title_sv')
20 
21     body_en = StreamField(
22         WAGTAIL_STATIC_BLOCKTYPES + [
23             ('google_calendar', GoogleCalendarBlock()),
24             ('google_drive', GoogleDriveBlock()),
25             ('google_form', GoogleFormBlock()),
26             ('news', LatestNewsBlock()),
27         ],
28         blank=True,
29     )
30     body_sv = StreamField(
31         WAGTAIL_STATIC_BLOCKTYPES + [
32             ('google_calendar', GoogleCalendarBlock()),
33             ('google_drive', GoogleDriveBlock()),
34             ('google_form', GoogleFormBlock()),
35             ('news', LatestNewsBlock()),
36         ],
37         blank=True,
38     )
39     body = TranslatedField('body_en', 'body_sv')
40 
41     content_panels_en = Page.content_panels + [
42         StreamFieldPanel('body_en'),
43     ]
44 
45     content_panels_sv = [
46         FieldPanel('title_sv', classname="full title"),
47         StreamFieldPanel('body_sv'),
48     ]
49 
50     edit_handler = TabbedInterface([
51         ObjectList(content_panels_en, heading=_('English')),
52         ObjectList(content_panels_sv, heading=_('Swedish')),
53         ObjectList(Page.promote_panels, heading=_('Promote')),
54         ObjectList(Page.settings_panels, heading=_('Settings')),
55     ])
56
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/src/home/models/web_page.py b/src/home/models/web_page.py
--- a/src/home/models/web_page.py
+++ b/src/home/models/web_page.py
@@ -5,6 +5,7 @@
         TabbedInterface, ObjectList
 from wagtail.core.fields import StreamField
 from wagtail.core.models import Page
+from wagtail.core.blocks import RawHTMLBlock
 from blocks.models import WAGTAIL_STATIC_BLOCKTYPES
 from google.models import GoogleFormBlock, GoogleDriveBlock, \
     GoogleCalendarBlock
@@ -24,6 +25,7 @@
             ('google_drive', GoogleDriveBlock()),
             ('google_form', GoogleFormBlock()),
             ('news', LatestNewsBlock()),
+            ('html', RawHTMLBlock(group="Basic")),
         ],
         blank=True,
     )
@@ -33,6 +35,7 @@
             ('google_drive', GoogleDriveBlock()),
             ('google_form', GoogleFormBlock()),
             ('news', LatestNewsBlock()),
+            ('html', RawHTMLBlock(group="Basic")),
         ],
         blank=True,
     )

{"golden_diff": "diff --git a/src/home/models/web_page.py b/src/home/models/web_page.py\n--- a/src/home/models/web_page.py\n+++ b/src/home/models/web_page.py\n@@ -5,6 +5,7 @@\n         TabbedInterface, ObjectList\n from wagtail.core.fields import StreamField\n from wagtail.core.models import Page\n+from wagtail.core.blocks import RawHTMLBlock\n from blocks.models import WAGTAIL_STATIC_BLOCKTYPES\n from google.models import GoogleFormBlock, GoogleDriveBlock, \\\n     GoogleCalendarBlock\n@@ -24,6 +25,7 @@\n             ('google_drive', GoogleDriveBlock()),\n             ('google_form', GoogleFormBlock()),\n             ('news', LatestNewsBlock()),\n+            ('html', RawHTMLBlock(group=\"Basic\")),\n         ],\n         blank=True,\n     )\n@@ -33,6 +35,7 @@\n             ('google_drive', GoogleDriveBlock()),\n             ('google_form', GoogleFormBlock()),\n             ('news', LatestNewsBlock()),\n+            ('html', RawHTMLBlock(group=\"Basic\")),\n         ],\n         blank=True,\n     )\n", "issue": "Raw HTML content type\n<!-- Do you want to ask a question? Are you looking for support? The system administrator can help you: admin@utn.se -->\r\n\r\n### Description\r\nThere is currently no content type for raw HTML that can be used for the Jexpo. A special content type could be created for Jexpo as it works right now but since the way Jexpo is initialized can change (according to themselves), they recommend using a raw HTML. \r\n\r\nThere should be a content type for raw HTML.\r\n\r\n<!-- Please select the appropriate \"topic category\"/blue and \"issue type\"/yellow label -->\r\n\nForms are missing form introduction.\n### Description\r\n\r\nCreating a new form in Wagtail lets you specify an introduction to the form, which isn't displayed.\r\n\n", "before_files": [{"content": "from __future__ import absolute_import, unicode_literals\nfrom django.db import models\nfrom django.utils.translation import ugettext_lazy as _\nfrom wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel, \\\n        TabbedInterface, ObjectList\nfrom wagtail.core.fields import StreamField\nfrom wagtail.core.models import Page\nfrom blocks.models import WAGTAIL_STATIC_BLOCKTYPES\nfrom google.models import GoogleFormBlock, GoogleDriveBlock, \\\n    GoogleCalendarBlock\nfrom news.models import LatestNewsBlock\nfrom utils.translation import TranslatedField\n\n\nclass WebPage(Page):\n    # ---- General Page information ------\n\n    title_sv = models.CharField(max_length=255)\n    translated_title = TranslatedField('title', 'title_sv')\n\n    body_en = StreamField(\n        WAGTAIL_STATIC_BLOCKTYPES + [\n            ('google_calendar', GoogleCalendarBlock()),\n            ('google_drive', GoogleDriveBlock()),\n            ('google_form', GoogleFormBlock()),\n            ('news', LatestNewsBlock()),\n        ],\n        blank=True,\n    )\n    body_sv = StreamField(\n        WAGTAIL_STATIC_BLOCKTYPES + [\n            ('google_calendar', GoogleCalendarBlock()),\n            ('google_drive', GoogleDriveBlock()),\n            ('google_form', GoogleFormBlock()),\n            ('news', LatestNewsBlock()),\n        ],\n        blank=True,\n    )\n    body = TranslatedField('body_en', 'body_sv')\n\n    content_panels_en = Page.content_panels + [\n        StreamFieldPanel('body_en'),\n    ]\n\n    content_panels_sv = [\n        FieldPanel('title_sv', classname=\"full title\"),\n        StreamFieldPanel('body_sv'),\n    ]\n\n    edit_handler = TabbedInterface([\n        ObjectList(content_panels_en, heading=_('English')),\n        ObjectList(content_panels_sv, heading=_('Swedish')),\n        ObjectList(Page.promote_panels, heading=_('Promote')),\n        ObjectList(Page.settings_panels, heading=_('Settings')),\n    ])\n", "path": "src/home/models/web_page.py"}], "after_files": [{"content": "from __future__ import absolute_import, unicode_literals\nfrom django.db import models\nfrom django.utils.translation import ugettext_lazy as _\nfrom wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel, \\\n        TabbedInterface, ObjectList\nfrom wagtail.core.fields import StreamField\nfrom wagtail.core.models import Page\nfrom wagtail.core.blocks import RawHTMLBlock\nfrom blocks.models import WAGTAIL_STATIC_BLOCKTYPES\nfrom google.models import GoogleFormBlock, GoogleDriveBlock, \\\n    GoogleCalendarBlock\nfrom news.models import LatestNewsBlock\nfrom utils.translation import TranslatedField\n\n\nclass WebPage(Page):\n    # ---- General Page information ------\n\n    title_sv = models.CharField(max_length=255)\n    translated_title = TranslatedField('title', 'title_sv')\n\n    body_en = StreamField(\n        WAGTAIL_STATIC_BLOCKTYPES + [\n            ('google_calendar', GoogleCalendarBlock()),\n            ('google_drive', GoogleDriveBlock()),\n            ('google_form', GoogleFormBlock()),\n            ('news', LatestNewsBlock()),\n            ('html', RawHTMLBlock(group=\"Basic\")),\n        ],\n        blank=True,\n    )\n    body_sv = StreamField(\n        WAGTAIL_STATIC_BLOCKTYPES + [\n            ('google_calendar', GoogleCalendarBlock()),\n            ('google_drive', GoogleDriveBlock()),\n            ('google_form', GoogleFormBlock()),\n            ('news', LatestNewsBlock()),\n            ('html', RawHTMLBlock(group=\"Basic\")),\n        ],\n        blank=True,\n    )\n    body = TranslatedField('body_en', 'body_sv')\n\n    content_panels_en = Page.content_panels + [\n        StreamFieldPanel('body_en'),\n    ]\n\n    content_panels_sv = [\n        FieldPanel('title_sv', classname=\"full title\"),\n        StreamFieldPanel('body_sv'),\n    ]\n\n    edit_handler = TabbedInterface([\n        ObjectList(content_panels_en, heading=_('English')),\n        ObjectList(content_panels_sv, heading=_('Swedish')),\n        ObjectList(Page.promote_panels, heading=_('Promote')),\n        ObjectList(Page.settings_panels, heading=_('Settings')),\n    ])\n", "path": "src/home/models/web_page.py"}]}