when recreating a deleted existing locationredirect, restore it instead
This commit is contained in:
parent
4b103b2dda
commit
d886b63452
1 changed files with 9 additions and 0 deletions
|
@ -10,6 +10,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||
from c3nav.editor.utils import is_created_pk
|
||||
from c3nav.editor.wrappers import ModelInstanceWrapper
|
||||
from c3nav.mapdata.fields import JSONField
|
||||
from c3nav.mapdata.models.locations import LocationRedirect
|
||||
|
||||
|
||||
class ChangedObjectManager(models.Manager):
|
||||
|
@ -223,6 +224,14 @@ class ChangedObject(models.Model):
|
|||
def save_instance(self, instance):
|
||||
old_updated_fields = self.updated_fields
|
||||
self.updated_fields = {}
|
||||
|
||||
if instance.pk is None and self.model_class == LocationRedirect:
|
||||
obj = LocationRedirect.objects.filter(pk__in=self.changeset.deleted_existing.get(LocationRedirect, ()),
|
||||
slug=instance.slug, target_id=instance.target_id).first()
|
||||
if obj is not None:
|
||||
self.changeset.get_changed_object(obj).restore()
|
||||
return
|
||||
|
||||
for field in self.model_class._meta.get_fields():
|
||||
if not isinstance(field, Field) or field.primary_key:
|
||||
continue
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue