Logo
Návrat do sálu
[2025-06-09 10:56:57,665] ERROR in app: Exception on /shareholder/44120/arrive [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 198, in _new_conn
sock = connection.create_connection(
(self._dns_host, self.port),
...<2 lines>...
socket_options=self.socket_options,
)
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
~~~~~~~~~~~~^^^^
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
conn,
...<10 lines>...
**response_kw,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 493, in _make_request
conn.request(
~~~~~~~~~~~~^
method,
^^^^^^^
...<6 lines>...
enforce_content_length=enforce_content_length,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 445, in request
self.endheaders()
~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/http/client.py", line 1333, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/http/client.py", line 1093, in _send_output
self.send(msg)
~~~~~~~~~^^^^^
File "/usr/lib/python3.13/http/client.py", line 1037, in send
self.connect()
~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 276, in connect
self.sock = self._new_conn()
~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 213, in _new_conn
raise NewConnectionError(
self, f"Failed to establish a new connection: {e}"
) from e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x76d6d4b40ad0>: Failed to establish a new connection: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
method=request.method,
...<9 lines>...
chunked=chunked,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 841, in urlopen
retries = retries.increment(
method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
)
File "/usr/lib/python3.13/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=13001): Max retries exceeded with url: /emit/online (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76d6d4b40ad0>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 235, in shareholder_arrive
WSCommunicator.emit_online('statistics', get_shares_statistics())
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/communicator.py", line 22, in emit_online
r = requests.post(f'{WSCommunicator.HOST}/emit/online', data=json.dumps(payload), headers=WSCommunicator.HEADERS)
File "/usr/lib/python3.13/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=13001): Max retries exceeded with url: /emit/online (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76d6d4b40ad0>: Failed to establish a new connection: [Errno 111] Connection refused'))
[2025-06-09 10:57:41,756] ERROR in app: Exception on /badge/leave [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 198, in _new_conn
sock = connection.create_connection(
(self._dns_host, self.port),
...<2 lines>...
socket_options=self.socket_options,
)
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
~~~~~~~~~~~~^^^^
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
conn,
...<10 lines>...
**response_kw,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 493, in _make_request
conn.request(
~~~~~~~~~~~~^
method,
^^^^^^^
...<6 lines>...
enforce_content_length=enforce_content_length,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 445, in request
self.endheaders()
~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/http/client.py", line 1333, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/http/client.py", line 1093, in _send_output
self.send(msg)
~~~~~~~~~^^^^^
File "/usr/lib/python3.13/http/client.py", line 1037, in send
self.connect()
~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 276, in connect
self.sock = self._new_conn()
~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 213, in _new_conn
raise NewConnectionError(
self, f"Failed to establish a new connection: {e}"
) from e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x76d6db85b770>: Failed to establish a new connection: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
method=request.method,
...<9 lines>...
chunked=chunked,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 841, in urlopen
retries = retries.increment(
method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
)
File "/usr/lib/python3.13/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=13001): Max retries exceeded with url: /station_data (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76d6db85b770>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 327, in badge_leave
station_data = WSCommunicator.station_data()
File "/srv/http/dsp.gmee.cz/communicator.py", line 33, in station_data
r = requests.get(f'{WSCommunicator.HOST}/station_data')
File "/usr/lib/python3.13/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=13001): Max retries exceeded with url: /station_data (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76d6db85b770>: Failed to establish a new connection: [Errno 111] Connection refused'))
[2025-06-09 10:57:44,976] ERROR in app: Exception on /badge/leave [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 198, in _new_conn
sock = connection.create_connection(
(self._dns_host, self.port),
...<2 lines>...
socket_options=self.socket_options,
)
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
~~~~~~~~~~~~^^^^
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
conn,
...<10 lines>...
**response_kw,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 493, in _make_request
conn.request(
~~~~~~~~~~~~^
method,
^^^^^^^
...<6 lines>...
enforce_content_length=enforce_content_length,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 445, in request
self.endheaders()
~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/http/client.py", line 1333, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/http/client.py", line 1093, in _send_output
self.send(msg)
~~~~~~~~~^^^^^
File "/usr/lib/python3.13/http/client.py", line 1037, in send
self.connect()
~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 276, in connect
self.sock = self._new_conn()
~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 213, in _new_conn
raise NewConnectionError(
self, f"Failed to establish a new connection: {e}"
) from e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x76d6db85b4d0>: Failed to establish a new connection: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
method=request.method,
...<9 lines>...
chunked=chunked,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 841, in urlopen
retries = retries.increment(
method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
)
File "/usr/lib/python3.13/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=13001): Max retries exceeded with url: /station_data (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76d6db85b4d0>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 327, in badge_leave
station_data = WSCommunicator.station_data()
File "/srv/http/dsp.gmee.cz/communicator.py", line 33, in station_data
r = requests.get(f'{WSCommunicator.HOST}/station_data')
File "/usr/lib/python3.13/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=13001): Max retries exceeded with url: /station_data (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76d6db85b4d0>: Failed to establish a new connection: [Errno 111] Connection refused'))
[2025-06-09 11:13:11,756] ERROR in app: Exception on /pdf/signature.php [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 192, in signatures
pdf = PDFBuilder(f'{app.config["DATA_FOLDER"]}signatures/{shareholder.last_presence().id}_{shareholder.id}.pdf')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'
[2025-06-10 08:07:31,570] ERROR in app: Exception on /pdf/signature.php [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 192, in signatures
pdf = PDFBuilder(f'{app.config["DATA_FOLDER"]}signatures/{shareholder.last_presence().id}_{shareholder.id}.pdf')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'
[2025-06-10 08:11:58,027] ERROR in app: Exception on /pdf/signature.php [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 192, in signatures
pdf = PDFBuilder(f'{app.config["DATA_FOLDER"]}signatures/{shareholder.last_presence().id}_{shareholder.id}.pdf')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'
[2025-06-10 08:13:06,916] ERROR in app: Exception on /pdf/signature.php [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 192, in signatures
pdf = PDFBuilder(f'{app.config["DATA_FOLDER"]}signatures/{shareholder.last_presence().id}_{shareholder.id}.pdf')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'
[2025-06-10 08:45:52,338] ERROR in app: Exception on /export/voting/1/cs [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 171, in export_voting_protocol
os.makedirs(images_path)
~~~~~~~~~~~^^^^^^^^^^^^^
File "<frozen os>", line 227, in makedirs
PermissionError: [Errno 13] Permission denied: '/srv/http/data/1_cs'
[2025-06-12 10:19:03,675] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:19:03,884] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:19:04,639] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:19:09,654] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:19:11,543] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:19:14,239] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:20:14,587] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:20:14,836] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:20:15,100] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:20:15,332] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:20:15,653] ERROR in app: Exception on /shareholders_list [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 43, in shareholders_list
return render_template('shareholder_list.html', shareholders=shareholders[:20], group_shareholders=group_shareholders[:20])
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
return _render(app, template, context)
File "/usr/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
rv = template.render(context)
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/srv/http/dsp.gmee.cz/templates/shareholder_list.html", line 12, in top-level template code
<div class="mainButtonIconAgent {% if shareholder.badge %} y {% else %} n {% endif %}" {% if shareholder.badge %} data-toggle="tooltip" title="{{shareholder.agent}}" {% endif %}></div>
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/jinja2/environment.py", line 490, in getattr
return getattr(obj, attribute)
File "/srv/http/dsp.gmee.cz/database.py", line 85, in agent
return '\n'.join(agent)
~~~~~~~~~^^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
[2025-06-12 10:24:12,417] ERROR in app: Exception on /pdf/signature.php [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 176, in signatures
os.makedirs(pdf_folder)
~~~~~~~~~~~^^^^^^^^^^^^
File "<frozen os>", line 227, in makedirs
PermissionError: [Errno 13] Permission denied: '/srv/http/data/signatures'
[2025-06-12 10:26:15,722] ERROR in app: Exception on /badge/leave [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 198, in _new_conn
sock = connection.create_connection(
(self._dns_host, self.port),
...<2 lines>...
socket_options=self.socket_options,
)
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/usr/lib/python3.13/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
~~~~~~~~~~~~^^^^
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
conn,
...<10 lines>...
**response_kw,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 493, in _make_request
conn.request(
~~~~~~~~~~~~^
method,
^^^^^^^
...<6 lines>...
enforce_content_length=enforce_content_length,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 445, in request
self.endheaders()
~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/http/client.py", line 1333, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/http/client.py", line 1093, in _send_output
self.send(msg)
~~~~~~~~~^^^^^
File "/usr/lib/python3.13/http/client.py", line 1037, in send
self.connect()
~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 276, in connect
self.sock = self._new_conn()
~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/urllib3/connection.py", line 213, in _new_conn
raise NewConnectionError(
self, f"Failed to establish a new connection: {e}"
) from e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x76bd9a8c6710>: Failed to establish a new connection: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
method=request.method,
...<9 lines>...
chunked=chunked,
)
File "/usr/lib/python3.13/site-packages/urllib3/connectionpool.py", line 841, in urlopen
retries = retries.increment(
method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
)
File "/usr/lib/python3.13/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=13201): Max retries exceeded with url: /station_data (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76bd9a8c6710>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 233, in badge_leave
station_data = WSCommunicator.station_data()
File "/srv/http/dsp.gmee.cz/communicator.py", line 33, in station_data
r = requests.get(f'{WSCommunicator.HOST}/station_data')
File "/usr/lib/python3.13/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.13/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.13/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=13201): Max retries exceeded with url: /station_data (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76bd9a8c6710>: Failed to establish a new connection: [Errno 111] Connection refused'))
[2025-06-12 10:31:30,107] ERROR in app: Exception on /voting/1/show/question [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 322, in voting_status
trigger_voting_change()
~~~~~~~~~~~~~~~~~~~~~^^
File "/srv/http/dsp.gmee.cz/database.py", line 29, in trigger_voting_change
WSCommunicator.emit_online('online_voting', response)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/communicator.py", line 22, in emit_online
r = requests.post(f'{WSCommunicator.HOST}/emit/online', data=json.dumps(payload), headers=WSCommunicator.HEADERS)
~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.13/json/encoder.py", line 261, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.13/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
f'is not JSON serializable')
TypeError: Object of type Decimal is not JSON serializable
[2025-06-12 10:31:31,179] ERROR in app: Exception on /voting/1/show/question [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 322, in voting_status
trigger_voting_change()
~~~~~~~~~~~~~~~~~~~~~^^
File "/srv/http/dsp.gmee.cz/database.py", line 29, in trigger_voting_change
WSCommunicator.emit_online('online_voting', response)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/communicator.py", line 22, in emit_online
r = requests.post(f'{WSCommunicator.HOST}/emit/online', data=json.dumps(payload), headers=WSCommunicator.HEADERS)
~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.13/json/encoder.py", line 261, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.13/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
f'is not JSON serializable')
TypeError: Object of type Decimal is not JSON serializable
[2025-06-12 10:31:31,521] ERROR in app: Exception on /voting/1/show/question [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 322, in voting_status
trigger_voting_change()
~~~~~~~~~~~~~~~~~~~~~^^
File "/srv/http/dsp.gmee.cz/database.py", line 29, in trigger_voting_change
WSCommunicator.emit_online('online_voting', response)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/communicator.py", line 22, in emit_online
r = requests.post(f'{WSCommunicator.HOST}/emit/online', data=json.dumps(payload), headers=WSCommunicator.HEADERS)
~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.13/json/encoder.py", line 261, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.13/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
f'is not JSON serializable')
TypeError: Object of type Decimal is not JSON serializable
[2025-06-12 10:31:32,810] ERROR in app: Exception on /voting/1/show/question [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 322, in voting_status
trigger_voting_change()
~~~~~~~~~~~~~~~~~~~~~^^
File "/srv/http/dsp.gmee.cz/database.py", line 29, in trigger_voting_change
WSCommunicator.emit_online('online_voting', response)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/communicator.py", line 22, in emit_online
r = requests.post(f'{WSCommunicator.HOST}/emit/online', data=json.dumps(payload), headers=WSCommunicator.HEADERS)
~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.13/json/encoder.py", line 261, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.13/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
f'is not JSON serializable')
TypeError: Object of type Decimal is not JSON serializable
[2025-06-12 10:31:40,594] ERROR in app: Exception on /online/connected [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 249, in online_connected
trigger_voting_change()
~~~~~~~~~~~~~~~~~~~~~^^
File "/srv/http/dsp.gmee.cz/database.py", line 29, in trigger_voting_change
WSCommunicator.emit_online('online_voting', response)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/communicator.py", line 22, in emit_online
r = requests.post(f'{WSCommunicator.HOST}/emit/online', data=json.dumps(payload), headers=WSCommunicator.HEADERS)
~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.13/json/encoder.py", line 261, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.13/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
f'is not JSON serializable')
TypeError: Object of type Decimal is not JSON serializable
[2025-06-12 10:31:58,817] ERROR in app: Exception on /voting/1/show/question [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 322, in voting_status
trigger_voting_change()
~~~~~~~~~~~~~~~~~~~~~^^
File "/srv/http/dsp.gmee.cz/database.py", line 29, in trigger_voting_change
WSCommunicator.emit_online('online_voting', response)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/communicator.py", line 22, in emit_online
r = requests.post(f'{WSCommunicator.HOST}/emit/online', data=json.dumps(payload), headers=WSCommunicator.HEADERS)
~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.13/json/encoder.py", line 261, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.13/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
f'is not JSON serializable')
TypeError: Object of type Decimal is not JSON serializable
[2025-06-12 10:42:28,054] ERROR in app: Exception on /export/voting/1 [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 86, in export_voting_protocol
shareholders = f'{voting.present_shares:,}'.replace(',', '.')
^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unsupported format string passed to NoneType.__format__
[2025-06-12 10:47:52,803] ERROR in app: Exception on /data/1/000.png [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'data/{file}')
File "/usr/lib/python3.13/site-packages/flask/helpers.py", line 511, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.13/site-packages/werkzeug/utils.py", line 428, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/dsp.gmee.cz/data/1/000.png'
[2025-06-12 10:50:31,365] ERROR in app: Exception on /data/1/000.png [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'data/{file}')
File "/usr/lib/python3.13/site-packages/flask/helpers.py", line 511, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.13/site-packages/werkzeug/utils.py", line 428, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/dsp.gmee.cz/data/1/000.png'
[2025-06-12 10:51:18,346] ERROR in app: Exception on /data/1/000.png [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'data/{file}')
File "/usr/lib/python3.13/site-packages/flask/helpers.py", line 511, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.13/site-packages/werkzeug/utils.py", line 428, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/dsp.gmee.cz/data/1/000.png'
[2025-06-18 19:30:30,312] ERROR in app: Exception on /export/presence [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 35, in export_presence
shareholders_int = (results[0] + results[1])
~~~~~~~~~~~^~~~~~~~~~~~
TypeError: unsupported operand type(s) for +: 'NoneType' and 'decimal.Decimal'
[2025-06-20 14:57:14,023] ERROR in app: Exception on /export/presence [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.ProgrammingError: (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 34, in export_presence
results = db.engine.connect().execute(text(sql)).first()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1415, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 523, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2351, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.ProgrammingError: (MySQLdb.ProgrammingError) (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")
[SQL:
SELECT
(SELECT SUM(`shares`) FROM `presence` INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE (`entered_at` <= '13:00' AND `left_at` > '13:00') OR (`entered_at` <= '13:00' AND `left_at` IS NULL)) AS `local_shares`,
(SELECT SUM(`shares`) FROM `web_voting_joined` WHERE `web_voting_joined`.`question_id`=1 AND `unique_id` NOT IN (
SELECT DISTINCT `id_number` FROM `presence`
INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE `entered_at` <= '13:00' AND `shareholder`.`type` != 's'
UNION
SELECT `group_shareholder`.`id_number` FROM `group_shareholder`
INNER JOIN `shareholder` ON `shareholder`.`id`=`group_shareholder`.`shareholder_id`
INNER JOIN `presence` ON `presence`.`shareholder_id`=`shareholder`.`id`
WHERE `entered_at` <= '13:00'
)) AS `web_shares`;
]
(Background on this error at: https://sqlalche.me/e/20/f405)
[2025-06-20 14:57:16,457] ERROR in app: Exception on /export/presence [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.ProgrammingError: (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 34, in export_presence
results = db.engine.connect().execute(text(sql)).first()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1415, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 523, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2351, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.ProgrammingError: (MySQLdb.ProgrammingError) (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")
[SQL:
SELECT
(SELECT SUM(`shares`) FROM `presence` INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE (`entered_at` <= '13:00' AND `left_at` > '13:00') OR (`entered_at` <= '13:00' AND `left_at` IS NULL)) AS `local_shares`,
(SELECT SUM(`shares`) FROM `web_voting_joined` WHERE `web_voting_joined`.`question_id`=1 AND `unique_id` NOT IN (
SELECT DISTINCT `id_number` FROM `presence`
INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE `entered_at` <= '13:00' AND `shareholder`.`type` != 's'
UNION
SELECT `group_shareholder`.`id_number` FROM `group_shareholder`
INNER JOIN `shareholder` ON `shareholder`.`id`=`group_shareholder`.`shareholder_id`
INNER JOIN `presence` ON `presence`.`shareholder_id`=`shareholder`.`id`
WHERE `entered_at` <= '13:00'
)) AS `web_shares`;
]
(Background on this error at: https://sqlalche.me/e/20/f405)
[2025-06-20 15:15:16,043] ERROR in app: Exception on /export/presence [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.ProgrammingError: (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 34, in export_presence
results = db.engine.connect().execute(text(sql)).first()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1415, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 523, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2351, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.ProgrammingError: (MySQLdb.ProgrammingError) (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")
[SQL:
SELECT
(SELECT SUM(`shares`) FROM `presence` INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE (`entered_at` <= '13:00' AND `left_at` > '13:00') OR (`entered_at` <= '13:00' AND `left_at` IS NULL)) AS `local_shares`,
(SELECT SUM(`shares`) FROM `web_voting_joined` WHERE `web_voting_joined`.`question_id`=1 AND `unique_id` NOT IN (
SELECT DISTINCT `id_number` FROM `presence`
INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE `entered_at` <= '13:00' AND `shareholder`.`type` != 's'
UNION
SELECT `group_shareholder`.`id_number` FROM `group_shareholder`
INNER JOIN `shareholder` ON `shareholder`.`id`=`group_shareholder`.`shareholder_id`
INNER JOIN `presence` ON `presence`.`shareholder_id`=`shareholder`.`id`
WHERE `entered_at` <= '13:00'
)) AS `web_shares`;
]
(Background on this error at: https://sqlalche.me/e/20/f405)
[2025-06-20 15:15:17,104] ERROR in app: Exception on /export/presence [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.ProgrammingError: (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 34, in export_presence
results = db.engine.connect().execute(text(sql)).first()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1415, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 523, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2351, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.ProgrammingError: (MySQLdb.ProgrammingError) (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")
[SQL:
SELECT
(SELECT SUM(`shares`) FROM `presence` INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE (`entered_at` <= '13:00' AND `left_at` > '13:00') OR (`entered_at` <= '13:00' AND `left_at` IS NULL)) AS `local_shares`,
(SELECT SUM(`shares`) FROM `web_voting_joined` WHERE `web_voting_joined`.`question_id`=1 AND `unique_id` NOT IN (
SELECT DISTINCT `id_number` FROM `presence`
INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE `entered_at` <= '13:00' AND `shareholder`.`type` != 's'
UNION
SELECT `group_shareholder`.`id_number` FROM `group_shareholder`
INNER JOIN `shareholder` ON `shareholder`.`id`=`group_shareholder`.`shareholder_id`
INNER JOIN `presence` ON `presence`.`shareholder_id`=`shareholder`.`id`
WHERE `entered_at` <= '13:00'
)) AS `web_shares`;
]
(Background on this error at: https://sqlalche.me/e/20/f405)
[2025-06-20 15:15:26,585] ERROR in app: Exception on /export/presence [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.ProgrammingError: (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 34, in export_presence
results = db.engine.connect().execute(text(sql)).first()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1415, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 523, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2351, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.ProgrammingError: (MySQLdb.ProgrammingError) (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")
[SQL:
SELECT
(SELECT SUM(`shares`) FROM `presence` INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE (`entered_at` <= '13:00' AND `left_at` > '13:00') OR (`entered_at` <= '13:00' AND `left_at` IS NULL)) AS `local_shares`,
(SELECT SUM(`shares`) FROM `web_voting_joined` WHERE `web_voting_joined`.`question_id`=1 AND `unique_id` NOT IN (
SELECT DISTINCT `id_number` FROM `presence`
INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE `entered_at` <= '13:00' AND `shareholder`.`type` != 's'
UNION
SELECT `group_shareholder`.`id_number` FROM `group_shareholder`
INNER JOIN `shareholder` ON `shareholder`.`id`=`group_shareholder`.`shareholder_id`
INNER JOIN `presence` ON `presence`.`shareholder_id`=`shareholder`.`id`
WHERE `entered_at` <= '13:00'
)) AS `web_shares`;
]
(Background on this error at: https://sqlalche.me/e/20/f405)
[2025-06-20 16:33:24,950] ERROR in app: Exception on /export/presence [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.ProgrammingError: (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 34, in export_presence
results = db.engine.connect().execute(text(sql)).first()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1415, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 523, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2351, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 943, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.13/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.13/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.ProgrammingError: (MySQLdb.ProgrammingError) (1146, "Table 'gMee_DSP.web_voting_joined' doesn't exist")
[SQL:
SELECT
(SELECT SUM(`shares`) FROM `presence` INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE (`entered_at` <= '13:00' AND `left_at` > '13:00') OR (`entered_at` <= '13:00' AND `left_at` IS NULL)) AS `local_shares`,
(SELECT SUM(`shares`) FROM `web_voting_joined` WHERE `web_voting_joined`.`question_id`=1 AND `unique_id` NOT IN (
SELECT DISTINCT `id_number` FROM `presence`
INNER JOIN `shareholder` ON `shareholder`.`id` = `presence`.`shareholder_id` WHERE `entered_at` <= '13:00' AND `shareholder`.`type` != 's'
UNION
SELECT `group_shareholder`.`id_number` FROM `group_shareholder`
INNER JOIN `shareholder` ON `shareholder`.`id`=`group_shareholder`.`shareholder_id`
INNER JOIN `presence` ON `presence`.`shareholder_id`=`shareholder`.`id`
WHERE `entered_at` <= '13:00'
)) AS `web_shares`;
]
(Background on this error at: https://sqlalche.me/e/20/f405)
[2026-05-12 10:55:59,644] ERROR in app: Exception on /pdf/signature.php [POST]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/exports.py", line 139, in signatures
pdf = PDFBuilder(f'{app.config["DATA_FOLDER"]}signatures/{shareholder.last_presence().id}_{shareholder.id}.pdf')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'
[2026-06-08 03:55:17,840] ERROR in app: Exception on /data/.env [GET]
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'{app.config["DATA_FOLDER"]}{file}')
File "/usr/lib/python3.13/site-packages/flask/helpers.py", line 511, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.13/site-packages/werkzeug/utils.py", line 428, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/data/.env'
[2026-06-23 10:03:44 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-06-23 13:25:58 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-06-23 16:43:12,338] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:14,378] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:14,887] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:15,107] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:15,287] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:15,458] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:15,618] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:15,778] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:15,924] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:16,083] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:16,287] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:16,446] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:16,596] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:16,746] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-23 16:43:16,908] ERROR in app: Exception on /voting/edit [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1048, "Column 'question_en' cannot be null")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 285, in api_voting_edit
db.session.commit()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/scoping.py", line 596, in commit
return self._proxied.commit()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 2035, in commit
trans.commit(_to_root=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "<string>", line 2, in commit
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1316, in commit
self._prepare_impl()
~~~~~~~~~~~~~~~~~~^^
File "<string>", line 2, in _prepare_impl
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 1290, in _prepare_impl
self.session.flush()
~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4353, in flush
self._flush(objects)
~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4488, in _flush
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/session.py", line 4449, in _flush
flush_context.execute()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 465, in execute
rec.execute(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/unitofwork.py", line 641, in execute
util.preloaded.orm_persistence.save_obj(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.mapper,
^^^^^^^^^^^^
uow.states_for_mapper_hierarchy(self.mapper, False, False),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
uow,
^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 94, in save_obj
_emit_insert_statements(
~~~~~~~~~~~~~~~~~~~~~~~^
base_mapper,
^^^^^^^^^^^^
...<3 lines>...
insert,
^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/orm/persistence.py", line 1234, in _emit_insert_statements
result = connection.execute(
statement,
params,
execution_options=execution_options,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1421, in execute
return meth(
self,
distilled_parameters,
execution_options or NO_OPTIONS,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
return connection._execute_clauseelement(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self, distilled_params, execution_options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1643, in _execute_clauseelement
ret = self._execute_context(
dialect,
...<8 lines>...
cache_hit=cache_hit,
)
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
~~~~~~~~~~~~~~~~~~~~~~~~~^
dialect, context, statement, parameters
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
e, str_statement, effective_parameters, cursor, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 2365, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
~~~~~~~~~~~~~~~~~~~~~~~^
cursor, str_statement, effective_parameters, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/usr/lib/python3.14/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
~~~~~~~~^^^
File "/usr/lib/python3.14/site-packages/MySQLdb/connections.py", line 286, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (MySQLdb.IntegrityError) (1048, "Column 'question_en' cannot be null")
[SQL: INSERT INTO voting (`order`, numbering, name_cs, name_en, question, question_en, holdable, start_time, end_time, summed, `show`, for_total, against_total, abstain_total, present_shares) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (8, '12.', 'Schválení změny politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti', None, 'Valná hromada schvaluje novou verzi Politiky odměňování členů představenstva, dozorčí rady a výboru pro audit Společnosti ve znění, jak jí byla předložena představenstvem Společnosti v rámci pozvánky na valnou hromadu.', None, 0, None, None, 0, None, None, None, None, None)]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
[2026-06-24 07:24:02,423] ERROR in app: Exception on /voting/results/paper [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 379, in voting_paper
station, vote_value = vote_code.split('_')
^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
[2026-06-24 07:24:04,925] ERROR in app: Exception on /voting/results/paper [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 379, in voting_paper
station, vote_value = vote_code.split('_')
^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
[2026-06-24 07:24:10,627] ERROR in app: Exception on /voting/results/paper [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 379, in voting_paper
station, vote_value = vote_code.split('_')
^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
[2026-06-24 07:24:35,461] ERROR in app: Exception on /voting/results/paper [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 379, in voting_paper
station, vote_value = vote_code.split('_')
^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
[2026-06-24 07:24:38,034] ERROR in app: Exception on /voting/results/paper [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 379, in voting_paper
station, vote_value = vote_code.split('_')
^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
[2026-06-24 07:24:40,305] ERROR in app: Exception on /voting/results/paper [POST]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/api.py", line 379, in voting_paper
station, vote_value = vote_code.split('_')
^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
[2026-06-24 07:40:03 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-06-24 15:28:34 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-06-25 07:51:37 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-07-01 07:55:45,019] ERROR in app: Exception on /data/config.json [GET]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'{app.config["DATA_FOLDER"]}{file}')
File "/usr/lib/python3.14/site-packages/flask/helpers.py", line 518, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.14/site-packages/werkzeug/utils.py", line 421, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/data/config.json'
[2026-07-05 10:59:56 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-08-06 18:39:22 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-08-22 10:44:32 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-09-13 09:33:26 +0200] [7] [ERROR] Control server error: [Errno 13] Permission denied: '/root/.gunicorn'
[2026-09-16 00:15:58,775] ERROR in app: Exception on /data/db.sqlite [GET]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'{app.config["DATA_FOLDER"]}{file}')
File "/usr/lib/python3.14/site-packages/flask/helpers.py", line 518, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.14/site-packages/werkzeug/utils.py", line 421, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/data/db.sqlite'
[2026-09-21 05:24:31,559] ERROR in app: Exception on /data/db.sqlite [GET]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'{app.config["DATA_FOLDER"]}{file}')
File "/usr/lib/python3.14/site-packages/flask/helpers.py", line 518, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.14/site-packages/werkzeug/utils.py", line 421, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/data/db.sqlite'
[2026-09-21 05:25:06,201] ERROR in app: Exception on /data/.claude.json [GET]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'{app.config["DATA_FOLDER"]}{file}')
File "/usr/lib/python3.14/site-packages/flask/helpers.py", line 518, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.14/site-packages/werkzeug/utils.py", line 421, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/data/.claude.json'
[2026-09-21 05:25:06,211] ERROR in app: Exception on /data/.codex/auth.json [GET]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'{app.config["DATA_FOLDER"]}{file}')
File "/usr/lib/python3.14/site-packages/flask/helpers.py", line 518, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.14/site-packages/werkzeug/utils.py", line 421, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/data/.codex/auth.json'
[2026-09-26 19:25:36,562] ERROR in app: Exception on /data/.env [GET]
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.14/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.14/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/srv/http/dsp.gmee.cz/views.py", line 21, in data_file
return send_file(f'{app.config["DATA_FOLDER"]}{file}')
File "/usr/lib/python3.14/site-packages/flask/helpers.py", line 518, in send_file
return werkzeug.utils.send_file( # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**_prepare_send_file_kwargs(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
)
^
)
^
File "/usr/lib/python3.14/site-packages/werkzeug/utils.py", line 421, in send_file
stat = os.stat(path)
FileNotFoundError: [Errno 2] No such file or directory: '/srv/http/data/.env'