diff --git a/ippisite/ippidb/templates/compound_list.html b/ippisite/ippidb/templates/compound_list.html index ed096494aa66812bfa2fc2cf80e75ae9ebfb05d5..07d0e1f0bca3308248aac1b32b65982841e1f757 100644 --- a/ippisite/ippidb/templates/compound_list.html +++ b/ippisite/ippidb/templates/compound_list.html @@ -40,7 +40,7 @@ {% for ppi in selected_ppis %} <div class="form-check col-12"> <label class="form-check-label"> - <input class="form-check-input text-right" type="checkbox" checked value="{{ ppi.id }}" onchange="this.form.submit()" name="ppi" style="width: auto; margin-right: inherit!;"> + <input class="form-check-input text-right" type="checkbox" checked value="{{ ppi.id }}" onchange="this.form.submit()" name="ppi" style="width: auto; margin-right: 1em;"> {{ ppi.name }} </label> </div> @@ -48,12 +48,31 @@ {% for ppi in ppis|slice:":5" %} <div class="form-check col-12"> <label class="form-check-label"> - <input class="form-check-input text-right" type="checkbox" value="{{ ppi.id }}" onchange="this.form.submit()" name="ppi" style="width: auto; margin-right: inherit!;"> + <input class="form-check-input text-right" type="checkbox" value="{{ ppi.id }}" onchange="this.form.submit()" name="ppi" style="width: auto; margin-right: 1em;"> {{ ppi.name }} </label> </div> {% endfor %} </fieldset> + <fieldset class="form-group row border border-info m-2"> + <div class="bg-info col-12"><legend>Disease</legend></div> + {% for disease in selected_diseases %} + <div class="form-check col-12"> + <label class="form-check-label"> + <input class="form-check-input text-right" type="checkbox" checked value="{{ disease.id }}" onchange="this.form.submit()" name="disease" style="width: auto; margin-right: 1em;"> + {{ disease.name }} + </label> + </div> + {% endfor %} + {% for disease in diseases|slice:":5" %} + <div class="form-check col-12"> + <label class="form-check-label"> + <input class="form-check-input text-right" type="checkbox" value="{{ disease.id }}" onchange="this.form.submit()" name="disease" style="width: auto; margin-right: 1em;"> + {{ disease.name }} + </label> + </div> + {% endfor %} + </fieldset> </form> </div> <main class="col-12 col-md-9 col-xl-10 pl-md-5 bd-content" role="main"> diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index e62f82c272d3c3ff10084083df887b08f93d95c7..c571bcaf8ad56c7ed851b1fd71d9fb2ce4b074b5 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -5,7 +5,7 @@ from django.http import HttpResponseRedirect, Http404 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from formtools.wizard.views import SessionWizardView, NamedUrlSessionWizardView from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, PpiComplexForm, ProteinFormSet,ActivityForm, CompoundForm, CompoundFormSet -from .models import Protein, Bibliography, ProteinDomainComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi +from .models import Protein, Bibliography, ProteinDomainComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi, Disease from .ws import get_pdb_uniprot_mapping @@ -193,8 +193,12 @@ def compound_list(request): # if filtering on "action on PPI" if request.GET.get('ppi'): compounds = compounds.filter(compoundaction__ppi__id__in=request.GET.getlist('ppi')) + if request.GET.get('disease'): + compounds = compounds.filter(compoundaction__ppi__diseases__id__in=request.GET.getlist('disease')) selected_ppis = Ppi.objects.filter(id__in=request.GET.getlist('ppi')) ppis = Ppi.objects.exclude(id__in=request.GET.getlist('ppi')) + selected_diseases = Disease.objects.filter(id__in=request.GET.getlist('disease')) + diseases = Disease.objects.exclude(id__in=request.GET.getlist('disease')) # handle pagination in compounds list paginator = Paginator(compounds, 5) page = request.GET.get('page') @@ -206,4 +210,8 @@ def compound_list(request): except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. compounds = paginator.page(paginator.num_pages) - return render(request, 'compound_list.html', {'compounds': compounds, 'selected_ppis': selected_ppis, 'ppis': ppis}) + return render(request, 'compound_list.html', {'compounds': compounds, + 'selected_ppis': selected_ppis, + 'ppis': ppis, + 'selected_diseases': selected_diseases, + 'diseases': diseases})