Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions api/institutions/serializers.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from urllib.parse import urljoin

from django.db.models import Count, F

from rest_framework import serializers as ser
Expand All @@ -21,6 +23,7 @@
from api.base.serializers import YearmonthField
from api.nodes.serializers import CompoundIDField
from api.base.exceptions import RelationshipPostMakesNoChanges
from website import settings


class InstitutionSerializer(JSONAPISerializer):
Expand Down Expand Up @@ -258,6 +261,7 @@ class Meta:
month_last_login = YearmonthField(read_only=True)
month_last_active = YearmonthField(read_only=True)
account_creation_date = YearmonthField(read_only=True)
link = ser.SerializerMethodField()

public_projects = ser.IntegerField(read_only=True, source='public_project_count')
private_projects = ser.IntegerField(read_only=True, source='private_project_count')
Expand All @@ -277,6 +281,9 @@ class Meta:
)
contacts = ser.SerializerMethodField()

def get_link(self, obj):
return urljoin(settings.DOMAIN, f'{obj.user_id}/')

def get_contacts(self, obj):
user = OSFUser.load(obj._d_['user_id'])
if not user:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import pytest

from api.base.settings.defaults import API_BASE, REPORT_FILENAME_FORMAT
from website import settings
from osf_tests.factories import (
InstitutionFactory,
AuthUserFactory,
Expand Down Expand Up @@ -204,6 +205,7 @@ def test_get_report_formats_csv_tsv(self, app, url, institutional_admin, institu
'contacts',
'department',
'embargoed_registration_count',
'link',
'month_last_active',
'month_last_login',
'orcid_id',
Expand All @@ -213,14 +215,15 @@ def test_get_report_formats_csv_tsv(self, app, url, institutional_admin, institu
'public_registration_count',
'published_preprint_count',
'storage_byte_count',
'user_name'
'user_name',
],
[
'2024-08',
'2018-02',
'[]',
'Center, \t Greatest Ever',
'1',
settings.DOMAIN + 'u_orcomma/',
'2018-02',
'2018-02',
'4444-3333-2222-1111',
Expand All @@ -230,7 +233,7 @@ def test_get_report_formats_csv_tsv(self, app, url, institutional_admin, institu
'2',
'1',
'736662999298',
'Jason Kelce'
'Jason Kelce',
]
]

Expand Down Expand Up @@ -275,6 +278,7 @@ def test_csv_tsv_ignores_pagination(self, app, url, institutional_admin, institu
'[]',
'QBatman',
'1',
settings.DOMAIN + f'u_orcomma_{i}/',
'2018-02',
'2018-02',
f'4444-3333-2222-111{i}',
Expand Down Expand Up @@ -318,6 +322,7 @@ def test_csv_tsv_ignores_pagination(self, app, url, institutional_admin, institu
'contacts',
'department',
'embargoed_registration_count',
'link',
'month_last_active',
'month_last_login',
'orcid_id',
Expand Down Expand Up @@ -375,6 +380,7 @@ def test_get_report_format_table_json(self, app, url, institutional_admin, insti
'contacts': [],
'department': 'Safety "The Wolverine" Weapon X',
'embargoed_registration_count': 1,
'link': settings.DOMAIN + 'u_orcomma/',
'month_last_active': '2018-02',
'month_last_login': '2018-02',
'orcid_id': '4444-3333-2222-1111',
Expand Down