store titles instead of repr in changes
This commit is contained in:
parent
bbce760707
commit
37ca7eab31
3 changed files with 16 additions and 7 deletions
|
@ -120,7 +120,7 @@ class ChangedManyToMany(BaseSchema):
|
||||||
|
|
||||||
class ChangedObject(BaseSchema):
|
class ChangedObject(BaseSchema):
|
||||||
obj: ObjectReference
|
obj: ObjectReference
|
||||||
repr: str
|
titles: dict[str, str]
|
||||||
created: bool = False
|
created: bool = False
|
||||||
deleted: bool = False
|
deleted: bool = False
|
||||||
fields: FieldValuesDict = {}
|
fields: FieldValuesDict = {}
|
||||||
|
@ -128,7 +128,7 @@ class ChangedObject(BaseSchema):
|
||||||
|
|
||||||
|
|
||||||
class CollectedChanges(BaseSchema):
|
class CollectedChanges(BaseSchema):
|
||||||
prev_reprs: dict[str, dict[int, str]] = {}
|
prev_titles: dict[str, dict[int, dict[str, str]]] = {}
|
||||||
prev_values: dict[str, dict[int, FieldValuesDict]] = {}
|
prev_values: dict[str, dict[int, FieldValuesDict]] = {}
|
||||||
operations: list[DatabaseOperation] = []
|
operations: list[DatabaseOperation] = []
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ class CollectedChanges(BaseSchema):
|
||||||
changed_object = objects.get(operation.obj, None)
|
changed_object = objects.get(operation.obj, None)
|
||||||
if changed_object is None:
|
if changed_object is None:
|
||||||
changed_object = ChangedObject(obj=operation.obj,
|
changed_object = ChangedObject(obj=operation.obj,
|
||||||
repr=self.prev_reprs[operation.obj.model][operation.obj.id])
|
titles=self.prev_titles[operation.obj.model][operation.obj.id])
|
||||||
objects[operation.obj] = changed_object
|
objects[operation.obj] = changed_object
|
||||||
if isinstance(operation, CreateObjectOperation):
|
if isinstance(operation, CreateObjectOperation):
|
||||||
changed_object.created = True
|
changed_object.created = True
|
||||||
|
|
|
@ -64,7 +64,7 @@ class DatabaseOverlayManager:
|
||||||
pre_change_values = self.pre_change_values.pop(ref, None)
|
pre_change_values = self.pre_change_values.pop(ref, None)
|
||||||
if pre_change_values:
|
if pre_change_values:
|
||||||
self.changes.prev_values.setdefault(ref.model, {})[ref.id] = pre_change_values
|
self.changes.prev_values.setdefault(ref.model, {})[ref.id] = pre_change_values
|
||||||
self.changes.prev_reprs.setdefault(ref.model, {})[ref.id] = str(instance)
|
self.changes.prev_titles.setdefault(ref.model, {})[ref.id] = getattr(instance, 'titles', None)
|
||||||
|
|
||||||
return ref, pre_change_values
|
return ref, pre_change_values
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404, redirect, render
|
from django.shortcuts import get_object_or_404, redirect, render
|
||||||
from django.urls import NoReverseMatch, reverse
|
from django.urls import NoReverseMatch, reverse
|
||||||
from django.utils.text import format_lazy
|
from django.utils.text import format_lazy
|
||||||
from django.utils.translation import get_language_info
|
from django.utils.translation import get_language_info, get_language
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from c3nav.editor.forms import ChangeSetForm, RejectForm, get_editor_form
|
from c3nav.editor.forms import ChangeSetForm, RejectForm, get_editor_form
|
||||||
|
@ -207,15 +207,24 @@ def changeset_detail(request, pk):
|
||||||
# redirect_changed_objects = []
|
# redirect_changed_objects = []
|
||||||
# todo: display redirects nicely
|
# todo: display redirects nicely
|
||||||
|
|
||||||
|
current_lang = get_language()
|
||||||
|
|
||||||
for changed_object in changeset.changes.changed_objects:
|
for changed_object in changeset.changes.changed_objects:
|
||||||
model = apps.get_model("mapdata", changed_object.obj.model)
|
model = apps.get_model("mapdata", changed_object.obj.model)
|
||||||
changes = []
|
changes = []
|
||||||
|
|
||||||
|
title = None
|
||||||
|
if changed_object.titles:
|
||||||
|
if current_lang in changed_object.titles:
|
||||||
|
title = changed_object.titles[current_lang]
|
||||||
|
title = next(iter(changed_object.titles.values()))
|
||||||
|
|
||||||
changed_object_data = {
|
changed_object_data = {
|
||||||
'model': model,
|
'model': model,
|
||||||
'model_title': model._meta.verbose_name,
|
'model_title': model._meta.verbose_name,
|
||||||
'pk': changed_object.obj.id,
|
'pk': changed_object.obj.id,
|
||||||
'desc': changed_object.repr,
|
'desc': format_lazy(_('{model} #{id}'), model=model._meta.verbose_name, id=changed_object.obj.id),
|
||||||
'title': 'TITLE',
|
'title': title,
|
||||||
'changes': changes,
|
'changes': changes,
|
||||||
'edit_url': None,
|
'edit_url': None,
|
||||||
'deleted': changed_object.deleted,
|
'deleted': changed_object.deleted,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue