Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@
import org.hisp.dhis.common.MetadataItem;
import org.hisp.dhis.common.QueryFilter;
import org.hisp.dhis.common.QueryItem;
import org.hisp.dhis.i18n.I18nFormat;
import org.hisp.dhis.i18n.I18nManager;
import org.hisp.dhis.option.Option;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.PeriodDimension;
Expand All @@ -105,6 +107,8 @@ public class MetadataItemsHandler {

private final OrganisationUnitResolver organisationUnitResolver;

private final I18nManager i18nManager;

/**
* Adds meta-data values to the given grid based on the given data query parameters.
*
Expand Down Expand Up @@ -498,6 +502,13 @@ private void addPeriodDimensionMetadataValue(
return;
}

I18nFormat format = i18nManager.getI18nFormat();
if (format != null) {
String formattedName = format.formatPeriod(periodDimension.getPeriod());
periodDimension.setName(formattedName);
periodDimension.setShortName(formattedName);
}

metadataItemMap.put(
periodDimensionValue,
new MetadataItem(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ void shouldAcceptCreatedAndCompletedHeaders() {
null,
securityManager(params),
eventQueryValidator(),
new MetadataItemsHandler(null, null, null),
new MetadataItemsHandler(null, null, null, null),
new SchemeIdHandler(null),
sqlBuilder());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,14 @@
import org.hisp.dhis.common.QueryOperator;
import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.i18n.I18nFormat;
import org.hisp.dhis.i18n.I18nManager;
import org.hisp.dhis.legend.Legend;
import org.hisp.dhis.legend.LegendSet;
import org.hisp.dhis.option.Option;
import org.hisp.dhis.option.OptionSet;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.period.PeriodDimension;
import org.hisp.dhis.program.EnrollmentStatus;
import org.hisp.dhis.program.Program;
Expand Down Expand Up @@ -115,6 +118,10 @@ class MetadataItemsHandlerTest {

@Mock private OrganisationUnitResolver organisationUnitResolver;

@Mock private I18nManager i18nManager;

@Mock private I18nFormat i18nFormat;

@InjectMocks private MetadataItemsHandler metadataItemsHandler;

private OrganisationUnit orgUnitA;
Expand Down Expand Up @@ -1441,6 +1448,8 @@ void shouldIncludeDimensionValuesForDateItems() {
.build();

when(userService.getUserByUsername(anyString())).thenReturn(null);
when(i18nManager.getI18nFormat()).thenReturn(i18nFormat);
when(i18nFormat.formatPeriod(any(Period.class))).thenReturn("May 2022");

// When
metadataItemsHandler.addMetadata(grid, params, List.of());
Expand All @@ -1458,6 +1467,13 @@ void shouldIncludeDimensionValuesForDateItems() {
List.of("202205"),
dimensions.get("A03MvHHogjR.eventdate"),
"Dimension values should contain the period identifier '202205'");

@SuppressWarnings("unchecked")
Map<String, Object> items = (Map<String, Object>) grid.getMetaData().get(ITEMS.getKey());
assertNotNull(items);
MetadataItem periodItem = (MetadataItem) items.get("202205");
assertNotNull(periodItem);
assertEquals("May 2022", periodItem.getName());
}

@Test
Expand Down Expand Up @@ -1491,6 +1507,8 @@ void shouldAddPeriodMetadataItemsForDateDimensionValues() {
.build();

when(userService.getUserByUsername(anyString())).thenReturn(null);
when(i18nManager.getI18nFormat()).thenReturn(i18nFormat);
when(i18nFormat.formatPeriod(any(Period.class))).thenReturn("May 2022");

// When
metadataItemsHandler.addMetadata(grid, params, List.of());
Expand All @@ -1504,6 +1522,7 @@ void shouldAddPeriodMetadataItemsForDateDimensionValues() {
items.containsKey("202205"), "Items should contain period metadata entry for '202205'");
MetadataItem periodItem = (MetadataItem) items.get("202205");
assertNotNull(periodItem.getName(), "Period metadata item should have a name");
assertEquals("May 2022", periodItem.getName());
}

@Test
Expand Down
Loading
Loading