more fixes for the editor
This commit is contained in:
parent
f11c8c5f22
commit
55013a61b6
4 changed files with 95 additions and 8 deletions
24
src/c3nav/editor/migrations/0021_auto_20180918_1736.py
Normal file
24
src/c3nav/editor/migrations/0021_auto_20180918_1736.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Generated by Django 2.1.1 on 2018-09-18 15:36
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('editor', '0020_remove_permissions'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='changeset',
|
||||||
|
name='last_cleaned_with',
|
||||||
|
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='checked_changesets', to='mapdata.MapUpdate'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='changeset',
|
||||||
|
name='map_update',
|
||||||
|
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='changeset', to='mapdata.MapUpdate', verbose_name='map update'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -38,11 +38,11 @@ class ChangeSet(models.Model):
|
||||||
)
|
)
|
||||||
created = models.DateTimeField(auto_now_add=True, verbose_name=_('created'))
|
created = models.DateTimeField(auto_now_add=True, verbose_name=_('created'))
|
||||||
last_change = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
last_change = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
||||||
verbose_name=_('last object change'), on_delete=models.PROTECT)
|
verbose_name=_('last object change'), on_delete=models.CASCADE)
|
||||||
last_update = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
last_update = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
||||||
verbose_name=_('last update'), on_delete=models.PROTECT)
|
verbose_name=_('last update'), on_delete=models.CASCADE)
|
||||||
last_state_update = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
last_state_update = models.ForeignKey('editor.ChangeSetUpdate', null=True, related_name='+',
|
||||||
verbose_name=_('last state update'), on_delete=models.PROTECT)
|
verbose_name=_('last state update'), on_delete=models.CASCADE)
|
||||||
state = models.CharField(max_length=20, db_index=True, choices=STATES, default='unproposed')
|
state = models.CharField(max_length=20, db_index=True, choices=STATES, default='unproposed')
|
||||||
author = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT, verbose_name=_('Author'))
|
author = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT, verbose_name=_('Author'))
|
||||||
title = models.CharField(max_length=100, default='', verbose_name=_('Title'))
|
title = models.CharField(max_length=100, default='', verbose_name=_('Title'))
|
||||||
|
|
|
@ -206,8 +206,8 @@ class ModelInstanceWrapper(BaseWrapper):
|
||||||
descriptor = getattr(self._obj.__class__, name, None)
|
descriptor = getattr(self._obj.__class__, name, None)
|
||||||
if isinstance(descriptor, ReverseOneToOneDescriptor):
|
if isinstance(descriptor, ReverseOneToOneDescriptor):
|
||||||
try:
|
try:
|
||||||
rel_obj = getattr(self._obj, descriptor.cache_name)
|
rel_obj = descriptor.related.get_cached_value(self._obj)
|
||||||
except AttributeError:
|
except KeyError:
|
||||||
related_pk = self._obj._get_pk_val()
|
related_pk = self._obj._get_pk_val()
|
||||||
if related_pk is None:
|
if related_pk is None:
|
||||||
rel_obj = None
|
rel_obj = None
|
||||||
|
@ -219,8 +219,8 @@ class ModelInstanceWrapper(BaseWrapper):
|
||||||
except related_model.DoesNotExist:
|
except related_model.DoesNotExist:
|
||||||
rel_obj = None
|
rel_obj = None
|
||||||
else:
|
else:
|
||||||
setattr(rel_obj, descriptor.related.field.get_cache_name(), self._obj)
|
descriptor.related.field.set_cached_value(rel_obj, self._obj)
|
||||||
setattr(self._obj, descriptor.cache_name, rel_obj)
|
descriptor.related.set_cached_value(self._obj, rel_obj)
|
||||||
return super().__getattr__(name)
|
return super().__getattr__(name)
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
|
@ -241,7 +241,7 @@ class ModelInstanceWrapper(BaseWrapper):
|
||||||
if not isinstance(value, ModelInstanceWrapper):
|
if not isinstance(value, ModelInstanceWrapper):
|
||||||
raise ValueError('value has to be None or ModelInstanceWrapper')
|
raise ValueError('value has to be None or ModelInstanceWrapper')
|
||||||
setattr(self._obj, name, value._obj)
|
setattr(self._obj, name, value._obj)
|
||||||
setattr(self._obj, field.get_cache_name(), value)
|
field.set_cached_value(self._obj, value)
|
||||||
return
|
return
|
||||||
super().__setattr__(name, value)
|
super().__setattr__(name, value)
|
||||||
|
|
||||||
|
@ -368,6 +368,15 @@ class BaseQueryWrapper(BaseWrapper):
|
||||||
|
|
||||||
return lookup_querysets[()]
|
return lookup_querysets[()]
|
||||||
|
|
||||||
|
def _chain(self, **kwargs):
|
||||||
|
"""
|
||||||
|
Return a copy of the current QuerySet that's ready for another
|
||||||
|
operation.
|
||||||
|
"""
|
||||||
|
obj = self._clone()
|
||||||
|
obj._obj.__dict__.update(kwargs)
|
||||||
|
return obj
|
||||||
|
|
||||||
def _clone(self, **kwargs):
|
def _clone(self, **kwargs):
|
||||||
clone = self._wrap_queryset(self._obj)
|
clone = self._wrap_queryset(self._obj)
|
||||||
clone._obj.__dict__.update(kwargs)
|
clone._obj.__dict__.update(kwargs)
|
||||||
|
|
54
src/c3nav/mapdata/migrations/0070_auto_20180918_1736.py
Normal file
54
src/c3nav/mapdata/migrations/0070_auto_20180918_1736.py
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
# Generated by Django 2.1.1 on 2018-09-18 15:36
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mapdata', '0069_mapupdate_geometries_changed'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='area',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='areas', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='door',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='doors', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='graphedge',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='graphedges', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='level',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='levels', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='locationgroup',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='locationgroups', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='poi',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='pois', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='source',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='sources', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='space',
|
||||||
|
name='access_restriction',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='spaces', to='mapdata.AccessRestriction', verbose_name='Access Restriction'),
|
||||||
|
),
|
||||||
|
]
|
Loading…
Add table
Add a link
Reference in a new issue