diff --git a/CHANGELOG b/CHANGELOG index 41dcd4f341f04d06bd53c4b6106f8387082bffaa..c341732be6c1a39fb8dd5c93e4e2d781be83e791 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ smasch (1.0.1-1) stable; urgency=low + * bug fix: readonly custom Date Field was inproperly persisted in forms + (#383) + -- Piotr Gawron <piotr.gawron@uni.lu> Mon, 15 Mar 2021 14:00:00 +0200 smasch (1.0.0-1) stable; urgency=low diff --git a/smash/web/forms/study_subject_forms.py b/smash/web/forms/study_subject_forms.py index c22662cd92ab569560c54da23d79d165d8b322ed..529e04b8c56eb65d60ebcc0d026a7a18e554e15d 100644 --- a/smash/web/forms/study_subject_forms.py +++ b/smash/web/forms/study_subject_forms.py @@ -7,8 +7,8 @@ from django.forms import ModelForm from web.forms.forms import DATETIMEPICKER_DATE_ATTRS, get_worker_from_args, DATEPICKER_DATE_ATTRS from web.models import StudySubject, Study, StudyColumns, VoucherType, Worker -from web.models.constants import SCREENING_NUMBER_PREFIXES_FOR_TYPE, CUSTOM_FIELD_TYPE_TEXT, CUSTOM_FIELD_TYPE_BOOLEAN, \ - CUSTOM_FIELD_TYPE_INTEGER, CUSTOM_FIELD_TYPE_DOUBLE, \ +from web.models.constants import SCREENING_NUMBER_PREFIXES_FOR_TYPE, CUSTOM_FIELD_TYPE_TEXT, \ + CUSTOM_FIELD_TYPE_BOOLEAN, CUSTOM_FIELD_TYPE_INTEGER, CUSTOM_FIELD_TYPE_DOUBLE, \ CUSTOM_FIELD_TYPE_DATE, CUSTOM_FIELD_TYPE_SELECT_LIST, CUSTOM_FIELD_TYPE_FILE from web.models.custom_data import CustomStudySubjectField, CustomStudySubjectValue from web.models.custom_data.custom_study_subject_field import get_study_subject_field_id @@ -158,8 +158,9 @@ class StudySubjectAddForm(StudySubjectForm): instance = super(StudySubjectAddForm, self).save(commit) # we can add custom values only after object exists in the database for field_type in CustomStudySubjectField.objects.filter(study=self.study): - self.instance.set_custom_data_value(field_type, get_study_subject_field_value(field_type, self[ - get_study_subject_field_id(field_type)])) + if not field_type.readonly: + self.instance.set_custom_data_value(field_type, get_study_subject_field_value(field_type, self[ + get_study_subject_field_id(field_type)])) return instance def build_screening_number(self, cleaned_data): @@ -289,8 +290,9 @@ class StudySubjectEditForm(StudySubjectForm): def save(self, commit=True) -> StudySubject: for field_type in CustomStudySubjectField.objects.filter(study=self.study): - self.instance.set_custom_data_value(field_type, get_study_subject_field_value(field_type, self[ - get_study_subject_field_id(field_type)])) + if not field_type.readonly: + self.instance.set_custom_data_value(field_type, get_study_subject_field_value(field_type, self[ + get_study_subject_field_id(field_type)])) return super(StudySubjectForm, self).save(commit) class Meta: