SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 82aacaf8 authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Add pubfraction info in Organizations list

parent f0e00afe
No related branches found
No related tags found
No related merge requests found
......@@ -10,6 +10,7 @@ import string
from django.contrib.auth.models import User
from django.contrib.postgres.fields import JSONField
from django.db import models
from django.db.models import Sum
from django.utils import timezone
from django.urls import reverse
......@@ -32,7 +33,7 @@ from .managers import (
MembershipAgreementManager, ProspectivePartnerManager, PartnerManager, ContactRequestManager,
PartnersAttachmentManager)
from journals.models import Publication, PublicationAuthorsTable
from journals.models import Publication, PublicationAuthorsTable, OrgPubFraction
from scipost.constants import TITLE_CHOICES
from scipost.fields import ChoiceArrayField
......@@ -131,6 +132,15 @@ class Organization(models.Model):
self.cf_nr_associated_publications = self.count_publications()
self.save()
def pubfractions_in_year(self, year):
"""
Returns the sum of pubfractions for the given year.
"""
return OrgPubFraction.objects.filter(
organization=self,
publication__publication_date__year=year
).aggregate(Sum('fraction'))['fraction__sum']
def get_contributor_authors(self):
return self.publicationauthorstable_set.select_related(
'contributor').order_by('contributor__user__last_name')
......
{% load bootstrap %}
{% load partners_extras %}
<div class="card-body">
<div class="row">
......@@ -11,7 +13,7 @@
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link active" id="publications-{{ org.id }}-tab" data-toggle="tab" href="#publications-{{ org.id }}" role="tab" aria-controls="publications-{{ org.id }}" aria-selected="true">Associated Publications</a>
<a class="nav-link active" id="publications-{{ org.id }}-tab" data-toggle="tab" href="#publications-{{ org.id }}" role="tab" aria-controls="publications-{{ org.id }}" aria-selected="true">Publications & PubFractions</a>
</li>
<li class="nav-item">
<a class="nav-link" id="authors-{{ org.id }}-tab" data-toggle="tab" href="#authors-{{ org.id }}" role="tab" aria-controls="authors-{{ org.id }}" aria-selected="true">Associated Authors</a>
......@@ -40,15 +42,20 @@
<div class="tab-pane show active pt-4" id="publications-{{ org.id }}" role="tabpanel" aria-labelledby="publications-{{ org.id }}-tab">
<h3>Publications associated to this Organization:</h3>
{% for pubyear in pubyears %}
<h4>{{ pubyear }} <span class="text-muted">(total pubfractions: {{ org|pubfractions_in_year:pubyear }})</span></h4>
<ul>
{% for publication in org.get_publications %}
{% if publication.publication_date|date:'Y'|add:"0" == pubyear %}
<li>
<a href="{{ publication.get_absolute_url }}">{{ publication.title }}</a>
<br>by {{ publication.author_list }},
<br>{{ publication.citation }}
</li>
{% endif %}
{% endfor %}
</ul>
{% endfor %}
</div>
<div class="tab-pane pt-4" id="authors-{{ org.id }}" role="tabpanel" aria-labelledby="authors-{{ org.id }}-tab">
......
......@@ -33,3 +33,8 @@ def partnerstatuscolor(status):
elif status == PROSPECTIVE_PARTNER_FOLLOWED_UP:
color = '#d2e3f6'
return color
@register.filter(name='pubfractions_in_year')
def pubfractions_in_year(org, year):
return org.pubfractions_in_year(int(year))
......@@ -84,6 +84,7 @@ class OrganizationListView(ListView):
context = super().get_context_data(*args, **kwargs)
if self.request.user.has_perm('scipost.can_manage_organizations'):
context['nr_funders_wo_organization'] = Funder.objects.filter(organization=None).count()
context['pubyears'] = range(int(timezone.now().strftime('%Y')), 2015, -1)
return context
def get_queryset(self):
......
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