start displaying some errors in the changeset overview
This commit is contained in:
parent
6c5aba62ec
commit
e0b9ae0087
1 changed files with 36 additions and 1 deletions
|
@ -191,6 +191,11 @@ def changeset_detail(request, pk):
|
||||||
|
|
||||||
changed_objects_data = []
|
changed_objects_data = []
|
||||||
|
|
||||||
|
problems = changeset.problems
|
||||||
|
any_problems = problems.any
|
||||||
|
|
||||||
|
# todo: unable to resolve errors like "removed what is already gone"
|
||||||
|
|
||||||
added_redirects = {}
|
added_redirects = {}
|
||||||
removed_redirects = {}
|
removed_redirects = {}
|
||||||
for changed_object in changeset.changes:
|
for changed_object in changeset.changes:
|
||||||
|
@ -211,6 +216,8 @@ def changeset_detail(request, pk):
|
||||||
continue
|
continue
|
||||||
changes = []
|
changes = []
|
||||||
|
|
||||||
|
obj_problems = problems.get_object(changed_object.obj)
|
||||||
|
|
||||||
title = None
|
title = None
|
||||||
if changed_object.titles:
|
if changed_object.titles:
|
||||||
if current_lang in changed_object.titles:
|
if current_lang in changed_object.titles:
|
||||||
|
@ -252,7 +259,20 @@ def changeset_detail(request, pk):
|
||||||
'class': 'success',
|
'class': 'success',
|
||||||
'empty': True,
|
'empty': True,
|
||||||
'title': _('created'),
|
'title': _('created'),
|
||||||
|
'problem': _("can't create this object") if obj_problems.cant_create else None,
|
||||||
})
|
})
|
||||||
|
else:
|
||||||
|
changes.append({
|
||||||
|
'icon': 'warning-sign',
|
||||||
|
'class': 'danger',
|
||||||
|
'empty': True,
|
||||||
|
'title': _('no longer exists'),
|
||||||
|
'problem': (
|
||||||
|
_("can't update this object because it no longer exists")
|
||||||
|
if obj_problems.obj_does_not_exist else None
|
||||||
|
),
|
||||||
|
})
|
||||||
|
# todo: make it possible for the user to get rid of this
|
||||||
|
|
||||||
update_changes = []
|
update_changes = []
|
||||||
for name, value in changed_object.fields.items():
|
for name, value in changed_object.fields.items():
|
||||||
|
@ -260,7 +280,14 @@ def changeset_detail(request, pk):
|
||||||
'icon': 'option-vertical',
|
'icon': 'option-vertical',
|
||||||
'class': 'muted',
|
'class': 'muted',
|
||||||
}
|
}
|
||||||
if name == 'geometry':
|
if name in obj_problems.field_does_not_exist:
|
||||||
|
change_data.update({
|
||||||
|
'title': name,
|
||||||
|
'value': value,
|
||||||
|
'order': (10,),
|
||||||
|
'problem': _("this field no longer exists"),
|
||||||
|
})
|
||||||
|
elif name == 'geometry':
|
||||||
change_data.update({
|
change_data.update({
|
||||||
'icon': 'map-marker',
|
'icon': 'map-marker',
|
||||||
'class': 'info',
|
'class': 'info',
|
||||||
|
@ -313,6 +340,8 @@ def changeset_detail(request, pk):
|
||||||
'title': format_lazy(_('remove {field_title}'), field_title=field_title),
|
'title': format_lazy(_('remove {field_title}'), field_title=field_title),
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
|
# todo: if this is a reference, we wanna not show the id but something betterẞ
|
||||||
|
# todo: display if dummy value was used or other problem exists with this field
|
||||||
change_data.update({
|
change_data.update({
|
||||||
'title': field_title,
|
'title': field_title,
|
||||||
'value': value,
|
'value': value,
|
||||||
|
@ -330,6 +359,7 @@ def changeset_detail(request, pk):
|
||||||
|
|
||||||
for name, m2m_changes in changed_object.m2m_changes.items():
|
for name, m2m_changes in changed_object.m2m_changes.items():
|
||||||
field = model._meta.get_field(name)
|
field = model._meta.get_field(name)
|
||||||
|
# todo: display problems with m2m values
|
||||||
for item in m2m_changes.added:
|
for item in m2m_changes.added:
|
||||||
changes.append({
|
changes.append({
|
||||||
'icon': 'chevron-right',
|
'icon': 'chevron-right',
|
||||||
|
@ -346,6 +376,7 @@ def changeset_detail(request, pk):
|
||||||
})
|
})
|
||||||
|
|
||||||
if issubclass(model, LocationSlug):
|
if issubclass(model, LocationSlug):
|
||||||
|
# todo: display problems with redirect slugs
|
||||||
for slug in added_redirects.get(changed_object.obj.id, ()):
|
for slug in added_redirects.get(changed_object.obj.id, ()):
|
||||||
changes.append({
|
changes.append({
|
||||||
'icon': 'chevron-right',
|
'icon': 'chevron-right',
|
||||||
|
@ -367,6 +398,10 @@ def changeset_detail(request, pk):
|
||||||
'class': 'danger',
|
'class': 'danger',
|
||||||
'empty': True,
|
'empty': True,
|
||||||
'title': _('deleted'),
|
'title': _('deleted'),
|
||||||
|
'problem': (
|
||||||
|
_("can't delete this object because of protected references")
|
||||||
|
if obj_problems.protected_references else None
|
||||||
|
),
|
||||||
})
|
})
|
||||||
|
|
||||||
changed_objects_data.append(changed_object_data)
|
changed_objects_data.append(changed_object_data)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue