dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #18464
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 7791: Implemented rewind period function for png charts
------------------------------------------------------------
revno: 7791
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2012-07-31 20:18:33 +0200
message:
Implemented rewind period function for png charts
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/RelativePeriods.java
dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/RelativePeriodTest.java
dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/RelativePeriods.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/RelativePeriods.java 2012-07-31 17:51:33 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/RelativePeriods.java 2012-07-31 18:18:33 +0000
@@ -342,14 +342,6 @@
}
/**
- * Gets a list of Periods rewinded from current date.
- */
- public List<Period> getRewindedRelativePeriods()
- {
- return getRewindedRelativePeriods( null );
- }
-
- /**
* Gets the PeriodType with the highest frequency from a list of Periods.
*/
public PeriodType getHighestFrequencyPeriodType( List<Period> periods )
@@ -377,26 +369,26 @@
/**
* Gets a list of Periods rewinded from current date.
*/
- public List<Period> getRewindedRelativePeriods( Integer rewindedPeriods )
+ public List<Period> getRewindedRelativePeriods()
+ {
+ return getRewindedRelativePeriods( null, null, null, false );
+ }
+
+ /**
+ * Gets a list of Periods rewinded from current date.
+ */
+ public List<Period> getRewindedRelativePeriods( Integer rewindedPeriods, Date date, I18nFormat format, boolean dynamicNames )
{
List<Period> periods = getRelativePeriods();
PeriodType periodType = getHighestFrequencyPeriodType( periods );
- Date rewindedDate = periodType.getRewindedDate( null, rewindedPeriods );
+ Date rewindedDate = periodType.getRewindedDate( date, rewindedPeriods );
rewindedDate = subtractMonth( 1, rewindedDate );
- return getRelativePeriods( rewindedDate, null, false );
+ return getRelativePeriods( rewindedDate, format, dynamicNames );
}
/**
- * Gets a list of Periods based on the given input and the state of this
- * RelativePeriods. The current date is set to todays date minus one month.
- *
- * @param format the i18n format.
- * @return a list of relative Periods.
- */
-
- /**
* Gets a list of Periods relative to current date.
*/
public List<Period> getRelativePeriods()
=== modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/RelativePeriodTest.java'
--- dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/RelativePeriodTest.java 2012-07-30 13:09:47 +0000
+++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/RelativePeriodTest.java 2012-07-31 18:18:33 +0000
@@ -63,7 +63,8 @@
RelativePeriods periods = new RelativePeriods( true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true );
List<Period> relatives = periods.getRelativePeriods( getDate( 2001, 1, 1 ), i18nFormat, false );
-
+
+ assertEquals( 126, relatives.size() );
assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 1, 1 ), getDate( 2001, 1, 31 ) ) ) );
assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 2, 1 ), getDate( 2001, 2, 28 ) ) ) );
assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 3, 1 ), getDate( 2001, 3, 31 ) ) ) );
@@ -105,7 +106,7 @@
assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 9, 1 ), getDate( 2000, 9, 30 ) ) ) );
assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 10, 1 ), getDate( 2000, 10, 31 ) ) ) );
assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 11, 1 ), getDate( 2000, 11, 30 ) ) ) );
- assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 12, 1 ), getDate( 2000, 12, 31 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 12, 1 ), getDate( 2000, 12, 31 ) ) ) );
assertTrue( relatives.contains( new Period( new QuarterlyPeriodType(), getDate( 2000, 1, 1 ), getDate( 2000, 3, 31 ) ) ) );
assertTrue( relatives.contains( new Period( new QuarterlyPeriodType(), getDate( 2000, 4, 1 ), getDate( 2000, 6, 30 ) ) ) );
@@ -130,8 +131,28 @@
assertTrue( relatives.contains( new Period( new WeeklyPeriodType(), getDate( 2000, 1, 17 ), getDate( 2000, 1, 23 ) ) ) );
assertTrue( relatives.contains( new Period( new WeeklyPeriodType(), getDate( 2000, 1, 24 ), getDate( 2000, 1, 30 ) ) ) );
assertTrue( relatives.contains( new Period( new WeeklyPeriodType(), getDate( 2001, 1, 1 ), getDate( 2001, 1, 7 ) ) ) );
-
- assertEquals( 126, relatives.size() );
+ }
+
+ @Test
+ public void testGetRewindedRelativePeriods()
+ {
+ RelativePeriods periods = new RelativePeriods().setLast12Months( true );
+
+ List<Period> relatives = periods.getRewindedRelativePeriods( 1, getDate( 2001, 7, 15 ), i18nFormat, false );
+
+ assertEquals( 12, relatives.size() );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 6, 1 ), getDate( 2000, 6, 30 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 7, 1 ), getDate( 2000, 7, 31 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 8, 1 ), getDate( 2000, 8, 31 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 9, 1 ), getDate( 2000, 9, 30 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 10, 1 ), getDate( 2000, 10, 31 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 11, 1 ), getDate( 2000, 11, 30 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2000, 12, 1 ), getDate( 2000, 12, 31 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 1, 1 ), getDate( 2001, 1, 31 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 2, 1 ), getDate( 2001, 2, 28 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 3, 1 ), getDate( 2001, 3, 31 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 4, 1 ), getDate( 2001, 4, 30 ) ) ) );
+ assertTrue( relatives.contains( new Period( new MonthlyPeriodType(), getDate( 2001, 5, 1 ), getDate( 2001, 5, 31 ) ) ) );
}
@Test
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2012-07-12 09:22:36 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2012-07-31 18:18:33 +0000
@@ -190,8 +190,11 @@
{
if ( chart.getRelatives() != null )
{
- chart.setRelativePeriods( periodService.reloadPeriods( chart.getRelatives().getRelativePeriods(
- date, format, true ) ) );
+ List<Period> periods = chart.isRewindRelativePeriods() ?
+ chart.getRelatives().getRewindedRelativePeriods( 1, date, format, true ) :
+ chart.getRelatives().getRelativePeriods( date, format, true );
+
+ chart.setRelativePeriods( periodService.reloadPeriods( periods ) );
}
User user = currentUserService.getCurrentUser();