Skip to content

Commit

Permalink
Add Information Page (#21)
Browse files Browse the repository at this point in the history
* Standard_pages app creation

* Django models for information page updated and the template for the information page tweaked

* Replace `pytest` with Django's built-in runner (#18)

* Release calendar pages (#16)

* Replace Docker Desktop setup with Colima (#24)

* Add Cookie banner and Google Tag Manager snippet (#19)

* Analysis page and series (#20)

* Addition of equation partials

* Repeated code remove, /media added to .gitignore, media file removed

* Related pages InlinePanel added. Add Info Template updated.

---------


Co-authored-by: Neha <[email protected]>
Co-authored-by: Sanjeev <[email protected]>
  • Loading branch information
sanjeevz3009 and nehakerung authored Nov 19, 2024
1 parent ac4b8af commit 0fee2f4
Show file tree
Hide file tree
Showing 9 changed files with 159 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -187,3 +187,6 @@ static/

# mkdocs
/site

# Media files
/media
27 changes: 27 additions & 0 deletions cms/jinja2/templates/pages/information_page.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{% extends "templates/base_page.html" %}
{% from "components/related-content/_macro.njk" import onsRelatedContent %}

{% block main %}
<p>{{ page.summary }}</p>

{% if page.last_updated %}
<h5>Last Updated: {{ page.last_updated }}</h5>
{% endif %}

{% include_block page.content %}

{% if page.related_pages %}
{# fmt:off #}
{{-
onsRelatedContent({
"ariaLabel": _('Related content'),
"rows": [{
"id": 'related-content',
"title": _('Related content'),
"itemsList": page.related_pages
}]
})
-}}
{# fmt:on #}
{% endif %}
{% endblock %}
1 change: 1 addition & 0 deletions cms/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
"cms.themes",
"cms.topics",
"cms.users",
"cms.standard_pages",
"wagtail.embeds",
"wagtail.sites",
"wagtail.users",
Expand Down
Empty file added cms/standard_pages/__init__.py
Empty file.
8 changes: 8 additions & 0 deletions cms/standard_pages/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.apps import AppConfig


class StandardPagesConfig(AppConfig):
"""The standard_pages app config."""

default_auto_field = "django.db.models.BigAutoField"
name = "cms.standard_pages"
64 changes: 64 additions & 0 deletions cms/standard_pages/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Generated by Django 5.1.2 on 2024-11-08 15:48

import django.db.models.deletion
from django.db import migrations, models

import cms.core.fields


class Migration(migrations.Migration):
initial = True

dependencies = [
("images", "0001_initial"),
("wagtailcore", "0094_alter_page_locale"),
]

operations = [
migrations.CreateModel(
name="InformationPage",
fields=[
(
"page_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.page",
),
),
("listing_title", models.CharField(blank=True, max_length=255)),
("listing_summary", models.CharField(blank=True, max_length=255)),
("social_text", models.CharField(blank=True, max_length=255)),
("summary", models.TextField(max_length=255)),
("last_updated", models.DateField(blank=True, null=True)),
("content", cms.core.fields.StreamField(block_lookup={})),
(
"listing_image",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="+",
to="images.customimage",
),
),
(
"social_image",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="+",
to="images.customimage",
),
),
],
options={
"abstract": False,
},
bases=("wagtailcore.page", models.Model),
),
]
Empty file.
40 changes: 40 additions & 0 deletions cms/standard_pages/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
from typing import ClassVar

from django.db import models
from wagtail.admin.panels import FieldPanel, InlinePanel
from wagtail.search import index

from cms.core.blocks.stream_blocks import CoreStoryBlock
from cms.core.fields import StreamField
from cms.core.models import BasePage


class InformationPage(BasePage): # type: ignore[django-manager-missing]
"""A generic information page model."""

template = "templates/pages/information_page.html"

parent_page_types: ClassVar[list[str]] = [
# Ensures that the information page can only be created under the home page
"home.HomePage",
# Ensures that the information page can be created under another information page
"standard_pages.InformationPage",
]

summary = models.TextField(max_length=255)
last_updated = models.DateField(blank=True, null=True)
content = StreamField(CoreStoryBlock())

content_panels: ClassVar[list[FieldPanel]] = [
*BasePage.content_panels,
FieldPanel("summary"),
FieldPanel("last_updated"),
FieldPanel("content"),
InlinePanel("page_related_pages", label="Related pages"),
]

search_fields: ClassVar[list[index.SearchField | index.AutocompleteField]] = [
*BasePage.search_fields,
index.SearchField("summary"),
index.SearchField("content"),
]
16 changes: 16 additions & 0 deletions cms/static_src/sass/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,19 @@
body {
display: block;
}

// Custom CSS from Wagtail doc to enable responsive video embeds
.responsive-object {
position: relative;
}

.responsive-object iframe,
.responsive-object object,
.responsive-object embed {
position: absolute;
top: 0;
/* stylelint-disable-next-line property-disallowed-list */
left: 0;
width: 100%;
height: 100%;
}

0 comments on commit 0fee2f4

Please sign in to comment.