def validate_application_group_for_runType(value, field_label, runType, runType_label): errors = [] if value: value = value.strip() applicationGroups = ApplicationGroup.objects.filter( name__iexact=value) | ApplicationGroup.objects.filter( description__iexact=value) if applicationGroups: applicationGroup = applicationGroups[0] if runType: runTypeObjs = RunType.objects.filter(runType__iexact=runType) if runTypeObjs: associations = runTypeObjs[0].applicationGroups if not associations.filter(name=applicationGroup.name): errors.append( validation.invalid_choice_related_choice( field_label, value, associations.values_list("name", flat=True), runType_label, runType, )) if not runType: errors.append(validation.missing_error(runType_label)) if not runTypeObjs: errors.append( validation.invalid_not_found_error(runType_label, runType)) else: errors.append( validation.invalid_not_found_error(field_label, value)) return errors
def validate_reference(referenceName, displayedName="Reference"): errors = [] ref_short_name = "" if referenceName: input = referenceName.strip() selectedRefs = ReferenceGenome.objects.filter(name=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: selectedRefs = ReferenceGenome.objects.filter(name__iexact=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: selectedRefs = ReferenceGenome.objects.filter(short_name=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: selectedRefs = ReferenceGenome.objects.filter(short_name__iexact=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: errors.append(validation.invalid_not_found_error(displayedName, referenceName)) return errors, ref_short_name
def validate_reference(referenceName, displayedName='Reference'): errors = [] ref_short_name = "" if referenceName: input = referenceName.strip() selectedRefs = ReferenceGenome.objects.filter(name=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: selectedRefs = ReferenceGenome.objects.filter(name__iexact=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: selectedRefs = ReferenceGenome.objects.filter(short_name=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: selectedRefs = ReferenceGenome.objects.filter( short_name__iexact=input) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: errors.append( validation.invalid_not_found_error( displayedName, referenceName)) return errors, ref_short_name
def validate_reference(value, field_label, runType, applicationGroupName, application_label): errors = [] ref_short_name = "" value = value.strip() if value else "" if value: applProduct = ApplProduct.objects.filter( isActive=True, applType__runType=runType, applicationGroup__name=applicationGroupName, ) or ApplProduct.objects.filter(isActive=True, applType__runType=runType) if applProduct and not applProduct[0].isReferenceSelectionSupported: errors.append( validation.invalid_invalid_value_related( field_label, value, application_label)) else: selectedRefs = ( ReferenceGenome.objects.filter(name=value) or ReferenceGenome.objects.filter(name__iexact=value) or ReferenceGenome.objects.filter(short_name=value) or ReferenceGenome.objects.filter(short_name__iexact=value)) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: errors.append( validation.invalid_not_found_error(field_label, value)) return errors, ref_short_name
def validate_plan_templating_kit_name(value, field_label, isNewPlan=None): errors = [] warnings = [] if not validation.has_value(value): errors.append(validation.required_error(field_label)) else: value = value.strip() query_kwargs = {"kitType__in": ["TemplatingKit", "IonChefPrepKit"]} query_args = (Q(name=value) | Q(description=value), ) kit = KitInfo.objects.filter(*query_args, **query_kwargs) if not kit: errors.append( validation.invalid_not_found_error(field_label, value)) elif kit and not kit[0].isActive: if isNewPlan: errors.append(validation.invalid_not_active( field_label, value)) else: warnings.append( validation.invalid_not_active(field_label, value)) return errors, warnings
def validate_reference(value, runType, applicationGroupName, displayedName='Reference'): errors = [] ref_short_name = "" value = value.strip() if value else "" if value: applProduct = ApplProduct.objects.filter(isActive=True, applType__runType=runType, applicationGroup__name=applicationGroupName) \ or ApplProduct.objects.filter(isActive=True, applType__runType=runType) if applProduct and not applProduct[0].isReferenceSelectionSupported: errors.append(displayedName + " selection is not supported for this Application") else: selectedRefs = ReferenceGenome.objects.filter(name=value) or \ ReferenceGenome.objects.filter(name__iexact=value) or \ ReferenceGenome.objects.filter(short_name=value) or \ ReferenceGenome.objects.filter(short_name__iexact=value) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: errors.append( validation.invalid_not_found_error(displayedName, value)) return errors, ref_short_name
def validate_reference_short_name(value, displayedName='Reference'): errors = [] if validation.has_value(value): value = value.strip() reference = ReferenceGenome.objects.filter(short_name=value, enabled=True) if not reference.exists(): errors.append(validation.invalid_not_found_error(displayedName, value)) return errors
def validate_reference_short_name(value, displayedName='Reference'): errors = [] if validation.has_value(value): value = value.strip() reference = ReferenceGenome.objects.filter(short_name=value, enabled=True) if not reference.exists(): generic_not_found_error = validation.invalid_not_found_error(displayedName, value) error_fixing_message = ". To import it, visit Settings > References > Import Preloaded Ion References" reference_error_message = generic_not_found_error.strip() + error_fixing_message errors.append(reference_error_message) return errors
def validate_sample_grouping(value, field_label): errors = [] if value: value = value.strip() groupings = SampleGroupType_CV.objects.filter( displayedName__iexact=value) if not groupings: errors.append( validation.invalid_not_found_error(field_label, value)) return errors
def validate_barcode_kit_name(value, field_label): errors = [] if validation.has_value(value): value = value.strip() kits = dnaBarcode.objects.filter(name=value) if not kits: errors.append( validation.invalid_not_found_error( field_label, value)) # "%s %s not found" % (displayedName, value) return errors
def validate_reference_short_name(value, field_label): errors = [] if validation.has_value(value): value = value.strip() reference = ReferenceGenome.objects.filter(short_name=value, enabled=True) if not reference.exists(): generic_not_found_error = validation.invalid_not_found_error( field_label, value) error_fixing_message = ugettext_lazy( "references_genome_download.messages.help.import" ) # "To import it, visit Settings > References > Import Preloaded Ion References" reference_error_message = (generic_not_found_error.strip() + error_fixing_message.strip() ) # avoid lazy errors.append(reference_error_message) return errors
def validate_optional_kit_name(value, kitType, field_label, isNewPlan=None): errors = [] warnings = [] if validation.has_value(value): kit = get_kitInfo_by_name_or_description(value, kitType) if not kit: errors.append( validation.invalid_not_found_error(field_label, value)) elif kit and not kit.isActive: if isNewPlan: errors.append(validation.invalid_not_active( field_label, value)) else: warnings.append( validation.invalid_not_active(field_label, value)) return errors, warnings
def validate_library_key(value, field_label): errors = [] selectedLibKey = None if not value: errors.append(validation.required_error(field_label)) else: try: selectedLibKey = LibraryKey.objects.get(name__iexact=value.strip()) except LibraryKey.DoesNotExist: try: selectedLibKey = LibraryKey.objects.get( sequence__iexact=value.strip()) except LibraryKey.DoesNotExist: logger.debug( "plan_validator.validate_lib_key ...%s not found" % input) selectedLibKey = None if not selectedLibKey: errors.append( validation.invalid_not_found_error( field_label, value)) # 'Library key %s not found' % value return errors, selectedLibKey
def validate_reference(value, runType, applicationGroupName, displayedName='Reference'): errors = [] ref_short_name = "" value = value.strip() if value else "" if value: applProduct = ApplProduct.objects.filter(isActive=True, applType__runType=runType, applicationGroup__name=applicationGroupName) \ or ApplProduct.objects.filter(isActive=True, applType__runType=runType) if applProduct and not applProduct[0].isReferenceSelectionSupported: errors.append(displayedName+" selection is not supported for this Application") else: selectedRefs = ReferenceGenome.objects.filter(name=value) or \ ReferenceGenome.objects.filter(name__iexact=value) or \ ReferenceGenome.objects.filter(short_name=value) or \ ReferenceGenome.objects.filter(short_name__iexact=value) if selectedRefs: ref_short_name = selectedRefs[0].short_name else: errors.append(validation.invalid_not_found_error(displayedName, value)) return errors, ref_short_name
def validateField_in_section(self, field_name, new_field_value): """ field validation for a step that acts as a section to another step """ # logger.debug("at validateField_in_section field_name=%s; new_field_value=%s" %(field_name, new_field_value)) if field_name == ReferenceFieldNames.REFERENCE: if new_field_value and new_field_value not in [ ref.short_name for ref in self.prepopulatedFields[ ReferenceFieldNames.REFERENCES] ]: self.prepopulatedFields[ ReferenceFieldNames.REFERENCE_MISSING] = True self.validationErrors[ field_name] = validation.invalid_not_found_error( _("workflow.step.reference.fields.default_reference.label" ), new_field_value, ) # Reference Library not found: %s" % new_field_value else: self.prepopulatedFields[ ReferenceFieldNames.REFERENCE_MISSING] = False self.validationErrors.pop(field_name, None) # if the plan has been sequenced, do not enforce the target bed file to be selected if self.prepopulatedFields[ReferenceFieldNames.PLAN_STATUS] != "run": if field_name == ReferenceFieldNames.TARGET_BED_FILE: reference = self.savedFields[ReferenceFieldNames.REFERENCE] targetRegionBedFile = new_field_value runType = ( self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] if self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] else "") applicationGroupName = self.prepopulatedFields[ ReferenceFieldNames.APPLICATION_GROUP_NAME] logger.debug( " validateField_in_section reference=%s; targetBed=%s; runType=%s; applicationGroupName=%s" % (reference, new_field_value, runType, applicationGroupName)) errors = [] isSameRefInfoPerSample = self.savedFields[ ReferenceFieldNames.SAME_REF_INFO_PER_SAMPLE] if isSameRefInfoPerSample: errors = validate_targetRegionBedFile_for_runType( targetRegionBedFile, field_label= _("workflow.step.reference.fields.default_targetBedFile.label" ), runType=runType, reference=reference, nucleotideType="", applicationGroupName=applicationGroupName, ) if errors: self.validationErrors[field_name] = "".join(errors) else: self.validationErrors.pop(field_name, None)