dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #00296
Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 94: dhis-web-dataentry: fixed bug lp:344752 unable to select current quarterly period in dataentryscreen
Very quick fix... Thanks Lars for the good work!! We r still testing.
---
Regards,
Saptarshi PURKAYASTHA
Director R & D, HISP India
Health Information Systems Programme
My Tech Blog: http://sunnytalkstech.blogspot.com
You Live by CHOICE, Not by CHANCE
2009/3/20 <noreply@xxxxxxxxxxxxx>
> ------------------------------------------------------------
> revno: 94
> committer: Lars Helge Oeverland larshelge@xxxxxxxxx
> branch nick: trunk
> timestamp: Fri 2009-03-20 11:30:30 +0100
> message:
> dhis-web-dataentry: fixed bug lp:344752 unable to select current quarterly
> period in dataentryscreen
> modified:
>
> dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/state/DefaultSelectedStateManager.java
>
> dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/state/DefaultSelectedStateManager.java'
> ---
> dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/state/DefaultSelectedStateManager.java
> 2009-03-19 17:02:24 +0000
> +++
> dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/state/DefaultSelectedStateManager.java
> 2009-03-20 10:30:30 +0000
> @@ -28,7 +28,6 @@
> */
>
> import java.util.ArrayList;
> -import java.util.Collection;
> import java.util.Date;
> import java.util.HashSet;
> import java.util.Iterator;
> @@ -44,7 +43,6 @@
> import org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager;
> import org.hisp.dhis.period.CalendarPeriodType;
> import org.hisp.dhis.period.Period;
> -import org.hisp.dhis.period.PeriodService;
> import org.hisp.dhis.period.PeriodType;
> import org.hisp.dhis.user.CurrentUserService;
> import org.hisp.dhis.user.UserAuthorityGroup;
> @@ -61,7 +59,7 @@
> public class DefaultSelectedStateManager
> implements SelectedStateManager
> {
> - private static final Log LOG = LogFactory.getLog(
> DefaultSelectedStateManager.class );
> + private static final Log log = LogFactory.getLog(
> DefaultSelectedStateManager.class );
>
> public static final String SESSION_KEY_SELECTED_DATASET_ID =
> "data_entry_selected_dataset_id";
>
> @@ -73,13 +71,6 @@
> // Dependencies
> //
> -------------------------------------------------------------------------
>
> - private PeriodService periodService;
> -
> - public void setPeriodService( PeriodService periodService )
> - {
> - this.periodService = periodService;
> - }
> -
> private DataSetService dataSetService;
>
> public void setDataSetService( DataSetService dataSetService )
> @@ -109,12 +100,6 @@
> }
>
> //
> -------------------------------------------------------------------------
> - // Cache
> - //
> -------------------------------------------------------------------------
> -
> - private ThreadLocal<List<Period>> generatedPeriodsCache = new
> ThreadLocal<List<Period>>();
> -
> - //
> -------------------------------------------------------------------------
> // SelectedStateManager implementation
> //
> -------------------------------------------------------------------------
>
> @@ -131,7 +116,6 @@
> // DataSet
> //
> -------------------------------------------------------------------------
>
> - @SuppressWarnings( "unchecked" )
> public void setSelectedDataSet( DataSet dataSet )
> {
> getSession().put( SESSION_KEY_SELECTED_DATASET_ID, dataSet.getId()
> );
> @@ -141,12 +125,7 @@
> {
> Integer id = (Integer) getSession().get(
> SESSION_KEY_SELECTED_DATASET_ID );
>
> - if ( id == null )
> - {
> - return null;
> - }
> -
> - return dataSetService.getDataSet( id );
> + return id != null ? dataSetService.getDataSet( id ) : null;
> }
>
> public void clearSelectedDataSet()
> @@ -158,6 +137,10 @@
> {
> List<DataSet> dataSets = new ArrayList<DataSet>(
> dataSetService.getDataSetsBySource( organisationUnit ) );
>
> + //
> ---------------------------------------------------------------------
> + // Retain only DataSets from current user's authority groups
> + //
> ---------------------------------------------------------------------
> +
> if ( !currentUserService.currentUserIsSuper() )
> {
> UserCredentials userCredentials = userStore.getUserCredentials(
> currentUserService.getCurrentUser() );
> @@ -195,7 +178,6 @@
> // Period
> //
> -------------------------------------------------------------------------
>
> - @SuppressWarnings( "unchecked" )
> public void setSelectedPeriodIndex( Integer index )
> {
> getSession().put( SESSION_KEY_SELECTED_PERIOD_INDEX, index );
> @@ -232,41 +214,27 @@
>
> public List<Period> getPeriodList()
> {
> - List<Period> periods = generatedPeriodsCache.get();
> Period basePeriod = getBasePeriod();
> -
> - if ( periods == null || periods.size() == 0
> - || !periods.get( 0 ).getPeriodType().equals(
> basePeriod.getPeriodType() ) || !periods.contains( basePeriod ) )
> - {
> - CalendarPeriodType periodType = (CalendarPeriodType)
> getPeriodType();
> -
> - LOG.debug( "Generated periods cache invalid, generating new
> periods based on " + basePeriod );
> -
> - periods = periodType.generatePeriods( basePeriod );
> -
> - generatedPeriodsCache.set( periods );
> - }
>
> + CalendarPeriodType periodType = (CalendarPeriodType)
> getPeriodType();
> +
> + List<Period> periods = periodType.generatePeriods( basePeriod );
> +
> Date now = new Date();
>
> Iterator<Period> iterator = periods.iterator();
>
> - Collection<Period> persistedPeriods =
> periodService.getAllPeriods();
> -
> while ( iterator.hasNext() )
> {
> - Period period = iterator.next();
> -
> - if ( period.getStartDate().after( now ) ||
> !persistedPeriods.contains( period ) )
> + if ( iterator.next().getStartDate().after( now ) )
> {
> iterator.remove();
> }
> }
> -
> +
> return periods;
> }
> -
> - @SuppressWarnings( "unchecked" )
> +
> public void nextPeriodSpan()
> {
> List<Period> periods = getPeriodList();
> @@ -278,12 +246,9 @@
> if ( newBasePeriod.getStartDate().before( new Date() ) ) // Future
> periods not allowed
> {
> getSession().put( SESSION_KEY_BASE_PERIOD, newBasePeriod );
> -
> - generatedPeriodsCache.remove();
> }
> }
>
> - @SuppressWarnings( "unchecked" )
> public void previousPeriodSpan()
> {
> List<Period> periods = getPeriodList();
> @@ -293,8 +258,6 @@
> Period newBasePeriod = periodType.getPreviousPeriod( basePeriod );
>
> getSession().put( SESSION_KEY_BASE_PERIOD, newBasePeriod );
> -
> - generatedPeriodsCache.remove();
> }
>
> //
> -------------------------------------------------------------------------
> @@ -313,22 +276,22 @@
> return dataSet.getPeriodType();
> }
>
> - @SuppressWarnings( "unchecked" )
> private Period getBasePeriod()
> {
> Period basePeriod = (Period) getSession().get(
> SESSION_KEY_BASE_PERIOD );
> +
> PeriodType periodType = getPeriodType();
>
> if ( basePeriod == null )
> {
> - LOG.debug( "getBasePeriod(): Base period is null, creating
> new." );
> + log.debug( "Base period is null, creating new" );
>
> basePeriod = periodType.createPeriod();
> getSession().put( SESSION_KEY_BASE_PERIOD, basePeriod );
> }
> else if ( !basePeriod.getPeriodType().equals( periodType ) )
> {
> - LOG.debug( "getBasePeriod(): Wrong type of base period,
> transforming." );
> + log.debug( "Wrong type of base period, transforming" );
>
> basePeriod = periodType.createPeriod( basePeriod.getStartDate()
> );
> getSession().put( SESSION_KEY_BASE_PERIOD, basePeriod );
> @@ -338,7 +301,7 @@
> }
>
> @SuppressWarnings( "unchecked" )
> - private static final Map getSession()
> + private static final Map<Object, Object> getSession()
> {
> return ActionContext.getContext().getSession();
> }
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml'
> ---
> dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml
> 2009-03-10 10:19:13 +0000
> +++
> dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml
> 2009-03-20 10:30:30 +0000
> @@ -32,8 +32,6 @@
> ref="org.hisp.dhis.user.UserStore"/>
> <property name="currentUserService"
> ref="org.hisp.dhis.user.CurrentUserService"/>
> - <property name="periodService"
> - ref="org.hisp.dhis.period.PeriodService"/>
> </bean>
>
> <bean id="org.hisp.dhis.de.screen.DataEntryScreenManager"
>
>
>
> --
>
> 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
> .
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help : https://help.launchpad.net/ListHelp
>
References