SciPost Code Repository
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
SciPost
Manage
Activity
Members
Labels
Plan
Issues
118
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SciPost
SciPost
Commits
c73140f4
Commit
c73140f4
authored
5 years ago
by
Jean-Sébastien Caux
Browse files
Options
Downloads
Patches
Plain Diff
Remove Funder and Grant lookups
parent
8beab653
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
funders/forms.py
+10
-4
10 additions, 4 deletions
funders/forms.py
funders/urls.py
+11
-0
11 additions, 0 deletions
funders/urls.py
funders/views.py
+39
-0
39 additions, 0 deletions
funders/views.py
journals/templatetags/lookup.py
+0
-51
0 additions, 51 deletions
journals/templatetags/lookup.py
with
60 additions
and
55 deletions
funders/forms.py
+
10
−
4
View file @
c73140f4
...
...
@@ -6,13 +6,14 @@ from django import forms
from
.models
import
Funder
,
Grant
from
ajax_select.fields
import
AutoCompleteSelectField
from
dal
import
autocomplete
from
scipost.forms
import
HttpRefererFormMixin
from
scipost.models
import
Contributor
from
organizations.models
import
Organization
from
.models
import
Funder
,
Grant
class
FunderRegistrySearchForm
(
forms
.
Form
):
name
=
forms
.
CharField
(
max_length
=
128
)
...
...
@@ -25,8 +26,10 @@ class FunderForm(forms.ModelForm):
class
FunderSelectForm
(
forms
.
Form
):
funder
=
AutoCompleteSelectField
(
'
funder_lookup
'
)
funder
=
forms
.
ModelChoiceField
(
queryset
=
Funder
.
objects
.
all
(),
widget
=
autocomplete
.
ModelSelect2
(
url
=
'
/funders/funder-autocomplete
'
)
)
class
FunderOrganizationSelectForm
(
forms
.
ModelForm
):
organization
=
forms
.
ModelChoiceField
(
...
...
@@ -52,4 +55,7 @@ class GrantForm(HttpRefererFormMixin, forms.ModelForm):
class
GrantSelectForm
(
forms
.
Form
):
grant
=
AutoCompleteSelectField
(
'
grant_lookup
'
)
grant
=
forms
.
ModelChoiceField
(
queryset
=
Grant
.
objects
.
all
(),
widget
=
autocomplete
.
ModelSelect2
(
url
=
'
/funders/grant-autocomplete
'
)
)
This diff is collapsed.
Click to expand it.
funders/urls.py
+
11
−
0
View file @
c73140f4
...
...
@@ -3,12 +3,23 @@ __license__ = "AGPL v3"
from
django.conf.urls
import
url
from
django.urls
import
path
from
.
import
views
app_name
=
'
funders
'
urlpatterns
=
[
path
(
'
funder-autocomplete
'
,
views
.
FunderAutocompleteView
.
as_view
(),
name
=
'
funder-autocomplete
'
),
path
(
'
grant-autocomplete
'
,
views
.
GrantAutocompleteView
.
as_view
(),
name
=
'
grant-autocomplete
'
),
url
(
r
'
^$
'
,
views
.
funders
,
name
=
'
funders
'
),
url
(
r
'
^dashboard$
'
,
views
.
funders_dashboard
,
name
=
'
funders_dashboard
'
),
url
(
r
'
^query_crossref_for_funder$
'
,
views
.
query_crossref_for_funder
,
...
...
This diff is collapsed.
Click to expand it.
funders/views.py
+
39
−
0
View file @
c73140f4
...
...
@@ -9,16 +9,55 @@ from django.contrib import messages
from
django.contrib.auth.decorators
import
permission_required
from
django.urls
import
reverse
,
reverse_lazy
from
django.db
import
transaction
from
django.db.models
import
Q
from
django.utils.decorators
import
method_decorator
from
django.views.generic.edit
import
CreateView
,
UpdateView
from
django.shortcuts
import
get_object_or_404
,
render
,
redirect
from
dal
import
autocomplete
from
.models
import
Funder
,
Grant
from
.forms
import
FunderRegistrySearchForm
,
FunderForm
,
FunderOrganizationSelectForm
,
GrantForm
from
scipost.mixins
import
PermissionsMixin
class
FunderAutocompleteView
(
autocomplete
.
Select2QuerySetView
):
"""
View to feed the Select2 widget.
"""
def
get_queryset
(
self
):
if
not
self
.
request
.
user
.
has_perm
(
'
scipost.can_draft_publication
'
):
return
None
qs
=
Funder
.
objects
.
all
()
if
self
.
q
:
qs
=
qs
.
filter
(
Q
(
name__icontains
=
self
.
q
)
|
Q
(
acronym__icontains
=
self
.
q
)
|
Q
(
identifier__icontains
=
self
.
q
)
|
Q
(
organization__name__icontains
=
self
.
q
)
|
Q
(
organization__name_original__icontains
=
self
.
q
)
|
Q
(
organization__acronym__icontains
=
self
.
q
)).
order_by
(
'
name
'
)[:
10
]
return
qs
class
GrantAutocompleteView
(
autocomplete
.
Select2QuerySetView
):
"""
View to feed the Select2 widget.
"""
def
get_queryset
(
self
):
if
not
self
.
request
.
user
.
has_perm
(
'
scipost.can_draft_publication
'
):
return
None
qs
=
Funder
.
objects
.
all
()
if
self
.
q
:
qs
=
qs
.
filter
(
Q
(
funder__name__icontains
=
self
.
q
)
|
Q
(
funder__acronym__icontains
=
self
.
q
)
|
Q
(
number__icontains
=
self
.
q
)
|
Q
(
recipient_name__icontains
=
self
.
q
)
|
Q
(
recipient__user__last_name__icontains
=
self
.
q
)
|
Q
(
recipient__user__first_name__icontains
=
self
.
q
)
|
Q
(
further_details__icontains
=
self
.
q
)).
order_by
(
'
funder__name
'
,
'
number
'
)[:
10
]
return
qs
@permission_required
(
'
scipost.can_view_all_funding_info
'
,
raise_exception
=
True
)
def
funders_dashboard
(
request
):
"""
Administration of Funders and Grants.
"""
...
...
This diff is collapsed.
Click to expand it.
journals/templatetags/lookup.py
+
0
−
51
View file @
c73140f4
...
...
@@ -40,54 +40,3 @@ class PublicationLookup(LookupChannel):
"""
if
not
request
.
user
.
has_perm
(
'
scipost.can_create_registration_invitations
'
):
raise
PermissionDenied
@register
(
'
funder_lookup
'
)
class
FunderLookup
(
LookupChannel
):
model
=
Funder
def
get_query
(
self
,
q
,
request
):
return
self
.
model
.
objects
.
filter
(
Q
(
name__icontains
=
q
)
|
Q
(
acronym__icontains
=
q
)
|
Q
(
identifier__icontains
=
q
)
|
Q
(
organization__name__icontains
=
q
)
|
Q
(
organization__name_original__icontains
=
q
)
|
Q
(
organization__acronym__icontains
=
q
)).
order_by
(
'
name
'
)[:
10
]
def
format_item_display
(
self
,
item
):
"""
(HTML) format item for displaying item in the selected deck area.
"""
return
u
"
<span class=
'
auto_lookup_display
'
>%s</span>
"
%
str
(
item
)
def
format_match
(
self
,
item
):
"""
(HTML) Format item for displaying in the dropdown.
"""
return
str
(
item
)
def
check_auth
(
self
,
request
):
"""
Check for required permissions.
"""
if
not
request
.
user
.
has_perm
(
'
scipost.can_draft_publication
'
):
raise
PermissionDenied
@register
(
'
grant_lookup
'
)
class
GrantLookup
(
LookupChannel
):
model
=
Grant
def
get_query
(
self
,
q
,
request
):
return
(
self
.
model
.
objects
.
filter
(
Q
(
funder__name__icontains
=
q
)
|
Q
(
funder__acronym__icontains
=
q
)
|
Q
(
number__icontains
=
q
)
|
Q
(
recipient_name__icontains
=
q
)
|
Q
(
recipient__user__last_name__icontains
=
q
)
|
Q
(
recipient__user__first_name__icontains
=
q
)
|
Q
(
further_details__icontains
=
q
)).
order_by
(
'
funder__name
'
,
'
number
'
)[:
10
])
def
format_item_display
(
self
,
item
):
"""
(HTML) format item for displaying item in the selected deck area.
"""
return
u
"
<span class=
'
auto_lookup_display
'
>%s</span>
"
%
str
(
item
)
def
format_match
(
self
,
item
):
"""
(HTML) Format item for displaying in the dropdown.
"""
return
str
(
item
)
def
check_auth
(
self
,
request
):
"""
Check for required permissions.
"""
if
not
request
.
user
.
has_perm
(
'
scipost.can_draft_publication
'
):
raise
PermissionDenied
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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