Skip to content

Commit

Permalink
Merge pull request #1602 from ResearchHub/author/struct
Browse files Browse the repository at this point in the history
[Author] 2 yr mean citedness; author institution
  • Loading branch information
yattias committed May 26, 2024
2 parents 827b0e6 + b710603 commit c6403aa
Show file tree
Hide file tree
Showing 35 changed files with 4,522 additions and 1,992 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Generated by Django 4.1 on 2024-05-20 19:24

import django.contrib.postgres.fields
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("institution", "0004_institution_openalex_created_date_and_more"),
]

operations = [
migrations.AlterField(
model_name="institution",
name="associated_institutions",
field=django.contrib.postgres.fields.ArrayField(
base_field=models.CharField(blank=True, max_length=500, null=True),
size=None,
),
),
migrations.AlterField(
model_name="institution",
name="h_index",
field=models.IntegerField(blank=True, default=0, null=True),
),
migrations.AlterField(
model_name="institution",
name="i10_index",
field=models.IntegerField(blank=True, default=0, null=True),
),
migrations.AlterField(
model_name="institution",
name="two_year_mean_citedness",
field=models.FloatField(blank=True, default=0, null=True),
),
migrations.AlterField(
model_name="institution",
name="works_count",
field=models.IntegerField(blank=True, default=0, null=True),
),
]
17 changes: 9 additions & 8 deletions src/institution/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,20 +89,20 @@ class Institution(DefaultModel):
)

# https://docs.openalex.org/api-entities/institutions/institution-object#2yr_mean_citedness
two_year_mean_citedness = models.FloatField(blank=False, null=False, default=0)
two_year_mean_citedness = models.FloatField(blank=True, null=True, default=0)

# https://docs.openalex.org/api-entities/institutions/institution-object#summary_stats
h_index = models.IntegerField(blank=False, null=False, default=0)
h_index = models.IntegerField(blank=True, null=True, default=0)

# https://docs.openalex.org/api-entities/institutions/institution-object#summary_stats
i10_index = models.IntegerField(blank=False, null=False, default=0)
i10_index = models.IntegerField(blank=True, null=True, default=0)

# https://docs.openalex.org/api-entities/institutions/institution-object#works_count
works_count = models.IntegerField(blank=False, null=False, default=0)
works_count = models.IntegerField(blank=True, null=True, default=0)

# https://docs.openalex.org/api-entities/institutions/institution-object#associated_institutions
associated_institutions = ArrayField(
models.CharField(blank=False, null=False, max_length=500)
models.CharField(blank=True, null=True, max_length=500)
)

# https://docs.openalex.org/api-entities/institutions/institution-object#display_name_alternatives
Expand Down Expand Up @@ -164,18 +164,19 @@ def upsert_from_openalex(oa_institution):
"works_count": oa_institution.get("works_count"),
"associated_institutions": list(
map(
lambda obj: obj["id"], oa_institution.get("associated_institutions")
lambda obj: obj["id"],
oa_institution.get("associated_institutions", []),
)
),
"display_name_alternatives": oa_institution.get(
"display_name_alternatives"
"display_name_alternatives", []
),
}

if needs_update:
for key, value in mapped.items():
setattr(institution, key, value)
institution.save()
else:
elif not institution:
institution = Institution.objects.create(**mapped)
return institution
12 changes: 12 additions & 0 deletions src/institution/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from rest_framework.serializers import SerializerMethodField

from institution.models import Institution
from researchhub.serializers import DynamicModelFieldSerializer


class DynamicInstitutionSerializer(DynamicModelFieldSerializer):
institutions = SerializerMethodField()

class Meta:
model = Institution
fields = "__all__"

0 comments on commit c6403aa

Please sign in to comment.