Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
ippidb-web
Manage
Activity
Members
Labels
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Operate
Environments
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
iPPIDB
ippidb-web
Commits
0137e3f6
Commit
0137e3f6
authored
6 years ago
by
Hervé MENAGER
Browse files
Options
Downloads
Patches
Plain Diff
refactor cutoff selection code for compounds list
Former-commit-id: 933a7ef7694e2e54e12312dcfdd01910f3f87b33
parent
32100a09
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
ippisite/ippidb/templates/compound_list.html
+1
-1
1 addition, 1 deletion
ippisite/ippidb/templates/compound_list.html
ippisite/ippidb/views.py
+34
-35
34 additions, 35 deletions
ippisite/ippidb/views.py
with
35 additions
and
36 deletions
ippisite/ippidb/templates/compound_list.html
+
1
−
1
View file @
0137e3f6
...
...
@@ -41,7 +41,7 @@
{% include "slider_button.html" with label="Molecular weight" param_name="molecular_weight" %}
</div>
<div
class=
"row"
>
<span
class=
"col-md-6"
><span>
{{ count }} compounds
</span>
<span
class=
"col-md-6"
><span>
{{
compounds.paginator.
count }} compounds
</span>
{% if selected_ppis or selected_diseases or selected_taxonomies or selected_boundcomplexes or molecular_weight != molecular_weight_max %}
<span>
-
filters:
</span>
{% if selected_ppis %}
...
...
This diff is collapsed.
Click to expand it.
ippisite/ippidb/views.py
+
34
−
35
View file @
0137e3f6
...
...
@@ -174,10 +174,22 @@ def biblio_card(request, source, id_source):
'
compound_biblios
'
:
refs
,
'
tad_ppis
'
:
tad_ppis
})
def
process_cutoff_value
(
name
,
context
,
request
):
context
[
name
+
'
_max
'
]
=
Compound
.
objects
.
all
().
aggregate
(
Max
(
name
))[
name
+
'
__max
'
].
to_eng_string
()
context
[
name
+
'
_min
'
]
=
Compound
.
objects
.
all
().
aggregate
(
Min
(
name
))[
name
+
'
__min
'
].
to_eng_string
()
if
request
.
GET
.
get
(
name
):
context
[
name
]
=
request
.
GET
.
get
(
name
)
filter_dict
=
{
name
+
'
__lte
'
:
context
[
name
]}
context
[
'
compounds
'
]
=
context
[
'
compounds
'
].
filter
(
**
filter_dict
)
else
:
context
[
name
]
=
context
[
name
+
'
_max
'
]
return
context
def
compound_list
(
request
):
"""
Display the list of compounds
"""
context
=
{}
compounds
=
Compound
.
objects
.
order_by
(
'
id
'
)
if
request
.
GET
.
get
(
'
family
'
):
compounds
=
compounds
.
filter
(
compoundaction__ppi__family__id__in
=
request
.
GET
.
getlist
(
'
family
'
))
...
...
@@ -190,13 +202,8 @@ def compound_list(request):
compounds
=
compounds
.
filter
(
compoundaction__ppi_id__ppicomplex__complex__protein__organism__id__in
=
request
.
GET
.
getlist
(
'
taxonomy
'
))
if
request
.
GET
.
get
(
'
boundcomplex
'
):
compounds
=
compounds
.
filter
(
compoundaction__ppi_id__ppicomplex__complex__id__in
=
request
.
GET
.
getlist
(
'
boundcomplex
'
))
mw_max
=
Compound
.
objects
.
all
().
aggregate
(
Max
(
'
molecular_weight
'
))[
'
molecular_weight__max
'
].
to_eng_string
()
mw_min
=
Compound
.
objects
.
all
().
aggregate
(
Min
(
'
molecular_weight
'
))[
'
molecular_weight__min
'
].
to_eng_string
()
if
request
.
GET
.
get
(
'
molecular_weight
'
):
molecular_weight
=
request
.
GET
.
get
(
'
molecular_weight
'
)
compounds
=
compounds
.
filter
(
molecular_weight__lte
=
molecular_weight
)
else
:
molecular_weight
=
mw_max
context
[
'
compounds
'
]
=
compounds
context
=
process_cutoff_value
(
'
molecular_weight
'
,
context
,
request
)
selected_families
=
PpiFamily
.
objects
.
filter
(
id__in
=
request
.
GET
.
getlist
(
'
family
'
))
families
=
PpiFamily
.
objects
.
exclude
(
id__in
=
request
.
GET
.
getlist
(
'
family
'
))
selected_ppis
=
Ppi
.
objects
.
filter
(
id__in
=
request
.
GET
.
getlist
(
'
ppi
'
))
...
...
@@ -209,20 +216,19 @@ def compound_list(request):
boundcomplexes
=
ProteinDomainBoundComplex
.
objects
.
exclude
(
id__in
=
request
.
GET
.
getlist
(
'
boundcomplex
'
))
sort_by_option_ids
=
[
'
id
'
,
'
molecular_weight
'
,
'
a_log_p
'
,
'
nb_aromatic_sssr
'
,
'
nb_chiral_centers
'
]
sort_by
=
request
.
GET
.
get
(
'
sort_by
'
,
'
id
'
)
compounds
=
compounds
.
order_by
(
sort_by
)
compounds
=
compounds
.
distinct
()
count
=
compounds
.
count
()
context
[
'
compounds
'
]
=
context
[
'
compounds
'
].
order_by
(
sort_by
)
context
[
'
compounds
'
]
=
context
[
'
compounds
'
].
distinct
()
# handle pagination in compounds list
paginator
=
Paginator
(
compounds
,
12
)
paginator
=
Paginator
(
context
[
'
compounds
'
]
,
12
)
page
=
request
.
GET
.
get
(
'
page
'
)
try
:
compounds
=
paginator
.
page
(
page
)
context
[
'
compounds
'
]
=
paginator
.
page
(
page
)
except
PageNotAnInteger
:
# If page is not an integer, deliver first page.
compounds
=
paginator
.
page
(
1
)
context
[
'
compounds
'
]
=
paginator
.
page
(
1
)
except
EmptyPage
:
# If page is out of range (e.g. 9999), deliver last page of results.
compounds
=
paginator
.
page
(
paginator
.
num_pages
)
context
[
'
compounds
'
]
=
paginator
.
page
(
paginator
.
num_pages
)
display
=
request
.
GET
.
get
(
'
display
'
)
if
display
not
in
[
'
l
'
,
'
t
'
]:
display
=
'
v
'
...
...
@@ -235,27 +241,20 @@ def compound_list(request):
fields
=
request
.
GET
.
getlist
(
'
fields
'
,[
'
id
'
,
'
common_name
'
,
'
molecular_weight
'
,
'
a_log_p
'
,
'
compound_action_pdb_ids
'
,
'
biblio_refs
'
])
if
'
id
'
not
in
fields
:
fields
.
append
(
'
id
'
)
return
render
(
request
,
'
compound_list.html
'
,
{
'
compounds
'
:
compounds
,
'
count
'
:
count
,
'
selected_ppis
'
:
selected_ppis
,
'
ppis
'
:
ppis
,
'
selected_families
'
:
selected_families
,
'
families
'
:
families
,
'
selected_diseases
'
:
selected_diseases
,
'
diseases
'
:
diseases
,
'
selected_taxonomies
'
:
selected_taxonomies
,
'
taxonomies
'
:
taxonomies
,
'
selected_boundcomplexes
'
:
selected_boundcomplexes
,
'
boundcomplexes
'
:
boundcomplexes
,
'
display
'
:
display
,
'
compound_fields
'
:
compound_fields
,
'
fields
'
:
fields
,
'
sort_by
'
:
sort_by
,
'
sort_by_options
'
:
sort_by_options
,
'
molecular_weight_max
'
:
mw_max
,
'
molecular_weight_min
'
:
mw_min
,
'
molecular_weight
'
:
molecular_weight
})
context
[
'
selected_ppis
'
]
=
selected_ppis
context
[
'
ppis
'
]
=
ppis
context
[
'
selected_families
'
]
=
selected_families
context
[
'
families
'
]
=
families
context
[
'
selected_diseases
'
]
=
selected_diseases
context
[
'
diseases
'
]
=
diseases
context
[
'
selected_taxonomies
'
]
=
selected_taxonomies
context
[
'
taxonomies
'
]
=
taxonomies
context
[
'
selected_boundcomplexes
'
]
=
selected_boundcomplexes
context
[
'
boundcomplexes
'
]
=
boundcomplexes
context
[
'
fields
'
]
=
fields
context
[
'
sort_by
'
]
=
sort_by
context
[
'
sort_by_options
'
]
=
sort_by_options
return
render
(
request
,
'
compound_list.html
'
,
context
)
def
compound_card
(
request
,
compound_id
):
try
:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment