Skip to content
Snippets Groups Projects
Commit 8cc2539d authored by Hervé  MENAGER's avatar Hervé MENAGER
Browse files

modify PDB ID form to validate format and PDB entry existence

Former-commit-id: fb0ff3428b6b55c4e73c58b186cf72d48b83f4d4
parent 10c6f0d7
No related branches found
No related tags found
No related merge requests found
from django.forms import ModelForm,modelformset_factory,formset_factory
from django import forms
from django.db import models
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator
from .models import Bibliography, Protein, ProteinDomainComplex, Ppi, PpiComplex
from .ws import pdb_entry_exists
class IdForm(ModelForm):
class Meta:
......@@ -23,8 +27,15 @@ class BibliographyForm(ModelForm):
'journal_name': forms.TextInput(attrs={'readonly':'readonly', 'class':'readonly'}),
}
def validate_pdb_exists(value):
if not(pdb_entry_exists(value)):
raise ValidationError('PDB entry not found: %(value)s', params={'value': value}, code='invalid')
class PDBForm(forms.Form):
pdb_id = forms.CharField(label="PDB ID",max_length=4, widget=forms.TextInput(attrs={'placeholder': 'e.g 4HHB'}))
pdb_id = forms.CharField(label="PDB ID",max_length=4, widget=forms.TextInput(attrs={'placeholder': 'e.g 4HHB'}), required=True, validators=[
RegexValidator('^[0-9][a-zA-Z0-9]{3}$', message='PDB ID must be 1 numeric + 3 alphanumeric characters'),
validate_pdb_exists
])
PDBFormSet = formset_factory(PDBForm)
formset=PDBFormSet()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment