mirror of
https://github.com/wagtail/wagtail.git
synced 2024-12-01 11:41:20 +01:00
Merge branch 'logging' of https://github.com/kaedroho/wagtail into kaedroho-logging
This commit is contained in:
commit
f8f3fbd17e
@ -1,3 +1,4 @@
|
||||
import logging
|
||||
import warnings
|
||||
|
||||
import six
|
||||
@ -8,7 +9,7 @@ from modelcluster.models import ClusterableModel, get_all_child_relations
|
||||
|
||||
from django.db import models, connection, transaction
|
||||
from django.db.models import Q
|
||||
from django.db.models.signals import pre_delete
|
||||
from django.db.models.signals import pre_delete, post_delete
|
||||
from django.dispatch.dispatcher import receiver
|
||||
from django.http import Http404
|
||||
from django.core.cache import cache
|
||||
@ -36,6 +37,9 @@ from wagtail.wagtailsearch import index
|
||||
from wagtail.wagtailsearch.backends import get_search_backend
|
||||
|
||||
|
||||
logger = logging.getLogger('wagtail.core')
|
||||
|
||||
|
||||
class SiteManager(models.Manager):
|
||||
def get_by_natural_key(self, hostname, port):
|
||||
return self.get(hostname=hostname, port=port)
|
||||
@ -315,8 +319,9 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
||||
@transaction.atomic # ensure that changes are only committed when we have updated all descendant URL paths, to preserve consistency
|
||||
def save(self, *args, **kwargs):
|
||||
update_descendant_url_paths = False
|
||||
is_new = self.id is None
|
||||
|
||||
if self.id is None:
|
||||
if is_new:
|
||||
# we are creating a record. If we're doing things properly, this should happen
|
||||
# through a treebeard method like add_child, in which case the 'path' field
|
||||
# has been set and so we can safely call get_parent
|
||||
@ -340,6 +345,11 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
||||
if Site.objects.filter(root_page=self).exists():
|
||||
cache.delete('wagtail_site_root_paths')
|
||||
|
||||
# Log
|
||||
if is_new:
|
||||
cls = type(self)
|
||||
logger.info("Page created: \"%s\" id=%d content_type=%s.%s path=%s", self.title, self.id, cls._meta.app_label, cls.__name__, self.url_path)
|
||||
|
||||
return result
|
||||
|
||||
def _update_descendant_url_paths(self, old_url_path, new_url_path):
|
||||
@ -411,6 +421,7 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
||||
raise Http404
|
||||
|
||||
def save_revision(self, user=None, submitted_for_moderation=False, approved_go_live_at=None):
|
||||
# Create revision
|
||||
revision = self.revisions.create(
|
||||
content_json=self.to_json(),
|
||||
user=user,
|
||||
@ -421,6 +432,12 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
||||
self.latest_revision_created_at = revision.created_at
|
||||
self.save(update_fields=['latest_revision_created_at'])
|
||||
|
||||
# Log
|
||||
logger.info("Page edited: \"%s\" id=%d revision_id=%d", self.title, self.id, revision.id)
|
||||
|
||||
if submitted_for_moderation:
|
||||
logger.info("Page submitted for moderation: \"%s\" id=%d revision_id=%d", self.title, self.id, revision.id)
|
||||
|
||||
return revision
|
||||
|
||||
def get_latest_revision(self):
|
||||
@ -447,6 +464,8 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
||||
|
||||
page_unpublished.send(sender=self.specific_class, instance=self.specific)
|
||||
|
||||
logger.info("Page unpublished: \"%s\" id=%d", self.title, self.id)
|
||||
|
||||
self.revisions.update(approved_go_live_at=None)
|
||||
|
||||
def get_context(self, request, *args, **kwargs):
|
||||
@ -649,6 +668,9 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
||||
new_self.save()
|
||||
new_self._update_descendant_url_paths(old_url_path, new_url_path)
|
||||
|
||||
# Log
|
||||
logger.info("Page moved: \"%s\" id=%d path=%s", self.title, self.id, self.url_path)
|
||||
|
||||
def copy(self, recursive=False, to=None, update_attrs=None, copy_revisions=True):
|
||||
# Make a copy
|
||||
page_copy = Page.objects.get(id=self.id).specific
|
||||
@ -688,6 +710,9 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
||||
revision.page = page_copy
|
||||
revision.save()
|
||||
|
||||
# Log
|
||||
logger.info("Page copied: \"%s\" id=%d from=%d", page_copy.title, page_copy.id, self.id)
|
||||
|
||||
# Copy child pages
|
||||
if recursive:
|
||||
for child_page in self.get_children():
|
||||
@ -898,6 +923,11 @@ def unpublish_page_before_delete(sender, instance, **kwargs):
|
||||
instance.unpublish(commit=False)
|
||||
|
||||
|
||||
@receiver(post_delete, sender=Page)
|
||||
def log_page_deletion(sender, instance, **kwargs):
|
||||
logger.info("Page deleted: \"%s\" id=%d", instance.title, instance.id)
|
||||
|
||||
|
||||
class Orderable(models.Model):
|
||||
sort_order = models.IntegerField(null=True, blank=True, editable=False)
|
||||
sort_order_field = 'sort_order'
|
||||
@ -954,10 +984,12 @@ class PageRevision(models.Model):
|
||||
|
||||
def approve_moderation(self):
|
||||
if self.submitted_for_moderation:
|
||||
logger.info("Page moderation approved: \"%s\" id=%d revision_id=%d", self.page.title, self.page.id, self.id)
|
||||
self.publish()
|
||||
|
||||
def reject_moderation(self):
|
||||
if self.submitted_for_moderation:
|
||||
logger.info("Page moderation rejected: \"%s\" id=%d revision_id=%d", self.page.title, self.page.id, self.id)
|
||||
self.submitted_for_moderation = False
|
||||
self.save(update_fields=['submitted_for_moderation'])
|
||||
|
||||
@ -994,6 +1026,10 @@ class PageRevision(models.Model):
|
||||
if page.live:
|
||||
page_published.send(sender=page.specific_class, instance=page.specific)
|
||||
|
||||
logger.info("Page published: \"%s\" id=%d revision_id=%d", page.title, page.id, self.id)
|
||||
elif page.go_live_at:
|
||||
logger.info("Page scheduled for publish: \"%s\" id=%d revision_id=%d go_live_at=%s", page.title, page.id, self.id, page.go_live_at.isoformat())
|
||||
|
||||
def __str__(self):
|
||||
return '"' + six.text_type(self.page) + '" at ' + six.text_type(self.created_at)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user