=== 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-09-23 14:24:14 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/RelativePeriods.java 2013-01-18 10:23:47 +0000 @@ -189,6 +189,10 @@ private boolean last5FinancialYears = false; + private boolean last4Weeks = false; + + private boolean last12Weeks = false; + private boolean last52Weeks = false; // ------------------------------------------------------------------------- @@ -220,7 +224,8 @@ boolean monthsThisYear, boolean quartersThisYear, boolean thisYear, boolean monthsLastYear, boolean quartersLastYear, boolean lastYear, boolean last5Years, boolean last12Months, boolean last3Months, boolean last6BiMonths, boolean last4Quarters, boolean last2SixMonths, - boolean thisFinancialYear, boolean lastFinancialYear, boolean last5FinancialYears, boolean last52Weeks ) + boolean thisFinancialYear, boolean lastFinancialYear, boolean last5FinancialYears, + boolean last4Weeks, boolean last12Weeks, boolean last52Weeks ) { this.reportingMonth = reportingMonth; this.reportingBimonth = reportingBimonth; @@ -241,6 +246,8 @@ this.thisFinancialYear = thisFinancialYear; this.lastFinancialYear = lastFinancialYear; this.last5FinancialYears = last5FinancialYears; + this.last4Weeks = last4Weeks; + this.last12Weeks = last12Weeks; this.last52Weeks = last52Weeks; } @@ -272,6 +279,8 @@ this.thisFinancialYear = false; this.lastFinancialYear = false; this.last5FinancialYears = false; + this.last4Weeks = false; + this.last12Weeks = false; this.last52Weeks = false; return this; @@ -501,6 +510,16 @@ periods.addAll( getRollingRelativePeriodList( new FinancialJulyPeriodType(), LAST_5_FINANCIAL_YEARS, date, dynamicNames, format ) ); } + if ( isLast4Weeks() ) + { + periods.addAll( getRollingRelativePeriodList( new WeeklyPeriodType(), WEEKS_LAST_52, date, dynamicNames, format ).subList( 48, 52 ) ); + } + + if ( isLast12Weeks() ) + { + periods.addAll( getRollingRelativePeriodList( new WeeklyPeriodType(), WEEKS_LAST_52, date, dynamicNames, format ).subList( 40, 52 ) ); + } + if ( isLast52Weeks() ) { periods.addAll( getRollingRelativePeriodList( new WeeklyPeriodType(), WEEKS_LAST_52, date, dynamicNames, format ) ); @@ -959,6 +978,30 @@ @JsonProperty @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) + public boolean isLast4Weeks() + { + return last4Weeks; + } + + public void setLast4Weeks( boolean last4Weeks ) + { + this.last4Weeks = last4Weeks; + } + + @JsonProperty + @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) + public boolean isLast12Weeks() + { + return last12Weeks; + } + + public void setLast12Weeks( boolean last12Weeks ) + { + this.last12Weeks = last12Weeks; + } + + @JsonProperty + @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public boolean isLast52Weeks() { return last52Weeks; @@ -1000,6 +1043,8 @@ result = prime * result + (thisFinancialYear ? 1 : 0); result = prime * result + (lastFinancialYear ? 1 : 0); result = prime * result + (last5FinancialYears ? 1 : 0); + result = prime * result + (last4Weeks ? 1 : 0); + result = prime * result + (last12Weeks ? 1 : 0); result = prime * result + (last52Weeks ? 1 : 0); return result; @@ -1120,6 +1165,16 @@ return false; } + if ( !last4Weeks == other.last4Weeks ) + { + return false; + } + + if ( !last12Weeks == other.last12Weeks ) + { + return false; + } + if ( !last52Weeks == other.last52Weeks ) { return false; === 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 2013-01-14 16:10:34 +0000 +++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/RelativePeriodTest.java 2013-01-18 10:23:47 +0000 @@ -60,11 +60,11 @@ @Test public void getRelativePeriods() { - RelativePeriods periods = new RelativePeriods( true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true ); + RelativePeriods periods = new RelativePeriods( true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true ); List relatives = periods.getRelativePeriods( getDate( 2001, 1, 1 ), i18nFormat, false ); - assertEquals( 126, relatives.size() ); + assertEquals( 142, 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 ) ) ) );