Send Email does not work
Tested with an own invoice. A click on Send email
(invoice detail page) produces the following error:
Internal Server Error: /django/app/tezor/invoice/07b3973a-a1b2-40da-aec2-906909caa760/send/
Traceback (most recent call last):
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 56, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/views/generic/base.py", line 103, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/contrib/auth/mixins.py", line 107, in dispatch
if not self.has_permission():
^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/contrib/views.py", line 47, in has_permission
return self.request.user.has_perms(perms, obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/contrib/auth/models.py", line 320, in has_perms
return all(self.has_perm(perm, obj) for perm in perm_list)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/contrib/auth/models.py", line 320, in <genexpr>
return all(self.has_perm(perm, obj) for perm in perm_list)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/contrib/auth/models.py", line 311, in has_perm
return _user_has_perm(self, perm, obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/django/contrib/auth/models.py", line 220, in _user_has_perm
if backend.has_perm(user, perm, obj):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/permissions.py", line 31, in has_perm
return has_perm(perm, user, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/permissions.py", line 23, in has_perm
return permissions.test_rule(name, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/rulesets.py", line 6, in test_rule
return name in self and self[name].test(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 172, in test
return bool(self._apply(*args))
^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 235, in _apply
result = self.fn(*callargs)
^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 184, in OR
return self._combine(other, operator.or_, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 206, in _combine
self_result = self._apply(*args)
^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 235, in _apply
result = self.fn(*callargs)
^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 184, in OR
return self._combine(other, operator.or_, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 206, in _combine
self_result = self._apply(*args)
^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 235, in _apply
result = self.fn(*callargs)
^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 178, in AND
return self._combine(other, operator.and_, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 216, in _combine
other_result = other._apply(*args)
^^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/rules/predicates.py", line 235, in _apply
result = self.fn(*callargs)
^^^^^^^^^^^^^^^^^^
File "/srv/www/aleksis/venv/lib/python3.11/site-packages/aleksis/apps/tezor/predicates.py", line 13, in is_own_invoice
return obj.get_person() == user.person
^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get_person'