=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2012-09-27 03:57:57 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2012-12-04 15:27:28 +0000 @@ -136,7 +136,7 @@ private int expiryDays; /** - * Property indicating whether aggregation should be skipped. + * Indicating whether aggregation should be skipped. */ private boolean skipAggregation; @@ -144,6 +144,11 @@ * User group which will receive notifications when data set is marked complete. */ private UserGroup notificationRecipients; + + /** + * Indicating whether the user completing this data set should be sent a notification. + */ + private boolean notifyCompletingUser; // ------------------------------------------------------------------------- // Form properties @@ -573,6 +578,19 @@ @JsonProperty @JsonView( {DetailedView.class, ExportView.class} ) @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) + public boolean isNotifyCompletingUser() + { + return notifyCompletingUser; + } + + public void setNotifyCompletingUser( boolean notifyCompletingUser ) + { + this.notifyCompletingUser = notifyCompletingUser; + } + + @JsonProperty + @JsonView( {DetailedView.class, ExportView.class} ) + @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public boolean isAllowFuturePeriods() { return allowFuturePeriods; === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2012-12-04 08:35:56 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2012-12-04 15:27:28 +0000 @@ -168,27 +168,41 @@ { DataSet dataSet = registration.getDataSet(); - if ( dataSet == null || dataSet.getNotificationRecipients() == null || dataSet.getNotificationRecipients().getMembers().isEmpty() ) + if ( dataSet == null ) { return 0; } - + UserGroup userGroup = dataSet.getNotificationRecipients(); User sender = currentUserService.getCurrentUser(); + Set recipients = new HashSet(); + + if ( userGroup != null ) + { + recipients.addAll( userGroup.getMembers() ); + } + + if ( dataSet.isNotifyCompletingUser() ) + { + recipients.add( sender ); + } + + if ( recipients.isEmpty() ) + { + return 0; + } + String text = new VelocityManager().render( registration, COMPLETE_TEMPLATE ); MessageConversation conversation = new MessageConversation( COMPLETE_SUBJECT, sender ); conversation.addMessage( new Message( text, null, sender ) ); - for ( User user : userGroup.getMembers() ) + for ( User user : recipients ) { - if ( user.getUserCredentials().getAllDataSets().contains( dataSet ) ) - { - conversation.addUserMessage( new UserMessage( user ) ); - } + conversation.addUserMessage( new UserMessage( user ) ); } if ( !conversation.getUserMessages().isEmpty() ) === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2012-11-23 12:51:00 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2012-12-04 15:27:28 +0000 @@ -398,6 +398,7 @@ executeSql( "update dataset set mobile = false where mobile is null" ); executeSql( "update dataset set allowfutureperiods = false where allowfutureperiods is null" ); executeSql( "update dataset set validcompleteonly = false where validcompleteonly is null" ); + executeSql( "update dataset set notifycompletinguser = false where notifycompletinguser is null" ); executeSql( "update dataelement set zeroissignificant = false where zeroissignificant is null" ); executeSql( "update organisationunit set haspatients = false where haspatients is null" ); executeSql( "update dataset set expirydays = 0 where expirydays is null" ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/DataSet.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/DataSet.hbm.xml 2012-09-27 03:57:57 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/DataSet.hbm.xml 2012-12-04 15:27:28 +0000 @@ -69,6 +69,8 @@ + + === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/RegisterCompleteDataSetAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/RegisterCompleteDataSetAction.java 2012-11-14 17:12:21 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/RegisterCompleteDataSetAction.java 2012-12-04 15:27:28 +0000 @@ -205,9 +205,7 @@ registration.setPeriodName( format.formatPeriod( registration.getPeriod() ) ); - boolean notify = dataSet != null && dataSet.getNotificationRecipients() != null; - - registrationService.saveCompleteDataSetRegistration( registration, notify ); + registrationService.saveCompleteDataSetRegistration( registration, true ); log.info( "DataSet registered as complete: " + registration ); } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/AddDataSetAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/AddDataSetAction.java 2012-09-27 03:57:57 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/AddDataSetAction.java 2012-12-04 15:27:28 +0000 @@ -135,6 +135,13 @@ { this.notificationRecipients = notificationRecipients; } + + private boolean notifyCompletingUser; + + public void setNotifyCompletingUser( boolean notifyCompletingUser ) + { + this.notifyCompletingUser = notifyCompletingUser; + } private boolean skipAggregation; @@ -234,6 +241,7 @@ dataSet.setAllowFuturePeriods( allowFuturePeriods ); dataSet.setFieldCombinationRequired( fieldCombinationRequired ); dataSet.setValidCompleteOnly( validCompleteOnly ); + dataSet.setNotifyCompletingUser( notifyCompletingUser ); dataSet.setSkipOffline( skipOffline ); dataSetService.addDataSet( dataSet ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/UpdateDataSetAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/UpdateDataSetAction.java 2012-09-27 03:57:57 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/UpdateDataSetAction.java 2012-12-04 15:27:28 +0000 @@ -147,6 +147,13 @@ this.notificationRecipients = notificationRecipients; } + private boolean notifyCompletingUser; + + public void setNotifyCompletingUser( boolean notifyCompletingUser ) + { + this.notifyCompletingUser = notifyCompletingUser; + } + private boolean skipAggregation; public void setSkipAggregation( boolean skipAggregation ) @@ -262,6 +269,7 @@ dataSet.setAllowFuturePeriods( allowFuturePeriods ); dataSet.setFieldCombinationRequired( fieldCombinationRequired ); dataSet.setValidCompleteOnly( validCompleteOnly ); + dataSet.setNotifyCompletingUser( notifyCompletingUser ); dataSet.setSkipOffline( skipOffline ); dataSet.setNotificationRecipients( userGroupService.getUserGroup( notificationRecipients ) ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module.properties 2012-11-20 14:43:33 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module.properties 2012-12-04 15:27:28 +0000 @@ -106,4 +106,5 @@ notification_recipients=Complete notification recipients skip_offline=Skip Offline object_not_deleted_associated_by_objects=Object not deleted because it is associated by objects of type -auto_save_data_entry_forms=Auto-save data entry forms \ No newline at end of file +auto_save_data_entry_forms=Auto-save data entry forms +notify_completing_user=Send notification to completing user \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/addDataSet.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/addDataSet.vm 2012-10-17 11:58:35 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/addDataSet.vm 2012-12-04 15:27:28 +0000 @@ -101,6 +101,15 @@ + + + + + + - - - - - - + + + + + + + + + + + +