Break workflows with invalid input
On fresh docker containers mayan 3.1.9 and postgres 9.5, I encountered following issue:
When creating a new workflow state and delete the '0' in the 'Fertigstellung' (german, progress?) field, so there is nothing in the field and then submit, I get the message 'Internal Server Error' and I am not able to change or add any workflow.
2019-02-06 08:06:22,762 INFO success: mayan-worker-fast entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
common.middleware.error_logging <49> [ERROR] "process_exception() line 17 Exception caught by request middleware; <WSGIRequest: POST '/states/setup/workflow/1/states/create/'>, null value in column "completion" violates not-null constraint
DETAIL: Failing row contains (2, Scan, f, 1, null).
"
Traceback (most recent call last):
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/mayan/apps/common/mixins.py", line 345, in dispatch
).dispatch(request, *args, **kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/mayan/apps/common/mixins.py", line 310, in dispatch
).dispatch(request, *args, **kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch
return handler(request, *args, **kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/views/generic/edit.py", line 217, in post
return super(BaseCreateView, self).post(request, *args, **kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/views/generic/edit.py", line 183, in post
return self.form_valid(form)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/mayan/apps/document_states/views.py", line 451, in form_valid
self.object.save()
File "/opt/mayan-edms/local/lib/python2.7/site-packages/mayan/apps/document_states/models.py", line 213, in save
return super(WorkflowState, self).save(*args, **kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/models/base.py", line 808, in save
force_update=force_update, update_fields=update_fields)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/models/base.py", line 838, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/models/base.py", line 924, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/models/base.py", line 963, in _do_insert
using=using, raw=raw)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/models/query.py", line 1079, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1112, in execute_sql
cursor.execute(sql, params)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/opt/mayan-edms/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
IntegrityError: null value in column "completion" violates not-null constraint
DETAIL: Failing row contains (2, Scan, f, 1, null).
Edited by Manoel Brunnen