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

Cannot delete WorkflowTeam that has no role #1120

Open
rafa-munoz opened this issue Jul 13, 2018 · 0 comments
Open

Cannot delete WorkflowTeam that has no role #1120

rafa-munoz opened this issue Jul 13, 2018 · 0 comments
Labels

Comments

@rafa-munoz
Copy link
Contributor

Current behavior

When a WorkflowTeam instance is deleted and it has no role assigned, it's raising an exception. Making it impossible to getting deleted:

ERROR:django.request:Internal Server Error: /admin/workflow/workflowteam/11/delete/
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py", line 67, in _wrapper
  File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py", line 63, in bound_func
  File "/usr/local/lib/python2.7/site-packages/django/db/models/deletion.py", line 279, in delete
    sender=model, instance=obj, using=self.using
    if count == 1 and instance.role.name in [ROLE_PROGRAM_ADMIN,
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
  File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    return collector.delete()
AttributeError: 'NoneType' object has no attribute 'name'
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 224, in inner
    return view(request, *args, **kwargs)
    response = view_func(request, *args, **kwargs)
    self.delete_model(request, obj)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 985, in delete_model
  File "/usr/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 193, in send
Traceback (most recent call last):
    response = get_response(request)
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 551, in wrapper
  File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    return bound_func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1723, in _delete_view
    obj.delete()
  File "/usr/local/lib/python2.7/site-packages/workflow/signals.py", line 229, in check_seats_delete_team
  File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = view_func(request, *args, **kwargs)
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1690, in delete_view
    return self._delete_view(request, object_id, extra_context)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 973, in delete
    for receiver in self._live_receivers(sender)
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1690, in delete_view
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 973, in delete
    for receiver in self._live_receivers(sender)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 224, in inner
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1723, in _delete_view
    obj.delete()
    return collector.delete()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/deletion.py", line 279, in delete
    response = get_response(request)
    response = self.process_exception_by_middleware(e, request)
    response = view_func(request, *args, **kwargs)
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 985, in delete_model
    sender=model, instance=obj, using=self.using
AttributeError: 'NoneType' object has no attribute 'name'

The error comes from check_seats_delete_team() if count == 1 and instance.role.name in [ROLE_PROGRAM_ADMIN,

Acceptance criteria

GIVEN I am the admin
AND I try to delete a WorkflowTeam without a role
THEN the deletion should be done

@rafa-munoz rafa-munoz added the bug label Sep 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant