Changeset 472
- Timestamp:
- 07/14/10 18:30:32 (3 years ago)
- Location:
- trunk/clinicaltrials
- Files:
-
- 5 modified
-
repository/templates/repository/trial_index.html (modified) (2 diffs)
-
repository/trds_forms.py (modified) (1 diff)
-
repository/views.py (modified) (16 diffs)
-
reviewapp/models.py (modified) (2 diffs)
-
reviewapp/signals.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/clinicaltrials/repository/templates/repository/trial_index.html
r468 r472 11 11 <th>{% trans "Part" %}</th> 12 12 <th>{% trans "Form name" %}</th> 13 <th>{% trans "Status" %} ({{ submission.language }})</th> 14 {% for lang in submission.get_ trans_languages %}15 <th>{% trans lang %}</th>13 14 {% for lang in submission.get_mandatory_languages %} 15 <th>{% trans "Status" %} ({% trans lang %})</th> 16 16 {% endfor %} 17 17 </tr> … … 21 21 <td>{{forloop.counter}}</td> 22 22 <td><a href="{{link.url}}">{{ link.label }}</a></td> 23 <td><img src="{{link.icon}}" alt="{{link.msg}}" title="{{link.msg}}"/> {{link.msg}} {{link.status}}</td>24 23 {% for lang in link.trans %} 25 24 <td><img src="{{lang.icon}}" alt="{{lang.msg}}" title="{{lang.msg}}"/> {{lang.msg}}</td> -
trunk/clinicaltrials/repository/trds_forms.py
r468 r472 85 85 if commit: 86 86 self.save_translations(obj) 87 87 # to check fields after the update of the translations 88 obj = super(ReviewModelForm, self).save(commit=commit) 89 88 90 return obj 89 91 -
trunk/clinicaltrials/repository/views.py
r468 r472 83 83 data['url'] = reverse('step_' + str(i + 1), args=[trial_pk]) 84 84 85 step_status = fields_status.get(ct.submission.language.lower(), {}).get('step_' + str(i + 1), None)86 if step_status == "MISSING":87 data['icon'] = settings.MEDIA_URL + 'media/img/admin/icon_error.gif'88 elif step_status == "BLANK":89 data['icon'] = settings.MEDIA_URL + 'media/img/admin/icon_alert.gif'90 elif step_status == "OK":91 data['icon'] = settings.MEDIA_URL + 'media/img/admin/icon_success.gif'92 else:93 data['icon'] = settings.MEDIA_URL + 'media/img/admin/icon_error.gif'94 95 if step_status is None:96 data['msg'] = _('Error')97 else:98 data['msg'] = _(step_status.title() + ' fields')99 100 85 trans_list = [] 101 for lang in ct.submission.get_ trans_languages():86 for lang in ct.submission.get_mandatory_languages(): 102 87 trans = {} 88 lang = lang.lower() 103 89 step_status = fields_status.get(lang, {}).get('step_' + str(i + 1), None) 104 90 if step_status == "MISSING": … … 195 181 return HttpResponseRedirect(reverse('step_1',args=[trial_pk])) 196 182 else: 197 form = TrialIdentificationForm(instance=ct) 183 form = TrialIdentificationForm(instance=ct, 184 default_second_language=ct.submission.get_secondary_language()) 198 185 SecondaryIdSet = inlineformset_factory(ClinicalTrial, TrialNumber, 199 186 form=SecondaryIdForm, … … 209 196 'steps': step_list(trial_pk), 210 197 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[0])), 198 'default_second_language': ct.submission.get_secondary_language(), 199 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()], 211 200 }, 212 201 context_instance=RequestContext(request)) … … 233 222 return HttpResponseRedirect(reverse('step_2',args=[trial_pk])) 234 223 else: 235 form = PrimarySponsorForm(instance=ct) 224 form = PrimarySponsorForm(instance=ct, 225 default_second_language=ct.submission.get_secondary_language()) 236 226 SecondarySponsorSet = inlineformset_factory(ClinicalTrial, TrialSecondarySponsor, 237 227 form=SecondarySponsorForm,extra=EXTRA_FORMS, can_delete=True) … … 249 239 'title':TRIAL_FORMS[1], 250 240 'steps': step_list(trial_pk), 251 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[1])),}, 241 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[1])), 242 'default_second_language': ct.submission.get_secondary_language(), 243 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 252 244 context_instance=RequestContext(request)) 253 245 … … 296 288 return HttpResponseRedirect(reverse('step_3',args=[trial_pk])) 297 289 else: 298 form = HealthConditionsForm(instance=ct) 290 form = HealthConditionsForm(instance=ct, 291 default_second_language=ct.submission.get_secondary_language()) 299 292 general_desc_formset = GeneralDescriptorSet(queryset=general_qs,prefix='g') 300 293 specific_desc_formset = SpecificDescriptorSet(queryset=specific_qs,prefix='s') … … 308 301 'title':TRIAL_FORMS[2], 309 302 'steps': step_list(trial_pk), 310 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[2])),}, 303 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[2])), 304 'default_second_language': ct.submission.get_secondary_language(), 305 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 311 306 context_instance=RequestContext(request)) 312 307 … … 340 335 return HttpResponseRedirect(reverse('step_4',args=[trial_pk])) 341 336 else: 342 form = InterventionForm(instance=ct) 337 form = InterventionForm(instance=ct, 338 default_second_language=ct.submission.get_secondary_language()) 343 339 specific_desc_formset = DescriptorFormSet(queryset=queryset) 344 340 … … 350 346 'title':TRIAL_FORMS[3], 351 347 'steps': step_list(trial_pk), 352 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[3])),}, 348 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[3])), 349 'default_second_language': ct.submission.get_secondary_language(), 350 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 353 351 context_instance=RequestContext(request)) 354 352 … … 365 363 return HttpResponseRedirect(reverse('step_5',args=[trial_pk])) 366 364 else: 367 form = RecruitmentForm(instance=ct) 365 form = RecruitmentForm(instance=ct, 366 default_second_language=ct.submission.get_secondary_language()) 368 367 369 368 forms = [form] … … 373 372 'title':TRIAL_FORMS[4], 374 373 'steps': step_list(trial_pk), 375 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[4])),}, 374 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[4])), 375 'default_second_language': ct.submission.get_secondary_language(), 376 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 376 377 context_instance=RequestContext(request)) 377 378 … … 388 389 return HttpResponseRedirect(reverse('step_6',args=[trial_pk])) 389 390 else: 390 form = StudyTypeForm(instance=ct) 391 form = StudyTypeForm(instance=ct, 392 default_second_language=ct.submission.get_secondary_language()) 391 393 392 394 forms = [form] … … 396 398 'title':TRIAL_FORMS[5], 397 399 'steps': step_list(trial_pk), 398 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[5])),}, 400 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[5])), 401 'default_second_language': ct.submission.get_secondary_language(), 402 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 399 403 context_instance=RequestContext(request)) 400 404 … … 441 445 'title':TRIAL_FORMS[6], 442 446 'steps': step_list(trial_pk), 443 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[6])),}, 447 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[6])), 448 'default_second_language': ct.submission.get_secondary_language(), 449 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 444 450 context_instance=RequestContext(request)) 445 451 … … 492 498 'title':TRIAL_FORMS[7], 493 499 'steps': step_list(trial_pk), 494 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[7])),}, 500 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[7])), 501 'default_second_language': ct.submission.get_secondary_language(), 502 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 495 503 context_instance=RequestContext(request)) 496 504 … … 533 541 'host': request.get_host(), 534 542 'steps': step_list(trial_pk), 535 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[8])),}, 543 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[8])), 544 'default_second_language': ct.submission.get_secondary_language(), 545 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, 536 546 context_instance=RequestContext(request)) 537 547 -
trunk/clinicaltrials/reviewapp/models.py
r466 r472 105 105 return self.get_mandatory_languages() - set([self.language]) 106 106 107 107 def get_secondary_language(self): 108 sec = None 109 for lang in self.get_mandatory_languages(): 110 # fixme: get from settings 111 if lang != 'en': 112 sec = lang.lower() 113 break 114 return sec 108 115 109 116 def get_absolute_url(self): … … 205 212 def __unicode__(self): 206 213 return '%s' % (self.short_title()) 207 208 214 209 215 210 216 post_save.connect(create_user_profile, sender=User) -
trunk/clinicaltrials/reviewapp/signals.py
r471 r472 4 4 5 5 def check_trial_fields(sender, instance,**kwargs): 6 7 if not hasattr(instance, 'submission'): 8 return 6 9 7 REQUIRED_FIELDS = {10 FIELDS = { 8 11 'step_1': { 9 'scientific_title': {'type': 'text', 'poly': True} 12 'scientific_title': {'required': True, 'type': 'text', 'poly': True}, 13 'scientific_acronym': {'required': False, 'type': 'text', 'poly': True}, 14 'scientific_acronym_expansion': {'required': False, 'type': 'text', 'poly': True}, 15 'public_title': {'required': False, 'type': 'text', 'poly': True}, 16 'acronym': {'required': False, 'type': 'text', 'poly': True}, 17 'acronym_expansion': {'required': False, 'type': 'text', 'poly': True} 10 18 }, 11 19 'step_2': { 12 'primary_sponsor': {' type': 'text', 'poly': False}20 'primary_sponsor': {'required': True, 'type': 'text', 'poly': False} 13 21 }, 14 22 'step_3': { 15 'hc_freetext': {' type': 'text', 'poly': True}23 'hc_freetext': {'required': True, 'type': 'text', 'poly': True} 16 24 }, 17 25 'step_4': { 18 'i_freetext': {'type': 'text', 'poly': True}, 19 'intervention_code': {'type': 'mult', 'poly': False, 'queryset': instance.intervention_code()} 26 'i_freetext': {'required': True, 'type': 'text', 'poly': True}, 27 'intervention_code': {'required': True, 'type': 'mult', 'poly': False, 28 'queryset': instance.intervention_code()} 20 29 }, 21 30 'step_5': { 22 'recruitment_status': {' type': 'text', 'poly': False},23 'recruitment_country': {' type': 'mult', 'poly': False, 'queryset': instance.recruitment_country.all()},24 'enrollment_start_planned': {'type': 'text', 'poly': False},25 ' target_sample_size': {'type': 'text', 'poly': False},26 ' inclusion_criteria': {'type': 'text', 'poly': True},27 ' gender': {'type': 'text', 'poly': False},28 ' agemin_value': {'type': 'text', 'poly': False},29 'agemin_ unit': {'type': 'text', 'poly': False},30 'agem ax_value': {'type': 'text', 'poly': False},31 'agemax_ unit': {'type': 'text', 'poly': False},32 ' exclusion_criteria': {'type': 'text', 'poly': True}31 'recruitment_status': {'required': True, 'type': 'text', 'poly': False}, 32 'recruitment_country': {'required': True, 'type': 'mult', 'poly': False, 33 'queryset': instance.recruitment_country.all()}, 34 'enrollment_start_planned': {'required': True, 'type': 'text', 'poly': False}, 35 'target_sample_size': {'required': True, 'type': 'text', 'poly': False}, 36 'inclusion_criteria': {'required': True, 'type': 'text', 'poly': True}, 37 'gender': {'required': True, 'type': 'text', 'poly': False}, 38 'agemin_value': {'required': True, 'type': 'text', 'poly': False}, 39 'agemin_unit': {'required': True, 'type': 'text', 'poly': False}, 40 'agemax_value': {'required': True, 'type': 'text', 'poly': False}, 41 'agemax_unit': {'required': True, 'type': 'text', 'poly': False}, 33 42 }, 34 43 'step_6': { 35 'study_type': {'type': 'text', 'poly': False}, 36 'study_design': {'type': 'text', 'poly': True}, 37 'phase': {'type': 'text', 'poly': False} 38 }, 39 'step_7': {}, 40 'step_8': {} 41 } 42 43 OPTIONAL_FIELDS = { 44 'step_1': { 45 'scientific_acronym': {'type': 'text', 'poly': True}, 46 'scientific_acronym_expansion': {'type': 'text', 'poly': True}, 47 'public_title': {'type': 'text', 'poly': True}, 48 'acronym': {'type': 'text', 'poly': True}, 49 'acronym_expansion': {'type': 'text', 'poly': True} 50 }, 51 'step_2': {}, 52 'step_3': {}, 53 'step_4': {}, 54 'step_5': {}, 55 'step_6': { 56 'expanded_access_program': {'type': 'text', 'poly': False}, 57 'intervention_assignment': {'type': 'text', 'poly': False}, 58 'number_of_arms': {'type': 'text', 'poly': False}, 59 'masking': {'type': 'text', 'poly': False}, 60 'allocation': {'type': 'text', 'poly': False} 44 'study_type': {'required': True, 'type': 'text', 'poly': False}, 45 'study_design': {'required': True, 'type': 'text', 'poly': True}, 46 'phase': {'required': True, 'type': 'text', 'poly': False}, 47 #'expanded_access_program': {'required': False, 'type': 'text', 'poly': False}, 48 'intervention_assignment': {'required': False, 'type': 'text', 'poly': False}, 49 'number_of_arms': {'required': False, 'type': 'text', 'poly': False}, 50 'masking': {'required': False, 'type': 'text', 'poly': False}, 51 'allocation': {'required': False, 'type': 'text', 'poly': False} 61 52 }, 62 53 'step_7': {}, … … 66 57 from repository.trds_forms import STEP_FORM_MATRIX 67 58 from repository.models import ClinicalTrial 68 from reviewapp.models import Submission69 from settings import MANAGED_LANGUAGES70 59 import re 71 60 import pickle 72 61 73 fields_status = {'en': {'step_9': 'OK'}, 'es': {'step_9': 'OK'}, 'pt-br': {'step_9': 'OK'}} 62 fields_status = {} 63 64 # attachment 65 count = instance.submission.attachment_set.all().count() 66 for lang in instance.submission.get_mandatory_languages(): 67 lang = lang.lower() 68 if count == 0: 69 fields_status.update({lang: {'step_9': 'BLANK'}}) 70 else: 71 fields_status.update({lang: {'step_9': 'OK'}}) 74 72 75 73 for step, forms in STEP_FORM_MATRIX.items(): … … 80 78 count = form.Meta.queryset.filter(trial=instance).count() 81 79 82 if form.Meta.min_required != 0: 83 for lang in MANAGED_LANGUAGES: 84 lang = lang.lower() 85 if count < form.Meta.min_required: 86 87 step_status.update({lang: 'MISSING'}) 88 elif count == 0: 89 if step_status.get(lang, '') != 'MISSING': 90 step_status.update({lang: 'BLANK'}) 80 for lang in instance.submission.get_mandatory_languages(): 81 lang = lang.lower() 82 if count < form.Meta.min_required: 83 step_status.update({lang: 'MISSING'}) 84 elif count == 0: 85 if step_status.get(lang, '') != 'MISSING': 86 step_status.update({lang: 'BLANK'}) 87 else: 88 if not form.Meta.polyglot: 89 if step_status.get(lang, '') == '': 90 step_status.update({lang: 'OK'}) 91 91 else: 92 if not form.Meta.polyglot: 93 if step_status.get(lang, '') == '': 94 step_status.update({lang: 'OK'}) 95 else: 96 for out in form.Meta.queryset.filter(trial=instance): 97 for field in form.Meta.polyglot_fields: 98 if lang == 'en': 99 value = [getattr(out, field)] 100 else: 101 list_value = out.translations.filter(language=lang) 102 if len(list_value) > 0: 103 value = getattr(list_value[0], field) 104 else: 105 value = None 106 107 if value is None: 92 for out in form.Meta.queryset.filter(trial=instance): 93 for field in form.Meta.polyglot_fields: 94 if lang == 'en': 95 value = [getattr(out, field)] 96 else: 97 list_value = out.translations.filter(language=lang) 98 if len(list_value) > 0: 99 value = getattr(list_value[0], field) 100 else: 101 value = None 102 103 if value is None: 104 if form.Meta.min_required != 0: 108 105 step_status.update({lang: 'MISSING'}) 109 elif type(value) is str or type(value) is unicode: 110 if re.match('^\s*$', value): 111 step_status.update({lang: 'MISSING'}) 112 else: 113 if step_status.get(lang, '') == '': 114 step_status.update({lang: 'OK'}) 115 else: 116 if len(str(value)) == 0: 117 step_status.update({lang: 'MISSING'}) 118 else: 119 if step_status.get(lang, '') == '': 120 step_status.update({lang: 'OK'}) 121 else: 122 for lang in MANAGED_LANGUAGES: 123 lang = lang.lower() 124 if count == 0: 125 if step_status.get(lang, '') != 'MISSING': 126 step_status.update({lang: 'BLANK'}) 127 else: 128 if not form.Meta.polyglot: 129 if step_status.get(lang, '') == '': 130 step_status.update({lang: 'OK'}) 131 else: 132 for out in form.Meta.queryset.filter(trial=instance): 133 for field in form.Meta.polyglot_fields: 134 if lang == 'en': 135 value = [getattr(out, field)] 136 else: 137 list_value = out.translations.filter(language=lang) 138 if len(list_value) > 0: 139 value = getattr(list_value[0], field) 140 else: 141 value = None 142 if value is None: 106 else: 143 107 if step_status.get(lang, '') != 'MISSING': 144 108 step_status.update({lang: 'BLANK'}) 145 elif type(value) is str or type(value) is unicode: 146 if re.match('^\s*$', value): 109 elif type(value) is str or type(value) is unicode: 110 if re.match('^\s*$', value): 111 if step_status.get(lang, '') != 'MISSING': 112 step_status.update({lang: 'MISSING'}) 113 else: 147 114 if step_status.get(lang, '') != 'MISSING': 148 115 step_status.update({lang: 'BLANK'}) 149 else:150 if step_status.get(lang, '') == '':151 step_status.update({lang: 'OK'})152 else:153 if len(str(value)) == 0:154 if step_status.get(lang, '') != 'MISSING':155 step_status.update({lang: 'BLANK'})156 else:157 if step_status.get(lang, '') == '':158 step_status.update({lang: 'OK'})159 160 elif hasattr(form.Meta,'model'):161 if form.Meta.model == ClinicalTrial:162 required_fields = REQUIRED_FIELDS[step]163 optional_fields = OPTIONAL_FIELDS[step]164 for field in form.declared_fields.keys():165 values = {}166 if field in required_fields.keys():167 if required_fields[field]['type'] == 'text':168 values.update({'en': getattr(instance, field)})169 170 for trans in instance.translations.all():171 if required_fields[field]['poly']:172 values.update({trans.language.lower(): getattr(trans, field)})173 else:174 values.update({trans.language.lower(): values['en']})175 176 for lang, value in values.items():177 178 if value is None:179 step_status.update({lang: 'MISSING'})180 elif type(value) is str or type(value) is unicode:181 if re.match('^\s*$', value):182 step_status.update({lang: 'MISSING'})183 116 else: 184 117 if step_status.get(lang, '') == '': … … 186 119 else: 187 120 if len(str(value)) == 0: 188 step_status.update({lang: 'MISSING'}) 121 if form.Meta.min_required != 0: 122 step_status.update({lang: 'MISSING'}) 123 else: 124 if step_status.get(lang, '') != 'MISSING': 125 step_status.update({lang: 'BLANK'}) 189 126 else: 190 127 if step_status.get(lang, '') == '': 191 128 step_status.update({lang: 'OK'}) 192 193 elif required_fields[field]['type'] == 'mult': 194 count = required_fields[field]['queryset'].count() 195 if count < 1: 196 for lang in MANAGED_LANGUAGES: 197 lang = lang.lower() 198 step_status.update({lang: 'MISSING'}) 199 else: 200 for lang in MANAGED_LANGUAGES: 201 lang = lang.lower() 202 if step_status.get(lang, '') == '': 203 step_status.update({lang: 'OK'}) 204 205 elif field in optional_fields.keys(): 206 if optional_fields[field]['type'] == 'text': 207 values.update({'en': getattr(instance, field)}) 208 209 for trans in instance.translations.all(): 210 if optional_fields[field]['poly']: 211 values.update({trans.language.lower(): getattr(trans, field)}) 212 else: 213 values.update({trans.language.lower(): values['en']}) 129 130 else: 131 if hasattr(form.Meta,'model'): 132 if form.Meta.model == ClinicalTrial: 133 check_fields = FIELDS[step] 134 for field in form.declared_fields.keys(): 135 values = {} 136 if field in check_fields.keys(): 137 if check_fields[field]['type'] == 'text': 138 values.update({'en': getattr(instance, field)}) 139 140 for trans in instance.translations.all(): 141 if check_fields[field]['poly']: 142 values.update({trans.language.lower(): getattr(trans, field)}) 143 else: 144 values.update({trans.language.lower(): values['en']}) 145 146 for lang, value in values.items(): 147 if value is None: 148 if check_fields[field]['required']: 149 step_status.update({lang: 'MISSING'}) 150 else: 151 if step_status.get(lang, '') != 'MISSING': 152 step_status.update({lang: 'BLANK'}) 153 elif type(value) is str or type(value) is unicode: 154 if re.match('^\s*$', value): 155 if check_fields[field]['required']: 156 step_status.update({lang: 'MISSING'}) 157 else: 158 if step_status.get(lang, '') != 'MISSING': 159 step_status.update({lang: 'BLANK'}) 160 else: 161 if step_status.get(lang, '') == '': 162 step_status.update({lang: 'OK'}) 163 else: 164 if len(str(value)) == 0: 165 if check_fields[field]['required']: 166 step_status.update({lang: 'MISSING'}) 167 else: 168 if step_status.get(lang, '') != 'MISSING': 169 step_status.update({lang: 'BLANK'}) 170 else: 171 if step_status.get(lang, '') == '': 172 step_status.update({lang: 'OK'}) 214 173 215 for lang, value in values.items(): 216 if field == 'expanded_access_program': 217 value = 'Ok' # because unknown value is None 218 219 if value is None: 220 if step_status.get(lang, '') != 'MISSING': 221 step_status.update({lang: 'BLANK'}) 222 elif type(value) is str or type(value) is unicode: 223 if re.match('^\s*$', value): 224 if step_status.get(lang, '') != 'MISSING': 225 step_status.update({lang: 'BLANK'}) 226 else: 227 if step_status.get(lang, '') == '': 228 step_status.update({lang: 'OK'}) 229 else: 230 if len(str(value)) == 0: 231 if step_status.get(lang, '') != 'MISSING': 232 step_status.update({lang: 'BLANK'}) 233 else: 234 if step_status.get(lang, '') == '': 235 step_status.update({lang: 'OK'}) 236 174 else: 175 if check_fields[field]['type'] == 'mult': 176 count = check_fields[field]['queryset'].count() 177 178 for lang in instance.submission.get_mandatory_languages(): 179 lang = lang.lower() 180 if count < 1: 181 step_status.update({lang: 'MISSING'}) 182 else: 183 if step_status.get(lang, '') == '': 184 step_status.update({lang: 'OK'}) 185 186 237 187 for language, status in step_status.items(): 238 188 if fields_status.get(language) is None: … … 246 196 # bulk data load. 247 197 # Remove try/except (fix and revise code) 248 try: 249 instance.submission.fields_status = pickle.dumps(fields_status) 250 instance.submission.save() 251 except Submission.DoesNotExist: 252 pass 198 199 instance.submission.fields_status = pickle.dumps(fields_status) 200 instance.submission.save() 201 253 202 # The exception: 254 203 #Installing json fixture 'initial_data' from '/home/luciano/prj/ct/svn/trunk/clinicaltrials/repository/fixtures'. … … 269 218 #% self.model._meta.object_name) 270 219 #DoesNotExist: Submission matching query does not exist. 271 272 273 220
