diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index 8193bdfc4..7b181b5fd 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -178,15 +178,16 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_ future_go_live = go_live_datetime and go_live_datetime > timezone.now() approved_go_live_datetime = None - if is_publishing and not future_go_live: - page.live = True - page.has_unpublished_changes = False - elif is_publishing and future_go_live: - page.live = False - # Set approved_go_live_datetime only if is publishing - # and the future_go_live is actually in future - approved_go_live_datetime = go_live_datetime + if is_publishing: page.has_unpublished_changes = False + page.expired = False + if future_go_live: + page.live = False + # Set approved_go_live_datetime only if is publishing + # and the future_go_live is actually in future + approved_go_live_datetime = go_live_datetime + else: + page.live = True else: page.live = False page.has_unpublished_changes = True @@ -267,6 +268,7 @@ def edit(request, page_id): if is_publishing: page.has_unpublished_changes = False + page.expired = False if future_go_live: page.live = False # Set approved_go_live_datetime only if publishing diff --git a/wagtail/wagtailcore/models.py b/wagtail/wagtailcore/models.py index 1ecdd1eb0..eda1a91ec 100644 --- a/wagtail/wagtailcore/models.py +++ b/wagtail/wagtailcore/models.py @@ -717,6 +717,7 @@ class PageRevision(models.Model): page.live = True # If page goes live clear the approved_go_live_datetime of all revisions page.revisions.update(approved_go_live_datetime=None) + page.expired = False # When a page is published it can't be expired page.save() self.submitted_for_moderation = False page.revisions.update(submitted_for_moderation=False)