diff --git a/smash/web/migrations/0177_auto_20201116_1250.py b/smash/web/migrations/0177_auto_20201116_1250.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e526f650b99425eab5171eae7cb42cc582f9a5a
--- /dev/null
+++ b/smash/web/migrations/0177_auto_20201116_1250.py
@@ -0,0 +1,1356 @@
+# Generated by Django 2.0.13 on 2020-11-16 12:50
+
+import django.core.files.storage
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('web', '0176_customstudysubjectfield_customstudysubjectvalue'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='appointment',
+            name='appointment_types',
+            field=models.ManyToManyField(blank=True, related_name='new_appointment', through='web.AppointmentTypeLink', to='web.AppointmentType', verbose_name='Appointment types'),
+        ),
+        migrations.AlterField(
+            model_name='appointment',
+            name='post_mail_sent',
+            field=models.BooleanField(default=False, verbose_name='Post mail sent'),
+        ),
+        migrations.AlterField(
+            model_name='appointment',
+            name='status',
+            field=models.CharField(choices=[('SCHEDULED', 'Scheduled'), ('FINISHED', 'Finished'), ('CANCELLED', 'Cancelled'), ('NO_SHOW', 'No Show')], default='SCHEDULED', max_length=20, verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='appointment',
+            name='visit',
+            field=models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.Visit', verbose_name='Visit ID'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='appointment_types',
+            field=models.BooleanField(default=True, verbose_name='Appointment types'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='comment',
+            field=models.BooleanField(default=False, verbose_name='Comment'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='datetime_when',
+            field=models.BooleanField(default=True, verbose_name='Comment'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='flying_team',
+            field=models.BooleanField(default=False, verbose_name='Flying team'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='length',
+            field=models.BooleanField(default=False, verbose_name='Appointment length'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='location',
+            field=models.BooleanField(default=False, verbose_name='Location'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='post_mail_sent',
+            field=models.BooleanField(default=False, verbose_name='Post mail sent'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='room',
+            field=models.BooleanField(default=False, verbose_name='Room'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='status',
+            field=models.BooleanField(default=False, verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentcolumns',
+            name='worker_assigned',
+            field=models.BooleanField(default=False, verbose_name='Worker conducting the assessment'),
+        ),
+        migrations.AlterField(
+            model_name='appointmentlist',
+            name='type',
+            field=models.CharField(choices=[('GENERIC', 'Generic'), ('UNFINISHED', 'Unfinished'), ('APPROACHING', 'Approaching')], max_length=50, verbose_name='Type of list'),
+        ),
+        migrations.AlterField(
+            model_name='appointmenttype',
+            name='calendar_font_color',
+            field=models.CharField(default='#00000', max_length=2000, verbose_name='Calendar font color'),
+        ),
+        migrations.AlterField(
+            model_name='availability',
+            name='available_from',
+            field=models.TimeField(verbose_name='Available from'),
+        ),
+        migrations.AlterField(
+            model_name='availability',
+            name='available_till',
+            field=models.TimeField(verbose_name='Available until'),
+        ),
+        migrations.AlterField(
+            model_name='availability',
+            name='day_number',
+            field=models.IntegerField(choices=[(1, 'MONDAY'), (2, 'TUESDAY'), (3, 'WEDNESDAY'), (4, 'THURSDAY'), (5, 'FRIDAY'), (6, 'SATURDAY'), (7, 'SUNDAY')], verbose_name='Day of the week'),
+        ),
+        migrations.AlterField(
+            model_name='availability',
+            name='person',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Worker', verbose_name='Worker'),
+        ),
+        migrations.AlterField(
+            model_name='configurationitem',
+            name='name',
+            field=models.CharField(editable=False, max_length=255, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='configurationitem',
+            name='type',
+            field=models.CharField(editable=False, max_length=50, verbose_name='Type'),
+        ),
+        migrations.AlterField(
+            model_name='configurationitem',
+            name='value',
+            field=models.CharField(max_length=1024, verbose_name='Value'),
+        ),
+        migrations.AlterField(
+            model_name='contactattempt',
+            name='datetime_when',
+            field=models.DateTimeField(help_text='When did the contact occurred?', verbose_name='When'),
+        ),
+        migrations.AlterField(
+            model_name='contactattempt',
+            name='subject',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.StudySubject', verbose_name='Subject'),
+        ),
+        migrations.AlterField(
+            model_name='contactattempt',
+            name='type',
+            field=models.CharField(choices=[('E', 'Email'), ('M', 'Post mail'), ('F', 'Face to face'), ('X', 'Fax'), ('P', 'Phone'), ('S', 'SMS')], default='P', max_length=2),
+        ),
+        migrations.AlterField(
+            model_name='contactattempt',
+            name='worker',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='web.Worker', verbose_name='Worker'),
+        ),
+        migrations.AlterField(
+            model_name='customstudysubjectfield',
+            name='type',
+            field=models.CharField(choices=[('TEXT', 'Text'), ('BOOL', 'Boolean (True/False)'), ('INTEGER', 'Integer'), ('DOUBLE', 'Double (real number)'), ('DATE', 'Date'), ('SELECT_LIST', 'Select list'), ('FILE', 'File')], max_length=20),
+        ),
+        migrations.AlterField(
+            model_name='holiday',
+            name='info',
+            field=models.TextField(blank=True, max_length=2000, verbose_name='Comments'),
+        ),
+        migrations.AlterField(
+            model_name='holiday',
+            name='kind',
+            field=models.CharField(choices=[('H', 'Holiday'), ('X', 'Extra Availability')], default='H', help_text='Defines the kind of availability. Either Holiday or Extra Availability.', max_length=1),
+        ),
+        migrations.AlterField(
+            model_name='inconsistentfield',
+            name='inconsistent_subject',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.InconsistentSubject', verbose_name='Invalid fields'),
+        ),
+        migrations.AlterField(
+            model_name='inconsistentfield',
+            name='name',
+            field=models.CharField(max_length=255, verbose_name='Field name'),
+        ),
+        migrations.AlterField(
+            model_name='inconsistentfield',
+            name='redcap_value',
+            field=models.CharField(max_length=255, verbose_name='RED Cap value'),
+        ),
+        migrations.AlterField(
+            model_name='inconsistentfield',
+            name='smash_value',
+            field=models.CharField(max_length=255, verbose_name='Smash value'),
+        ),
+        migrations.AlterField(
+            model_name='inconsistentsubject',
+            name='redcap_url',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='URL to RED Cap subject'),
+        ),
+        migrations.AlterField(
+            model_name='inconsistentsubject',
+            name='subject',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.StudySubject', verbose_name='Subject'),
+        ),
+        migrations.AlterField(
+            model_name='language',
+            name='image',
+            field=models.ImageField(upload_to=''),
+        ),
+        migrations.AlterField(
+            model_name='language',
+            name='locale',
+            field=models.CharField(choices=[('af_ZA', 'af_ZA'), ('am_ET', 'am_ET'), ('ar_AE', 'ar_AE'), ('ar_BH', 'ar_BH'), ('ar_DZ', 'ar_DZ'), ('ar_EG', 'ar_EG'), ('ar_IQ', 'ar_IQ'), ('ar_JO', 'ar_JO'), ('ar_KW', 'ar_KW'), ('ar_LB', 'ar_LB'), ('ar_LY', 'ar_LY'), ('ar_MA', 'ar_MA'), ('ar_OM', 'ar_OM'), ('ar_QA', 'ar_QA'), ('ar_SA', 'ar_SA'), ('ar_SY', 'ar_SY'), ('ar_TN', 'ar_TN'), ('ar_YE', 'ar_YE'), ('arn_CL', 'arn_CL'), ('as_IN', 'as_IN'), ('az_AZ', 'az_AZ'), ('az_AZ', 'az_AZ'), ('ba_RU', 'ba_RU'), ('be_BY', 'be_BY'), ('bg_BG', 'bg_BG'), ('bn_IN', 'bn_IN'), ('bo_BT', 'bo_BT'), ('bo_CN', 'bo_CN'), ('br_FR', 'br_FR'), ('bs_BA', 'bs_BA'), ('bs_BA', 'bs_BA'), ('ca_ES', 'ca_ES'), ('co_FR', 'co_FR'), ('cs_CZ', 'cs_CZ'), ('cy_GB', 'cy_GB'), ('da_DK', 'da_DK'), ('de_AT', 'de_AT'), ('de_CH', 'de_CH'), ('de_DE', 'de_DE'), ('de_LI', 'de_LI'), ('de_LU', 'de_LU'), ('div_MV', 'div_MV'), ('dsb_DE', 'dsb_DE'), ('el_GR', 'el_GR'), ('en_AU', 'en_AU'), ('en_BZ', 'en_BZ'), ('en_CA', 'en_CA'), ('en_CB', 'en_CB'), ('en_GB', 'en_GB'), ('en_IE', 'en_IE'), ('en_IN', 'en_IN'), ('en_IN', 'en_IN'), ('en_JA', 'en_JA'), ('en_MY', 'en_MY'), ('en_NZ', 'en_NZ'), ('en_PH', 'en_PH'), ('en_TT', 'en_TT'), ('en_US', 'en_US'), ('en_ZA', 'en_ZA'), ('en_ZW', 'en_ZW'), ('es_AR', 'es_AR'), ('es_BO', 'es_BO'), ('es_CL', 'es_CL'), ('es_CO', 'es_CO'), ('es_CR', 'es_CR'), ('es_DO', 'es_DO'), ('es_EC', 'es_EC'), ('es_ES', 'es_ES'), ('es_ES', 'es_ES'), ('es_GT', 'es_GT'), ('es_HN', 'es_HN'), ('es_MX', 'es_MX'), ('es_NI', 'es_NI'), ('es_PA', 'es_PA'), ('es_PE', 'es_PE'), ('es_PR', 'es_PR'), ('es_PY', 'es_PY'), ('es_SV', 'es_SV'), ('es_UR', 'es_UR'), ('es_US', 'es_US'), ('es_VE', 'es_VE'), ('et_EE', 'et_EE'), ('eu_ES', 'eu_ES'), ('fa_IR', 'fa_IR'), ('fi_FI', 'fi_FI'), ('fil_PH', 'fil_PH'), ('fo_FO', 'fo_FO'), ('fr_BE', 'fr_BE'), ('fr_CA', 'fr_CA'), ('fr_CH', 'fr_CH'), ('fr_FR', 'fr_FR'), ('fr_LU', 'fr_LU'), ('fr_MC', 'fr_MC'), ('fy_NL', 'fy_NL'), ('ga_IE', 'ga_IE'), ('gbz_AF', 'gbz_AF'), ('gl_ES', 'gl_ES'), ('gsw_FR', 'gsw_FR'), ('gu_IN', 'gu_IN'), ('ha_NG', 'ha_NG'), ('he_IL', 'he_IL'), ('hi_IN', 'hi_IN'), ('hr_BA', 'hr_BA'), ('hr_HR', 'hr_HR'), ('hu_HU', 'hu_HU'), ('hy_AM', 'hy_AM'), ('id_ID', 'id_ID'), ('ii_CN', 'ii_CN'), ('is_IS', 'is_IS'), ('it_CH', 'it_CH'), ('it_IT', 'it_IT'), ('iu_CA', 'iu_CA'), ('iu_CA', 'iu_CA'), ('ja_JP', 'ja_JP'), ('ka_GE', 'ka_GE'), ('kh_KH', 'kh_KH'), ('kk_KZ', 'kk_KZ'), ('kl_GL', 'kl_GL'), ('kn_IN', 'kn_IN'), ('ko_KR', 'ko_KR'), ('kok_IN', 'kok_IN'), ('ky_KG', 'ky_KG'), ('lb_LU', 'lb_LU'), ('lo_LA', 'lo_LA'), ('lt_LT', 'lt_LT'), ('lv_LV', 'lv_LV'), ('mi_NZ', 'mi_NZ'), ('mk_MK', 'mk_MK'), ('ml_IN', 'ml_IN'), ('mn_CN', 'mn_CN'), ('mn_MN', 'mn_MN'), ('moh_CA', 'moh_CA'), ('mr_IN', 'mr_IN'), ('ms_BN', 'ms_BN'), ('ms_MY', 'ms_MY'), ('mt_MT', 'mt_MT'), ('nb_NO', 'nb_NO'), ('ne_NP', 'ne_NP'), ('nl_BE', 'nl_BE'), ('nl_NL', 'nl_NL'), ('nn_NO', 'nn_NO'), ('ns_ZA', 'ns_ZA'), ('oc_FR', 'oc_FR'), ('or_IN', 'or_IN'), ('pa_IN', 'pa_IN'), ('pl_PL', 'pl_PL'), ('ps_AF', 'ps_AF'), ('pt_BR', 'pt_BR'), ('pt_PT', 'pt_PT'), ('qut_GT', 'qut_GT'), ('quz_BO', 'quz_BO'), ('quz_EC', 'quz_EC'), ('quz_PE', 'quz_PE'), ('rm_CH', 'rm_CH'), ('ro_RO', 'ro_RO'), ('ru_RU', 'ru_RU'), ('rw_RW', 'rw_RW'), ('sa_IN', 'sa_IN'), ('sah_RU', 'sah_RU'), ('se_FI', 'se_FI'), ('se_NO', 'se_NO'), ('se_SE', 'se_SE'), ('si_LK', 'si_LK'), ('sk_SK', 'sk_SK'), ('sl_SI', 'sl_SI'), ('sma_NO', 'sma_NO'), ('sma_SE', 'sma_SE'), ('smj_NO', 'smj_NO'), ('smj_SE', 'smj_SE'), ('smn_FI', 'smn_FI'), ('sms_FI', 'sms_FI'), ('sq_AL', 'sq_AL'), ('sr_BA', 'sr_BA'), ('sr_BA', 'sr_BA'), ('sr_SP', 'sr_SP'), ('sr_SP', 'sr_SP'), ('sv_FI', 'sv_FI'), ('sv_SE', 'sv_SE'), ('sw_KE', 'sw_KE'), ('syr_SY', 'syr_SY'), ('ta_IN', 'ta_IN'), ('te_IN', 'te_IN'), ('tg_TJ', 'tg_TJ'), ('th_TH', 'th_TH'), ('tk_TM', 'tk_TM'), ('tmz_DZ', 'tmz_DZ'), ('tn_ZA', 'tn_ZA'), ('tr_TR', 'tr_TR'), ('tt_RU', 'tt_RU'), ('ug_CN', 'ug_CN'), ('uk_UA', 'uk_UA'), ('ur_IN', 'ur_IN'), ('ur_PK', 'ur_PK'), ('uz_UZ', 'uz_UZ'), ('uz_UZ', 'uz_UZ'), ('vi_VN', 'vi_VN'), ('wen_DE', 'wen_DE'), ('wo_SN', 'wo_SN'), ('xh_ZA', 'xh_ZA'), ('yo_NG', 'yo_NG'), ('zh_CHS', 'zh_CHS'), ('zh_CHT', 'zh_CHT'), ('zh_CN', 'zh_CN'), ('zh_HK', 'zh_HK'), ('zh_MO', 'zh_MO'), ('zh_SG', 'zh_SG'), ('zh_TW', 'zh_TW'), ('zu_ZA', 'zu_ZA')], default='fr_FR', max_length=10),
+        ),
+        migrations.AlterField(
+            model_name='language',
+            name='windows_locale_name',
+            field=models.CharField(choices=[('af_ZA', 'af_ZA'), ('am_ET', 'am_ET'), ('ar_AE', 'ar_AE'), ('ar_BH', 'ar_BH'), ('ar_DZ', 'ar_DZ'), ('ar_EG', 'ar_EG'), ('ar_IQ', 'ar_IQ'), ('ar_JO', 'ar_JO'), ('ar_KW', 'ar_KW'), ('ar_LB', 'ar_LB'), ('ar_LY', 'ar_LY'), ('ar_MA', 'ar_MA'), ('ar_OM', 'ar_OM'), ('ar_QA', 'ar_QA'), ('ar_SA', 'ar_SA'), ('ar_SY', 'ar_SY'), ('ar_TN', 'ar_TN'), ('ar_YE', 'ar_YE'), ('arn_CL', 'arn_CL'), ('as_IN', 'as_IN'), ('az_AZ', 'az_AZ'), ('az_AZ', 'az_AZ'), ('ba_RU', 'ba_RU'), ('be_BY', 'be_BY'), ('bg_BG', 'bg_BG'), ('bn_IN', 'bn_IN'), ('bo_BT', 'bo_BT'), ('bo_CN', 'bo_CN'), ('br_FR', 'br_FR'), ('bs_BA', 'bs_BA'), ('bs_BA', 'bs_BA'), ('ca_ES', 'ca_ES'), ('co_FR', 'co_FR'), ('cs_CZ', 'cs_CZ'), ('cy_GB', 'cy_GB'), ('da_DK', 'da_DK'), ('de_AT', 'de_AT'), ('de_CH', 'de_CH'), ('de_DE', 'de_DE'), ('de_LI', 'de_LI'), ('de_LU', 'de_LU'), ('div_MV', 'div_MV'), ('dsb_DE', 'dsb_DE'), ('el_GR', 'el_GR'), ('en_AU', 'en_AU'), ('en_BZ', 'en_BZ'), ('en_CA', 'en_CA'), ('en_CB', 'en_CB'), ('en_GB', 'en_GB'), ('en_IE', 'en_IE'), ('en_IN', 'en_IN'), ('en_IN', 'en_IN'), ('en_JA', 'en_JA'), ('en_MY', 'en_MY'), ('en_NZ', 'en_NZ'), ('en_PH', 'en_PH'), ('en_TT', 'en_TT'), ('en_US', 'en_US'), ('en_ZA', 'en_ZA'), ('en_ZW', 'en_ZW'), ('es_AR', 'es_AR'), ('es_BO', 'es_BO'), ('es_CL', 'es_CL'), ('es_CO', 'es_CO'), ('es_CR', 'es_CR'), ('es_DO', 'es_DO'), ('es_EC', 'es_EC'), ('es_ES', 'es_ES'), ('es_ES', 'es_ES'), ('es_GT', 'es_GT'), ('es_HN', 'es_HN'), ('es_MX', 'es_MX'), ('es_NI', 'es_NI'), ('es_PA', 'es_PA'), ('es_PE', 'es_PE'), ('es_PR', 'es_PR'), ('es_PY', 'es_PY'), ('es_SV', 'es_SV'), ('es_UR', 'es_UR'), ('es_US', 'es_US'), ('es_VE', 'es_VE'), ('et_EE', 'et_EE'), ('eu_ES', 'eu_ES'), ('fa_IR', 'fa_IR'), ('fi_FI', 'fi_FI'), ('fil_PH', 'fil_PH'), ('fo_FO', 'fo_FO'), ('fr_BE', 'fr_BE'), ('fr_CA', 'fr_CA'), ('fr_CH', 'fr_CH'), ('fr_FR', 'fr_FR'), ('fr_LU', 'fr_LU'), ('fr_MC', 'fr_MC'), ('fy_NL', 'fy_NL'), ('ga_IE', 'ga_IE'), ('gbz_AF', 'gbz_AF'), ('gl_ES', 'gl_ES'), ('gsw_FR', 'gsw_FR'), ('gu_IN', 'gu_IN'), ('ha_NG', 'ha_NG'), ('he_IL', 'he_IL'), ('hi_IN', 'hi_IN'), ('hr_BA', 'hr_BA'), ('hr_HR', 'hr_HR'), ('hu_HU', 'hu_HU'), ('hy_AM', 'hy_AM'), ('id_ID', 'id_ID'), ('ii_CN', 'ii_CN'), ('is_IS', 'is_IS'), ('it_CH', 'it_CH'), ('it_IT', 'it_IT'), ('iu_CA', 'iu_CA'), ('iu_CA', 'iu_CA'), ('ja_JP', 'ja_JP'), ('ka_GE', 'ka_GE'), ('kh_KH', 'kh_KH'), ('kk_KZ', 'kk_KZ'), ('kl_GL', 'kl_GL'), ('kn_IN', 'kn_IN'), ('ko_KR', 'ko_KR'), ('kok_IN', 'kok_IN'), ('ky_KG', 'ky_KG'), ('lb_LU', 'lb_LU'), ('lo_LA', 'lo_LA'), ('lt_LT', 'lt_LT'), ('lv_LV', 'lv_LV'), ('mi_NZ', 'mi_NZ'), ('mk_MK', 'mk_MK'), ('ml_IN', 'ml_IN'), ('mn_CN', 'mn_CN'), ('mn_MN', 'mn_MN'), ('moh_CA', 'moh_CA'), ('mr_IN', 'mr_IN'), ('ms_BN', 'ms_BN'), ('ms_MY', 'ms_MY'), ('mt_MT', 'mt_MT'), ('nb_NO', 'nb_NO'), ('ne_NP', 'ne_NP'), ('nl_BE', 'nl_BE'), ('nl_NL', 'nl_NL'), ('nn_NO', 'nn_NO'), ('ns_ZA', 'ns_ZA'), ('oc_FR', 'oc_FR'), ('or_IN', 'or_IN'), ('pa_IN', 'pa_IN'), ('pl_PL', 'pl_PL'), ('ps_AF', 'ps_AF'), ('pt_BR', 'pt_BR'), ('pt_PT', 'pt_PT'), ('qut_GT', 'qut_GT'), ('quz_BO', 'quz_BO'), ('quz_EC', 'quz_EC'), ('quz_PE', 'quz_PE'), ('rm_CH', 'rm_CH'), ('ro_RO', 'ro_RO'), ('ru_RU', 'ru_RU'), ('rw_RW', 'rw_RW'), ('sa_IN', 'sa_IN'), ('sah_RU', 'sah_RU'), ('se_FI', 'se_FI'), ('se_NO', 'se_NO'), ('se_SE', 'se_SE'), ('si_LK', 'si_LK'), ('sk_SK', 'sk_SK'), ('sl_SI', 'sl_SI'), ('sma_NO', 'sma_NO'), ('sma_SE', 'sma_SE'), ('smj_NO', 'smj_NO'), ('smj_SE', 'smj_SE'), ('smn_FI', 'smn_FI'), ('sms_FI', 'sms_FI'), ('sq_AL', 'sq_AL'), ('sr_BA', 'sr_BA'), ('sr_BA', 'sr_BA'), ('sr_SP', 'sr_SP'), ('sr_SP', 'sr_SP'), ('sv_FI', 'sv_FI'), ('sv_SE', 'sv_SE'), ('sw_KE', 'sw_KE'), ('syr_SY', 'syr_SY'), ('ta_IN', 'ta_IN'), ('te_IN', 'te_IN'), ('tg_TJ', 'tg_TJ'), ('th_TH', 'th_TH'), ('tk_TM', 'tk_TM'), ('tmz_DZ', 'tmz_DZ'), ('tn_ZA', 'tn_ZA'), ('tr_TR', 'tr_TR'), ('tt_RU', 'tt_RU'), ('ug_CN', 'ug_CN'), ('uk_UA', 'uk_UA'), ('ur_IN', 'ur_IN'), ('ur_PK', 'ur_PK'), ('uz_UZ', 'uz_UZ'), ('uz_UZ', 'uz_UZ'), ('vi_VN', 'vi_VN'), ('wen_DE', 'wen_DE'), ('wo_SN', 'wo_SN'), ('xh_ZA', 'xh_ZA'), ('yo_NG', 'yo_NG'), ('zh_CHS', 'zh_CHS'), ('zh_CHT', 'zh_CHT'), ('zh_CN', 'zh_CN'), ('zh_HK', 'zh_HK'), ('zh_MO', 'zh_MO'), ('zh_SG', 'zh_SG'), ('zh_TW', 'zh_TW'), ('zu_ZA', 'zu_ZA')], default='French', max_length=10),
+        ),
+        migrations.AlterField(
+            model_name='location',
+            name='color',
+            field=models.CharField(blank=True, default='', max_length=20, verbose_name='Calendar appointment color'),
+        ),
+        migrations.AlterField(
+            model_name='mailtemplate',
+            name='context',
+            field=models.CharField(choices=[('A', 'Appointment'), ('S', 'Subject'), ('V', 'Visit'), ('C', 'Voucher')], max_length=1),
+        ),
+        migrations.AlterField(
+            model_name='mailtemplate',
+            name='template_file',
+            field=models.FileField(upload_to='templates/'),
+        ),
+        migrations.AlterField(
+            model_name='missingsubject',
+            name='ignore',
+            field=models.BooleanField(default=False, verbose_name='Ignore missing subject'),
+        ),
+        migrations.AlterField(
+            model_name='missingsubject',
+            name='redcap_id',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='RED Cap id'),
+        ),
+        migrations.AlterField(
+            model_name='missingsubject',
+            name='redcap_url',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='URL to RED Cap subject'),
+        ),
+        migrations.AlterField(
+            model_name='missingsubject',
+            name='subject',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.StudySubject', verbose_name='Subject'),
+        ),
+        migrations.AlterField(
+            model_name='provenance',
+            name='modification_author',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='web.Worker', verbose_name='Worker who modified the row'),
+        ),
+        migrations.AlterField(
+            model_name='provenance',
+            name='modification_date',
+            field=models.DateTimeField(auto_now_add=True, verbose_name='Modified on'),
+        ),
+        migrations.AlterField(
+            model_name='provenance',
+            name='modification_description',
+            field=models.CharField(max_length=20480, verbose_name='Description'),
+        ),
+        migrations.AlterField(
+            model_name='provenance',
+            name='modified_field',
+            field=models.CharField(blank='', max_length=1024, verbose_name='Modified field'),
+        ),
+        migrations.AlterField(
+            model_name='provenance',
+            name='new_value',
+            field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='New Value'),
+        ),
+        migrations.AlterField(
+            model_name='provenance',
+            name='previous_value',
+            field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Previous Value'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='auto_create_follow_up',
+            field=models.BooleanField(default=True, verbose_name='Auto create follow up visit'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='default_delta_time_for_control_follow_up',
+            field=models.IntegerField(default=4, help_text='Time difference between visits used to automatically create follow up visits', validators=[django.core.validators.MinValueValidator(1)], verbose_name='Time difference between control visits'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='default_delta_time_for_follow_up_units',
+            field=models.CharField(choices=[('years', 'Years'), ('days', 'Days')], default='years', help_text='Units for the number of days between visits for both patients and controls', max_length=10, verbose_name='Units for the follow up incrementals'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='default_delta_time_for_patient_follow_up',
+            field=models.IntegerField(default=1, help_text='Time difference between visits used to automatically create follow up visits', validators=[django.core.validators.MinValueValidator(1)], verbose_name='Time difference between patient visits'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='default_visit_duration_in_months',
+            field=models.IntegerField(default=6, help_text='Duration of the visit, this is, the time interval, in months, when the appointments may take place', validators=[django.core.validators.MinValueValidator(1)], verbose_name='Duration of the visits in months'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='default_voucher_expiration_in_months',
+            field=models.IntegerField(default=3, validators=[django.core.validators.MinValueValidator(1)], verbose_name='Duration of the vouchers in months'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='name',
+            field=models.CharField(max_length=255, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='nd_number_study_subject_regex',
+            field=models.CharField(default='^ND\\d{4}$', help_text='Defines the regex to check the ID used for each study subject. Keep in mind that this regex should be valid for all previous study subjects in the database.', max_length=255, verbose_name='Study Subject ND Number Regex'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='redcap_first_visit_number',
+            field=models.IntegerField(default=1, verbose_name='Number of the first visit in redcap system'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='sample_mail_statistics',
+            field=models.BooleanField(default=False, verbose_name='Email with sample collections should use statistics'),
+        ),
+        migrations.AlterField(
+            model_name='study',
+            name='visits_to_show_in_subject_list',
+            field=models.IntegerField(default=5, validators=[django.core.validators.MaxValueValidator(100), django.core.validators.MinValueValidator(1)], verbose_name='Number of visits to show in the subject list'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='brain_donation_agreement',
+            field=models.BooleanField(default=False, verbose_name='Brain donation agreement'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='comments',
+            field=models.BooleanField(default=True, verbose_name='Comments'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='datetime_contact_reminder',
+            field=models.BooleanField(default=True, verbose_name='Please make a contact on'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='default_location',
+            field=models.BooleanField(default=True, verbose_name='Default appointment location'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='diagnosis',
+            field=models.BooleanField(default=True, verbose_name='Diagnosis'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='endpoint_reached',
+            field=models.BooleanField(default=True, verbose_name='Endpoint reached'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='excluded',
+            field=models.BooleanField(default=False, verbose_name='Excluded'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='flying_team',
+            field=models.BooleanField(default=True, verbose_name='Default flying team location (if applicable)'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='health_partner',
+            field=models.BooleanField(default=False, verbose_name='Health partner'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='health_partner_feedback_agreement',
+            field=models.BooleanField(default=False, verbose_name='Agrees to give information to referral'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='information_sent',
+            field=models.BooleanField(default=True, verbose_name='Information sent'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='mpower_id',
+            field=models.BooleanField(default=True, verbose_name='MPower ID'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='nd_number',
+            field=models.BooleanField(default=True, verbose_name='ND number'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='pd_in_family',
+            field=models.BooleanField(default=True, verbose_name='PD in family'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='postponed',
+            field=models.BooleanField(default=True, verbose_name='Postponed'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='previously_in_study',
+            field=models.BooleanField(default=False, verbose_name='Previously in PDP study'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='referral',
+            field=models.BooleanField(default=True, verbose_name='Referred by'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='referral_letter',
+            field=models.BooleanField(default=False, verbose_name='Referral letter'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='resign_reason',
+            field=models.BooleanField(default=True, verbose_name='Endpoint reached comments'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='resigned',
+            field=models.BooleanField(default=True, verbose_name='Resigned'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='screening',
+            field=models.BooleanField(default=False, verbose_name='Screening'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='screening_number',
+            field=models.BooleanField(default=True, verbose_name='Screening number'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='type',
+            field=models.BooleanField(default=True, verbose_name='Type'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_1',
+            field=models.BooleanField(default=False, verbose_name='Visit 1 virus results'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_1_collection_date',
+            field=models.BooleanField(default=False, verbose_name='Visit 1 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_1_iga_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 1 virus IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_1_igg_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 1 virus IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_1_updated',
+            field=models.BooleanField(default=False, verbose_name='Visit 1 virus results date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_2',
+            field=models.BooleanField(default=False, verbose_name='Visit 2 virus results'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_2_collection_date',
+            field=models.BooleanField(default=False, verbose_name='Visit 2 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_2_iga_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 2 virus IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_2_igg_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 2 virus IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_2_updated',
+            field=models.BooleanField(default=False, verbose_name='Visit 2 virus results date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_3',
+            field=models.BooleanField(default=False, verbose_name='Visit 3 virus results'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_3_collection_date',
+            field=models.BooleanField(default=False, verbose_name='Visit 3 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_3_iga_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 3 virus IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_3_igg_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 3 virus IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_3_updated',
+            field=models.BooleanField(default=False, verbose_name='Visit 3 virus results date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_4',
+            field=models.BooleanField(default=False, verbose_name='Visit 4 virus results'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_4_collection_date',
+            field=models.BooleanField(default=False, verbose_name='Visit 4 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_4_iga_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 4 virus IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_4_igg_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 4 virus IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_4_updated',
+            field=models.BooleanField(default=False, verbose_name='Visit 4 virus results date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_5',
+            field=models.BooleanField(default=False, verbose_name='Visit 5 virus results'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_5_collection_date',
+            field=models.BooleanField(default=False, verbose_name='Visit 5 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_5_iga_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 5 virus IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_5_igg_status',
+            field=models.BooleanField(default=False, verbose_name='Visit 5 virus IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='virus_test_5_updated',
+            field=models.BooleanField(default=False, verbose_name='Visit 5 virus results date'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='voucher_types',
+            field=models.BooleanField(default=False, verbose_name='Voucher types'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='vouchers',
+            field=models.BooleanField(default=False, verbose_name='Vouchers'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='year_of_diagnosis',
+            field=models.BooleanField(default=True, verbose_name='Year of diagnosis (YYYY)'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='approaching_visits_for_mail_contact_visible',
+            field=models.BooleanField(default=True, verbose_name='post mail for approaching visits'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='approaching_visits_without_appointments_visible',
+            field=models.BooleanField(default=True, verbose_name='approaching visits'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='exceeded_visits_visible',
+            field=models.BooleanField(default=True, verbose_name='exceeded visit time'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='inconsistent_redcap_subject_visible',
+            field=models.BooleanField(default=True, verbose_name='inconsistent RED Cap subject'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='missing_redcap_subject_visible',
+            field=models.BooleanField(default=True, verbose_name='missing RED Cap subject'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='subject_no_visits_visible',
+            field=models.BooleanField(default=True, verbose_name='subject without visit'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='subject_require_contact_visible',
+            field=models.BooleanField(default=True, verbose_name='subject required contact'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='subject_voucher_expiry_visible',
+            field=models.BooleanField(default=False, verbose_name='subject vouchers almost expired'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='unfinished_appointments_visible',
+            field=models.BooleanField(default=True, verbose_name='unfinished appointments'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='unfinished_visits_visible',
+            field=models.BooleanField(default=True, verbose_name='unfinished visits'),
+        ),
+        migrations.AlterField(
+            model_name='studynotificationparameters',
+            name='visits_with_missing_appointments_visible',
+            field=models.BooleanField(default=True, verbose_name='visits with missing appointments'),
+        ),
+        migrations.AlterField(
+            model_name='studyredcapcolumns',
+            name='date_born',
+            field=models.BooleanField(default=True, verbose_name='Date of birth'),
+        ),
+        migrations.AlterField(
+            model_name='studyredcapcolumns',
+            name='dead',
+            field=models.BooleanField(default=True, verbose_name='Dead'),
+        ),
+        migrations.AlterField(
+            model_name='studyredcapcolumns',
+            name='languages',
+            field=models.BooleanField(default=True, verbose_name='Languages'),
+        ),
+        migrations.AlterField(
+            model_name='studyredcapcolumns',
+            name='mpower_id',
+            field=models.BooleanField(default=True, verbose_name='MPower ID'),
+        ),
+        migrations.AlterField(
+            model_name='studyredcapcolumns',
+            name='sex',
+            field=models.BooleanField(default=True, verbose_name='Sex'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='brain_donation_agreement',
+            field=models.BooleanField(default=False, verbose_name='Brain donation agreement'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='date_added',
+            field=models.DateField(auto_now_add=True, verbose_name='Added on'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='datetime_contact_reminder',
+            field=models.DateTimeField(blank=True, null=True, verbose_name='Please make a contact on'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='default_location',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.Location', verbose_name='Default appointment location'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='diagnosis',
+            field=models.CharField(blank=True, max_length=1024, null=True, verbose_name='Diagnosis'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='endpoint_reached',
+            field=models.BooleanField(default=False, verbose_name='Endpoint Reached'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='endpoint_reached_reason',
+            field=models.TextField(blank=True, max_length=2000, verbose_name='Endpoint reached comments'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='exclude_reason',
+            field=models.TextField(blank=True, max_length=2000, verbose_name='Exclude reason'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='excluded',
+            field=models.BooleanField(default=False, verbose_name='Excluded'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='flying_team',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.FlyingTeam', verbose_name='Default flying team location (if applicable)'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='health_partner',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.Worker', verbose_name='Health partner'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='health_partner_feedback_agreement',
+            field=models.BooleanField(default=False, verbose_name='Agrees to give information to referral'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='information_sent',
+            field=models.BooleanField(default=False, verbose_name='Information sent'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='nd_number',
+            field=models.CharField(blank=True, max_length=25, verbose_name='ND number'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='pd_in_family',
+            field=models.NullBooleanField(default=None, verbose_name='PD in family'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='previously_in_study',
+            field=models.BooleanField(default=False, verbose_name='Previously in PDP study'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='referral_letter',
+            field=models.FileField(blank=True, null=True, storage=django.core.files.storage.FileSystemStorage(location='~/tmp/upload'), upload_to='referral_letters', verbose_name='Referral letter'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='resign_reason',
+            field=models.TextField(blank=True, max_length=2000, verbose_name='Resign reason'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='resigned',
+            field=models.BooleanField(default=False, verbose_name='Resigned'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='screening',
+            field=models.CharField(blank=True, max_length=1024, null=True, verbose_name='Screening'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='screening_number',
+            field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Screening number'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='study',
+            field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='web.Study', verbose_name='Study'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='subject',
+            field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='web.Subject', verbose_name='Subject'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='type',
+            field=models.CharField(blank=True, choices=[('C', 'CONTROL'), ('P', 'PATIENT')], max_length=1, null=True, verbose_name='Type'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_1',
+            field=models.NullBooleanField(choices=[(True, 'Yes'), (False, 'No'), (None, 'N/A')], default=None, verbose_name='Visit 1 virus result'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_1_collection_date',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 1 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_1_iga_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 1 IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_1_igg_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 1 IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_1_updated',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 1 virus result date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_2',
+            field=models.NullBooleanField(choices=[(True, 'Yes'), (False, 'No'), (None, 'N/A')], default=None, verbose_name='Visit 2 virus result'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_2_collection_date',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 2 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_2_iga_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 2 IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_2_igg_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 2 IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_2_updated',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 2 virus result date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_3',
+            field=models.NullBooleanField(choices=[(True, 'Yes'), (False, 'No'), (None, 'N/A')], default=None, verbose_name='Visit 3 virus result'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_3_collection_date',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 3 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_3_iga_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 3 IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_3_igg_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 3 IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_3_updated',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 3 virus result date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_4',
+            field=models.NullBooleanField(choices=[(True, 'Yes'), (False, 'No'), (None, 'N/A')], default=None, verbose_name='Visit 4 virus result'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_4_collection_date',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 4 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_4_iga_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 4 IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_4_igg_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 4 IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_4_updated',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 4 virus result date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_5',
+            field=models.NullBooleanField(choices=[(True, 'Yes'), (False, 'No'), (None, 'N/A')], default=None, verbose_name='Visit 5 virus result'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_5_collection_date',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 5 virus collection date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_5_iga_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 5 IgA status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_5_igg_status',
+            field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Visit 5 IgG status'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='virus_test_5_updated',
+            field=models.DateField(blank=True, null=True, verbose_name='Visit 5 virus result date'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='voucher_types',
+            field=models.ManyToManyField(blank=True, to='web.VoucherType', verbose_name='Voucher types'),
+        ),
+        migrations.AlterField(
+            model_name='studysubject',
+            name='year_of_diagnosis',
+            field=models.IntegerField(blank=True, null=True, verbose_name='Year of diagnosis (YYYY)'),
+        ),
+        migrations.AlterField(
+            model_name='studysubjectlist',
+            name='last_contact_attempt',
+            field=models.BooleanField(default=False, verbose_name='Last contact attempt'),
+        ),
+        migrations.AlterField(
+            model_name='studysubjectlist',
+            name='type',
+            field=models.CharField(blank=True, choices=[('GENERIC', 'Generic subject list'), ('NO_VISIT', 'Subjects without visit'), ('REQUIRE_CONTACT', 'Subjects required contact'), ('VOUCHER_EXPIRY', 'Subject with vouchers to be expired soon')], max_length=50, null=True, verbose_name='Type of list'),
+        ),
+        migrations.AlterField(
+            model_name='studysubjectlist',
+            name='visits',
+            field=models.BooleanField(default=True, verbose_name='Visits summary'),
+        ),
+        migrations.AlterField(
+            model_name='studyvisitlist',
+            name='type',
+            field=models.CharField(choices=[('GENERIC', 'Generic visit list'), ('EXCEEDED_TIME', 'Exceeded visit time'), ('UNFINISHED', 'Unfinished visits'), ('MISSING_APPOINTMENTS', 'Visits with missing appointments'), ('APPROACHING_WITHOUT_APPOINTMENTS', 'Approaching visits'), ('APPROACHING_FOR_MAIL_CONTACT', 'Post mail for approaching visits')], max_length=50, verbose_name='Type of list'),
+        ),
+        migrations.AlterField(
+            model_name='studyvisitlist',
+            name='visible_appointment_types_done',
+            field=models.BooleanField(default=False, verbose_name='Done appointments'),
+        ),
+        migrations.AlterField(
+            model_name='studyvisitlist',
+            name='visible_appointment_types_in_progress',
+            field=models.BooleanField(default=False, verbose_name='Appointments in progress'),
+        ),
+        migrations.AlterField(
+            model_name='studyvisitlist',
+            name='visible_appointment_types_missing',
+            field=models.BooleanField(default=False, verbose_name='Missing appointments'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='address',
+            field=models.CharField(blank=True, max_length=255, verbose_name='Address'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='city',
+            field=models.CharField(blank=True, max_length=50, verbose_name='City'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='country',
+            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='web.Country', verbose_name='Country'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='date_born',
+            field=models.DateField(blank=True, null=True, verbose_name='Date of birth (YYYY-MM-DD)'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='dead',
+            field=models.BooleanField(default=False, verbose_name='Deceased'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='default_written_communication_language',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subjects_written_communication', to='web.Language', verbose_name='Default language for document generation'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='email',
+            field=models.EmailField(blank=True, max_length=254, null=True, verbose_name='E-mail'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='first_name',
+            field=models.CharField(max_length=50, verbose_name='First name'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='languages',
+            field=models.ManyToManyField(blank=True, to='web.Language', verbose_name='Known languages'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='last_name',
+            field=models.CharField(max_length=50, verbose_name='Last name'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='next_of_keen_address',
+            field=models.TextField(blank=True, max_length=2000, verbose_name='Next of keen address'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='next_of_keen_name',
+            field=models.CharField(blank=True, max_length=255, verbose_name='Next of keen'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='next_of_keen_phone',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Next of keen phone'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='phone_number',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='Phone number'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='phone_number_2',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='Phone number 2'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='phone_number_3',
+            field=models.CharField(blank=True, max_length=64, null=True, verbose_name='Phone number 3'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='postal_code',
+            field=models.CharField(blank=True, max_length=7, verbose_name='Postal code'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='sex',
+            field=models.CharField(choices=[('M', 'Male'), ('F', 'Female')], max_length=1, verbose_name='Sex'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='social_security_number',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Social security number'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='address',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Address'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='city',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='City'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='country',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Country'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='date_born',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Date of birth'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='dead',
+            field=models.BooleanField(default=True, max_length=1, verbose_name='Deceased'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='default_written_communication_language',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Default language for document generation'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='email',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='E-mail'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='first_name',
+            field=models.BooleanField(default=True, max_length=1, verbose_name='First name'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='languages',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Known languages'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='last_name',
+            field=models.BooleanField(default=True, max_length=1, verbose_name='Last name'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='next_of_keen_address',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Next of kin address'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='next_of_keen_name',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Next of kin'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='next_of_keen_phone',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Next of kin phone'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='phone_number',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Phone number'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='phone_number_2',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Phone number 2'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='phone_number_3',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Phone number 3'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='postal_code',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Postal code'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='sex',
+            field=models.BooleanField(default=False, max_length=1, verbose_name='Sex'),
+        ),
+        migrations.AlterField(
+            model_name='subjectcolumns',
+            name='social_security_number',
+            field=models.BooleanField(default=False, verbose_name='Social security_number'),
+        ),
+        migrations.AlterField(
+            model_name='visit',
+            name='visit_number',
+            field=models.IntegerField(default=1, verbose_name='Visit number'),
+        ),
+        migrations.AlterField(
+            model_name='visitcolumns',
+            name='datetime_begin',
+            field=models.BooleanField(choices=[(True, 'Yes'), (False, 'No')], default=True, verbose_name='Visit starts date'),
+        ),
+        migrations.AlterField(
+            model_name='visitcolumns',
+            name='datetime_end',
+            field=models.BooleanField(choices=[(True, 'Yes'), (False, 'No')], default=True, verbose_name='Visit ends date'),
+        ),
+        migrations.AlterField(
+            model_name='visitcolumns',
+            name='is_finished',
+            field=models.BooleanField(choices=[(True, 'Yes'), (False, 'No')], default=True, verbose_name='Is finished'),
+        ),
+        migrations.AlterField(
+            model_name='visitcolumns',
+            name='post_mail_sent',
+            field=models.BooleanField(choices=[(True, 'Yes'), (False, 'No')], default=True, verbose_name='Post mail sent'),
+        ),
+        migrations.AlterField(
+            model_name='visitcolumns',
+            name='visible_appointment_types',
+            field=models.BooleanField(default=False, verbose_name='All appointments'),
+        ),
+        migrations.AlterField(
+            model_name='visitcolumns',
+            name='visit_number',
+            field=models.BooleanField(choices=[(True, 'Yes'), (False, 'No')], default=True, verbose_name='Visit number'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='activity_type',
+            field=models.CharField(blank=True, default='', max_length=40, verbose_name='Activity type'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='expiry_date',
+            field=models.DateField(verbose_name='Expiry date'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='feedback',
+            field=models.TextField(blank=True, max_length=2000, verbose_name='Feedback'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='hours',
+            field=models.IntegerField(default=0, verbose_name='Hours'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='issue_date',
+            field=models.DateField(verbose_name='Issue date'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='issue_worker',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='issued_vouchers', to='web.Worker', verbose_name='Issued by'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='number',
+            field=models.CharField(max_length=50, unique=True, verbose_name='Number'),
+        ),
+        migrations.AlterField(
+            model_name='voucher',
+            name='status',
+            field=models.CharField(choices=[('NEW', 'New'), ('IN_USE', 'In use'), ('USED', 'Used'), ('EXPIRED', 'Expired'), ('REMOVED', 'Removed')], default='NEW', max_length=20, verbose_name='Status'),
+        ),
+        migrations.AlterField(
+            model_name='voucherpartnersession',
+            name='date',
+            field=models.DateTimeField(verbose_name='Issue date'),
+        ),
+        migrations.AlterField(
+            model_name='voucherpartnersession',
+            name='length',
+            field=models.IntegerField(verbose_name='Length (minutes)'),
+        ),
+        migrations.AlterField(
+            model_name='vouchertype',
+            name='code',
+            field=models.CharField(max_length=20, verbose_name='Code'),
+        ),
+        migrations.AlterField(
+            model_name='vouchertype',
+            name='description',
+            field=models.CharField(blank=True, max_length=1024, verbose_name='Description'),
+        ),
+        migrations.AlterField(
+            model_name='vouchertypeprice',
+            name='end_date',
+            field=models.DateField(verbose_name='End date'),
+        ),
+        migrations.AlterField(
+            model_name='vouchertypeprice',
+            name='price',
+            field=models.DecimalField(decimal_places=2, max_digits=6, verbose_name='Price'),
+        ),
+        migrations.AlterField(
+            model_name='vouchertypeprice',
+            name='start_date',
+            field=models.DateField(verbose_name='Start date'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='address',
+            field=models.CharField(blank=True, max_length=255, verbose_name='Address'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='city',
+            field=models.CharField(blank=True, max_length=50, verbose_name='City'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='comment',
+            field=models.TextField(blank=True, max_length=1024, null=True, verbose_name='Comment'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='country',
+            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='web.Country', verbose_name='Country'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='email',
+            field=models.EmailField(blank=True, max_length=254, verbose_name='E-mail'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='fax_number',
+            field=models.CharField(blank=True, max_length=20, verbose_name='Fax number'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='first_name',
+            field=models.CharField(blank=True, max_length=50, verbose_name='First name'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='languages',
+            field=models.ManyToManyField(blank=True, to='web.Language', verbose_name='Known languages'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='last_name',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Last name'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='locations',
+            field=models.ManyToManyField(blank=True, to='web.Location', verbose_name='Locations'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='name',
+            field=models.CharField(blank=True, default='', max_length=50, verbose_name='Name'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='phone_number',
+            field=models.CharField(blank=True, max_length=20, verbose_name='Phone number'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='phone_number_2',
+            field=models.CharField(blank=True, max_length=20, verbose_name='Phone number 2'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='postal_code',
+            field=models.CharField(blank=True, max_length=7, verbose_name='Postal code'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='specialization',
+            field=models.CharField(blank=True, max_length=20, verbose_name='Specialization'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='unit',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Unit'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='voucher_partner_code',
+            field=models.CharField(blank=True, max_length=10, verbose_name='Code'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='voucher_types',
+            field=models.ManyToManyField(blank=True, to='web.VoucherType', verbose_name='Voucher types'),
+        ),
+        migrations.AlterField(
+            model_name='workerstudyrole',
+            name='name',
+            field=models.CharField(choices=[('DOCTOR', 'Doctor'), ('NURSE', 'Nurse'), ('PSYCHOLOGIST', 'Psychologist'), ('TECHNICIAN', 'Technician'), ('SECRETARY', 'Secretary'), ('PROJECT MANAGER', 'Project Manager')], max_length=20, verbose_name='Role'),
+        ),
+        migrations.AlterField(
+            model_name='workerstudyrole',
+            name='permissions',
+            field=models.ManyToManyField(blank=True, to='auth.Permission', verbose_name='Worker Study Permissions'),
+        ),
+    ]