SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 500272c3 authored by Jorran de Wit's avatar Jorran de Wit
Browse files

Merge branch 'master' into directrec

parents fc306774 de79fead
No related branches found
No related tags found
No related merge requests found
...@@ -12,7 +12,7 @@ def fellowhip_is_active(fellowship): ...@@ -12,7 +12,7 @@ def fellowhip_is_active(fellowship):
class FellowshipAdmin(admin.ModelAdmin): class FellowshipAdmin(admin.ModelAdmin):
search_fields = ['contributor__last_name', 'contributor__first_name'] search_fields = ['contributor__user__last_name', 'contributor__user__first_name']
list_display = ('__str__', 'guest', fellowhip_is_active, ) list_display = ('__str__', 'guest', fellowhip_is_active, )
list_filter = ('guest',) list_filter = ('guest',)
fellowhip_is_active.boolean = True fellowhip_is_active.boolean = True
......
...@@ -85,8 +85,7 @@ CC_LICENSES = ( ...@@ -85,8 +85,7 @@ CC_LICENSES = (
CC_LICENSES_URI = ( CC_LICENSES_URI = (
(CCBY4, 'https://creativecommons.org/licenses/by/4.0'), (CCBY4, 'https://creativecommons.org/licenses/by/4.0'),
(CCBYSA4, 'https://creativecommons.org/licenses/by-sa/4.0'), (CCBYSA4, 'https://creativecommons.org/licenses/by-sa/4.0'),
(CCBYNC4, 'https://creativecommons.org/licenses/by-nc/4.0'), (CCBYNC4, 'https://creativecommons.org/licenses/by-nc/4.0'))
)
ISSUES_AND_VOLUMES = 'IV' ISSUES_AND_VOLUMES = 'IV'
......
...@@ -42,7 +42,7 @@ Whoosh==2.7.4 # Directly related to Haystack. ...@@ -42,7 +42,7 @@ Whoosh==2.7.4 # Directly related to Haystack.
# Python Utils # Python Utils
ithenticate-api-python==0.7 ithenticate-api-python==0.8
mailchimp3==2.0.15 mailchimp3==2.0.15
python-dateutil==2.6.0 # Doesn't Django have this functionality built-in? -- JdW python-dateutil==2.6.0 # Doesn't Django have this functionality built-in? -- JdW
Pillow==3.4.2 # Latest version is v4.2.1; need to know about usage before upgrade. -- JdW Pillow==3.4.2 # Latest version is v4.2.1; need to know about usage before upgrade. -- JdW
......
...@@ -285,7 +285,10 @@ class PrecookedEmail(models.Model): ...@@ -285,7 +285,10 @@ class PrecookedEmail(models.Model):
###################### ######################
class EditorialCollege(models.Model): class EditorialCollege(models.Model):
'''A SciPost Editorial College for a specific discipline.''' """A SciPost Editorial College for a specific discipline.
DEPRECATED. To be removed.
"""
discipline = models.CharField(max_length=255, unique=True) discipline = models.CharField(max_length=255, unique=True)
def __str__(self): def __str__(self):
...@@ -296,6 +299,8 @@ class EditorialCollegeFellowship(TimeStampedModel): ...@@ -296,6 +299,8 @@ class EditorialCollegeFellowship(TimeStampedModel):
""" """
Editorial College Fellowship connecting Editorial College and Contributors, Editorial College Fellowship connecting Editorial College and Contributors,
maybe with a limiting start/until date. maybe with a limiting start/until date.
DEPRECATED. To be removed.
""" """
contributor = models.ForeignKey('scipost.Contributor', on_delete=models.CASCADE, contributor = models.ForeignKey('scipost.Contributor', on_delete=models.CASCADE,
related_name='+') related_name='+')
......
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
{% endif %} {% endif %}
</p> </p>
{% if fellowship.affiliation %} {% if fellowship.contributor.affiliations.active.first %}
<span class="text-muted">({{fellowship.affiliation}})</span> <span class="text-muted">({{ fellowship.contributor.affiliations.active.first.institution.name }})</span>
{% endif %} {% endif %}
<div> <div>
{% for expertise in fellowship.contributor.expertises %} {% for expertise in fellowship.contributor.expertises %}
......
...@@ -125,22 +125,21 @@ ...@@ -125,22 +125,21 @@
<hr> <hr>
{% for college, codes in object_list %} {% for discipline,fellowships in disciplines.items %}
<h2 class="highlight" id="editorial_college_{{ college|lower }}">Editorial College ({{ college }})</h2> <h2 class="highlight" id="editorial_college_{{ discipline|lower }}">Editorial College ({{ discipline }})</h2>
{% if codes %}
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<a href="#editorial_college_{{ college|lower }}" class="mx-2" data-toggle="toggle-show" data-target="#specializations-{{college|lower}}">Show Fellows by specialization</a> <a href="#editorial_college_{{ discipline|lower }}" class="mx-2" data-toggle="toggle-show" data-target="#specializations-{{discipline|lower}}">Show Fellows by specialization</a>
<a href="#editorial_college_{{ college|lower }}" class="mx-2" style="display: none;" data-toggle="toggle-show" data-target="#specializations-{{college|lower}}">Show full list of Fellows</a> <a href="#editorial_college_{{ discipline|lower }}" class="mx-2" style="display: none;" data-toggle="toggle-show" data-target="#specializations-{{discipline|lower}}">Show full list of Fellows</a>
<div id="specializations-{{college|lower}}" class="card bg-white border-default all-specializations mt-2" style="display: none"> <div id="specializations-{{ discipline|lower }}" class="card bg-white border-default all-specializations mt-2" style="display: none">
<div class="card-body"> <div class="card-body">
<p class="text-muted mt-2">Hover to highlight or click to select</p> <p class="text-muted mt-2">Hover to highlight or click to select</p>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{% with total_count=codes|length %} {% with total_count=fellowships.1|length %}
{% for code in codes %} {% for code in fellowships.1 %}
<div class="specialization" data-specialization="{{code.0|lower}}">{{code.0}} - {{code.1}}</div> <div class="specialization" data-specialization="{{code.0|lower}}">{{code.0}} - {{code.1}}</div>
{% if forloop.counter|is_modulo_one_half:total_count %} {% if forloop.counter|is_modulo_one_half:total_count %}
</div> </div>
...@@ -154,14 +153,13 @@ ...@@ -154,14 +153,13 @@
</div> </div>
</div> </div>
</div> </div>
{% endif %}
<div class="row search-contributors" data-contributors="{{ college|lower }}"> <div class="row search-contributors" data-contributors="{{ discipline|lower }}">
<div class="col-12"> <div class="col-12">
<div class="card-columns"> <div class="card-columns">
{% for fellowship in college.current_fellows %} {% for fellowship in fellowships.0 %}
<div class="card bg-white contributor mb-1"> <div class="card bg-white contributor mb-1">
{% include 'scipost/_contributor_short.html' with contributor=fellowship.contributor %} {% include 'scipost/_contributor_short.html' with fellowship=fellowship %}
</div> </div>
{% endfor %} {% endfor %}
</div> </div>
......
...@@ -30,7 +30,8 @@ from guardian.decorators import permission_required ...@@ -30,7 +30,8 @@ from guardian.decorators import permission_required
from haystack.generic_views import SearchView from haystack.generic_views import SearchView
from .constants import ( from .constants import (
SCIPOST_SUBJECT_AREAS, subject_areas_raw_dict, SciPost_from_addresses_dict, NORMAL_CONTRIBUTOR) SCIPOST_DISCIPLINES, SCIPOST_SUBJECT_AREAS, subject_areas_raw_dict,
SciPost_from_addresses_dict, NORMAL_CONTRIBUTOR)
from .decorators import has_contributor, is_contributor_user from .decorators import has_contributor, is_contributor_user
from .models import ( from .models import (
Contributor, UnavailabilityPeriod, AuthorshipClaim, EditorialCollege, Contributor, UnavailabilityPeriod, AuthorshipClaim, EditorialCollege,
...@@ -43,6 +44,7 @@ from .utils import Utils, EMAIL_FOOTER, SCIPOST_SUMMARY_FOOTER, SCIPOST_SUMMARY_ ...@@ -43,6 +44,7 @@ from .utils import Utils, EMAIL_FOOTER, SCIPOST_SUMMARY_FOOTER, SCIPOST_SUMMARY_
from affiliations.forms import AffiliationsFormset from affiliations.forms import AffiliationsFormset
from colleges.permissions import fellowship_or_admin_required from colleges.permissions import fellowship_or_admin_required
from colleges.models import Fellowship
from commentaries.models import Commentary from commentaries.models import Commentary
from comments.models import Comment from comments.models import Comment
from invitations.constants import STATUS_REGISTERED from invitations.constants import STATUS_REGISTERED
...@@ -1060,34 +1062,26 @@ def Fellow_activity_overview(request): ...@@ -1060,34 +1062,26 @@ def Fellow_activity_overview(request):
class AboutView(ListView): class AboutView(ListView):
"""Basic information page with stream of current regular Fellows."""
model = EditorialCollege model = EditorialCollege
template_name = 'scipost/about.html' template_name = 'scipost/about.html'
queryset = EditorialCollege.objects.prefetch_related( queryset = Fellowship.objects.none()
Prefetch('fellowships',
queryset=EditorialCollegeFellowship.objects.active().select_related(
'contributor__user').order_by('contributor__user__last_name'),
to_attr='current_fellows'))
def get_context_data(self, *args, **kwargs): def get_context_data(self, *args, **kwargs):
"""Save Fellowships per discipline to the context."""
context = super().get_context_data(*args, **kwargs) context = super().get_context_data(*args, **kwargs)
object_list = [] context['disciplines'] = {}
for college in context['object_list']: for discipline in SCIPOST_DISCIPLINES:
try: qs = Fellowship.objects.active().regular().filter(
spec_list = subject_areas_raw_dict[str(college)] contributor__discipline=discipline[0])
except KeyError: if qs:
spec_list = None context['disciplines'][discipline[1]] = (qs, subject_areas_raw_dict[discipline[1]])
object_list.append((
college,
spec_list,
))
context['object_list'] = object_list
return context return context
def csrf_failure(request, reason=""): def csrf_failure(request, reason=''):
""" """CSRF Failure page with an admin mailing action."""
Custom CSRF Failure. Informing admins via email as well.
"""
# Filter out privacy data # Filter out privacy data
post_data = {} post_data = {}
for key in request.POST.keys(): for key in request.POST.keys():
......
...@@ -53,8 +53,8 @@ class SubmissionAdminForm(forms.ModelForm): ...@@ -53,8 +53,8 @@ class SubmissionAdminForm(forms.ModelForm):
class SubmissionAdmin(GuardedModelAdmin): class SubmissionAdmin(GuardedModelAdmin):
date_hierarchy = 'submission_date' date_hierarchy = 'submission_date'
form = SubmissionAdminForm form = SubmissionAdminForm
list_display = ('title', 'author_list', 'status', 'submission_date', 'publication',) list_display = ('title', 'author_list', 'status', 'submission_date', 'publication')
list_filter = ('status', 'discipline', 'submission_type',) list_filter = ('status', 'discipline', 'submission_type', 'submitted_to_journal')
search_fields = ['submitted_by__user__last_name', 'title', 'author_list', 'abstract'] search_fields = ['submitted_by__user__last_name', 'title', 'author_list', 'abstract']
raw_id_fields = ('editor_in_charge', 'submitted_by') raw_id_fields = ('editor_in_charge', 'submitted_by')
readonly_fields = ('arxiv_identifier_w_vn_nr', 'publication') readonly_fields = ('arxiv_identifier_w_vn_nr', 'publication')
......
{ {
"subject": "SciPost: refereeing and registration invitation reminder", "subject": "SciPost: refereeing and registration invitation reminder",
"to_address_bup": "J.S.Caux@uva.nl", "to_address_bup": "email_address",
"bcc_to_bup": "J.S.Caux@uva.nl", "bcc_to_bup": "invited_by.email,admin@scipost.org",
"to_address": "email_address", "to_address": "J.S.Caux@uva.nl",
"bcc_to": "invited_by.email,admin@scipost.org", "bcc_to": "J.S.Caux@uva.nl",
"from_address_name": "SciPost Refereeing", "from_address_name": "SciPost Refereeing",
"from_address": "refereeing@scipost.org", "from_address": "refereeing@scipost.org",
"context_object": "invitation" "context_object": "invitation"
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
"subject": "SciPost: refereeing and registration invitation reminder", "subject": "SciPost: refereeing and registration invitation reminder",
"to_address_bup": "email_address", "to_address_bup": "email_address",
"bcc_to_bup": "invited_by.email,admin@scipost.org", "bcc_to_bup": "invited_by.email,admin@scipost.org",
"to_address": "email_address", "to_address": "J.S.Caux@uva.nl",
"bcc_to": "invited_by.email,admin@scipost.org", "bcc_to": "admin@scipost.org",
"from_address_name": "SciPost Refereeing", "from_address_name": "SciPost Refereeing",
"from_address": "refereeing@scipost.org", "from_address": "refereeing@scipost.org",
"context_object": "invitation" "context_object": "invitation"
......
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