Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error on course after deleting parent site #3151

Closed
numahell opened this issue Jun 22, 2022 · 4 comments
Closed

Error on course after deleting parent site #3151

numahell opened this issue Jun 22, 2022 · 4 comments
Projects

Comments

@numahell
Copy link
Contributor

Course has error on display after having deleted parent site :

juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: ERROR 2022-06-22 09:09:47,845 django.request Internal Server Error: /course/1/
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: Traceback (most recent call last):
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     response = get_response(request)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/core/handlers/base.py", line 204, in _get_response
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     response = response.render()
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/response.py", line 105, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     self.content = self.rendered_content
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/response.py", line 83, in rendered_content
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return template.render(context, self._request)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/backends/django.py", line 61, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.template.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 170, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 988, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     output = self.filter_expression.resolve(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 671, in resolve
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     obj = self.var.resolve(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 796, in resolve
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     value = self._resolve_lookup(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 858, in _resolve_lookup
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     current = current()
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 76, in super
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return mark_safe(self.render(self.context))
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 192, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return template.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 172, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 988, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     output = self.filter_expression.resolve(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 698, in resolve
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     new_obj = func(obj, *arg_vals)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:   File "/opt/geotrek-admin/lib/python3.6/site-packages/mapentity/templatetags/mapentity_tags.py", line 71, in field_v
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]:     return obj._meta.get_field(field).verbose_name
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: AttributeError: 'NoneType' object has no attribute '_meta'

Parent site could be deleted without warning about children.

@camillemonchicourt
Copy link
Member

OK indeed.
I am not sure if a course can exist without a parent site...
Maybe we should protect it ?

@babastienne
Copy link
Member

Yes, the solution would be to protect the deletion when there is an existing parent site attached to the course object.

@numahell
Copy link
Contributor Author

numahell commented Mar 1, 2023

To get around this problem, you can access directly to edit page, and associate at least a parent site.

Edit page is like /course/edit/{pk}

A course can be a child of 1 or several parent_sites. To fix this problem, we could protect deletion of a site, or fix detail view.

@babastienne babastienne added this to Backlog in BPO-Tickets Jul 11, 2023
@babastienne babastienne moved this from Backlog to To do in BPO-Tickets Aug 7, 2023
@Huquette Huquette moved this from To do to Doing in BPO-Tickets Aug 14, 2023
@Huquette Huquette moved this from Doing to Done in BPO-Tickets Aug 28, 2023
@babastienne
Copy link
Member

Fixed in release 2.100.0. Deletion is protected when there is a child associated to the outdoor site.

@babastienne babastienne moved this from Done to Merged in BPO-Tickets Sep 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

3 participants