Skip to content

Commit c0081ae

Browse files
authored
Merge pull request #6872 from ORCID/8792-qa-affiliations-and-professional-activities-in-the-summary-page-should-be-sorted-like-in-the-public-page
fix: Sort professional activities by end date in summary endpoint
2 parents 90071ed + 4775ba7 commit c0081ae

3 files changed

Lines changed: 31 additions & 14 deletions

File tree

orcid-test/src/main/resources/data/OrgAffiliationEntityData.xml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,7 +1177,7 @@
11771177
start_day="04"
11781178
end_year="2030"
11791179
end_month="01"
1180-
end_day="01"
1180+
end_day="03"
11811181
visibility="PUBLIC"
11821182
client_source_id="APP-5555555555555555"
11831183
display_index="1"
@@ -1195,8 +1195,8 @@
11951195
start_year="2023"
11961196
start_month="01"
11971197
start_day="03"
1198-
end_year="2030"
1199-
end_month="01"
1198+
end_year="2023"
1199+
end_month="05"
12001200
end_day="01"
12011201
visibility="PUBLIC"
12021202
client_source_id="APP-5555555555555555"
@@ -1214,9 +1214,6 @@
12141214
last_modified="2023-01-02 15:31:00.00"
12151215
start_year="2023"
12161216
start_month="01"
1217-
start_day="02"
1218-
end_year="2030"
1219-
end_month="01"
12201217
end_day="01"
12211218
visibility="PUBLIC"
12221219
client_source_id="APP-5555555555555555"
@@ -1234,9 +1231,6 @@
12341231
start_year="2023"
12351232
start_month="01"
12361233
start_day="01"
1237-
end_year="2030"
1238-
end_month="01"
1239-
end_day="01"
12401234
visibility="PUBLIC"
12411235
source_id="0000-0000-0000-0003"
12421236
/>

orcid-web/src/main/java/org/orcid/frontend/web/controllers/PublicRecordController.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import org.orcid.pojo.ajaxForm.AffiliationGroupContainer;
5656
import org.orcid.pojo.ajaxForm.AffiliationGroupForm;
5757
import org.orcid.pojo.ajaxForm.BiographyForm;
58+
import org.orcid.pojo.ajaxForm.Date;
5859
import org.orcid.pojo.ajaxForm.ExternalIdentifiersForm;
5960
import org.orcid.pojo.ajaxForm.KeywordsForm;
6061
import org.orcid.pojo.ajaxForm.NamesForm;
@@ -510,7 +511,29 @@ private Long getLastModifiedTime(String orcid) {
510511
}
511512

512513
private void sortAffiliationsByCreatedDate(List<AffiliationGroupForm> affiliationGroupForms) {
513-
affiliationGroupForms.sort(Comparator.comparing(a -> a.getDefaultAffiliation().getCreatedDate().toJavaDate()));
514+
List<Long> activePutCodesWithOutDate = new ArrayList<>();
515+
516+
affiliationGroupForms.forEach(affiliationGroupForm -> {
517+
if (affiliationGroupForm.getDefaultAffiliation().getEndDate().getYear() == null || "".equals(affiliationGroupForm.getDefaultAffiliation().getEndDate().getYear())) {
518+
activePutCodesWithOutDate.add(affiliationGroupForm.getActivePutCode());
519+
affiliationGroupForm.getDefaultAffiliation().setEndDate(Date.valueOf(new java.util.Date()));
520+
}
521+
});
522+
523+
affiliationGroupForms.sort(Comparator.comparing(a -> a.getDefaultAffiliation().getEndDate().toJavaDate()));
514524
Collections.reverse(affiliationGroupForms);
525+
526+
if (activePutCodesWithOutDate.size() > 0) {
527+
Iterator<Long> i = activePutCodesWithOutDate.iterator();
528+
while (i.hasNext()) {
529+
Long activePutCode = i.next();
530+
affiliationGroupForms.forEach(affiliationGroupForm -> {
531+
if (activePutCode.equals(affiliationGroupForm.getActivePutCode())) {
532+
affiliationGroupForm.getDefaultAffiliation().setEndDate(null);
533+
i.remove();
534+
}
535+
});
536+
}
537+
}
515538
}
516539
}

orcid-web/src/test/java/org/orcid/frontend/web/controllers/PublicRecordControllerTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,12 +224,12 @@ public void testGetRecordSummaryPrivateName() {
224224
}
225225

226226
@Test
227-
public void testGetRecordSummaryProfessionalActivitiesSortedByCreationDate() {
227+
public void testGetRecordSummaryProfessionalActivitiesSortedByEndDate() {
228228
RecordSummary record = publicRecordController.getSummaryRecord("0000-0000-0000-0008");
229229

230230
assertEquals(5, record.getProfessionalActivitiesCount());
231-
assertEquals("2023-01-05", record.getProfessionalActivities().get(0).getStartDate());
232-
assertEquals("2023-01-04", record.getProfessionalActivities().get(1).getStartDate());
233-
assertEquals("2023-01-03", record.getProfessionalActivities().get(2).getStartDate());
231+
assertEquals("2030-01-03", record.getProfessionalActivities().get(0).getEndDate());
232+
assertEquals("2030-01-01", record.getProfessionalActivities().get(1).getEndDate());
233+
assertNull(record.getProfessionalActivities().get(2).getEndDate());
234234
}
235235
}

0 commit comments

Comments
 (0)