Skip to content

Commit b3bc67a

Browse files
committed
Merge branch 'develop' into feat/user-progress
2 parents 61f5729 + efe0310 commit b3bc67a

File tree

7 files changed

+137
-10
lines changed

7 files changed

+137
-10
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,5 @@ GitHub.sublime-settings
114114
# Data dir for postgres with docker-compose
115115
legacy-initdb.d/
116116

117-
!iogt/templates/wagtailmedia/media/
117+
!iogt/templates/wagtailmedia/media/
118+
.vscode/

home/management/commands/create_initial_data.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ def clear(self):
2121
models.BannerIndexPage.objects.all().delete()
2222
models.Article.objects.all().delete()
2323
models.Section.objects.all().delete()
24+
models.SectionIndexPage.objects.all().delete()
2425
Image.objects.all().delete()
2526

2627
def create_image(self):
@@ -48,7 +49,10 @@ def create(self, owner, home):
4849
show_in_menus=True,
4950
color='1CABE2'
5051
)
51-
home.add_child(instance=youth)
52+
section_index_page = models.SectionIndexPage(title='Sections')
53+
54+
home.add_child(instance=section_index_page)
55+
section_index_page.add_child(instance=youth)
5256
youth.add_child(instance=internet_safety)
5357
internet_safety.add_child(instance=article)
5458

@@ -64,6 +68,18 @@ def create(self, owner, home):
6468

6569
models.HomePageBanner.objects.create(source=home, banner_page=banner_page)
6670

71+
footer_index_page = models.FooterIndexPage(title='Footers')
72+
home.add_child(instance=footer_index_page)
73+
74+
footer = models.FooterPage(
75+
title='Footer1?',
76+
body=[('paragraph',
77+
RichText('Footer1 paragraph1'))],
78+
owner=owner,
79+
first_published_at=datetime.now(timezone.utc)
80+
)
81+
footer_index_page.add_child(instance=footer)
82+
6783
def handle(self, *args, **options):
6884
self.clear()
6985
self.stdout.write('Existing site structure cleared')
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Generated by Django 3.1.12 on 2021-06-28 08:59
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('wagtailcore', '0059_apply_collection_ordering'),
11+
('home', '0018_cachesettings'),
12+
]
13+
14+
operations = [
15+
migrations.CreateModel(
16+
name='SectionIndexPage',
17+
fields=[
18+
('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')),
19+
],
20+
options={
21+
'abstract': False,
22+
},
23+
bases=('wagtailcore.page',),
24+
),
25+
]
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Generated by Django 3.1.12 on 2021-06-28 11:05
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('home', '0019_sectionindexpage'),
10+
]
11+
12+
operations = [
13+
migrations.RemoveField(
14+
model_name='article',
15+
name='tags',
16+
),
17+
migrations.RemoveField(
18+
model_name='section',
19+
name='tags',
20+
),
21+
migrations.DeleteModel(
22+
name='TaggedItem',
23+
),
24+
]
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Generated by Django 3.1.12 on 2021-06-28 11:07
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
import modelcluster.contrib.taggit
6+
import modelcluster.fields
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
dependencies = [
12+
('taggit', '0003_taggeditem_add_unique_index'),
13+
('home', '0020_auto_20210628_1105'),
14+
]
15+
16+
operations = [
17+
migrations.CreateModel(
18+
name='SectionTaggedItem',
19+
fields=[
20+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21+
('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='home.section')),
22+
('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='home_sectiontaggeditem_items', to='taggit.tag')),
23+
],
24+
options={
25+
'abstract': False,
26+
},
27+
),
28+
migrations.CreateModel(
29+
name='ArticleTaggedItem',
30+
fields=[
31+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
32+
('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='home.article')),
33+
('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='home_articletaggeditem_items', to='taggit.tag')),
34+
],
35+
options={
36+
'abstract': False,
37+
},
38+
),
39+
migrations.AddField(
40+
model_name='article',
41+
name='tags',
42+
field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='home.ArticleTaggedItem', to='taggit.Tag', verbose_name='Tags'),
43+
),
44+
migrations.AddField(
45+
model_name='section',
46+
name='tags',
47+
field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='home.SectionTaggedItem', to='taggit.Tag', verbose_name='Tags'),
48+
),
49+
]

home/models.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,19 @@ class HomePageBanner(Orderable):
7373
]
7474

7575

76-
class TaggedItem(TaggedItemBase):
77-
"""The through model between Page (Article/Section) and Tag"""
78-
content_object = ParentalKey(Page, related_name='tagged_items', on_delete=models.CASCADE)
76+
class SectionTaggedItem(TaggedItemBase):
77+
"""The through model between Section and Tag"""
78+
content_object = ParentalKey('Section', related_name='tagged_items', on_delete=models.CASCADE)
79+
80+
81+
class ArticleTaggedItem(TaggedItemBase):
82+
"""The through model between Article and Tag"""
83+
content_object = ParentalKey('Article', related_name='tagged_items', on_delete=models.CASCADE)
84+
85+
86+
class SectionIndexPage(Page):
87+
parent_page_types = ['home.HomePage']
88+
subpage_types = ['home.Section']
7989

8090

8191
class Section(Page):
@@ -98,7 +108,8 @@ class Section(Page):
98108
blank=True,
99109
null=True,
100110
)
101-
tags = ClusterTaggableManager(through=TaggedItem, blank=True)
111+
112+
tags = ClusterTaggableManager(through='SectionTaggedItem', blank=True)
102113
show_progress_bar = models.BooleanField(default=False)
103114

104115
show_in_menus_default = True
@@ -179,7 +190,7 @@ class Article(Page, CommentableMixin):
179190
null=True
180191
)
181192

182-
tags = ClusterTaggableManager(through=TaggedItem, blank=True)
193+
tags = ClusterTaggableManager(through='ArticleTaggedItem', blank=True)
183194
body = StreamField([
184195
('heading', blocks.CharBlock(form_classname="full title")),
185196
('paragraph', blocks.RichTextBlock()),

home/wagtail_hooks.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from wagtail.core.models import PageViewRestriction
1212
from wagtail.core.rich_text import LinkHandler
1313

14-
from home.models import FooterIndexPage, Section
14+
from home.models import FooterIndexPage, BannerIndexPage, Section, SectionIndexPage
1515

1616

1717
class ExternalLinkHandler(LinkHandler, ABC):
@@ -38,9 +38,10 @@ def check_group(page, request, serve_args, serve_kwargs):
3838
if not any(group in current_user_groups for group in restriction.groups.all()):
3939
raise PermissionDenied
4040

41+
4142
@hooks.register('construct_explorer_page_queryset')
42-
def sort_footer_page_listing_by_path(parent_page, pages, request):
43-
if isinstance(parent_page, FooterIndexPage):
43+
def sort_page_listing_by_path(parent_page, pages, request):
44+
if isinstance(parent_page, (BannerIndexPage, FooterIndexPage, Section, SectionIndexPage)):
4445
pages = pages.order_by('path')
4546

4647
return pages

0 commit comments

Comments
 (0)