Wrap history index signal with giant try: except:

This commit is contained in:
Tanner Collin 2020-02-26 01:45:49 +00:00
parent bcb34cf63e
commit 4ff0900a20

View File

@ -38,45 +38,53 @@ def post_create_historical_record_callback(
using, using,
**kwargs): **kwargs):
history_type = history_instance.get_history_type_display() try:
object_name = instance.__class__.__name__ history_type = history_instance.get_history_type_display()
object_name = instance.__class__.__name__
if object_name in ['User']: return if object_name in ['User', 'IPN']: return
if history_type == 'Changed': if history_type == 'Changed':
changes = history_instance.diff_against(history_instance.prev_record).changes changes = history_instance.diff_against(history_instance.prev_record).changes
else: else:
changes = [] changes = []
# it's possible for changes to be empty if model saved with no diff # it's possible for changes to be empty if model saved with no diff
if len(changes) or history_type in ['Created', 'Deleted']: if len(changes) or history_type in ['Created', 'Deleted']:
owner = get_object_owner(instance) owner = get_object_owner(instance)
index = models.HistoryIndex.objects.create( index = models.HistoryIndex.objects.create(
history=history_instance, history=history_instance,
owner_id=owner[1], owner_id=owner[1],
owner_name=owner[0], owner_name=owner[0],
object_name=object_name, object_name=object_name,
history_user=history_user, history_user=history_user,
history_date=history_instance.history_date, history_date=history_instance.history_date,
history_type=history_type, history_type=history_type,
revert_url=history_instance.revert_url(), revert_url=history_instance.revert_url(),
is_system=bool(history_user == None), is_system=bool(history_user == None),
is_admin=is_admin_director(history_user), is_admin=is_admin_director(history_user),
)
for change in changes:
change_old = str(change.old)
change_new = str(change.new)
if len(change_old) > 200:
change_old = change_old[:200] + '... [truncated]'
if len(change_new) > 200:
change_new = change_new[:200] + '... [truncated]'
models.HistoryChange.objects.create(
index=index,
field=change.field,
old=change_old,
new=change_new,
) )
for change in changes:
change_old = str(change.old)
change_new = str(change.new)
if len(change_old) > 200:
change_old = change_old[:200] + '... [truncated]'
if len(change_new) > 200:
change_new = change_new[:200] + '... [truncated]'
models.HistoryChange.objects.create(
index=index,
field=change.field,
old=change_old,
new=change_new,
)
except BaseException as e:
print('Problem creating history index: {} - {}'.format(e.__class__.__name__, e))
print('sender', sender)
print('instance', instance)
print('history_instance', history_instance)
print('history_user', history_user)
print('using', using)