ouhft / COPE

Project Repository for Work Package 4 of the COPE Transplant Trial
https://cope.nds.ox.ac.uk
1 stars 0 forks source link

ISE: IntegrityError: UNIQUE constraint failed: compare_randomisation.donor_id #207

Closed marshalc closed 7 years ago

marshalc commented 7 years ago

From email 1/2/17@20:56...

Internal Server Error: /nl-nl/wp4/compare/procurement/205/

IntegrityError at /nl-nl/wp4/compare/procurement/205/
UNIQUE constraint failed: compare_randomisation.donor_id

Request Method: POST
Request URL: https://cope.nds.ox.ac.uk/nl-nl/wp4/compare/procurement/205/
Django Version: 1.10.2
Python Executable: /sites/.virtualenvs/py3_cope/bin/python3
Python Version: 3.5.2
Python Path: ['/sites/py3_cope/cope_repo', '/sites/.virtualenvs/py3_cope/bin', '/sites/py3_cope/cope_repo/${PYTHONPATH}', '/sites/py3_cope/cope_repo', '/sites/.virtualenvs/py3_cope/lib/python35.zip', '/sites/.virtualenvs/py3_cope/lib/python3.5', '/sites/.virtualenvs/py3_cope/lib/python3.5/plat-x86_64-linux-gnu', '/sites/.virtualenvs/py3_cope/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages', '/sites/.virtualenvs/py3_cope/src/django-crispy-forms']
Server time: woe, 1 Feb 2017 21:56:13 +0100
Installed Applications:
['dal',
'dal_select2',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django.contrib.admin',
'django.contrib.admindocs',
'crispy_forms',
'reversion',
'wp4.compare',
'wp4.locations',
'wp4.staff_person',
'wp4.perfusion_machine',
'wp4.health_economics',
'wp4.samples',
'wp4.adverse_event',
'wp4.followups',
'wp4.theme',
'djangosecure',
'gunicorn']
Installed Middleware:
['djangosecure.middleware.SecurityMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'reversion.middleware.RevisionMiddleware',
'config.middleware.activate_timezone.TimezoneMiddleware']

Traceback:  

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
 64.                 return self.cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
 337.         return Database.Cursor.execute(self, query, params)

     The above exception (UNIQUE constraint failed: compare_randomisation.donor_id) was the direct cause of the following exception:

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
 39.             response = get_response(request)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/base.py" in _legacy_get_response
 249.             response = self._get_response(request)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
 187.                 response = self.process_exception_by_middleware(e, request)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
 185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
 23.                 return view_func(request, *args, **kwargs)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
 23.                 return view_func(request, *args, **kwargs)

File "/sites/py3_cope/cope_repo/wp4/compare/views.py" in procurement_form
 252.         donor_form, left_organ_form, right_organ_form = randomise(donor, donor_form, left_organ_form, right_organ_form)

File "/sites/py3_cope/cope_repo/wp4/compare/views.py" in randomise
 169.         if not donor.is_randomised and donor.randomise():

File "/usr/lib/python3.5/contextlib.py" in inner
 30.                 return func(*args, **kwds)

File "/sites/py3_cope/cope_repo/wp4/compare/models/donor.py" in randomise
 505.                 self

File "/sites/py3_cope/cope_repo/wp4/compare/models/donor.py" in get_and_assign_result
 700.         result.save()

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in save
 796.                        force_update=force_update, update_fields=update_fields)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in save_base
 824.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in _save_table
 889.                                       forced_update)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in _do_update
 939.         return filtered._update(values) > 0

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/query.py" in _update
 654.         return query.get_compiler(self.db).execute_sql(CURSOR)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
 1148.         cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
 835.             cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
 64.                 return self.cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/utils.py" in __exit__
 94.                 six.reraise(dj_exc_type, dj_exc_value, traceback)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/utils/six.py" in reraise
 685.             raise value.with_traceback(tb)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
 64.                 return self.cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
 337.         return Database.Cursor.execute(self, query, params)

Exception Type: IntegrityError at /nl-nl/wp4/compare/procurement/205/
Exception Value: UNIQUE constraint failed: compare_randomisation.donor_id
Request information:
USER: avansoest

GET: No GET data

POST:
donor-date_of_admission = '28-01-2017'
right-organ-procurement-4-id = '2868'
donor-diabetes_melitus = '0'
left-organ-procurement-2-created_by = '58'
donor-scheduled_start = '01-02-2017 15:00'
donor-transplant_coordinator = '113'
donor-person-number = '162818'
left-organ-procurement-5-organ = '409'
left-organ-procurement-MIN_NUM_FORMS = '7'
left-organ-graft_damage_other = ''
donor-other_organs_pancreas = 'True'
right-organ-perfusion_not_possible_because = ''
left-organ-donor = '205'
donor-person-ethnicity = '1'
donor-alcohol_abuse = '0'
left-organ-procurement-1-expiry_date = ''
right-organ-procurement-5-created_by = '58'
left-organ-procurement-6-organ = '409'
donor-diastolic_blood_pressure = '75'
donor-diuresis_last_day = '815'
right-organ-procurement-5-expiry_date = ''
donor-not_randomised_because_other = ''
right-organ-procurement-5-organ = '410'
left-organ-perfusate_measure = ''
right-organ-procurement-2-expiry_date = ''
donor-systemic_flush_volume_used = '7'
right-organ-donor = '205'
left-organ-washout_perfusion = '1'
right-organ-procurement-1-id = '2865'
left-organ-procurement-0-type = 'D'
donor-person-date_of_birth = '01-07-1956'
right-organ-location = 'R'
right-organ-procurement-MIN_NUM_FORMS = '7'
right-organ-procurement-MAX_NUM_FORMS = '7'
right-organ-preservation = '9'
right-organ-procurement-INITIAL_FORMS = '7'
donor-sequence_number = '0'
donor-vasopressine = '0'
donor-technician_arrival = '01-02-2017 13:00'
right-organ-procurement-6-organ = '410'
donor-systemic_flush_used_other = 'modified uw costorcol'
right-organ-procurement-6-expiry_date = ''
right-organ-graft_damage_other = ''
donor-other_organs_procured = 'True'
right-organ-oxygen_bottle_changed_at = ''
right-organ-procurement-6-id = '2870'
donor-heparin = 'True'
donor-multiple_recipients = '1'
left-organ-oxygen_bottle_open = 'True'
donor-other_medication_details = 'fentanyl and midalozam since admission'
left-organ-procurement-5-type = 'DB-C'
left-organ-procurement-INITIAL_FORMS = '7'
donor-procurement_form_completed = 'False'
right-organ-renal_arteries = ''
right-organ-procurement-3-created_by = '58'
right-organ-procurement-5-type = 'DB-C'
donor-perfusion_started = '01-02-2017 15:37'
left-organ-procurement-4-id = '2861'
left-organ-procurement-6-lot_number = 'mbd100416'
left-organ-procurement-3-lot_number = ''
donor-call_received = '31-01-2017 20:00'
left-organ-procurement-3-id = '2860'
donor-person-weight = '100,0'
donor-depart_perfusion_centre = '01-02-2017 13:30'
right-organ-procurement-2-id = '2866'
right-organ-procurement-4-organ = '410'
right-organ-procurement-1-created_by = '58'
right-organ-procurement-0-lot_number = ''
right-organ-procurement-1-type = 'C-SM'
right-organ-procurement-3-type = 'PH-SM'
left-organ-procurement-3-expiry_date = ''
donor-retrieval_hospital = '44'
left-organ-procurement-0-id = '2857'
donor-date_admitted_to_itu = '28-01-2017'
left-organ-perfusion_possible = 'True'
right-organ-procurement-6-lot_number = ''
right-organ-procurement-5-lot_number = ''
donor-diuresis_last_hour = '40'
right-organ-procurement-4-expiry_date = ''
left-organ-patch_holder = '1'
right-organ-procurement-3-expiry_date = ''
left-organ-procurement-4-lot_number = ''
left-organ-procurement-1-created_by = '58'
right-organ-graft_damage = '5'
left-organ-procurement-4-expiry_date = ''
left-organ-procurement-MAX_NUM_FORMS = '7'
right-organ-artificial_patch_number = ''
left-organ-procurement-6-type = 'P'
left-organ-procurement-3-type = 'PH-SM'
right-organ-procurement-1-expiry_date = ''
right-organ-procurement-2-type = 'C-LG'
left-organ-perfusion_not_possible_because = ''
left-organ-procurement-4-created_by = '58'
left-organ-perfusion_machine = '8'
right-organ-procurement-6-type = 'P'
left-organ-procurement-5-expiry_date = ''
left-organ-procurement-0-expiry_date = '01-09-2019'
left-organ-renal_arteries = '2'
left-organ-removal = '01-02-2017 07:31'
donor-person-gender = 'M'
left-organ-not_transplantable_reason = ''
right-organ-procurement-2-organ = '410'
left-organ-location = 'L'
donor-max_creatinine_unit = '2'
donor-diagnosis_other = 'cardiac arrest'
right-organ-not_transplantable_reason = ''
left-organ-procurement-2-lot_number = ''
left-organ-procurement-3-organ = '409'
donor-perfusion_technician = '90'
left-organ-graft_damage = '5'
left-organ-artificial_patch_number = ''
donor-systemic_flush_used = '1'
left-organ-procurement-2-expiry_date = ''
right-organ-transplantable = 'True'
left-organ-oxygen_bottle_full = 'False'
donor-date_of_procurement = '01-02-2017'
left-organ-procurement-1-id = '2858'
left-organ-procurement-5-id = '2862'
left-organ-ice_container_replenished = 'False'
donor-last_creatinine = '90,0'
donor-nor_adrenaline = '0'
left-organ-procurement-2-id = '2859'
donor-systolic_pressure_low = '01-02-2017 15:16'
donor-death_diagnosed = '01-02-2017 15:30'
right-organ-procurement-0-id = '2864'
donor-ice_boxes_filled = '01-02-2017 13:15'
donor-diagnosis = '4'
donor-systolic_blood_pressure = '105'
left-organ-procurement-0-lot_number = '20160906m053'
right-organ-ice_container_replenished_at = ''
right-organ-perfusate_measure = ''
left-organ-procurement-5-lot_number = ''
donor-length_of_no_touch = '5'
donor-last_creatinine_unit = '2'
right-organ-procurement-5-id = '2869'
donor-max_creatinine = '97,0'
left-organ-procurement-6-id = '2863'
donor-age = '60'
left-organ-procurement-4-organ = '409'
donor-life_support_withdrawal = '01-02-2017 15:06'
right-organ-procurement-6-created_by = '58'
left-organ-oxygen_bottle_changed_at = ''
left-organ-procurement-6-expiry_date = '04-10-2017'
left-organ-procurement-5-created_by = '58'
donor-not_randomised_because = '1'
right-organ-procurement-TOTAL_FORMS = '7'
left-organ-perfusion_started = '01-02-2017 18:50'
left-organ-ice_container_replenished_at = ''
right-organ-procurement-0-type = 'D'
donor-retrieval_team = '23'
left-organ-preservation = '9'
left-organ-procurement-1-lot_number = ''
donor-arrival_at_donor_hospital = '01-02-2017 14:15'
left-organ-perfusate_measurable = 'False'
right-organ-procurement-3-id = '2867'
left-organ-procurement-2-type = 'C-LG'
right-organ-procurement-2-created_by = '58'
right-organ-procurement-4-lot_number = ''
right-organ-procurement-4-created_by = '58'
donor-dobutamine = '0'
left-organ-procurement-4-type = 'PH-LG'
left-organ-procurement-0-organ = '409'
left-organ-procurement-1-type = 'C-SM'
left-organ-procurement-TOTAL_FORMS = '7'
left-organ-procurement-1-organ = '409'
donor-person-height = '196'
donor-person = '433'
left-organ-procurement-3-created_by = '58'
right-organ-procurement-4-type = 'PH-LG'
donor-other_organs_lungs = 'True'
right-organ-perfusion_started = ''
right-organ-procurement-1-lot_number = ''
left-organ-procurement-0-created_by = '58'
donor-circulatory_arrest = '01-02-2017 15:19'
right-organ-procurement-3-organ = '410'
right-organ-procurement-0-organ = '410'
left-organ-artificial_patch_used = 'False'
donor-cardiac_arrest = 'True'
donor-other_organs_liver = 'True'
right-organ-procurement-0-created_by = '58'
donor-admitted_to_itu = 'True'
donor-other_organs_tissue = 'True'
donor-o2_saturation = '01-02-2017 15:09'
left-organ-procurement-6-created_by = '58'
donor-person-blood_group = '1'
right-organ-procurement-1-organ = '410'
right-organ-procurement-2-lot_number = ''
left-organ-procurement-2-organ = '409'
left-organ-transplantable = 'True'
csrfmiddlewaretoken = 'nmzCuvIwPr81S8hEvrbu9kve41wabEhxYOaRjySqW7XGdztUjwTnVYnIlWDzSfhT'
right-organ-procurement-0-expiry_date = ''
right-organ-procurement-3-lot_number = ''
right-organ-perfusion_machine = ''
right-organ-removal = ''
donor-dopamine = '0'
left-organ-oxygen_bottle_changed = 'False'

FILES: No FILES data

COOKIES:
sessionid = 'e1jsjam9c2trtnrwwhfcj1is3ljdm6q9'
csrftoken = 'dnoUl19h2vgKkjzOxSECLM2D9fU8DtNzOPZ9a4jb9b5pFKL4lXmvxqU7qa1xk4NV'

META:
CONTENT_LENGTH = '8389'
CONTENT_TYPE = 'application/x-www-form-urlencoded'
CSRF_COOKIE = 'dnoUl19h2vgKkjzOxSECLM2D9fU8DtNzOPZ9a4jb9b5pFKL4lXmvxqU7qa1xk4NV'
HTTP_ACCEPT = 'text/html, application/xhtml+xml, */*'
HTTP_ACCEPT_ENCODING = 'gzip, deflate'
HTTP_ACCEPT_LANGUAGE = 'nl-NL,nl;q=0.5'
HTTP_CACHE_CONTROL = 'no-cache'
HTTP_CONNECTION = 'close'
HTTP_COOKIE = 'csrftoken=dnoUl19h2vgKkjzOxSECLM2D9fU8DtNzOPZ9a4jb9b5pFKL4lXmvxqU7qa1xk4NV; sessionid=e1jsjam9c2trtnrwwhfcj1is3ljdm6q9'
HTTP_DNT = '1'
HTTP_HOST = 'cope.nds.ox.ac.uk'
HTTP_REFERER = 'https://cope.nds.ox.ac.uk/nl-nl/wp4/compare/procurement/205/'
HTTP_UA_CPU = 'ARM'
HTTP_USER_AGENT = 'Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 530) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537'
HTTP_X_FORWARDED_FOR = '92.69.237.45'
HTTP_X_FORWARDED_PROTOCOL = 'https'
HTTP_X_REAL_IP = '92.69.237.45'
HTTP_X_SCHEME = 'https'
PATH_INFO = '/nl-nl/wp4/compare/procurement/205/'
QUERY_STRING = ''
RAW_URI = '/nl-nl/wp4/compare/procurement/205/'
REMOTE_ADDR = "b''"
REQUEST_METHOD = 'POST'
SCRIPT_NAME = ''
SERVER_NAME = 'cope.nds.ox.ac.uk'
SERVER_PORT = '80'
SERVER_PROTOCOL = 'HTTP/1.0'
SERVER_SOFTWARE = 'gunicorn/19.6.0'
gunicorn.socket = <socket.socket fd=13, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/sites/py3_cope/var/run/wsgi.socket>
wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7faf777364a8>
wsgi.file_wrapper = ''
wsgi.input = <gunicorn.http.body.Body object at 0x7faf77c88710>
wsgi.multiprocess = True
wsgi.multithread = False
wsgi.run_once = False
wsgi.url_scheme = 'http'
wsgi.version = 

Settings:
Using settings module config.settings.production
ABSOLUTE_URL_OVERRIDES = {}
ACCOUNT_AUTHENTICATION_METHOD = 'username'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ADMINS = [('Carl Marshall', 'carl.marshall@nds.ox.ac.uk')]
ALLOWED_HOSTS = ['cope.nds.ox.ac.uk', 'localhost', '127.0.0.1']
APPEND_SLASH = True
APPS_DIR = <Path:/sites/py3_cope/cope_repo/wp4>
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
AUTOSLUG_SLUGIFY_FUNCTION = 'slugify.slugify'
BASE_DIR = '/sites/py3_cope/cope_repo'
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': ''}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CRISPY_TEMPLATE_PACK = 'bootstrap3'
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
DATABASES = {'default': {'HOST': None, 'AUTOCOMMIT': True, 'OPTIONS': {}, 'ENGINE': 'django.db.backends.sqlite3', 'USER': None, 'PASSWORD': '********************', 'NAME': 'db.sqlite3', 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'NAME': None, 'COLLATION': None, 'MIRROR': None}, 'CONN_MAX_AGE': 0, 'PORT': None, 'ATOMIC_REQUESTS': False}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%d-%m-%Y %H:%M', '%Y-%m-%d %H:%M', '%d/%m/%Y %H:%M', '%Y/%m/%d %H:%M']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%d-%m-%Y', '%Y-%m-%d', '%d/%m/%Y', '%Y/%m/%d']
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_CONTENT_TYPE = 'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'Cope DB <noreply@nds.ox.ac.uk>'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
DJANGO_APPS = ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.admin', 'django.contrib.admindocs']
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_FILE_PATH = '/tmp'
EMAIL_HOST = 'smtp.ox.ac.uk'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Cope DB] '
EMAIL_TIMEOUT = None
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = None
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = ['/sites/py3_cope/cope_repo/wp4/fixtures']
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['dal', 'dal_select2', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.admin', 'django.contrib.admindocs', 'crispy_forms', 'reversion', 'wp4.compare', 'wp4.locations', 'wp4.staff_person', 'wp4.perfusion_machine', 'wp4.health_economics', 'wp4.samples', 'wp4.adverse_event', 'wp4.followups', 'wp4.theme', 'djangosecure', 'gunicorn']
INTERNAL_IPS = []
LANGUAGES = [('en-gb', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7faf79336358>), ('fr-be', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7faf793365c0>), ('nl-nl', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7faf79336b00>)]
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en-gb'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LOCALE_PATHS = ['/sites/py3_cope/cope_repo/locale']
LOCAL_APPS = ['wp4.compare', 'wp4.locations', 'wp4.staff_person', 'wp4.perfusion_machine', 'wp4.health_economics', 'wp4.samples', 'wp4.adverse_event', 'wp4.followups', 'wp4.theme']
LOGGING = {'version': 1, 'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'console': {'level': 'DEBUG', 'formatter': 'verbose', 'class': 'logging.StreamHandler'}, 'mail_admins': {'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler'}}, 'disable_existing_loggers': False, 'loggers': {'django.request': {'level': 'ERROR', 'propagate': True, 'handlers': ['mail_admins']}, 'loggers': {'django.security.DisallowedHost': {'level': 'ERROR', 'propagate': True, 'handlers': ['console', 'mail_admins']}}}, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = '/accounts/login/'
LOGOUT_REDIRECT_URL = '/'
MANAGERS = [('Carl Marshall', 'carl.marshall@nds.ox.ac.uk')]
MEDIA_ROOT = '/sites/py3_cope/htdocs/media'
MEDIA_URL = '/media/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS = {40: 'danger'}
MIDDLEWARE = None
MIDDLEWARE_CLASSES = ['djangosecure.middleware.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'reversion.middleware.RevisionMiddleware', 'config.middleware.activate_timezone.TimezoneMiddleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
PREPEND_WWW = False
REDIRECT_FIELD_NAME = 'redirect_to'
ROOT_DIR = <Path:/sites/py3_cope/cope_repo>
ROOT_URLCONF = 'config.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_FRAME_DENY = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_SECONDS = 60
SECURE_PROXY_SSL_HEADER = 
SECURE_REDIRECT_EXEMPT = []
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = True
SECURITY_MIDDLEWARE = ['djangosecure.middleware.SecurityMiddleware']
SERVER_EMAIL = 'Cope DB <noreply@nds.ox.ac.uk>'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'config.settings.production'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SITE_ID = 1
STATICFILES_DIRS = ['/sites/py3_cope/cope_repo/wp4/static', '/sites/py3_cope/cope_repo/docs/static']
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/sites/py3_cope/htdocs/'
STATIC_URL = '/static/'
TEMPLATES = [{'OPTIONS': {'debug': False, 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.i18n', 'django.template.context_processors.tz', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.contrib.messages.context_processors.messages'], 'loaders': [('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])]}, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/sites/py3_cope/cope_repo/wp4/templates']}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THIRD_PARTY_APPS = ['crispy_forms', 'reversion']
THIRD_PARTY_PRE_DJANGO_APPS = ['dal', 'dal_select2']
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'UTC'
USE_ETAGS = False
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = 'config.wsgi.application'
X_FRAME_OPTIONS = 'SAMEORIGIN'
YEAR_MONTH_FORMAT = 'F Y'
marshalc commented 7 years ago

and same date and time...

Internal Server Error: /nl-nl/wp4/compare/procurement/205/

IntegrityError at /nl-nl/wp4/compare/procurement/205/
UNIQUE constraint failed: compare_randomisation.donor_id

Request Method: POST
Request URL: https://cope.nds.ox.ac.uk/nl-nl/wp4/compare/procurement/205/
Django Version: 1.10.2
Python Executable: /sites/.virtualenvs/py3_cope/bin/python3
Python Version: 3.5.2
Python Path: ['/sites/py3_cope/cope_repo', '/sites/.virtualenvs/py3_cope/bin', '/sites/py3_cope/cope_repo/${PYTHONPATH}', '/sites/py3_cope/cope_repo', '/sites/.virtualenvs/py3_cope/lib/python35.zip', '/sites/.virtualenvs/py3_cope/lib/python3.5', '/sites/.virtualenvs/py3_cope/lib/python3.5/plat-x86_64-linux-gnu', '/sites/.virtualenvs/py3_cope/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages', '/sites/.virtualenvs/py3_cope/src/django-crispy-forms']
Server time: woe, 1 Feb 2017 21:56:13 +0100
Installed Applications:
['dal',
'dal_select2',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django.contrib.admin',
'django.contrib.admindocs',
'crispy_forms',
'reversion',
'wp4.compare',
'wp4.locations',
'wp4.staff_person',
'wp4.perfusion_machine',
'wp4.health_economics',
'wp4.samples',
'wp4.adverse_event',
'wp4.followups',
'wp4.theme',
'djangosecure',
'gunicorn']
Installed Middleware:
['djangosecure.middleware.SecurityMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'reversion.middleware.RevisionMiddleware',
'config.middleware.activate_timezone.TimezoneMiddleware']

Traceback:  

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
 64.                 return self.cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
 337.         return Database.Cursor.execute(self, query, params)

     The above exception (UNIQUE constraint failed: compare_randomisation.donor_id) was the direct cause of the following exception:

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
 39.             response = get_response(request)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/base.py" in _legacy_get_response
 249.             response = self._get_response(request)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
 187.                 response = self.process_exception_by_middleware(e, request)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
 185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
 23.                 return view_func(request, *args, **kwargs)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
 23.                 return view_func(request, *args, **kwargs)

File "/sites/py3_cope/cope_repo/wp4/compare/views.py" in procurement_form
 252.         donor_form, left_organ_form, right_organ_form = randomise(donor, donor_form, left_organ_form, right_organ_form)

File "/sites/py3_cope/cope_repo/wp4/compare/views.py" in randomise
 169.         if not donor.is_randomised and donor.randomise():

File "/usr/lib/python3.5/contextlib.py" in inner
 30.                 return func(*args, **kwds)

File "/sites/py3_cope/cope_repo/wp4/compare/models/donor.py" in randomise
 505.                 self

File "/sites/py3_cope/cope_repo/wp4/compare/models/donor.py" in get_and_assign_result
 700.         result.save()

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in save
 796.                        force_update=force_update, update_fields=update_fields)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in save_base
 824.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in _save_table
 889.                                       forced_update)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/base.py" in _do_update
 939.         return filtered._update(values) > 0

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/query.py" in _update
 654.         return query.get_compiler(self.db).execute_sql(CURSOR)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
 1148.         cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
 835.             cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
 64.                 return self.cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/utils.py" in __exit__
 94.                 six.reraise(dj_exc_type, dj_exc_value, traceback)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/utils/six.py" in reraise
 685.             raise value.with_traceback(tb)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
 64.                 return self.cursor.execute(sql, params)

File "/sites/.virtualenvs/py3_cope/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
 337.         return Database.Cursor.execute(self, query, params)

Exception Type: IntegrityError at /nl-nl/wp4/compare/procurement/205/
Exception Value: UNIQUE constraint failed: compare_randomisation.donor_id
Request information:
USER: avansoest

GET: No GET data

POST:
donor-date_of_admission = '28-01-2017'
right-organ-procurement-4-id = '2868'
donor-diabetes_melitus = '0'
left-organ-procurement-2-created_by = '58'
donor-scheduled_start = '01-02-2017 15:00'
donor-transplant_coordinator = '113'
donor-person-number = '162818'
left-organ-procurement-5-organ = '409'
left-organ-procurement-MIN_NUM_FORMS = '7'
left-organ-graft_damage_other = ''
donor-other_organs_pancreas = 'True'
right-organ-perfusion_not_possible_because = ''
left-organ-donor = '205'
donor-person-ethnicity = '1'
donor-alcohol_abuse = '0'
left-organ-procurement-1-expiry_date = ''
right-organ-procurement-5-created_by = '58'
left-organ-procurement-6-organ = '409'
donor-diastolic_blood_pressure = '75'
donor-diuresis_last_day = '815'
right-organ-procurement-5-expiry_date = ''
donor-not_randomised_because_other = ''
right-organ-procurement-5-organ = '410'
left-organ-perfusate_measure = ''
right-organ-procurement-2-expiry_date = ''
donor-systemic_flush_volume_used = '7'
right-organ-donor = '205'
left-organ-washout_perfusion = '1'
right-organ-procurement-1-id = '2865'
left-organ-procurement-0-type = 'D'
donor-person-date_of_birth = '01-07-1956'
right-organ-location = 'R'
right-organ-procurement-MIN_NUM_FORMS = '7'
right-organ-procurement-MAX_NUM_FORMS = '7'
right-organ-preservation = '9'
right-organ-procurement-INITIAL_FORMS = '7'
donor-sequence_number = '0'
donor-vasopressine = '0'
donor-technician_arrival = '01-02-2017 13:00'
right-organ-procurement-6-organ = '410'
donor-systemic_flush_used_other = 'modified uw costorcol'
right-organ-procurement-6-expiry_date = ''
right-organ-graft_damage_other = ''
donor-other_organs_procured = 'True'
right-organ-oxygen_bottle_changed_at = ''
right-organ-procurement-6-id = '2870'
donor-heparin = 'True'
donor-multiple_recipients = '1'
left-organ-oxygen_bottle_open = 'True'
donor-other_medication_details = 'fentanyl and midalozam since admission'
left-organ-procurement-5-type = 'DB-C'
left-organ-procurement-INITIAL_FORMS = '7'
donor-procurement_form_completed = 'False'
right-organ-renal_arteries = ''
right-organ-procurement-3-created_by = '58'
right-organ-procurement-5-type = 'DB-C'
donor-perfusion_started = '01-02-2017 15:37'
left-organ-procurement-4-id = '2861'
left-organ-procurement-6-lot_number = 'mbd100416'
left-organ-procurement-3-lot_number = ''
donor-call_received = '31-01-2017 20:00'
left-organ-procurement-3-id = '2860'
donor-person-weight = '100,0'
donor-depart_perfusion_centre = '01-02-2017 13:30'
right-organ-procurement-2-id = '2866'
right-organ-procurement-4-organ = '410'
right-organ-procurement-1-created_by = '58'
right-organ-procurement-0-lot_number = ''
right-organ-procurement-1-type = 'C-SM'
right-organ-procurement-3-type = 'PH-SM'
left-organ-procurement-3-expiry_date = ''
donor-retrieval_hospital = '44'
left-organ-procurement-0-id = '2857'
donor-date_admitted_to_itu = '28-01-2017'
left-organ-perfusion_possible = 'True'
right-organ-procurement-6-lot_number = ''
right-organ-procurement-5-lot_number = ''
donor-diuresis_last_hour = '40'
right-organ-procurement-4-expiry_date = ''
left-organ-patch_holder = '1'
right-organ-procurement-3-expiry_date = ''
left-organ-procurement-4-lot_number = ''
left-organ-procurement-1-created_by = '58'
right-organ-graft_damage = '5'
left-organ-procurement-4-expiry_date = ''
left-organ-procurement-MAX_NUM_FORMS = '7'
right-organ-artificial_patch_number = ''
left-organ-procurement-6-type = 'P'
left-organ-procurement-3-type = 'PH-SM'
right-organ-procurement-1-expiry_date = ''
right-organ-procurement-2-type = 'C-LG'
left-organ-perfusion_not_possible_because = ''
left-organ-procurement-4-created_by = '58'
left-organ-perfusion_machine = '8'
right-organ-procurement-6-type = 'P'
left-organ-procurement-5-expiry_date = ''
left-organ-procurement-0-expiry_date = '01-09-2019'
left-organ-renal_arteries = '2'
left-organ-removal = '01-02-2017 07:31'
donor-person-gender = 'M'
left-organ-not_transplantable_reason = ''
right-organ-procurement-2-organ = '410'
left-organ-location = 'L'
donor-max_creatinine_unit = '2'
donor-diagnosis_other = 'cardiac arrest'
right-organ-not_transplantable_reason = ''
left-organ-procurement-2-lot_number = ''
left-organ-procurement-3-organ = '409'
donor-perfusion_technician = '90'
left-organ-graft_damage = '5'
left-organ-artificial_patch_number = ''
donor-systemic_flush_used = '1'
left-organ-procurement-2-expiry_date = ''
right-organ-transplantable = 'True'
left-organ-oxygen_bottle_full = 'False'
donor-date_of_procurement = '01-02-2017'
left-organ-procurement-1-id = '2858'
left-organ-procurement-5-id = '2862'
left-organ-ice_container_replenished = 'False'
donor-last_creatinine = '90,0'
donor-nor_adrenaline = '0'
left-organ-procurement-2-id = '2859'
donor-systolic_pressure_low = '01-02-2017 15:16'
donor-death_diagnosed = '01-02-2017 15:30'
right-organ-procurement-0-id = '2864'
donor-ice_boxes_filled = '01-02-2017 13:15'
donor-diagnosis = '4'
donor-systolic_blood_pressure = '105'
left-organ-procurement-0-lot_number = '20160906m053'
right-organ-ice_container_replenished_at = ''
right-organ-perfusate_measure = ''
left-organ-procurement-5-lot_number = ''
donor-length_of_no_touch = '5'
donor-last_creatinine_unit = '2'
right-organ-procurement-5-id = '2869'
donor-max_creatinine = '97,0'
left-organ-procurement-6-id = '2863'
donor-age = '60'
left-organ-procurement-4-organ = '409'
donor-life_support_withdrawal = '01-02-2017 15:06'
right-organ-procurement-6-created_by = '58'
left-organ-oxygen_bottle_changed_at = ''
left-organ-procurement-6-expiry_date = '04-10-2017'
left-organ-procurement-5-created_by = '58'
donor-not_randomised_because = '1'
right-organ-procurement-TOTAL_FORMS = '7'
left-organ-perfusion_started = '01-02-2017 18:50'
left-organ-ice_container_replenished_at = ''
right-organ-procurement-0-type = 'D'
donor-retrieval_team = '23'
left-organ-preservation = '9'
left-organ-procurement-1-lot_number = ''
donor-arrival_at_donor_hospital = '01-02-2017 14:15'
left-organ-perfusate_measurable = 'False'
right-organ-procurement-3-id = '2867'
left-organ-procurement-2-type = 'C-LG'
right-organ-procurement-2-created_by = '58'
right-organ-procurement-4-lot_number = ''
right-organ-procurement-4-created_by = '58'
donor-dobutamine = '0'
left-organ-procurement-4-type = 'PH-LG'
left-organ-procurement-0-organ = '409'
left-organ-procurement-1-type = 'C-SM'
left-organ-procurement-TOTAL_FORMS = '7'
left-organ-procurement-1-organ = '409'
donor-person-height = '196'
donor-person = '433'
left-organ-procurement-3-created_by = '58'
right-organ-procurement-4-type = 'PH-LG'
donor-other_organs_lungs = 'True'
right-organ-perfusion_started = ''
right-organ-procurement-1-lot_number = ''
left-organ-procurement-0-created_by = '58'
donor-circulatory_arrest = '01-02-2017 15:19'
right-organ-procurement-3-organ = '410'
right-organ-procurement-0-organ = '410'
left-organ-artificial_patch_used = 'False'
donor-cardiac_arrest = 'True'
donor-other_organs_liver = 'True'
right-organ-procurement-0-created_by = '58'
donor-admitted_to_itu = 'True'
donor-other_organs_tissue = 'True'
donor-o2_saturation = '01-02-2017 15:09'
left-organ-procurement-6-created_by = '58'
donor-person-blood_group = '1'
right-organ-procurement-1-organ = '410'
right-organ-procurement-2-lot_number = ''
left-organ-procurement-2-organ = '409'
left-organ-transplantable = 'True'
csrfmiddlewaretoken = 'nmzCuvIwPr81S8hEvrbu9kve41wabEhxYOaRjySqW7XGdztUjwTnVYnIlWDzSfhT'
right-organ-procurement-0-expiry_date = ''
right-organ-procurement-3-lot_number = ''
right-organ-perfusion_machine = ''
right-organ-removal = ''
donor-dopamine = '0'
left-organ-oxygen_bottle_changed = 'False'

FILES: No FILES data

COOKIES:
sessionid = 'e1jsjam9c2trtnrwwhfcj1is3ljdm6q9'
csrftoken = 'dnoUl19h2vgKkjzOxSECLM2D9fU8DtNzOPZ9a4jb9b5pFKL4lXmvxqU7qa1xk4NV'

META:
CONTENT_LENGTH = '8389'
CONTENT_TYPE = 'application/x-www-form-urlencoded'
CSRF_COOKIE = 'dnoUl19h2vgKkjzOxSECLM2D9fU8DtNzOPZ9a4jb9b5pFKL4lXmvxqU7qa1xk4NV'
HTTP_ACCEPT = 'text/html, application/xhtml+xml, */*'
HTTP_ACCEPT_ENCODING = 'gzip, deflate'
HTTP_ACCEPT_LANGUAGE = 'nl-NL,nl;q=0.5'
HTTP_CACHE_CONTROL = 'no-cache'
HTTP_CONNECTION = 'close'
HTTP_COOKIE = 'csrftoken=dnoUl19h2vgKkjzOxSECLM2D9fU8DtNzOPZ9a4jb9b5pFKL4lXmvxqU7qa1xk4NV; sessionid=e1jsjam9c2trtnrwwhfcj1is3ljdm6q9'
HTTP_DNT = '1'
HTTP_HOST = 'cope.nds.ox.ac.uk'
HTTP_REFERER = 'https://cope.nds.ox.ac.uk/nl-nl/wp4/compare/procurement/205/'
HTTP_UA_CPU = 'ARM'
HTTP_USER_AGENT = 'Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 530) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537'
HTTP_X_FORWARDED_FOR = '92.69.237.45'
HTTP_X_FORWARDED_PROTOCOL = 'https'
HTTP_X_REAL_IP = '92.69.237.45'
HTTP_X_SCHEME = 'https'
PATH_INFO = '/nl-nl/wp4/compare/procurement/205/'
QUERY_STRING = ''
RAW_URI = '/nl-nl/wp4/compare/procurement/205/'
REMOTE_ADDR = "b''"
REQUEST_METHOD = 'POST'
SCRIPT_NAME = ''
SERVER_NAME = 'cope.nds.ox.ac.uk'
SERVER_PORT = '80'
SERVER_PROTOCOL = 'HTTP/1.0'
SERVER_SOFTWARE = 'gunicorn/19.6.0'
gunicorn.socket = <socket.socket fd=13, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/sites/py3_cope/var/run/wsgi.socket>
wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7faf777364a8>
wsgi.file_wrapper = ''
wsgi.input = <gunicorn.http.body.Body object at 0x7faf77c88710>
wsgi.multiprocess = True
wsgi.multithread = False
wsgi.run_once = False
wsgi.url_scheme = 'http'
wsgi.version = 

Settings:
Using settings module config.settings.production
ABSOLUTE_URL_OVERRIDES = {}
ACCOUNT_AUTHENTICATION_METHOD = 'username'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ADMINS = [('Carl Marshall', 'carl.marshall@nds.ox.ac.uk')]
ALLOWED_HOSTS = ['cope.nds.ox.ac.uk', 'localhost', '127.0.0.1']
APPEND_SLASH = True
APPS_DIR = <Path:/sites/py3_cope/cope_repo/wp4>
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
AUTOSLUG_SLUGIFY_FUNCTION = 'slugify.slugify'
BASE_DIR = '/sites/py3_cope/cope_repo'
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': ''}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CRISPY_TEMPLATE_PACK = 'bootstrap3'
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
DATABASES = {'default': {'HOST': None, 'AUTOCOMMIT': True, 'OPTIONS': {}, 'ENGINE': 'django.db.backends.sqlite3', 'USER': None, 'PASSWORD': '********************', 'NAME': 'db.sqlite3', 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'NAME': None, 'COLLATION': None, 'MIRROR': None}, 'CONN_MAX_AGE': 0, 'PORT': None, 'ATOMIC_REQUESTS': False}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%d-%m-%Y %H:%M', '%Y-%m-%d %H:%M', '%d/%m/%Y %H:%M', '%Y/%m/%d %H:%M']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%d-%m-%Y', '%Y-%m-%d', '%d/%m/%Y', '%Y/%m/%d']
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_CONTENT_TYPE = 'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'Cope DB <noreply@nds.ox.ac.uk>'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
DJANGO_APPS = ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.admin', 'django.contrib.admindocs']
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_FILE_PATH = '/tmp'
EMAIL_HOST = 'smtp.ox.ac.uk'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Cope DB] '
EMAIL_TIMEOUT = None
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = None
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = ['/sites/py3_cope/cope_repo/wp4/fixtures']
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['dal', 'dal_select2', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.admin', 'django.contrib.admindocs', 'crispy_forms', 'reversion', 'wp4.compare', 'wp4.locations', 'wp4.staff_person', 'wp4.perfusion_machine', 'wp4.health_economics', 'wp4.samples', 'wp4.adverse_event', 'wp4.followups', 'wp4.theme', 'djangosecure', 'gunicorn']
INTERNAL_IPS = []
LANGUAGES = [('en-gb', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7faf79336358>), ('fr-be', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7faf793365c0>), ('nl-nl', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7faf79336b00>)]
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en-gb'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LOCALE_PATHS = ['/sites/py3_cope/cope_repo/locale']
LOCAL_APPS = ['wp4.compare', 'wp4.locations', 'wp4.staff_person', 'wp4.perfusion_machine', 'wp4.health_economics', 'wp4.samples', 'wp4.adverse_event', 'wp4.followups', 'wp4.theme']
LOGGING = {'version': 1, 'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'console': {'level': 'DEBUG', 'formatter': 'verbose', 'class': 'logging.StreamHandler'}, 'mail_admins': {'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler'}}, 'disable_existing_loggers': False, 'loggers': {'django.request': {'level': 'ERROR', 'propagate': True, 'handlers': ['mail_admins']}, 'loggers': {'django.security.DisallowedHost': {'level': 'ERROR', 'propagate': True, 'handlers': ['console', 'mail_admins']}}}, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = '/accounts/login/'
LOGOUT_REDIRECT_URL = '/'
MANAGERS = [('Carl Marshall', 'carl.marshall@nds.ox.ac.uk')]
MEDIA_ROOT = '/sites/py3_cope/htdocs/media'
MEDIA_URL = '/media/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS = {40: 'danger'}
MIDDLEWARE = None
MIDDLEWARE_CLASSES = ['djangosecure.middleware.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'reversion.middleware.RevisionMiddleware', 'config.middleware.activate_timezone.TimezoneMiddleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
PREPEND_WWW = False
REDIRECT_FIELD_NAME = 'redirect_to'
ROOT_DIR = <Path:/sites/py3_cope/cope_repo>
ROOT_URLCONF = 'config.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_FRAME_DENY = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_SECONDS = 60
SECURE_PROXY_SSL_HEADER = 
SECURE_REDIRECT_EXEMPT = []
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = True
SECURITY_MIDDLEWARE = ['djangosecure.middleware.SecurityMiddleware']
SERVER_EMAIL = 'Cope DB <noreply@nds.ox.ac.uk>'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'config.settings.production'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SITE_ID = 1
STATICFILES_DIRS = ['/sites/py3_cope/cope_repo/wp4/static', '/sites/py3_cope/cope_repo/docs/static']
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/sites/py3_cope/htdocs/'
STATIC_URL = '/static/'
TEMPLATES = [{'OPTIONS': {'debug': False, 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.i18n', 'django.template.context_processors.tz', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.contrib.messages.context_processors.messages'], 'loaders': [('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])]}, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/sites/py3_cope/cope_repo/wp4/templates']}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THIRD_PARTY_APPS = ['crispy_forms', 'reversion']
THIRD_PARTY_PRE_DJANGO_APPS = ['dal', 'dal_select2']
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'UTC'
USE_ETAGS = False
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = 'config.wsgi.application'
X_FRAME_OPTIONS = 'SAMEORIGIN'
YEAR_MONTH_FORMAT = 'F Y'
marshalc commented 7 years ago

Can see this has been linked to a Randomisation record, but the results haven't been recorded against the Donor record.

Viewing this https://cope.nds.ox.ac.uk/en-gb/wp4/compare/procurement/205/ and saving produces the same error (no surprise, as it's trying to randomise again when it has already been allocated a randomisation).

NB: One save attempt produced two email alerts

marshalc commented 7 years ago

This data has been cleaned up in the next release