From cbabf52ff179c1a26427ceab095747d0050e9c48 Mon Sep 17 00:00:00 2001 From: James Biggs <62654785+jamesbiggs@users.noreply.github.com> Date: Tue, 6 Aug 2024 14:29:14 +0100 Subject: [PATCH] DSRC: Authors to People (#1698) --- .platform.app.yaml | 1 + config/settings/base.py | 2 +- etna/api/tests/expected_results/author.json | 14 +++--- .../expected_results/focused_article.json | 6 +-- etna/api/tests/expected_results/pages.json | 14 +++--- .../{authors.json => people.json} | 20 ++++----- etna/api/tests/test_pages.py | 10 ++--- .../migrations/0009_add_author_block.py | 3 +- .../migrations/0012_add_related_items.py | 2 +- .../migrations/0014_alter_field_body.py | 2 +- .../0098_alter_focusedarticlepage_author.py | 5 ++- etna/articles/models.py | 2 +- etna/core/management/commands/rename_app.py | 1 + etna/{authors => people}/__init__.py | 0 etna/{authors => people}/apps.py | 6 +-- etna/{authors => people}/factories.py | 10 ++--- .../migrations/0001_initial.py | 0 ...page_authorpage_authortag_delete_author.py | 5 ++- ..._authorindexpage_alert_authorpage_alert.py | 2 +- .../0004_alter_personpage_options.py | 20 +++++++++ ...uthorindexpage_peopleindexpage_and_more.py | 25 +++++++++++ .../migrations/0006_alter_authortag_author.py | 25 +++++++++++ .../migrations/__init__.py | 0 etna/{authors => people}/models.py | 44 +++++++++---------- etna/{authors => people}/tests/__init__.py | 0 etna/{authors => people}/tests/test_models.py | 10 ++--- .../{authors => people}/blocks/author.html | 0 .../people_index_page.html} | 2 +- .../person_page.html} | 0 29 files changed, 153 insertions(+), 78 deletions(-) rename etna/api/tests/expected_results/{authors.json => people.json} (93%) rename etna/{authors => people}/__init__.py (100%) rename etna/{authors => people}/apps.py (50%) rename etna/{authors => people}/factories.py (81%) rename etna/{authors => people}/migrations/0001_initial.py (100%) rename etna/{authors => people}/migrations/0002_authorindexpage_authorpage_authortag_delete_author.py (98%) rename etna/{authors => people}/migrations/0003_authorindexpage_alert_authorpage_alert.py (92%) create mode 100644 etna/people/migrations/0004_alter_personpage_options.py create mode 100644 etna/people/migrations/0005_rename_authorindexpage_peopleindexpage_and_more.py create mode 100644 etna/people/migrations/0006_alter_authortag_author.py rename etna/{authors => people}/migrations/__init__.py (100%) rename etna/{authors => people}/models.py (83%) rename etna/{authors => people}/tests/__init__.py (100%) rename etna/{authors => people}/tests/test_models.py (89%) rename templates/{authors => people}/blocks/author.html (100%) rename templates/{authors/author_index_page.html => people/people_index_page.html} (98%) rename templates/{authors/author_page.html => people/person_page.html} (100%) diff --git a/.platform.app.yaml b/.platform.app.yaml index 8673173a7..1395d0ab3 100644 --- a/.platform.app.yaml +++ b/.platform.app.yaml @@ -63,6 +63,7 @@ hooks: poetry run python manage.py collectstatic --no-input deploy: | + poetry run python manage.py rename_app authors people poetry run python manage.py migrate web: diff --git a/config/settings/base.py b/config/settings/base.py index 2cde8d1d1..0aadcaee3 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -49,7 +49,7 @@ "etna.alerts", "etna.analytics", "etna.articles", - "etna.authors", + "etna.people", "etna.categories", "etna.ciim", "etna.collections", diff --git a/etna/api/tests/expected_results/author.json b/etna/api/tests/expected_results/author.json index f46e08fd7..c8f8509c1 100644 --- a/etna/api/tests/expected_results/author.json +++ b/etna/api/tests/expected_results/author.json @@ -1,9 +1,9 @@ { "id": AUTHOR_ID, "meta": { - "type": "authors.AuthorPage", + "type": "people.PersonPage", "detail_url": "/api/v2/pages/AUTHOR_ID/", - "html_url": "http://localhost/authors/author/", + "html_url": "http://localhost/people/author/", "slug": "author", "show_in_menus": false, "seo_title": "", @@ -13,15 +13,15 @@ "parent": { "id": AUTHOR_INDEX_ID, "meta": { - "type": "authors.AuthorIndexPage", + "type": "people.PeopleIndexPage", "detail_url": "/api/v2/pages/AUTHOR_INDEX_ID/", - "html_url": "http://localhost/authors/" + "html_url": "http://localhost/people/" }, - "title": "authors" + "title": "people" }, "privacy": "public", "last_published_at": "2000-01-01T00:00:00Z", - "url": "/authors/author/" + "url": "/people/author/" }, "title": "author", "global_alert": { @@ -31,7 +31,7 @@ "cascade": true, "uid": ALERT_UID }, - "type_label": "Author", + "type_label": "Person", "teaser_text": "Teaser text", "teaser_image": { "id": 10, diff --git a/etna/api/tests/expected_results/focused_article.json b/etna/api/tests/expected_results/focused_article.json index 2adff3980..6692b4eb5 100644 --- a/etna/api/tests/expected_results/focused_article.json +++ b/etna/api/tests/expected_results/focused_article.json @@ -201,9 +201,9 @@ { "id": AUTHOR_ID, "title": "author", - "url": "/authors/author/", - "full_url": "http://localhost/authors/author/", - "type_label": "Author", + "url": "/people/author/", + "full_url": "http://localhost/people/author/", + "type_label": "Person", "teaser_text": "Teaser text", "teaser_image": { "id": 10, diff --git a/etna/api/tests/expected_results/pages.json b/etna/api/tests/expected_results/pages.json index edd33c22b..8dc9e1c36 100644 --- a/etna/api/tests/expected_results/pages.json +++ b/etna/api/tests/expected_results/pages.json @@ -111,10 +111,10 @@ }, { "id": AUTHOR_INDEX_ID, - "title": "authors", - "url": "/authors/", - "full_url": "http://localhost/authors/", - "type_label": "Author index", + "title": "people", + "url": "/people/", + "full_url": "http://localhost/people/", + "type_label": "People index", "teaser_text": "Teaser text", "teaser_image": { "id": 8, @@ -136,9 +136,9 @@ { "id": AUTHOR_ID, "title": "author", - "url": "/authors/author/", - "full_url": "http://localhost/authors/author/", - "type_label": "Author", + "url": "/people/author/", + "full_url": "http://localhost/people/author/", + "type_label": "Person", "teaser_text": "Teaser text", "teaser_image": { "id": 10, diff --git a/etna/api/tests/expected_results/authors.json b/etna/api/tests/expected_results/people.json similarity index 93% rename from etna/api/tests/expected_results/authors.json rename to etna/api/tests/expected_results/people.json index 4b6c01314..8bd61fe20 100644 --- a/etna/api/tests/expected_results/authors.json +++ b/etna/api/tests/expected_results/people.json @@ -1,10 +1,10 @@ { "id": AUTHOR_INDEX_ID, "meta": { - "type": "authors.AuthorIndexPage", + "type": "people.PeopleIndexPage", "detail_url": "/api/v2/pages/AUTHOR_INDEX_ID/", - "html_url": "http://localhost/authors/", - "slug": "authors", + "html_url": "http://localhost/people/", + "slug": "people", "show_in_menus": false, "seo_title": "", "search_description": "", @@ -21,9 +21,9 @@ }, "privacy": "public", "last_published_at": null, - "url": "/authors/" + "url": "/people/" }, - "title": "authors", + "title": "people", "global_alert": { "title": "BETA", "message": "

Message

", @@ -31,7 +31,7 @@ "cascade": true, "uid": ALERT_UID }, - "type_label": "Author index", + "type_label": "People index", "teaser_text": "Teaser text", "teaser_image": { "id": 8, @@ -71,13 +71,13 @@ "title": "Test title", "message": "

Test message

" }, - "author_pages": [ + "people_pages": [ { "id": AUTHOR_ID, "title": "author", - "url": "/authors/author/", - "full_url": "http://localhost/authors/author/", - "type_label": "Author", + "url": "/people/author/", + "full_url": "http://localhost/people/author/", + "type_label": "Person", "teaser_text": "Teaser text", "teaser_image": { "id": 10, diff --git a/etna/api/tests/test_pages.py b/etna/api/tests/test_pages.py index 3f661acd4..19b7c761a 100644 --- a/etna/api/tests/test_pages.py +++ b/etna/api/tests/test_pages.py @@ -15,8 +15,6 @@ FocusedArticlePageFactory, ) from etna.articles.models import ArticleTag -from etna.authors.factories import AuthorIndexPageFactory, AuthorPageFactory -from etna.authors.models import AuthorTag from etna.collections.factories import ( HighlightGalleryPageFactory, TimePeriodPageFactory, @@ -25,6 +23,8 @@ from etna.collections.models import Highlight, PageTimePeriod, PageTopic from etna.home.models import MourningNotice from etna.media.models import EtnaMedia +from etna.people.factories import PeopleIndexPageFactory, PersonPageFactory +from etna.people.models import AuthorTag API_URL = "/api/v2/pages/" @@ -113,14 +113,14 @@ def setUpTestData(cls): first_published_at=DATE_1, ) - cls.author_index_page = AuthorIndexPageFactory( + cls.author_index_page = PeopleIndexPageFactory( parent=cls.root_page, - title="authors", + title="people", first_published_at=DATE_1, alert=cls.alert, ) - cls.author_page = AuthorPageFactory( + cls.author_page = PersonPageFactory( title="author", role="Test Author", summary="

Summary text

", diff --git a/etna/articles/migrations/0009_add_author_block.py b/etna/articles/migrations/0009_add_author_block.py index 201017146..32b0d4cbd 100644 --- a/etna/articles/migrations/0009_add_author_block.py +++ b/etna/articles/migrations/0009_add_author_block.py @@ -1,4 +1,5 @@ # Generated by Django 3.1.8 on 2021-07-26 16:15 +# etna:allowAlterField from django.db import migrations import etna.records.blocks @@ -25,7 +26,7 @@ class Migration(migrations.Migration): ( "author", wagtail.snippets.blocks.SnippetChooserBlock( - "authors.Author" + "people.Author" ), ) ] diff --git a/etna/articles/migrations/0012_add_related_items.py b/etna/articles/migrations/0012_add_related_items.py index 448291946..7274b0f95 100644 --- a/etna/articles/migrations/0012_add_related_items.py +++ b/etna/articles/migrations/0012_add_related_items.py @@ -28,7 +28,7 @@ class Migration(migrations.Migration): ( "author", wagtail.snippets.blocks.SnippetChooserBlock( - "authors.Author" + "people.Author" ), ) ] diff --git a/etna/articles/migrations/0014_alter_field_body.py b/etna/articles/migrations/0014_alter_field_body.py index 69af58cda..6e3b1a750 100644 --- a/etna/articles/migrations/0014_alter_field_body.py +++ b/etna/articles/migrations/0014_alter_field_body.py @@ -29,7 +29,7 @@ class Migration(migrations.Migration): ( "author", wagtail.snippets.blocks.SnippetChooserBlock( - "authors.Author" + "people.Author" ), ) ] diff --git a/etna/articles/migrations/0098_alter_focusedarticlepage_author.py b/etna/articles/migrations/0098_alter_focusedarticlepage_author.py index 0f49f5cbd..a6222a0a8 100644 --- a/etna/articles/migrations/0098_alter_focusedarticlepage_author.py +++ b/etna/articles/migrations/0098_alter_focusedarticlepage_author.py @@ -1,4 +1,5 @@ # Generated by Django 4.2.5 on 2023-09-25 10:55 +# etna:allowAlterField from django.db import migrations, models import django.db.models.deletion @@ -15,7 +16,7 @@ def convert_to_foreign_key(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ("authors", "0002_authorindexpage_authorpage_authortag_delete_author"), + ("people", "0002_authorindexpage_authorpage_authortag_delete_author"), ("articles", "0097_alter_articlepage_mark_new_on_next_publish_and_more"), ] @@ -29,7 +30,7 @@ class Migration(migrations.Migration): null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="focused_articles", - to="authors.authorpage", + to="people.authorpage", ), ), ] diff --git a/etna/articles/models.py b/etna/articles/models.py index d7699d041..e6bb2f030 100755 --- a/etna/articles/models.py +++ b/etna/articles/models.py @@ -26,7 +26,6 @@ from rest_framework import serializers from taggit.models import ItemBase, TagBase -from etna.authors.models import AuthorPageMixin from etna.collections.models import TopicalPageMixin from etna.core.blocks import AuthorPromotedPagesBlock, FeaturedCollectionBlock from etna.core.models import ( @@ -44,6 +43,7 @@ TaggableSerializer, ) from etna.core.utils import skos_id_from_text +from etna.people.models import AuthorPageMixin from etna.records.fields import RecordField from .blocks import ArticlePageStreamBlock diff --git a/etna/core/management/commands/rename_app.py b/etna/core/management/commands/rename_app.py index ba6aab6ed..4be7cbcf4 100644 --- a/etna/core/management/commands/rename_app.py +++ b/etna/core/management/commands/rename_app.py @@ -60,6 +60,7 @@ def handle(self, old_app_name, new_app_name, *args, **options): f"WHERE app_label='{new_app_name}'" ) app_content_types = cursor.fetchall() + app_content_types.pop(0) for content_type in app_content_types: old_table_name = truncate_name( diff --git a/etna/authors/__init__.py b/etna/people/__init__.py similarity index 100% rename from etna/authors/__init__.py rename to etna/people/__init__.py diff --git a/etna/authors/apps.py b/etna/people/apps.py similarity index 50% rename from etna/authors/apps.py rename to etna/people/apps.py index cabf7b51b..e9c82bd0e 100644 --- a/etna/authors/apps.py +++ b/etna/people/apps.py @@ -1,7 +1,7 @@ from django.apps import AppConfig -class AuthorsAppConfig(AppConfig): +class PeopleAppConfig(AppConfig): default_auto_field = "django.db.models.AutoField" - name = "etna.authors" - verbose_name = "Authors" + name = "etna.people" + verbose_name = "People" diff --git a/etna/authors/factories.py b/etna/people/factories.py similarity index 81% rename from etna/authors/factories.py rename to etna/people/factories.py index 34bd8451b..7f9460ac9 100644 --- a/etna/authors/factories.py +++ b/etna/people/factories.py @@ -4,24 +4,24 @@ from wagtail_factories import ImageFactory, PageFactory -from etna.authors.models import AuthorIndexPage, AuthorPage +from etna.people.models import PeopleIndexPage, PersonPage -class AuthorIndexPageFactory(PageFactory): +class PeopleIndexPageFactory(PageFactory): teaser_text = "Teaser text" teaser_image = factory.SubFactory(ImageFactory) class Meta: - model = AuthorIndexPage + model = PeopleIndexPage -class AuthorPageFactory(PageFactory): +class PersonPageFactory(PageFactory): image = factory.SubFactory(ImageFactory) teaser_text = "Teaser text" teaser_image = factory.SubFactory(ImageFactory) class Meta: - model = AuthorPage + model = PersonPage @factory.post_generation def set_publish_dates(obj, create, extracted, **kwargs): diff --git a/etna/authors/migrations/0001_initial.py b/etna/people/migrations/0001_initial.py similarity index 100% rename from etna/authors/migrations/0001_initial.py rename to etna/people/migrations/0001_initial.py diff --git a/etna/authors/migrations/0002_authorindexpage_authorpage_authortag_delete_author.py b/etna/people/migrations/0002_authorindexpage_authorpage_authortag_delete_author.py similarity index 98% rename from etna/authors/migrations/0002_authorindexpage_authorpage_authortag_delete_author.py rename to etna/people/migrations/0002_authorindexpage_authorpage_authortag_delete_author.py index 9874caa42..3bf1925fc 100644 --- a/etna/authors/migrations/0002_authorindexpage_authorpage_authortag_delete_author.py +++ b/etna/people/migrations/0002_authorindexpage_authorpage_authortag_delete_author.py @@ -1,4 +1,5 @@ # Generated by Django 4.2.5 on 2023-09-25 10:55 +# etna:allowDeleteModel from django.db import migrations, models import django.db.models.deletion @@ -13,7 +14,7 @@ class Migration(migrations.Migration): dependencies = [ ("images", "0008_alter_customimagerendition_file"), ("wagtailcore", "0089_log_entry_data_json_null_to_object"), - ("authors", "0001_initial"), + ("people", "0001_initial"), ] operations = [ @@ -175,7 +176,7 @@ class Migration(migrations.Migration): models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="author_pages", - to="authors.authorpage", + to="people.authorpage", verbose_name="author", ), ), diff --git a/etna/authors/migrations/0003_authorindexpage_alert_authorpage_alert.py b/etna/people/migrations/0003_authorindexpage_alert_authorpage_alert.py similarity index 92% rename from etna/authors/migrations/0003_authorindexpage_alert_authorpage_alert.py rename to etna/people/migrations/0003_authorindexpage_alert_authorpage_alert.py index a49baa0aa..176e8dfb1 100644 --- a/etna/authors/migrations/0003_authorindexpage_alert_authorpage_alert.py +++ b/etna/people/migrations/0003_authorindexpage_alert_authorpage_alert.py @@ -8,7 +8,7 @@ class Migration(migrations.Migration): dependencies = [ ("alerts", "0001_initial"), - ("authors", "0002_authorindexpage_authorpage_authortag_delete_author"), + ("people", "0002_authorindexpage_authorpage_authortag_delete_author"), ] operations = [ diff --git a/etna/people/migrations/0004_alter_personpage_options.py b/etna/people/migrations/0004_alter_personpage_options.py new file mode 100644 index 000000000..306436457 --- /dev/null +++ b/etna/people/migrations/0004_alter_personpage_options.py @@ -0,0 +1,20 @@ +# Generated by Django 5.0.7 on 2024-08-01 11:14 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("people", "0003_authorindexpage_alert_authorpage_alert"), + ] + + operations = [ + migrations.AlterModelOptions( + name="authorpage", + options={ + "verbose_name": "Person page", + "verbose_name_plural": "People pages", + }, + ), + ] diff --git a/etna/people/migrations/0005_rename_authorindexpage_peopleindexpage_and_more.py b/etna/people/migrations/0005_rename_authorindexpage_peopleindexpage_and_more.py new file mode 100644 index 000000000..690f7940c --- /dev/null +++ b/etna/people/migrations/0005_rename_authorindexpage_peopleindexpage_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.0.7 on 2024-08-01 11:21 +# etna:allowRenameModel + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("alerts", "0003_alert_name_alter_alert_title"), + ("images", "0009_alter_customimage_custom_sensitive_image_warning"), + ("people", "0004_alter_personpage_options"), + ("wagtailcore", "0093_uploadedfile"), + ] + + operations = [ + migrations.RenameModel( + old_name="AuthorIndexPage", + new_name="PeopleIndexPage", + ), + migrations.RenameModel( + old_name="AuthorPage", + new_name="PersonPage", + ), + ] diff --git a/etna/people/migrations/0006_alter_authortag_author.py b/etna/people/migrations/0006_alter_authortag_author.py new file mode 100644 index 000000000..eb42bfc91 --- /dev/null +++ b/etna/people/migrations/0006_alter_authortag_author.py @@ -0,0 +1,25 @@ +# Generated by Django 5.0.7 on 2024-08-06 07:20 +# etna:allowAlterField + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("people", "0005_rename_authorindexpage_peopleindexpage_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="authortag", + name="author", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="people_pages", + to="people.personpage", + verbose_name="author", + ), + ), + ] diff --git a/etna/authors/migrations/__init__.py b/etna/people/migrations/__init__.py similarity index 100% rename from etna/authors/migrations/__init__.py rename to etna/people/migrations/__init__.py diff --git a/etna/authors/models.py b/etna/people/models.py similarity index 83% rename from etna/authors/models.py rename to etna/people/models.py index 7d876f07d..a0ba1c57e 100644 --- a/etna/authors/models.py +++ b/etna/people/models.py @@ -20,28 +20,28 @@ ) -class AuthorIndexPage(BasePage): - """Author index page +class PeopleIndexPage(BasePage): + """People index page - This is the parent page for all authors. It is used to - display a list of authors, and to link to individual - author pages from the list. + This is the parent page for all people. It is used to + display a list of people, and to link to individual + people pages from the list. """ - subpage_types = ["authors.AuthorPage"] + subpage_types = ["people.PersonPage"] parent_page_types = ["home.HomePage"] api_fields = BasePage.api_fields + [ - APIField("author_pages", serializer=DefaultPageSerializer(many=True)) + APIField("people_pages", serializer=DefaultPageSerializer(many=True)) ] @cached_property - def author_pages(self): + def people_pages(self): """Return a sample of child pages for rendering in teaser.""" return ( self.get_children() - .type(AuthorPage) + .type(PersonPage) .order_by("title") .live() .public() @@ -49,12 +49,12 @@ def author_pages(self): ) -class AuthorPage(BasePage): - """Author page +class PersonPage(BasePage): + """Person page - This page is to be used for an author profile page, where - we can put info about the author, an image, and then use it - to link pages to an author. + This page is to be used for a profile page, where + we can put info about the person, an image, and then use it + to link pages to a person, or as a reference to the person. """ role = models.CharField(blank=True, null=True, max_length=100) @@ -76,14 +76,14 @@ class AuthorPage(BasePage): ] class Meta: - verbose_name = "Author page" - verbose_name_plural = "Author pages" - verbose_name_public = "author" + verbose_name = "Person page" + verbose_name_plural = "People pages" + verbose_name_public = "person" # DataLayerMixin overrides - gtm_content_group = "Author page" + gtm_content_group = "Person page" - parent_page_types = ["authors.AuthorIndexPage"] + parent_page_types = ["people.PeopleIndexPage"] subpage_types = [] default_api_fields = BasePage.default_api_fields + [ @@ -131,7 +131,7 @@ def related_page_pks(self): when the page was first published ('more recently added' pages take presendence) """ return tuple( - self.author_pages.values_list("page_id", flat=True).order_by( + self.people_pages.values_list("page_id", flat=True).order_by( "-page__first_published_at" ) ) @@ -152,9 +152,9 @@ class AuthorTag(models.Model): page = ParentalKey(Page, on_delete=models.CASCADE, related_name="author_tags") author = models.ForeignKey( - AuthorPage, + PersonPage, verbose_name="author", - related_name="author_pages", + related_name="people_pages", on_delete=models.CASCADE, ) diff --git a/etna/authors/tests/__init__.py b/etna/people/tests/__init__.py similarity index 100% rename from etna/authors/tests/__init__.py rename to etna/people/tests/__init__.py diff --git a/etna/authors/tests/test_models.py b/etna/people/tests/test_models.py similarity index 89% rename from etna/authors/tests/test_models.py rename to etna/people/tests/test_models.py index fc1888ab7..67b58a52c 100644 --- a/etna/authors/tests/test_models.py +++ b/etna/people/tests/test_models.py @@ -4,21 +4,21 @@ from ...articles.models import FocusedArticlePage from ...images.models import CustomImage -from ..models import AuthorIndexPage, AuthorPage, AuthorTag +from ..models import AuthorTag, PeopleIndexPage, PersonPage class TestAuthorPages(TestCase): def setUp(self): root = Site.objects.get().root_page - self.author_index_page = AuthorIndexPage( - title="Authors", teaser_text="Test teaser text" + self.author_index_page = PeopleIndexPage( + title="People", teaser_text="Test teaser text" ) root.add_child(instance=self.author_index_page) self.image = CustomImage.objects.create(width=0, height=0) - self.author_page = AuthorPage( + self.author_page = PersonPage( title="John Doe", role="Author on Test Site", summary="Test summary", @@ -44,7 +44,7 @@ def setUp(self): root.add_child(instance=self.author_tags[f"author_tag{i}"]) def test_author_index_page(self): - self.assertEqual(self.author_index_page.title, "Authors") + self.assertEqual(self.author_index_page.title, "People") self.assertEqual(self.author_index_page.get_children().count(), 1) self.assertEqual( self.author_index_page.get_children().first().title, "John Doe" diff --git a/templates/authors/blocks/author.html b/templates/people/blocks/author.html similarity index 100% rename from templates/authors/blocks/author.html rename to templates/people/blocks/author.html diff --git a/templates/authors/author_index_page.html b/templates/people/people_index_page.html similarity index 98% rename from templates/authors/author_index_page.html rename to templates/people/people_index_page.html index 946236394..1fec8e1ac 100644 --- a/templates/authors/author_index_page.html +++ b/templates/people/people_index_page.html @@ -9,7 +9,7 @@

Discover all authors