diff --git a/organizations/models.py b/organizations/models.py index d6c211f232a2933462e5d1672f45a05f13de1979..6a7d9355c054b7f05f7d84e04246254a9593ebe8 100644 --- a/organizations/models.py +++ b/organizations/models.py @@ -105,6 +105,17 @@ class Organization(models.Model): self.cf_nr_associated_publications = self.count_publications() self.save() + def pubfraction_for_publication(self, doi_label): + """ + Return the organization's pubfraction for this publication, or the string 'Not defined'. + """ + try: + return OrgPubFraction.objects.get( + organization=self, + publication__doi_label=doi_label).fraction + except: + return 'Not yet defined' + def pubfractions_in_year(self, year): """ Returns the sum of pubfractions for the given year. diff --git a/organizations/templates/organizations/_organization_card.html b/organizations/templates/organizations/_organization_card.html index 0c97c90e43796024053463920dd31cbd12fef336..ae66514629aa3616e254b024f48e427a9cd37177 100644 --- a/organizations/templates/organizations/_organization_card.html +++ b/organizations/templates/organizations/_organization_card.html @@ -60,6 +60,9 @@ $(document).ready(function($) { <a href="{{ publication.get_absolute_url }}">{{ publication.title }}</a> <br>by {{ publication.author_list }}, <br>{{ publication.citation }} + {% if is_scipost_admin %} + <br><span class="text-muted small">Pubfraction: {{ org|pubfraction_for_publication:publication }}</span> + {% endif %} </li> {% endif %} {% endfor %} diff --git a/organizations/templatetags/organizations_extras.py b/organizations/templatetags/organizations_extras.py index 80a183688a112db69594742ba6b3e35d52817ccf..513ec33f3a1a4491fb71960d24662a693196a684 100644 --- a/organizations/templatetags/organizations_extras.py +++ b/organizations/templatetags/organizations_extras.py @@ -7,6 +7,10 @@ from django import template register = template.Library() +@register.filter(name='pubfraction_for_publication') +def pubfraction_for_publication(org, publication): + return org.pubfraction_for_publication(publication.doi_label) + @register.filter(name='pubfractions_in_year') def pubfractions_in_year(org, year): return org.pubfractions_in_year(int(year))