=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/report/Report.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/report/Report.java 2012-09-23 15:49:44 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/report/Report.java 2012-09-24 05:42:39 +0000 @@ -38,6 +38,7 @@ import org.hisp.dhis.common.view.DetailedView; import org.hisp.dhis.common.view.ExportView; import org.hisp.dhis.period.RelativePeriods; +import org.hisp.dhis.reporttable.ReportParams; import org.hisp.dhis.reporttable.ReportTable; /** @@ -59,6 +60,8 @@ private RelativePeriods relatives; + private ReportParams reportParams; + // ------------------------------------------------------------------------- // Constructors // ------------------------------------------------------------------------- @@ -74,11 +77,12 @@ this.reportTable = reportTable; } - public Report( String name, String designContent, RelativePeriods relatives ) + public Report( String name, String designContent, RelativePeriods relatives, ReportParams reportParams ) { this.name = name; this.designContent = designContent; this.relatives = relatives; + this.reportParams = reportParams; } // ------------------------------------------------------------------------- @@ -209,6 +213,19 @@ this.relatives = relatives; } + @JsonProperty + @JsonView( {DetailedView.class, ExportView.class} ) + @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) + public ReportParams getReportParams() + { + return reportParams; + } + + public void setReportParams( ReportParams reportParams ) + { + this.reportParams = reportParams; + } + @Override public void mergeWith( IdentifiableObject other ) { === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/report/ReportService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/report/ReportService.java 2012-09-23 15:49:44 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/report/ReportService.java 2012-09-24 06:03:31 +0000 @@ -44,7 +44,7 @@ final String REPORTTYPE_XLS = "xls"; final String PARAM_RELATIVE_PERIODS = "periods"; - final String PARAM_ORG_UNITS = "org_units"; + final String PARAM_ORG_UNITS = "orgunits"; void renderReport( OutputStream out, String reportUid, Date reportingPeriod, String organisationUnitUid, String type, I18nFormat format ); === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTableService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTableService.java 2012-05-15 20:20:50 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTableService.java 2012-09-24 05:42:39 +0000 @@ -142,16 +142,6 @@ */ Grid getReportTableGrid( ReportTable reportTable, I18nFormat format, Date reportingPeriod, String organisationUnitUid, boolean minimal ); - /** - * If report table mode, this method will return the report table with the - * given identifier. If report mode, this method will return the report - * tables associated with the report. - * - * @param uid the uid. - * @param mode the mode. - */ - ReportTable getReportTable( String uid, String mode ); - Collection getReportTablesBetween( int first, int max ); Collection getReportTablesBetweenByName( String name, int first, int max ); === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java 2012-08-31 14:38:21 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/reporttable/impl/DefaultReportTableService.java 2012-09-24 05:42:39 +0000 @@ -155,20 +155,6 @@ return getGrid( reportTable, minimal ); } - public ReportTable getReportTable( String uid, String mode ) - { - if ( mode.equals( MODE_REPORT_TABLE ) ) - { - return getReportTable( uid ); - } - else if ( mode.equals( MODE_REPORT ) ) - { - return reportService.getReport( uid ).getReportTable(); - } - - return null; - } - // ------------------------------------------------------------------------- // Persistence // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/report/hibernate/Report.hbm.xml' --- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/report/hibernate/Report.hbm.xml 2012-09-23 14:24:14 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/report/hibernate/Report.hbm.xml 2012-09-24 05:42:39 +0000 @@ -18,11 +18,17 @@ + foreign-key="fk_report_reporttableid" /> + cascade="all-delete-orphan" foreign-key="fk_report_relativeperiodsid" /> + + + + + + \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/reportviewer/action/AddReportAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/reportviewer/action/AddReportAction.java 2012-09-23 14:24:14 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/reportviewer/action/AddReportAction.java 2012-09-24 05:42:39 +0000 @@ -35,6 +35,7 @@ import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.report.Report; import org.hisp.dhis.report.ReportService; +import org.hisp.dhis.reporttable.ReportParams; import org.hisp.dhis.reporttable.ReportTable; import org.hisp.dhis.reporttable.ReportTableService; import org.hisp.dhis.system.util.StreamUtils; @@ -137,6 +138,20 @@ this.currentDesign = currentDesign; } + private boolean paramReportingMonth; + + public void setParamReportingMonth( boolean paramReportingMonth ) + { + this.paramReportingMonth = paramReportingMonth; + } + + private boolean paramOrganisationUnit; + + public void setParamOrganisationUnit( boolean paramOrganisationUnit ) + { + this.paramOrganisationUnit = paramOrganisationUnit; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -181,11 +196,14 @@ ReportTable reportTable = reportTableService.getReportTable( reportTableId ); + ReportParams reportParams = new ReportParams( paramReportingMonth, false, false, false, paramOrganisationUnit ); + report.setName( name ); report.setReportTable( reportTable ); report.setUsingOrgUnitGroupSets( usingOrgUnitGroupSets ); report.setRelatives( getRelativePeriods() ); - + report.setReportParams( reportParams ); + log.info( "Upload file name: " + fileName + ", content type: " + contentType ); // --------------------------------------------------------------------- === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/GetReportParamsAction.java' --- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/GetReportParamsAction.java 2012-04-23 09:35:01 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/GetReportParamsAction.java 2012-09-24 05:42:39 +0000 @@ -34,6 +34,9 @@ import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.period.CalendarPeriodType; import org.hisp.dhis.period.Period; +import org.hisp.dhis.period.RelativePeriods; +import org.hisp.dhis.report.Report; +import org.hisp.dhis.report.ReportService; import org.hisp.dhis.reporttable.ReportParams; import org.hisp.dhis.reporttable.ReportTable; import org.hisp.dhis.reporttable.ReportTableService; @@ -42,9 +45,10 @@ import com.opensymphony.xwork2.Action; +import static org.hisp.dhis.reporttable.ReportTableService.*; + /** * @author Lars Helge Overland - * @version $Id$ */ public class GetReportParamsAction implements Action @@ -60,6 +64,13 @@ this.reportTableService = reportTableService; } + protected ReportService reportService; + + public void setReportService( ReportService reportService ) + { + this.reportService = reportService; + } + private I18nFormat format; public void setFormat( I18nFormat format ) @@ -119,26 +130,49 @@ public String execute() { - if ( mode != null && uid != null ) - { - ReportTable reportTable = reportTableService.getReportTable( uid, mode); - + if ( mode == null || uid == null ) + { + return SUCCESS; + } + + RelativePeriods relatives = null; + + if ( MODE_REPORT_TABLE.equals( mode ) ) + { + ReportTable reportTable = reportTableService.getReportTable( uid ); + if ( reportTable != null ) { - reportParams = reportTable.getReportParams(); - - if ( reportParams.isParamReportingMonth() && reportTable.getRelatives() != null ) - { - CalendarPeriodType periodType = (CalendarPeriodType) reportTable.getRelatives().getPeriodType(); - periods = periodType.generateLast5Years( new Date() ); - Collections.reverse( periods ); - FilterUtils.filter( periods, new PastAndCurrentPeriodFilter() ); - - for ( Period period : periods ) - { - period.setName( format.formatPeriod( period ) ); - } - } + reportParams = reportTable.getReportParams(); + relatives = reportTable.getRelatives(); + } + } + else if ( MODE_REPORT.equals( mode ) ) + { + Report report = reportService.getReport( uid ); + + if ( report != null && report.isReportTableDataSource() ) + { + reportParams = report.getReportTable().getReportParams(); + relatives = report.getReportTable().getRelatives(); + } + else if ( report != null && report.isJdbcDataSource() ) + { + reportParams = report.getReportParams(); + relatives = report.getRelatives(); + } + } + + if ( reportParams.isParamReportingMonth() && relatives != null ) + { + CalendarPeriodType periodType = (CalendarPeriodType) relatives.getPeriodType(); + periods = periodType.generateLast5Years( new Date() ); + Collections.reverse( periods ); + FilterUtils.filter( periods, new PastAndCurrentPeriodFilter() ); + + for ( Period period : periods ) + { + period.setName( format.formatPeriod( period ) ); } } === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2012-09-03 19:48:33 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml 2012-09-24 05:42:39 +0000 @@ -85,6 +85,7 @@ + === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addReportForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addReportForm.vm 2012-09-23 14:24:14 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/addReportForm.vm 2012-09-24 05:42:39 +0000 @@ -47,9 +47,6 @@ - - $i18n.getString( "report_table" ) - $i18n.getString( "report_table" ) @@ -67,6 +64,20 @@ #parse( "/dhis-web-reporting/relativePeriodsInput.vm" ) + + + + + $i18n.getString( "report_parameters" ) + + + + +   + + + + === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/generateReport.js' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/generateReport.js 2012-06-14 18:56:38 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/generateReport.js 2012-09-24 05:42:39 +0000 @@ -22,7 +22,7 @@ function viewReport( type ) { - var reportType = type != null && type != "" ? type : "pdf"; + var reportType = isDefined( type ) && type != "" ? type : "pdf"; if ( validationError() ) { === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/viewReportForm.vm' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/viewReportForm.vm 2012-07-19 07:37:36 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/viewReportForm.vm 2012-09-24 05:42:39 +0000 @@ -39,8 +39,7 @@ $encoder.htmlEncode( $report.name ) - #if ( $report.hasReportTable() ) - #else #end + $i18n.getString( 'create' ) $i18n.getString( 'edit_report' ) $i18n.getString( 'add_to_dashboard' )