kopia lustrzana https://github.com/wagtail/wagtail
Use ObjectTypeRegistry for log entry model registry
rodzic
37fe7ae035
commit
bd8d48be96
|
@ -4,6 +4,7 @@ from asgiref.local import Local
|
|||
from django.utils.functional import LazyObject
|
||||
|
||||
from wagtail.core import hooks
|
||||
from wagtail.utils.registry import ObjectTypeRegistry
|
||||
|
||||
|
||||
class LogFormatter:
|
||||
|
@ -86,7 +87,7 @@ class LogActionRegistry:
|
|||
self.choices = []
|
||||
|
||||
# Tracks which LogEntry model should be used for a given object class
|
||||
self.log_entry_models_by_type = {}
|
||||
self.log_entry_models_by_type = ObjectTypeRegistry()
|
||||
|
||||
# All distinct log entry models registered with register_model
|
||||
self.log_entry_models = set()
|
||||
|
@ -99,7 +100,7 @@ class LogActionRegistry:
|
|||
self.has_scanned_for_actions = True
|
||||
|
||||
def register_model(self, cls, log_entry_model):
|
||||
self.log_entry_models_by_type[cls] = log_entry_model
|
||||
self.log_entry_models_by_type.register(cls, value=log_entry_model)
|
||||
self.log_entry_models.add(log_entry_model)
|
||||
|
||||
def register_action(self, action, *args):
|
||||
|
@ -142,11 +143,7 @@ class LogActionRegistry:
|
|||
|
||||
def get_log_model_for_model(self, model):
|
||||
self.scan_for_actions()
|
||||
|
||||
for cls in model.__mro__:
|
||||
log_entry_model = self.log_entry_models_by_type.get(cls)
|
||||
if log_entry_model:
|
||||
return log_entry_model
|
||||
return self.log_entry_models_by_type.get_by_type(model)
|
||||
|
||||
def get_log_model_for_instance(self, instance):
|
||||
if isinstance(instance, LazyObject):
|
||||
|
|
Ładowanie…
Reference in New Issue