diff --git a/apps/cms/migrations/0008_homepage_background_image.py b/apps/cms/migrations/0008_homepage_background_image.py
new file mode 100644
index 000000000..5091b89b1
--- /dev/null
+++ b/apps/cms/migrations/0008_homepage_background_image.py
@@ -0,0 +1,27 @@
+# Generated by Django 3.2.25 on 2024-10-14 17:20
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("wagtailimages", "0025_alter_image_file_alter_rendition_file"),
+ ("cms", "0007_homepage_featured_video"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="homepage",
+ name="background_image",
+ field=models.ForeignKey(
+ blank=True,
+ help_text="Optional background image for the site header",
+ null=True,
+ on_delete=django.db.models.deletion.SET_NULL,
+ related_name="+",
+ to="wagtailimages.image",
+ ),
+ ),
+ ]
diff --git a/apps/cms/models.py b/apps/cms/models.py
index 9306d333b..08f6bdea2 100644
--- a/apps/cms/models.py
+++ b/apps/cms/models.py
@@ -257,6 +257,15 @@ class HomePage(Page):
collections = Collection.objects.all()[:8]
volumes = Manifest.objects.all()[:8]
+ background_image = models.ForeignKey(
+ 'wagtailimages.Image',
+ null=True,
+ blank=True,
+ on_delete=models.SET_NULL,
+ related_name='+',
+ help_text="Optional background image for the site header",
+ )
+
featured_story_title = models.CharField(
help_text="Title of the featured story", blank=True, max_length=255
)
@@ -286,6 +295,7 @@ class HomePage(Page):
content_panels = Page.content_panels + [
FieldPanel('tagline', classname="full"),
+ FieldPanel('background_image', classname="full"),
FieldPanel('content_display', classname="full"),
AutocompletePanel('featured_collections', target_model="kollections.Collection"),
FieldPanel('featured_collections_sort_order', classname="full"),
diff --git a/apps/readux/forms.py b/apps/readux/forms.py
index 74bdf68f5..1179f59d7 100644
--- a/apps/readux/forms.py
+++ b/apps/readux/forms.py
@@ -111,8 +111,8 @@ class ManifestSearchForm(forms.Form):
("created_at", "Date added (oldest first)"),
("-date_sort_descending", "Date published (newest first)"),
("date_sort_ascending", "Date published (oldest first)"),
- ("label_alphabetical", "Label (A-Z)"),
- ("-label_alphabetical", "Label (Z-A)"),
+ ("label_alphabetical", "Title (A-Z)"),
+ ("-label_alphabetical", "Title (Z-A)"),
("_score", "Relevance"),
),
widget=forms.Select(
diff --git a/apps/static/css/readux2/main.scss b/apps/static/css/readux2/main.scss
index aae8ea4c7..ee842f743 100644
--- a/apps/static/css/readux2/main.scss
+++ b/apps/static/css/readux2/main.scss
@@ -1,4 +1,21 @@
/* base.html */
+html, body {
+ height: 100%;
+ margin: 0;
+ display: flex;
+ flex-direction: column;
+}
+
+#v-readux {
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+main {
+ flex-grow: 1;
+}
+
.landing {
margin: 0;
padding: 0;
@@ -21,6 +38,15 @@
.content {
position: relative;
z-index: 2;
+ min-height: 100vh;
+ display: flex;
+ flex-flow: column;
+ .space {
+ flex-grow: 1;
+ }
+ .uk-section-default:empty {
+ background-color: transparent;
+ }
}
.paragraph {
@@ -598,6 +624,20 @@ iframe {
color: white;
}
+.description-button {
+ transition: ease 0.1s;
+ &:hover {
+ background-color: darken(#E60000, 10%);
+ }
+ &:active {
+ background-color: darken(#E60000, 25%);
+ }
+}
+
+.justify-content-normal {
+ justify-content: normal !important;
+}
+
.unset-min-height {
min-height: unset !important;
}
diff --git a/apps/static/css/readux2/search.scss b/apps/static/css/readux2/search.scss
index 7e34daf2f..7a7bf2dc9 100644
--- a/apps/static/css/readux2/search.scss
+++ b/apps/static/css/readux2/search.scss
@@ -127,10 +127,6 @@ form#search-form input[type="search"][name="q"] {
width: 100%;
}
-// .uk-button-default {
-// font-size: 1.25rem;
-// }
-
#search-grid {
gap: 1.5rem;
}
@@ -243,4 +239,20 @@ ol#search-results dl {
.selectize-control.plugin-clear_button .clear {
height: 85%;
+}
+
+.search-button {
+ background-color: #E60000;
+ color: white;
+ padding: 0 9px;
+ border:none;
+ height: 40px;
+ font-size: 1.25rem;
+ transition: ease 0.1s;
+ &:hover {
+ background-color: darken(#E60000, 10%);
+ }
+ &:active {
+ background-color: darken(#E60000, 25%);
+ }
}
\ No newline at end of file
diff --git a/apps/templates/_home/_nav.html b/apps/templates/_home/_nav.html
index 1eeb153a3..c8557c224 100644
--- a/apps/templates/_home/_nav.html
+++ b/apps/templates/_home/_nav.html
@@ -6,7 +6,7 @@
{% main_menu add_sub_menus_inline=True %}
diff --git a/apps/templates/account/password_reset.html b/apps/templates/account/password_reset.html
index 845bbda73..70897e45a 100644
--- a/apps/templates/account/password_reset.html
+++ b/apps/templates/account/password_reset.html
@@ -1,26 +1,68 @@
{% extends "account/base.html" %}
-
+{% load sass_tags %}
{% load i18n %}
{% load account %}
{% load crispy_forms_tags %}
{% block head_title %}{% trans "Password Reset" %}{% endblock %}
+{% block extra_javascript %}
+
+{% endblock %}
+
{% block inner %}
+
+ {% include '_home/_nav.html' %}
+
+
+
+
+ Home
+ Password Reset
+
+
+
+
{% trans "Password Reset" %}
-
{% trans "Password Reset" %}
{% if user.is_authenticated %}
{% include "account/snippets/already_logged_in.html" %}
{% endif %}
{% trans "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it." %}
-
+
+
+
+
+
+
+
+
+ {% trans "Reset Form" %}
+ {% trans "Reset Password" %}
+
+
+
+
+
{% blocktrans %}Please contact us if you have any trouble resetting your password.{% endblocktrans %}
+
+
-
{% blocktrans %}Please contact us if you have any trouble resetting your password.{% endblocktrans %}
+
{% endblock %}
diff --git a/apps/templates/account/password_reset_done.html b/apps/templates/account/password_reset_done.html
index c59534afc..0af22bc97 100644
--- a/apps/templates/account/password_reset_done.html
+++ b/apps/templates/account/password_reset_done.html
@@ -1,4 +1,5 @@
{% extends "account/base.html" %}
+{% load sass_tags %}
{% load i18n %}
{% load account %}
@@ -6,12 +7,28 @@
{% block head_title %}{% trans "Password Reset" %}{% endblock %}
{% block inner %}
-
{% trans "Password Reset" %}
+
+
+{% include '_home/_nav.html' %}
+
+
+
+
+
+ Home
+ Password Reset
+
+
+
+
{% trans "Password Reset" %}
{% if user.is_authenticated %}
{% include "account/snippets/already_logged_in.html" %}
{% endif %}
-
{% blocktrans %}We have sent you an e-mail. Please contact us if you do not receive it within a few minutes.{% endblocktrans %}
+
{% blocktrans %}We have sent you an e-mail. Please contact us if you do not receive it within a few minutes.{% endblocktrans %}
+
+
+
{% endblock %}
diff --git a/apps/templates/account/password_set.html b/apps/templates/account/password_set.html
index 7786e9e53..336a2fed6 100644
--- a/apps/templates/account/password_set.html
+++ b/apps/templates/account/password_set.html
@@ -1,4 +1,5 @@
{% extends "account/base.html" %}
+{% load sass_tags %}
{% load i18n %}
{% load crispy_forms_tags %}
@@ -6,12 +7,26 @@
{% block head_title %}{% trans "Set Password" %}{% endblock %}
{% block inner %}
- {% trans "Set Password" %}
+
+{% include '_home/_nav.html' %}
+
+
+
+
+
+
+
+
{% trans "Set Password" %}
+
+
{% endblock %}
diff --git a/apps/templates/account/signup.html b/apps/templates/account/signup.html
index 6a2954eb7..5228cc6d4 100644
--- a/apps/templates/account/signup.html
+++ b/apps/templates/account/signup.html
@@ -1,23 +1,93 @@
{% extends "account/base.html" %}
-
+{% load sass_tags %}
{% load i18n %}
{% load crispy_forms_tags %}
-{% block head_title %}{% trans "Signup" %}{% endblock %}
+{% block head_title %}{% trans "Readux - Sign up" %}{% endblock %}
+
+{% block extra_javascript %}
+
+
+{% endblock %}
{% block inner %}
-{% trans "Sign Up" %}
+
+{% include '_home/_nav.html' %}
-{% blocktrans %}Already have an account? Then please sign in .{% endblocktrans %}
+
-
+
+
+
+
{% trans "Sign Up" %}
-{% endblock %}
+
{% blocktrans %}Already have an account? Then please sign in .{% endblocktrans %}
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/templates/base.html b/apps/templates/base.html
index 8d4a9ae28..aa503d597 100644
--- a/apps/templates/base.html
+++ b/apps/templates/base.html
@@ -95,7 +95,7 @@
Jump to main content
{# Primary container; host for Vue application #}
-
+
{% comment %}
TODO: Remove existing nav and replace with the following partial.
It seems it may be added elsewhere; vue? needs investigation.
@@ -124,6 +124,10 @@
{% block viewer %}{% endblock viewer %}
+ {# prevent duplicate footer on homepage bug #}
+ {% if request.path != '/'%}
+ {% include '_home/_footer.html' %}
+ {% endif %}
diff --git a/apps/templates/cms/collections_page.html b/apps/templates/cms/collections_page.html
index 4c6c5b7cb..6019d6770 100644
--- a/apps/templates/cms/collections_page.html
+++ b/apps/templates/cms/collections_page.html
@@ -67,8 +67,6 @@
{{ collection.label|default:"[no title]"|truncatechars:200 }}
-{% include '_home/_footer.html' %}
-
{% include_block page.body %}
-
-
-
-{% endblock %}
-{% block extra_css %}
-
-
-{% endblock %}
-{% block body_class %}template-homepage{% endblock %}
-
-{% block content %}
-
-{% endblock content %}
\ No newline at end of file
diff --git a/apps/templates/snippets/volume_result.html b/apps/templates/snippets/volume_result.html
index 136e48bd6..e5ae0fb74 100644
--- a/apps/templates/snippets/volume_result.html
+++ b/apps/templates/snippets/volume_result.html
@@ -1,10 +1,7 @@
{% load readux_extras %}
-
-
+
-
-
- {% if volume.summary %}
-
Summary
-
- {% if 'highlight' in volume.meta and volume.meta.highlight.summary %}
- {% for fragment in volume.meta.highlight.summary %}
- {{ fragment|safe }}
- {% endfor %}
- {% else %}
- {{ volume.summary|safe }}
- {% endif %}
-
- {% endif %}
-
+
{% if volume.authors and "[no author]" not in volume.authors %}
-
Author{{volume.authors|pluralize}}
+
Author{{volume.authors|pluralize}}
@@ -88,13 +69,8 @@
Published
{{volume.published_date}}
{% endif %}
-
- {% if volume.created_at %}
- Added
- {{volume.created_at}}
- {% endif %}
{% if volume.languages and "[no language]" not in volume.languages %}
- Language{{volume.languages|pluralize}}
+ Language{{volume.languages|pluralize}}
{% for lang in volume.languages %}
@@ -103,6 +79,20 @@
{% endif %}
-
+ {% if volume.collections %}
+ Collection{{volume.collections|pluralize}}
+
+
+ {% for collection in volume.collections %}
+ {{ collection.label }}
+ {% endfor %}
+
+
+ {% endif %}
+ {# only show date added if it is the sort field #}
+ {% if "created_at" in request.GET.sort and volume.created_at %}
+ Added
+ {{volume.created_at}}
+ {% endif %}