Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
0ff16b4
added navbar chooser to settings, need to fix frontend - WIP
Feb 25, 2021
a010fef
Added navbar and footer choosers to layout settings, adjusted get_nav…
Mar 1, 2021
6605713
fixed flake8 flagged error regarding model import
Mar 1, 2021
d99e3bb
un-abstracted model references - removed quote marks
Mar 1, 2021
9f1337c
WIP - undid new migrations, commented out broken code for now
Mar 2, 2021
c834519
Got settings for navbar and footer choosers working but WIP on get_na…
Mar 3, 2021
c944acc
WIP - code not working yet
Mar 4, 2021
88d3287
WIP - notes to self
Mar 5, 2021
081f21f
Tried different ways to hook up the models but ththe one I have works…
Mar 11, 2021
c7ce69a
fixed orderables for nav and footer, added loop to pull in each nav/f…
Mar 12, 2021
f788ec3
fixed flake8 errors
Mar 12, 2021
927bd1b
WIP - data migration
Mar 16, 2021
7ccd990
WIP
Mar 16, 2021
89db602
This works to apply current navbar and current footer to layout setti…
Mar 16, 2021
beac3a5
removed comm3nts
Mar 16, 2021
cc1c6f2
WIP using all()
Mar 16, 2021
4ed6601
Fixed data migration to run for sites that already have navbar/footer…
Mar 17, 2021
9378434
fixing flake8 errors
Mar 17, 2021
d616bc1
fixed reference error in tags, started unit tests for new feature
Apr 5, 2021
6a60b65
fixing errors
Apr 5, 2021
9a60252
migration test cases WIP
Apr 8, 2021
c24ca5a
WIP tests
Apr 14, 2021
7509f96
added navbar chooser to settings, need to fix frontend - WIP
Feb 25, 2021
69d8851
Added navbar and footer choosers to layout settings, adjusted get_nav…
Mar 1, 2021
5e0990d
fixed flake8 flagged error regarding model import
Mar 1, 2021
d1048e7
un-abstracted model references - removed quote marks
Mar 1, 2021
3bc321b
WIP - undid new migrations, commented out broken code for now
Mar 2, 2021
28ab86d
Got settings for navbar and footer choosers working but WIP on get_na…
Mar 3, 2021
31b93f7
WIP - code not working yet
Mar 4, 2021
e690cf3
WIP - notes to self
Mar 5, 2021
a68c3d3
Tried different ways to hook up the models but ththe one I have works…
Mar 11, 2021
405a651
fixed orderables for nav and footer, added loop to pull in each nav/f…
Mar 12, 2021
393ceaf
fixed flake8 errors
Mar 12, 2021
3a17a92
WIP - data migration
Mar 16, 2021
2108c30
WIP
Mar 16, 2021
b79a0a6
This works to apply current navbar and current footer to layout setti…
Mar 16, 2021
919d597
removed comm3nts
Mar 16, 2021
b9fd29f
WIP using all()
Mar 16, 2021
7839f2b
Fixed data migration to run for sites that already have navbar/footer…
Mar 17, 2021
0cfafca
fixing flake8 errors
Mar 17, 2021
6732548
fixed reference error in tags, started unit tests for new feature
Apr 5, 2021
9433eca
fixing errors
Apr 5, 2021
fea88b0
migration test cases WIP
Apr 8, 2021
d906a1c
WIP tests
Apr 14, 2021
2acc60a
updating repo
Jan 14, 2022
3591e22
merging in dev branch changes
Jan 14, 2022
d2bc2b1
restored imports in wagtail settings models, wip on fixing unit tests
Jan 19, 2022
3c44397
navbar tests in progress
Jan 21, 2022
bf3a748
unit tests work
Jan 24, 2022
c00a878
check that orderables render in order
Jan 24, 2022
9d831a0
updated docs with new feature
Jan 24, 2022
761e8e2
Merge branch 'dev' into multisite-navs
vsalvino May 12, 2022
418517c
Merge branch 'dev' into multisite-navs
vsalvino May 13, 2022
c6aabf6
Merge branch 'dev' into multisite-navs
vsalvino Jun 9, 2022
2d8de1f
Update migration from recent changes in dev
vsalvino Jun 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion coderedcms/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

See: https://www.python.org/dev/peps/pep-0440/
"""
release = ["0", "20", "0", "", ""]
release = ["0", "20", "0", "dev0", ""]


def _get_version() -> str:
Expand Down
41 changes: 41 additions & 0 deletions coderedcms/migrations/0020_footerorderable_navbarorderable.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Generated by Django 3.1.7 on 2021-03-12 19:53

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


class Migration(migrations.Migration):
Comment thread
rcoldiron marked this conversation as resolved.
Outdated

dependencies = [
('coderedcms', '0019_spelling_corrections'),
]

operations = [
migrations.CreateModel(
name='NavbarOrderable',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
('navbar', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='coderedcms.navbar')),
('navbar_chooser', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='site_navbar', to='coderedcms.layoutsettings', verbose_name='Site Navbars')),
],
options={
'ordering': ['sort_order'],
'abstract': False,
},
),
migrations.CreateModel(
name='FooterOrderable',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
('footer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='coderedcms.footer')),
('footer_chooser', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='site_footer', to='coderedcms.layoutsettings', verbose_name='Site Footers')),
],
options={
'ordering': ['sort_order'],
'abstract': False,
},
),
]
55 changes: 53 additions & 2 deletions coderedcms/models/wagtailsettings_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,17 @@
import json
from django.db import models
from django.utils.translation import gettext_lazy as _
from wagtail.admin.edit_handlers import HelpPanel, FieldPanel, MultiFieldPanel
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel
from wagtail.admin.edit_handlers import HelpPanel, InlinePanel, FieldPanel, MultiFieldPanel
from wagtail.core.models import Orderable
from wagtail.images.edit_handlers import ImageChooserPanel
from wagtail.snippets.edit_handlers import SnippetChooserPanel
from wagtail.contrib.settings.models import BaseSetting, register_setting
from wagtail.images import get_image_model_string

from coderedcms.settings import cr_settings
from coderedcms.models.snippet_models import Navbar, Footer


@register_setting(icon='fa-facebook-official')
Expand Down Expand Up @@ -94,7 +99,7 @@ def social_json(self):


@register_setting(icon='fa-desktop')
class LayoutSettings(BaseSetting):
class LayoutSettings(ClusterableModel, BaseSetting):
"""
Branding, navbar, and theme settings.
"""
Expand Down Expand Up @@ -185,6 +190,11 @@ class Meta:
],
heading=_('Branding')
),
InlinePanel(
'site_navbar',
help_text=_('Choose one or more navbars for your site.'),
heading=_('Site Navbars')
),
MultiFieldPanel(
[
FieldPanel('navbar_color_scheme'),
Expand All @@ -198,6 +208,11 @@ class Meta:
],
heading=_('Site Navbar Layout')
),
InlinePanel(
'site_footer',
help_text=_('Choose one or more footers for your site.'),
heading=_('Site Footers')
),
MultiFieldPanel(
[
FieldPanel('frontend_theme'),
Expand All @@ -207,6 +222,42 @@ class Meta:
]


class NavbarOrderable(Orderable, models.Model):
navbar_chooser = ParentalKey(
LayoutSettings,
related_name="site_navbar",
verbose_name=_('Site Navbars')
)
navbar = models.ForeignKey(
Navbar,
blank=True,
null=True,
on_delete=models.CASCADE,
)

panels = [
SnippetChooserPanel("navbar")
]


class FooterOrderable(Orderable, models.Model):
footer_chooser = ParentalKey(
LayoutSettings,
related_name="site_footer",
verbose_name=_('Site Footers')
)
footer = models.ForeignKey(
Footer,
blank=True,
null=True,
on_delete=models.CASCADE,
)

panels = [
SnippetChooserPanel("footer")
]


@register_setting(icon='fa-google')
class AnalyticsSettings(BaseSetting):
"""
Expand Down
7 changes: 5 additions & 2 deletions coderedcms/templates/coderedcms/snippets/footer.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{% load wagtailcore_tags coderedcms_tags %}
<footer>

{% if settings.coderedcms.LayoutSettings.site_footer %}

<footer>
{% get_footers as footers %}
{% for footer in footers %}
<div {% if footer.custom_id %} id="{{footer.custom_id}}"{% endif %} {% if footer.custom_css_class %} class="{{footer.custom_css_class}}"{% endif %}>
Expand All @@ -9,5 +11,6 @@
{% endfor %}
</div>
{% endfor %}
</footer>

</footer>
{% endif %}
2 changes: 2 additions & 0 deletions coderedcms/templates/coderedcms/snippets/navbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
</button>

<div class="collapse navbar-collapse" id="navbar">
{% if settings.coderedcms.LayoutSettings.site_navbar %}
{% get_navbars as navbars %}
{% for navbar in navbars %}
<ul class="navbar-nav {{navbar.custom_css_class}}"
Expand All @@ -34,6 +35,7 @@
{% endfor %}
</ul>
{% endfor %}
{% endif %}
{% if settings.coderedcms.LayoutSettings.navbar_search %}
<form class="form-inline ml-auto" action="{% url 'codered_search' %}" method="GET">
{% load bootstrap4 %}
Expand Down
23 changes: 16 additions & 7 deletions coderedcms/templatetags/coderedcms_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
from coderedcms import utils, __version__
from coderedcms.blocks import CoderedAdvSettings
from coderedcms.forms import SearchForm
from coderedcms.models import Footer, Navbar
from coderedcms.settings import cr_settings, get_bootstrap_setting
from coderedcms.models.wagtailsettings_models import LayoutSettings

Expand Down Expand Up @@ -108,14 +107,24 @@ def get_navbar_css(context):
])


@register.simple_tag
def get_navbars():
return Navbar.objects.all()
@register.simple_tag(takes_context=True)
def get_navbars(context):
layout = LayoutSettings.for_request(context['request'])
navbarorderables = layout.site_navbar.all()
navbars = []
for orderable in navbarorderables:
navbars.append(orderable.navbar)
return navbars


@register.simple_tag
def get_footers():
return Footer.objects.all()
@register.simple_tag(takes_context=True)
def get_footers(context):
layout = LayoutSettings.for_request(context['request'])
footerorderables = layout.site_footer.all()
footers = []
for orderable in footerorderables:
footers.append(orderable.footer)
return footers


@register.simple_tag
Expand Down