------------------------------------------------------------ revno: 10502 committer: Tran Chau <tran.hispviet...@gmail.com> branch nick: dhis2 timestamp: Tue 2013-04-09 12:48:54 +0700 message: Add option to show/hide totals in Aggregate tabular report. modified: dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/i18n.vm dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm
-- 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/program/ProgramStageInstanceService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java 2013-03-25 04:56:23 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java 2013-04-09 05:48:54 +0000 @@ -112,7 +112,7 @@ Grid getAggregateReport( int position, ProgramStage programStage, Collection<Integer> orgunitIds, String facilityLB, Integer deGroupBy, Integer deSum, Map<Integer, Collection<String>> deFilters, - List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, I18nFormat format, + List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, Boolean displayTotals, I18nFormat format, I18n i18n ); // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java 2013-03-25 04:56:23 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java 2013-04-09 05:48:54 +0000 @@ -104,13 +104,13 @@ Grid getAggregateReport( int position, ProgramStage programStage, Collection<Integer> orgunitIds, String facilityLB, Integer deGroupBy, Integer deSum, Map<Integer, Collection<String>> deFilters, - List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, I18nFormat format, - I18n i18n ); + List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, + Boolean displayTotals, I18nFormat format, I18n i18n ); // ------------------------------------------------------------------------- // Activity plans // ------------------------------------------------------------------------- - + Collection<ProgramStageInstance> get( Program program, Collection<Integer> orgunitIds, Date startDate, Date endDate, Boolean completed ); @@ -123,7 +123,7 @@ int averageNumberCompleted( Program program, Collection<Integer> orgunitIds, Date startDate, Date endDate, Boolean completed ); - + Collection<Integer> getOrgunitIds( Date startDate, Date endDate ); - + } === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java 2013-03-25 04:56:23 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java 2013-04-09 05:48:54 +0000 @@ -481,11 +481,11 @@ @Override public Grid getAggregateReport( int position, ProgramStage programStage, Collection<Integer> orgunitIds, String facilityLB, Integer deGroupBy, Integer deSum, Map<Integer, Collection<String>> deFilters, - List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, I18nFormat format, + List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, Boolean displayTotals, I18nFormat format, I18n i18n ) { return programStageInstanceStore.getAggregateReport( position, programStage, orgunitIds, facilityLB, deGroupBy, - deSum, deFilters, periods, aggregateType, limit, useCompletedEvents, format, i18n ); + deSum, deFilters, periods, aggregateType, limit, useCompletedEvents, displayTotals, format, i18n ); } @Override === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2013-04-04 18:06:19 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2013-04-09 05:48:54 +0000 @@ -469,8 +469,8 @@ public Grid getAggregateReport( int position, ProgramStage programStage, Collection<Integer> orgunitIds, String facilityLB, Integer deGroupBy, Integer deSum, Map<Integer, Collection<String>> deFilters, - List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, I18nFormat format, - I18n i18n ) + List<Period> periods, String aggregateType, Integer limit, Boolean useCompletedEvents, Boolean displayTotals, + I18nFormat format, I18n i18n ) { String sql = ""; List<String> deValues = new ArrayList<String>(); @@ -684,11 +684,11 @@ || position == PatientAggregateReport.POSITION_ROW_DATA_COLUMN_ORGUNIT || (position == PatientAggregateReport.POSITION_ROW_DATA_COLUMN_PERIOD && deGroupBy == null) ) { - pivotTable( grid, rowSet, i18n, format ); + pivotTable( grid, rowSet, displayTotals, i18n, format ); } else { - fillDataInGrid( grid, rowSet, i18n, format ); + fillDataInGrid( grid, rowSet, displayTotals, i18n, format ); } } @@ -1954,7 +1954,7 @@ Projections.property( "orgunit.id" ), "orgunitid" ) ) ); return criteria.list(); } - + // --------------------------------------------------------------------- // Get orgunitIds // --------------------------------------------------------------------- @@ -1980,7 +1980,7 @@ return orgunitIds; } - private void fillDataInGrid( Grid grid, SqlRowSet rs, I18n i18n, I18nFormat format ) + private void fillDataInGrid( Grid grid, SqlRowSet rs, Boolean displayTotals, I18n i18n, I18nFormat format ) { int cols = rs.getMetaData().getColumnCount(); int dataCols = 0; @@ -1996,7 +1996,7 @@ } // Add total column if the number of columns is greater then 1 - if ( dataCols > 1 ) + if ( displayTotals && dataCols > 1 ) { grid.addHeader( new GridHeader( i18n.getString( "total" ), false, false ) ); } @@ -2025,14 +2025,14 @@ } // total - if ( dataCols > 1 ) + if ( displayTotals && dataCols > 1 ) { grid.addValue( format.formatValue( total ) ); } } // Add total row if the number of rows is greater then 1 - if ( grid.getRows().size() > 1 ) + if ( displayTotals && grid.getRows().size() > 1 ) { grid.addRow(); grid.addValue( i18n.getString( "total" ) ); @@ -2050,7 +2050,7 @@ } } - private void pivotTable( Grid grid, SqlRowSet rowSet, I18n i18n, I18nFormat format ) + private void pivotTable( Grid grid, SqlRowSet rowSet, Boolean displayTotals, I18n i18n, I18nFormat format ) { try { @@ -2074,6 +2074,7 @@ for ( int i = 2; i <= cols; i++ ) { column.add( rowSet.getObject( i ) ); + // Total value of the column if ( rowSet.getMetaData().getColumnType( i ) != Types.VARCHAR ) { @@ -2082,9 +2083,10 @@ } // Add total value of the column - if ( cols > 2 ) + if ( displayTotals && cols > 2 ) { - grid.addValue( format.formatValue( total ) ); + //grid.addValue( format.formatValue( total ) ); + column.add( format.formatValue( total ) ); } columnValues.put( index, column ); @@ -2092,7 +2094,7 @@ } // Add total header - if ( rows > 1 ) + if ( displayTotals && rows > 1 ) { grid.addHeader( new GridHeader( i18n.getString( "total" ), false, false ) ); } @@ -2105,7 +2107,7 @@ column.add( i18n.getString( rowSet.getMetaData().getColumnLabel( i ) ) ); } - if ( cols > 2 ) + if ( displayTotals && cols > 2 ) { grid.addRow(); column.add( i18n.getString( "total" ) ); @@ -2118,7 +2120,7 @@ grid.addColumn( columnValues.get( i ) ); } - if ( rows > 1 ) + if ( displayTotals && rows > 1 ) { // Total column int allTotal = 0; === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java 2013-03-18 03:57:53 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateAggregateReportAction.java 2013-04-09 05:48:54 +0000 @@ -229,6 +229,13 @@ this.type = type; } + private Boolean displayTotals; + + public void setDisplayTotals( Boolean displayTotals ) + { + this.displayTotals = displayTotals; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -246,6 +253,8 @@ public String execute() { + displayTotals = ( displayTotals == null )? false : displayTotals; + // --------------------------------------------------------------------- // Get user orgunits // --------------------------------------------------------------------- @@ -296,18 +305,18 @@ } // Fixed periods - List<Period> fixedPeriodList = new ArrayList<Period>(); + List<Period> fixedPeriodList = new ArrayList<Period>(); for ( String periodId : fixedPeriods ) { Period p = PeriodType.getPeriodFromIsoString( periodId ); fixedPeriodList.add( p ); } - Collections.sort( fixedPeriodList, new AscendingPeriodComparator() ); + Collections.sort( fixedPeriodList, new AscendingPeriodComparator() ); periods.addAll( fixedPeriodList ); - + // Relative periods periods.addAll( getRelativePeriod() ); - + // --------------------------------------------------------------------- // Generate report // --------------------------------------------------------------------- @@ -335,9 +344,9 @@ } } } - + grid = programStageInstanceService.getAggregateReport( position, programStage, orgunitIds, facilityLB, - deGroupBy, deSum, deFilterMap, periods, aggregateType, limitRecords, useCompletedEvents, format, i18n ); + deGroupBy, deSum, deFilterMap, periods, aggregateType, limitRecords, useCompletedEvents, displayTotals, format, i18n ); return type == null ? SUCCESS : type; } @@ -351,13 +360,13 @@ List<Period> periods = new ArrayList<Period>(); RelativePeriods rp = new RelativePeriods(); - + if ( relativePeriods.contains( "lastWeek" ) ) { rp.clear().setLastWeek( true ); periods.addAll( periodService.reloadPeriods( rp.getRelativePeriods() ) ); } - + if ( relativePeriods.contains( "last4Weeks" ) ) { rp.clear().setLast4Weeks( true ); @@ -417,8 +426,8 @@ rp.clear().setLast5Years( true ); periods.addAll( periodService.reloadPeriods( rp.getRelativePeriods() ) ); } - - return setNames(periods); + + return setNames( periods ); } private List<Period> setNames( List<Period> periods ) === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties 2013-04-08 05:43:06 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties 2013-04-09 05:48:54 +0000 @@ -618,4 +618,6 @@ confirm_delete_favorite = Are you sure you want to delete favorite ? in = IN home = Home -show_all_sections = Show all sections \ No newline at end of file +show_all_sections = Show all sections +aggregate_options = Aggregate options +display_totals = Display totals \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js 2013-04-02 08:24:05 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js 2013-04-09 05:48:54 +0000 @@ -1338,6 +1338,7 @@ TR.util.positionFilter.convert( f.position ); Ext.getCmp('completedEventsOpt').setValue(f.useCompletedEvents); + Ext.getCmp('displayTotalsOpt').setValue(f.displayTotalsOpt); Ext.getCmp('facilityLBCombobox').setValue( f.facilityLB ); Ext.getCmp('limitOption').setValue( f.limitRecords ); Ext.getCmp('levelCombobox').setValue( f.level ); @@ -2100,8 +2101,15 @@ { completedEvent = "&completedEventsOpt=true"; } + + var displayTotals='&displayTotals=false'; + if( Ext.getCmp('displayTotalsOpt').getValue() == true ) + { + displayTotals = "&displayTotals=true"; + } + var exportForm = document.getElementById('exportForm'); - exportForm.action = url + "?type=" + type + completedEvent; + exportForm.action = url + "?type=" + type + completedEvent + "&" + displayTotals; exportForm.submit(); } // Show report on grid @@ -2302,6 +2310,15 @@ p.useCompletedEvents = Ext.getCmp('completedEventsOpt').getValue(); } + if( Ext.getCmp('displayTotalsOpt').getValue()== true ) + { + p.displayTotals = Ext.getCmp('displayTotalsOpt').getValue(); + } + else + { + p.displayTotals = 'false'; + } + return p; }, getURLParams: function() { @@ -5555,14 +5572,31 @@ } }, { - xtype: 'checkbox', - cls: 'tr-checkbox', - id: 'completedEventsOpt', - style:'padding: 0px 0px 0px 3px;', - boxLabel: TR.i18n.use_completed_events, - boxLabelAlign: 'before', - labelWidth: 135 + xtype: 'panel', + layout: 'column', + bodyStyle: 'border-style:none; background-color:transparent;', + items:[ + { + xtype: 'checkbox', + cls: 'tr-checkbox', + id: 'completedEventsOpt', + style:'padding: 0px 0px 0px 3px;', + boxLabel: TR.i18n.use_completed_events, + boxLabelAlign: 'before', + labelWidth: 135 + }, + { + xtype: 'checkbox', + cls: 'tr-checkbox', + id: 'displayTotalsOpt', + style:'padding-left: 20px;', + boxLabel: TR.i18n.display_totals, + boxLabelAlign: 'before', + labelWidth: 135 + }, + ] }, + { xtype: 'combobox', cls: 'tr-combo', === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/i18n.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/i18n.vm 2013-04-02 04:51:30 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/i18n.vm 2013-04-09 05:48:54 +0000 @@ -186,4 +186,6 @@ next: '$encoder.jsEscape($i18n.getString( 'next' ) , "'")', confirm_delete_favorite: '$encoder.jsEscape($i18n.getString( 'confirm_delete_favorite' ) , "'")', home: '$encoder.jsEscape($i18n.getString( 'home' ) , "'")', +aggregate_options: '$encoder.jsEscape($i18n.getString( 'aggregate_options' ) , "'")', +display_totals: '$encoder.jsEscape($i18n.getString( 'display_totals' ) , "'")', }; \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm 2013-03-07 04:29:17 +0000 +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm 2013-04-09 05:48:54 +0000 @@ -95,6 +95,7 @@ "deSumName": #if($!aggregateReport.deSum) "$!encoder.jsonEncode( ${aggregateReport.deSum.displayName})" #else "" #end, "aggregateType": "${aggregateReport.aggregateType}", "useCompletedEvents": "$!aggregateReport.useCompletedEvents", + "displayTotals": "$!aggregateReport.displayTotals", "userOrganisationUnit": "$!aggregateReport.userOrganisationUnit", "userOrganisationUnitChildren": "$!aggregateReport.userOrganisationUnitChildren" } \ No newline at end of file
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp