diff --git a/district/wagtail_hooks.py b/district/wagtail_hooks.py index ea3324d401ca66f0a0c822b8b60ade28a8417ab8..461e746ed8a2b4da06de45e92deb5cadb35d368a 100644 --- a/district/wagtail_hooks.py +++ b/district/wagtail_hooks.py @@ -1,3 +1,7 @@ +from wagtail.core import hooks + +from district.models import DistrictCenterPage, DistrictHomePage + # import re # # from wagtail.core import hooks @@ -44,3 +48,21 @@ # # web_pages_id_list = root_page.get_descendants().live().values_list("id", flat=True) # return pages.filter(id__in=web_pages_id_list) + + +@hooks.register("after_copy_page") +def handle_copy_calendar(request, origin_page, copied_page): + if ( + isinstance(copied_page, DistrictHomePage) + or isinstance(copied_page, DistrictCenterPage) + ) and origin_page.specific.calendar_id: + # get current calendar from origin page + calendar = origin_page.specific.calendar + + # create copy of calendar + calendar.pk = None + calendar.save() + + # set new copy of calendar + copied_page.calendar_id = calendar.id + copied_page.save()