Changeset 849
- Timestamp:
- 02/07/11 17:31:01 (2 years ago)
- Location:
- trunk/opentrials
- Files:
-
- 3 modified
-
repository/trds_forms.py (modified) (2 diffs)
-
reviewapp/forms.py (modified) (4 diffs)
-
reviewapp/views.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/opentrials/repository/trds_forms.py
r813 r849 164 164 # 165 165 166 def utrn_number_validate(data): 167 if data: 168 if not re.match('^U\d{4}-\d{4}-\d{4}$', data): 169 raise forms.ValidationError(_("Invalid format. Example: U1111-1111-1111")) 170 return data 166 171 167 172 ### step_1 ##################################################################### … … 190 195 acronym = forms.CharField(required=False, label=_('Acronym'), 191 196 max_length=255) 192 197 193 198 def clean_utrn_number(self): 194 data = self.cleaned_data['utrn_number'].strip() 195 if data: 196 if not re.match('^U\d{4}-\d{4}-\d{4}$', data): 197 raise forms.ValidationError(_("Invalid format. Example: U1111-1111-1111")) 199 data = utrn_number_validate(self.cleaned_data['utrn_number'].strip()) 200 if ClinicalTrial.objects.filter(utrn_number=data).exclude(pk=self.instance.pk).count() > 0: 201 raise forms.ValidationError(_('UTRN number already exists.')) 198 202 return data 199 203 -
trunk/opentrials/reviewapp/forms.py
r841 r849 2 2 from tempfile import NamedTemporaryFile 3 3 import lxml 4 import re 4 5 5 6 from opentrials.repository.trds_forms import ReviewModelForm … … 17 18 from polyglot.multilingual_forms import MultilingualModelChoiceField, MultilingualModelMultipleChoiceField 18 19 19 from repository.models import Institution, CountryCode 20 from repository.models import Institution, CountryCode, ClinicalTrial 20 21 from repository.widgets import SelectInstitution 21 22 from repository.xml.validate import validate_xml, InvalidOpenTrialsXML, ICTRP_DTD 22 23 from repository.xml.loading import etree, OpenTrialsXMLImport, REPLACE_IF_EXISTS 24 from repository.trds_forms import utrn_number_validate 23 25 24 26 ACCESS = [ … … 36 38 self.user = kwargs.pop('user', None) 37 39 38 self.base_fields.keyOrder = ['language', 'scientific_title', 'recruitment_country', 39 'primary_sponsor',] 40 41 self.base_fields['primary_sponsor'].widget = SelectInstitution(formset_prefix='primary_sponsor') 40 self.base_fields.keyOrder = ['language', 'scientific_title', 'recruitment_country', 41 'utrn_number', 'primary_sponsor',] 42 43 self.base_fields['primary_sponsor'] = forms.ModelChoiceField(queryset=Institution.objects.filter(creator=self.user).order_by('name'), 44 label=_('Primary Sponsor'), 45 widget=SelectInstitution(formset_prefix='primary_sponsor'), 46 required=True) 42 47 43 48 super(InitialTrialForm, self).__init__(*args, **kwargs) 44 49 45 self.fields['primary_sponsor'].queryset = Institution.objects.filter(creator=self.user).order_by('name') 46 47 if self.user: 48 self.fields['language'] = forms.ChoiceField(label=_('Submission language'), 49 choices=settings.MANAGED_LANGUAGES_CHOICES, 50 initial=self.user.get_profile().preferred_language) 50 self.fields['language'] = forms.ChoiceField(label=_('Submission language'), 51 choices=settings.MANAGED_LANGUAGES_CHOICES, 52 initial=self.user.get_profile().preferred_language) 51 53 52 54 form_title = _('Initial Trial Data') … … 58 60 model=CountryCode, 59 61 label_field='description',) 62 utrn_number = forms.CharField(label=_('UTRN Number'), max_length=255, required=True) 60 63 language = forms.ChoiceField(label=_('Submission language'), 61 64 choices=settings.MANAGED_LANGUAGES_CHOICES) 65 66 def clean_utrn_number(self): 67 data = utrn_number_validate(self.cleaned_data['utrn_number'].strip()) 68 if ClinicalTrial.objects.filter(utrn_number=data).count() > 0: 69 raise forms.ValidationError(_('UTRN number already exists.')) 70 return data 62 71 63 72 class PrimarySponsorForm(ReviewModelForm): -
trunk/opentrials/reviewapp/views.py
r841 r849 285 285 trial.primary_sponsor = su.primary_sponsor 286 286 trial.language = su.language 287 trial.utrn_number = initial_form.cleaned_data['utrn_number'] 287 288 trial.save() 288 289
