fix geometry field in editorform logic
This commit is contained in:
parent
69b51ddc37
commit
01e0e27241
2 changed files with 5 additions and 6 deletions
|
@ -23,7 +23,7 @@ from c3nav.mapdata.models.access import AccessPermission
|
||||||
|
|
||||||
|
|
||||||
class EditorFormBase(I18nModelFormMixin, ModelForm):
|
class EditorFormBase(I18nModelFormMixin, ModelForm):
|
||||||
def __init__(self, *args, space_id=None, request=None, force_geometry_editable=False, is_json=False, **kwargs):
|
def __init__(self, *args, space_id=None, request=None, geometry_editable=False, is_json=False, **kwargs):
|
||||||
self.request = request
|
self.request = request
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
creating = not self.instance.pk
|
creating = not self.instance.pk
|
||||||
|
@ -33,7 +33,7 @@ class EditorFormBase(I18nModelFormMixin, ModelForm):
|
||||||
self.instance.author = request.user
|
self.instance.author = request.user
|
||||||
|
|
||||||
if 'geometry' in self.fields:
|
if 'geometry' in self.fields:
|
||||||
if not request.user_permissions.can_access_base_mapdata and not force_geometry_editable:
|
if not geometry_editable:
|
||||||
# can't see this geometry in editor
|
# can't see this geometry in editor
|
||||||
self.fields.pop('geometry')
|
self.fields.pop('geometry')
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -195,7 +195,6 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e
|
||||||
})
|
})
|
||||||
|
|
||||||
space_id = None
|
space_id = None
|
||||||
force_geometry_editable = False
|
|
||||||
if model == Level:
|
if model == Level:
|
||||||
ctx.update({
|
ctx.update({
|
||||||
'level': obj,
|
'level': obj,
|
||||||
|
@ -235,7 +234,6 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e
|
||||||
if not new:
|
if not new:
|
||||||
space = obj.space
|
space = obj.space
|
||||||
space_id = space.pk
|
space_id = space.pk
|
||||||
force_geometry_editable = (request.user_permissions.can_access_base_mapdata or space.base_mapdata_accessible)
|
|
||||||
ctx.update({
|
ctx.update({
|
||||||
'level': space.level,
|
'level': space.level,
|
||||||
'back_url': reverse('editor.'+related_name+'.list', kwargs={'space': space.pk}),
|
'back_url': reverse('editor.'+related_name+'.list', kwargs={'space': space.pk}),
|
||||||
|
@ -335,7 +333,8 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e
|
||||||
json_body = getattr(request, 'json_body', None)
|
json_body = getattr(request, 'json_body', None)
|
||||||
data = json_body if json_body is not None else request.POST
|
data = json_body if json_body is not None else request.POST
|
||||||
form = model.EditorForm(instance=model() if new else obj, data=data, is_json=json_body is not None,
|
form = model.EditorForm(instance=model() if new else obj, data=data, is_json=json_body is not None,
|
||||||
request=request, space_id=space_id, force_geometry_editable=force_geometry_editable)
|
request=request, space_id=space_id,
|
||||||
|
geometry_editable=edit_utils.can_access_child_base_mapdata)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
# Update/create objects
|
# Update/create objects
|
||||||
obj = form.save(commit=False)
|
obj = form.save(commit=False)
|
||||||
|
@ -374,7 +373,7 @@ def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, e
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = model.EditorForm(instance=obj, request=request, space_id=space_id,
|
form = model.EditorForm(instance=obj, request=request, space_id=space_id,
|
||||||
force_geometry_editable=force_geometry_editable)
|
geometry_editable=edit_utils.can_access_child_base_mapdata)
|
||||||
|
|
||||||
ctx.update({
|
ctx.update({
|
||||||
'form': form,
|
'form': form,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue