[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17134: Add missing @Override on methods.
revno: 17134 committer: Morten Olav Hansen morte...@gmail.com branch nick: dhis2 timestamp: Thu 2014-10-16 13:17:19 +0700 message: Add missing @Override on methods. modified: dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedIndicatorValue.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/AbstractCalendar.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/chart/Chart.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseAnalyticalObject.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseDimensionalObject.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseIdentifiableObject.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseLinkableObject.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/BaseNameableObject.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObject.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/comparator/IdentifiableObjectCodeComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/comparator/IdentifiableObjectNameComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/completeness/comparator/DataSetCompletenessResultComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/comparator/DataElementCategoryComboSizeComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataentryform/DataEntryForm.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/CompleteDataSetRegistration.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/comparator/SectionOrderComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/datavalue/DataValue.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/eventchart/EventChart.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/eventreport/EventReport.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/importexport/GroupMemberAssociation.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/comparator/MapLayerNameComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodeDeserializer.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/node/NodeSerializer.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/comparator/OrganisationUnitLevelComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/comparator/AscendingPeriodComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/comparator/AscendingPeriodEndDateComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/comparator/PeriodComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/comparator/ProgramStageInstanceDueDateComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/comparator/ProgramStageInstanceVisitDateComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/comparator/ProgramStageMinDaysComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/config/ModemGatewayConfig.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/sms/outbound/OutboundSmsTransportService.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityAttribute.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/comparator/TrackedEntityAttributeGroupSortOrderComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/comparator/TrackedEntityAttributeSortOrderComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/comparator/TrackedEntityAttributeSortOrderInListNoProgramComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserGroup.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/comparator/UserComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/comparator/UserGroupComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/comparator/UserRoleComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/comparator/UsernameComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationResult.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/comparator/ValidationCriteriaComparator.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/comparator/ValidationResultComparator.java dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/DefaultDataBrowserGridService.java dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/JDBCDataBrowserStore.java dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/dataintegrity/DefaultDataIntegrityService.java dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/datamerge/DefaultDataMergeService.java dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/datamerge/jdbc/JdbcDataMergeStore.java
Re: [Dhis2-devs] [Bug 1328273] Re: Executing analytics table fails: Process failed: Exception during execution
Hi Lars, We updated to the following. Web API:Browse it here https://si.dhis2.net/apiCurrent user:jpickering Version:2.16Build revision:16526Build date:2014-10-15 16:52 Still getting the error below. Analytics table process failed, please check the logs. Message: Exception during execution Cause: java.util.concurrent.ExecutionException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [insert into analytics_event_temp_2012_xpweptbncsb (U3eQda5XlA2,mYvlji093BS,uidlevel1,uidlevel2,uidlevel3,uidlevel4,uidlevel5,daily,weekly,monthly,bimonthly,quarterly,sixmonthly,sixmonthlyapril,yearly,financialapril,financialjuly,financialoct,lrbkrnNd1Gz,XJgv2HwHfSX,hAQiDxyXEUz,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kdstuCyxFmJ,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,kcMTeJgLr51,psi,ps,executiondate,longitude,latitude,ou,ouname,oucode,tei) select ougs.U3eQda5XlA2,ougs.mYvlji093BS,ous.uidlevel1,ous.uidlevel2,ous.uidlevel3,ous.uidlevel4,ous.uidlevel5,dps.daily,dps.weekly,dps.monthly,dps.bimonthly,dps.quarterly,dps.sixmonthly,dps.sixmonthlyapril,dps.yearly,dps.financialapril,dps.financialjuly,dps.financialoct,(select value from trackedentitydatavalue where programstageinstanceid=psi.programstageinstanceid and dataelementid=69892) as lrbkrnNd1Gz,(select value from trackedentitydatavalue where programstageinstanceid=psi.programstageinstanceid and dataelementid=69894) as XJgv2HwHfSX,(select value from trackedentitydatavalue where programstageinstanceid=psi.programstageinstanceid and dataelementid=69887) as hAQiDxyXEUz,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5292) as kdstuCyxFmJ,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,(select value from trackedentityattributevalue where trackedentityinstanceid=pi.trackedentityinstanceid and trackedentityattributeid=5293) as kcMTeJgLr51,psi.uid,ps.uid,psi.executiondate,psi.longitude,psi.latitude,ou.uid, ou.name,ou.code,tei.uid from programstageinstance psi left join _organisationunitgroupsetstructure ougs on psi.organisationunitid=ougs.organisationunitid
Re: [Dhis2-devs] Displaying Option Values in UI instead of id
Hi Mahendra, thanks for reporting. A clarification: For you options in the option set, can you check whether you have actually set the code to the uid, or a uid-like value? At the moment we display the option code in that list. We might have to change to use the option name. Lars On Tue, Oct 14, 2014 at 11:22 AM, Mahendra Kariya mahendra.kar...@thoughtworks.com wrote: Hi, For event capture, we can setup data elements which can have a fixed set of values (option sets). On the UI, while registering an event, the dropdown shows the actual values of options, which changes to its uid when selected. Even when we try to see the consolidated list of events, it is showing the option's uid instead of its values. (See screenshot). Are we missing some setting or this feature is still under development? Thanks, Mahendra ___ 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
[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17135: removed PIController, functionality will be merged into EnrollmentController. Added service metho...
revno: 17135 committer: Morten Olav Hansen morte...@gmail.com branch nick: dhis2 timestamp: Thu 2014-10-16 15:57:58 +0700 message: removed PIController, functionality will be merged into EnrollmentController. Added service methods for getting enrollments by status, program, orgUnits, start, end. removed: dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramInstanceController.java modified: dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java -- 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-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2014-09-08 11:29:51 + +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2014-10-16 08:57:58 + @@ -30,9 +30,9 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; - import org.hisp.dhis.common.Grid; import org.hisp.dhis.common.IdentifiableObjectManager; +import org.hisp.dhis.common.IdentifiableObjectUtils; import org.hisp.dhis.common.OrganisationUnitSelectionMode; import org.hisp.dhis.common.QueryItem; import org.hisp.dhis.common.QueryOperator; @@ -65,6 +65,7 @@ import org.springframework.util.Assert; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.List; @@ -93,10 +94,10 @@ @Autowired private TrackedEntityAttributeValueService trackedEntityAttributeValueService; - + @Autowired protected CurrentUserService currentUserService; - + @Autowired private TrackedEntityCommentService commentService; @@ -188,6 +189,24 @@ } @Override +public Enrollments getEnrollments( Program program, EnrollmentStatus status, OrganisationUnit organisationUnit, Date startDate, Date endDate ) +{ +ListProgramInstance programInstances = new ArrayList( +programInstanceService.getProgramInstancesByStatus( status.getValue(), program, Arrays.asList( organisationUnit.getId() ), startDate, endDate ) ); + +return getEnrollments( programInstances ); +} + +@Override +public Enrollments getEnrollments( Program program, EnrollmentStatus status, ListOrganisationUnit organisationUnits, Date startDate, Date endDate ) +{ +ListProgramInstance programInstances = new ArrayList( +programInstanceService.getProgramInstancesByStatus( status.getValue(), program, IdentifiableObjectUtils.getIdentifiers( organisationUnits ), startDate, endDate ) ); + +return getEnrollments( programInstances ); +} + +@Override public Enrollments getEnrollments( OrganisationUnit organisationUnit ) { ListProgram programs = getProgramsWithRegistration(); @@ -348,7 +367,7 @@ updateAttributeValues( enrollment ); programInstance.setFollowup( enrollment.getFollowup() ); programInstanceService.updateProgramInstance( programInstance ); - + saveTrackedEntityComment( programInstance, enrollment ); importSummary.setReference( programInstance.getUid() ); @@ -430,7 +449,7 @@ updateAttributeValues( enrollment ); programInstanceService.updateProgramInstance( programInstance ); - + saveTrackedEntityComment( programInstance, enrollment ); importSummary.setReference( enrollment.getEnrollment() ); @@ -712,11 +731,11 @@ return importConflicts; } - + private void saveTrackedEntityComment( ProgramInstance programInstance, Enrollment enrollment ) { String storedBy = currentUserService.getCurrentUsername(); - + for ( Note note : enrollment.getNotes() ) { TrackedEntityComment comment = new TrackedEntityComment(); === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java 2014-03-18 08:10:10 + +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java 2014-10-16 08:57:58 + @@ -28,10 +28,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.io.IOException;
Re: [Dhis2-devs] Displaying Option Values in UI instead of id
Okay. We will fix this shortly. Lars On Thu, Oct 16, 2014 at 10:40 AM, Mahendra Kariya mahendra.kar...@thoughtworks.com wrote: Hi Lars, Yes. We have the code to be same as UID for options. On Thu, Oct 16, 2014 at 2:07 PM, Lars Helge Øverland larshe...@gmail.com wrote: Hi Mahendra, thanks for reporting. A clarification: For you options in the option set, can you check whether you have actually set the code to the uid, or a uid-like value? At the moment we display the option code in that list. We might have to change to use the option name. Lars On Tue, Oct 14, 2014 at 11:22 AM, Mahendra Kariya mahendra.kar...@thoughtworks.com wrote: Hi, For event capture, we can setup data elements which can have a fixed set of values (option sets). On the UI, while registering an event, the dropdown shows the actual values of options, which changes to its uid when selected. Even when we try to see the consolidated list of events, it is showing the option's uid instead of its values. (See screenshot). Are we missing some setting or this feature is still under development? Thanks, Mahendra ___ 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
[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17136: extend enrollment-controller to support getting enrollments by program, orgUnit, start, end, (+ opti...
revno: 17136 committer: Morten Olav Hansen morte...@gmail.com branch nick: dhis2 timestamp: Thu 2014-10-16 16:11:20 +0700 message: extend enrollment-controller to support getting enrollments by program,orgUnit,start,end, (+ optional status) modified: dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/EnrollmentController.java -- 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-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2014-10-16 08:57:58 + +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2014-10-16 09:11:20 + @@ -233,6 +233,13 @@ } @Override +public Enrollments getEnrollments( Program program, OrganisationUnit organisationUnit, Date startDate, Date endDate ) +{ +return getEnrollments( +programInstanceService.getProgramInstances( program, Arrays.asList( organisationUnit.getId() ), startDate, endDate, 0, Integer.MAX_VALUE ) ); +} + +@Override public Enrollments getEnrollments( Program program, TrackedEntityInstance trackedEntityInstance ) { org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = getTrackedEntityInstance( trackedEntityInstance === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java 2014-10-16 08:57:58 + +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/EnrollmentService.java 2014-10-16 09:11:20 + @@ -80,6 +80,8 @@ Enrollments getEnrollments( Program program, OrganisationUnit organisationUnit ); +Enrollments getEnrollments( Program program, OrganisationUnit organisationUnit, Date startDate, Date endDate ); + Enrollments getEnrollments( CollectionProgramInstance programInstances ); Enrollment getEnrollment( String id ); === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/EnrollmentController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/EnrollmentController.java 2014-06-11 20:27:54 + +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/EnrollmentController.java 2014-10-16 09:11:20 + @@ -28,9 +28,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import org.hisp.dhis.webapi.webdomain.WebOptions; -import org.hisp.dhis.webapi.controller.exception.NotFoundException; -import org.hisp.dhis.webapi.utils.ContextUtils; import org.hisp.dhis.common.IdentifiableObjectManager; import org.hisp.dhis.dxf2.events.enrollment.Enrollment; import org.hisp.dhis.dxf2.events.enrollment.EnrollmentService; @@ -44,7 +41,11 @@ import org.hisp.dhis.dxf2.utils.JacksonUtils; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.program.Program; +import org.hisp.dhis.webapi.controller.exception.NotFoundException; +import org.hisp.dhis.webapi.utils.ContextUtils; +import org.hisp.dhis.webapi.webdomain.WebOptions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; @@ -59,6 +60,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Date; import java.util.Map; /** @@ -88,13 +90,24 @@ @RequestParam( value = orgUnit, required = false ) String orgUnitUid, @RequestParam( value = program, required = false ) String programUid, @RequestParam( value = trackedEntityInstance, required = false ) String trackedEntityInstanceUid, +@RequestParam( required = false ) @DateTimeFormat( pattern = -MM-dd ) Date startDate, +@RequestParam( required = false ) @DateTimeFormat( pattern = -MM-dd ) Date endDate, @RequestParam( value = status, required = false ) EnrollmentStatus status, @RequestParam MapString,
[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17137: Added property optionSet to grid headers / in analytics
revno: 17137 committer: Lars Helge Overland larshe...@gmail.com branch nick: dhis2 timestamp: Thu 2014-10-16 14:28:42 +0200 message: Added property optionSet to grid headers / in analytics modified: dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GridHeader.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/QueryItem.java dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityAttribute.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java -- 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/common/GridHeader.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GridHeader.java 2014-03-18 08:10:10 + +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GridHeader.java 2014-10-16 12:28:42 + @@ -52,6 +52,12 @@ private boolean hidden; private boolean meta; + +private boolean optionSet; + +// - +// Constructors +// - public GridHeader() { @@ -114,11 +120,37 @@ this.meta = meta; } +/** + * @param name name + * @param column column + * @param type type + * @param hidden hidden + * @param meta meta + * @param optionSet optionSet + */ +public GridHeader( String name, String column, String type, boolean hidden, boolean meta, boolean optionSet ) +{ +this.name = name; +this.column = column; +this.type = type; +this.hidden = hidden; +this.meta = meta; +this.optionSet = optionSet; +} + +// - +// Logic +// - + public boolean isNumeric() { return type != null NUMERIC_TYPES.contains( type ); } +// - +// Getters and setters +// - + @JsonProperty @JsonView( {DetailedView.class} ) public String getName() @@ -179,12 +211,22 @@ this.meta = meta; } -@Override -public String toString() -{ -return [Name: + name + , column: + column + , type: + type + ]; -} - +@JsonProperty +@JsonView( {DetailedView.class} ) +public boolean isOptionSet() +{ +return optionSet; +} + +public void setOptionSet( boolean optionSet ) +{ +this.optionSet = optionSet; +} + +// - +// hashCode, equals, toString +// - + @Override public int hashCode() { @@ -213,4 +255,10 @@ return name.equals( other.name ); } + +@Override +public String toString() +{ +return [Name: + name + , column: + column + , type: + type + ]; +} } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/QueryItem.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/QueryItem.java 2014-10-15 17:31:32 + +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/QueryItem.java 2014-10-16 12:28:42 + @@ -45,6 +45,8 @@ private ListQueryFilter filters = new ArrayList(); private boolean numeric; + +private boolean optionSet; // - // Constructors @@ -55,16 +57,18 @@ this.item = item; } -public QueryItem( NameableObject item, boolean numeric ) +public QueryItem( NameableObject item, boolean numeric, boolean optionSet ) { this.item = item; this.numeric = numeric; +this.optionSet = optionSet; } -public QueryItem( NameableObject item, QueryOperator operator, String filter, boolean numeric ) +public QueryItem(
[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17139: Analytics. Added validation of analytics tables.
revno: 17139 committer: Lars Helge Overland larshe...@gmail.com branch nick: dhis2 timestamp: Thu 2014-10-16 16:51:51 +0200 message: Analytics. Added validation of analytics tables. modified: dhis-2/dhis-api/src/main/java/org/hisp/dhis/util/Timer.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/AbstractJdbcTableManager.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcAnalyticsTableManager.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcCompletenessTableManager.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcCompletenessTargetTableManager.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcEventAnalyticsTableManager.java dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/table/JdbcOrgUnitTargetTableManager.java dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ListUtils.java dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/ListUtilsTest.java -- 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/util/Timer.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/util/Timer.java 2014-10-07 12:16:23 + +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/util/Timer.java 2014-10-16 14:51:51 + @@ -38,7 +38,7 @@ private long startTime; private boolean printDisabled; - + public Timer disablePrint() { this.printDisabled = true; === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2014-10-16 06:17:19 + +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2014-10-16 14:51:51 + @@ -577,8 +577,6 @@ Grid grid = getAggregatedDataValues( params ); MapString, Double valueMap = getAggregatedDataValueMapping( grid ); - -log.info( Got aggregated values for table layout ); return reportTable.getGrid( new ListGrid( grid.getMetaData() ), valueMap, false ); } @@ -743,11 +741,11 @@ int optimalQueries = MathUtils.getWithin( getProcessNo(), 1, MAX_QUERIES ); -Timer t = new Timer().start(); +Timer t = new Timer().start().disablePrint(); DataQueryGroups queryGroups = queryPlanner.planQuery( params, optimalQueries, tableName ); -log.debug( Planned analytics query, got: + queryGroups.getLargestGroupSize() + for optimal: + optimalQueries ); +t.getSplitTime( Planned analytics query, got: + queryGroups.getLargestGroupSize() + for optimal: + optimalQueries ); MapString, Object map = new HashMap(); === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2014-10-16 12:28:42 + +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2014-10-16 14:51:51 + @@ -48,8 +48,6 @@ import java.util.Map; import java.util.Set; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.hisp.dhis.analytics.AnalyticsSecurityManager; import org.hisp.dhis.analytics.AnalyticsService; import org.hisp.dhis.analytics.SortOrder; @@ -85,9 +83,9 @@ import org.hisp.dhis.system.grid.ListGrid; import org.hisp.dhis.system.util.DateUtils; import org.hisp.dhis.system.util.ListUtils; -import org.hisp.dhis.util.Timer; import org.hisp.dhis.trackedentity.TrackedEntityAttribute; import org.hisp.dhis.trackedentity.TrackedEntityAttributeService; +import org.hisp.dhis.util.Timer; import org.springframework.beans.factory.annotation.Autowired; /** @@ -95,9 +93,7 @@ */ public class DefaultEventAnalyticsService implements EventAnalyticsService -{ -private static final Log log = LogFactory.getLog( DefaultEventAnalyticsService.class ); - +{ private static
[Dhis2-devs] [Bug 1328273] Re: Executing analytics table fails: Process failed: Exception during execution
The problem happens because there are duplicate columns in the event analytics tables. Likely this happens because of a database upgrade error with programs. Check all programs for attributes which appear to have duplicate/multiple members for one or more attributes. I have built into trunk better validation and feedback in the logs. ** Changed in: dhis2 Status: New = Won't Fix ** Changed in: dhis2 Importance: Undecided = Medium ** Changed in: dhis2 Assignee: (unassigned) = Lars Helge Øverland (larshelge) -- You received this bug notification because you are a member of DHIS 2 developers, which is subscribed to DHIS. https://bugs.launchpad.net/bugs/1328273 Title: Executing analytics table fails: Process failed: Exception during execution Status in DHIS 2: Won't Fix Bug description: In version 2.14, I am running tracker. When I try executing analytics table, I get the following error: 'Process failed. Exeception during execution'. Here is an extraction from the last lines in catalina.out that could help in error identification: patientidentifier where patientid=pi.patientid and patientidentifiertypeid=71) as iEoIwcIBRFB,(select identifier from patientidentifier where patientid=pi.patientid and patientidentifiertypeid=71) as iEoIwcIBRFB,(select identifier from patientidentifier where patientid=pi.patientid and patientidentifiertypeid=71) as iEoIwcIBRFB,psi.uid,ps.uid,psi.executiondate,psi.longitude,psi.latitude,ou.uid,ou.name,ou.code from programstageinstance psi left join programinstance pi on psi.programinstanceid=pi.programinstanceid left join programstage ps on psi.programstageid=ps.programstageid left join program pr on pi.programid=pr.programid left join patient pa on pi.patientid=pa.patientid left join organisationunit ou on psi.organisationunitid=ou.organisationunitid left join _orgunitstructure ous on psi.organisationunitid=ous.organisationunitid left join _dateperiodstructure dps on psi.executiondate=dps.dateperiod where psi.executiondate = '2011-01-01' and psi.executiondate = '2011-12-31' and pr.programid=68 and psi.organisationunitid is not null and psi.executiondate is not null]; nested exception is org.postgresql.util.PSQLException: ERROR: relation analytics_event_temp_2011_q3p6c4bgq7o does not exist Position: 13 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:237) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:428) at org.hisp.dhis.analytics.table.JdbcEventAnalyticsTableManager.populateTableAsync(JdbcEventAnalyticsTableManager.java:178) at sun.reflect.GeneratedMethodAccessor1602.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:95) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) ... 1 more Caused by: org.postgresql.util.PSQLException: ERROR: relation analytics_event_temp_2011_q3p6c4bgq7o does not exist Position: 13 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:560) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:395) at com.mchange.v2.c3p0.impl.NewProxyStatement.execute(NewProxyStatement.java:1006) at org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:421) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:396) ... 12 more To manage notifications about this bug go to: https://bugs.launchpad.net/dhis2/+bug/1328273/+subscriptions ___ Mailing list:
Re: [Dhis2-devs] [Bug 1328273] Re: Executing analytics table fails: Process failed: Exception during execution
Thanks Lars. We will test and provide feedback. On Oct 16, 2014 5:29 PM, Lars Helge Øverland larshe...@gmail.com wrote: The problem happens because there are duplicate columns in the event analytics tables. Likely this happens because of a database upgrade error with programs. Check all programs for attributes which appear to have duplicate/multiple members for one or more attributes. I have built into trunk better validation and feedback in the logs. ** Changed in: dhis2 Status: New = Won't Fix ** Changed in: dhis2 Importance: Undecided = Medium ** Changed in: dhis2 Assignee: (unassigned) = Lars Helge Øverland (larshelge) -- You received this bug notification because you are a member of DHIS 2 developers, which is subscribed to DHIS. https://bugs.launchpad.net/bugs/1328273 Title: Executing analytics table fails: Process failed: Exception during execution Status in DHIS 2: Won't Fix Bug description: In version 2.14, I am running tracker. When I try executing analytics table, I get the following error: 'Process failed. Exeception during execution'. Here is an extraction from the last lines in catalina.out that could help in error identification: patientidentifier where patientid=pi.patientid and patientidentifiertypeid=71) as iEoIwcIBRFB,(select identifier from patientidentifier where patientid=pi.patientid and patientidentifiertypeid=71) as iEoIwcIBRFB,(select identifier from patientidentifier where patientid=pi.patientid and patientidentifiertypeid=71) as iEoIwcIBRFB,psi.uid,ps.uid,psi.executiondate,psi.longitude,psi.latitude,ou.uid, ou.name,ou.code from programstageinstance psi left join programinstance pi on psi.programinstanceid=pi.programinstanceid left join programstage ps on psi.programstageid=ps.programstageid left join program pr on pi.programid=pr.programid left join patient pa on pi.patientid=pa.patientid left join organisationunit ou on psi.organisationunitid=ou.organisationunitid left join _orgunitstructure ous on psi.organisationunitid=ous.organisationunitid left join _dateperiodstructure dps on psi.executiondate=dps.dateperiod where psi.executiondate = '2011-01-01' and psi.executiondate = '2011-12-31' and pr.programid=68 and psi.organisationunitid is not null and psi.executiondate is not null]; nested exception is org.postgresql.util.PSQLException: ERROR: relation analytics_event_temp_2011_q3p6c4bgq7o does not exist Position: 13 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:237) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:428) at org.hisp.dhis.analytics.table.JdbcEventAnalyticsTableManager.populateTableAsync(JdbcEventAnalyticsTableManager.java:178) at sun.reflect.GeneratedMethodAccessor1602.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:95) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) ... 1 more Caused by: org.postgresql.util.PSQLException: ERROR: relation analytics_event_temp_2011_q3p6c4bgq7o does not exist Position: 13 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:560) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:395) at com.mchange.v2.c3p0.impl.NewProxyStatement.execute(NewProxyStatement.java:1006) at org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:421) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:396) ... 12 more To
[Dhis2-devs] tutorual: installing apps
Hi, a question that often comes up is how to create, find and install apps on DHIS 2. Read this tutorial to learn more: https://www.dhis2.org/how-to-create-find-install-apps We have also enabled comments for the tutorials through Disqus, so if you have a observation or question don't hesitate to leave a comment. regards, Lars ___ 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
Re: [Dhis2-devs] ssl vulnerability
You can check if you re safe using this free tool : https://www.tinfoilsecurity.com/poodle regards, - J. Paul Mutali skype: mutali.rw On Wed, Oct 15, 2014 at 7:11 PM, Dan d...@dancocos.com wrote: If you’re running apache The fix is to update the following line in your SSL config usually in /etc/httpd/conf.d/ssl.conf SSLProtocol all -SSLv2 -SSLv3 *Dan Cocos* BAO Systems www.baosystems.com T: +1 202-352-2671 | skype: dancocos On Oct 15, 2014, at 1:03 PM, Lars Helge Øverland larshe...@gmail.com wrote: Hi server admins, Google today published a vulnerability in SSL which could allow an attacker to decrypt secure connections: http://googleonlinesecurity.blogspot.se/2014/10/this-poodle-bites-exploiting-ssl-30.html For a dhis system the most practical solution is to simply disable SSL and rely on TLS, as it's mostly Internet Explorer 6 that does not support TLS, and DHIS 2 does not support IE 6 anyway. I have upgraded the nginx installation docs here https://www.dhis2.org/doc/snapshot/en/implementer/html/ch08s03.html#d5e590. To disable SSL and add support for all TLS version you can change this line: ssl_protocols SSLv3 TLSv1.1 TLSv1.2; to this: ssl_protocols TLSv1 TLSv1.1 TLSv1.2; regards, Lars ___ 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 ___ 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 ___ 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
[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17140: SecurityService, split function for validating user restore/invite to separate method
revno: 17140 committer: Lars Helge Overland larshe...@gmail.com branch nick: dhis2 timestamp: Thu 2014-10-16 19:23:01 +0200 message: SecurityService, split function for validating user restore/invite to separate method modified: dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultQueryPlanner.java dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/SecurityService.java dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/AddUserAction.java -- 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-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultQueryPlanner.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultQueryPlanner.java 2014-10-16 06:17:19 + +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultQueryPlanner.java 2014-10-16 17:23:01 + @@ -510,7 +510,7 @@ if ( queries.size() 1 ) { -log.info( Split on org unit level: + queries.size() ); +log.debug( Split on org unit level: + queries.size() ); } return queries; === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java 2014-10-16 06:17:19 + +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java 2014-10-16 17:23:01 + @@ -149,6 +149,36 @@ } @Override +public String validateRestore( UserCredentials credentials ) +{ +if ( !systemSettingManager.emailEnabled() ) +{ +log.info( Could not send restore/invite message as email is not configured ); +return email_not_configured_for_system; +} + +if ( credentials == null || credentials.getUser() == null ) +{ +log.info( Could not send restore/invite message as user does not exist: + credentials ); +return user_does_not_exist; +} + +if ( credentials.getUser().getEmail() == null || !ValidationUtils.emailIsValid( credentials.getUser().getEmail() ) ) +{ +log.info( Could not send restore/invite message as user has no email or email is invalid ); +return user_does_not_have_valid_email; +} + +if ( credentials.hasAnyAuthority( Arrays.asList( UserAuthorityGroup.CRITICAL_AUTHS ) ) ) +{ +log.info( Not allowed to restore/invite users with critical authorities ); +return user_has_critical_authorities; +} + +return null; +} + +@Override public boolean sendRestoreMessage( UserCredentials credentials, String rootPath, RestoreOptions restoreOptions ) { if ( credentials == null || rootPath == null ) @@ -156,32 +186,13 @@ return false; } +if ( validateRestore( credentials ) != null ) +{ +return false; +} + RestoreType restoreType = restoreOptions.getRestoreType(); -if ( credentials.getUser() == null || credentials.getUser().getEmail() == null ) -{ -log.info( Could not send + restoreType.name() + message as user does not exist or has no email: + credentials ); -return false; -} - -if ( !ValidationUtils.emailIsValid( credentials.getUser().getEmail() ) ) -{ -log.info( Could not send + restoreType.name() + message as email is invalid ); -return false; -} - -if ( !systemSettingManager.emailEnabled() ) -{ -log.info( Could not send + restoreType.name() + message as email is not configured ); -return false; -} - -if ( credentials.hasAnyAuthority( Arrays.asList( UserAuthorityGroup.CRITICAL_AUTHS ) ) ) -{ -log.info( Not allowed to + restoreType.name() + users with critical authorities ); -return false; -} - String[] result = initRestore( credentials, restoreOptions ); SetUser users = new HashSet(); @@ -351,7 +362,7 @@ if ( restoreCode == null ) { -return account_restoreCode_is_null; +return account_restore_code_is_null; } boolean validCode = passwordManager.tokenMatches( code, restoreCode,
[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17141: Add simple api to the menu object to specify a filter function
revno: 17141 committer: Mark Polak mar...@ifi.uio.no branch nick: dhis2 timestamp: Thu 2014-10-16 21:00:41 +0200 message: Add simple api to the menu object to specify a filter function modified: dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.menu.js -- 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-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.menu.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.menu.js 2014-06-13 00:10:19 + +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.menu.js 2014-10-16 19:00:41 + @@ -35,6 +35,23 @@ du = { isFunction: function(obj) { return Object.prototype.toString.call(obj) == '[object Function]'; +}, +isString: function (value) { +if (typeof value === 'string' || value instanceof String) { +return true; +} +return false; +}, +clone: function (sourceObj) { +var x; +var cloneObj = {}; + +for (x in sourceObj) { +if (sourceObj.hasOwnProperty(x)) { +cloneObj[x] = sourceObj[x]; +} +} +return cloneObj; } }, getBaseUrl = (function () { @@ -86,8 +103,11 @@ * and managers the order of the items to be saved. */ menuItemsList = function () { -var menuOrder = [], -menuItems = {}; +var menuOrder = []; +var menuItems = {}; +var filterFunction = function (item, key) { +return true; +}; return { getItem: function (key) { @@ -99,9 +119,12 @@ }, list: function () { var result = []; +var filtered = []; menuOrder.forEach(function (element, index, array) { -result.push(menuItems[element]); +if (filterFunction(menuItems[element], menuItems[element].id)) { +result.push(menuItems[element]); +} }); return result; @@ -111,10 +134,20 @@ }, getOrder: function () { return menuOrder; +}, +addFilter: function (filter) { +if (du.isFunction(filter)) { +filterFunction = function (item, key, items) { +if (filter(du.clone(item), key)) { +return true; +} +return false; +}; +} } } }; - +var menus = {}; dhis2.menu = {}; dhis2.menu = function (nameKey, preLoadedData) { @@ -328,6 +361,10 @@ return true; }; +that.notify = function () { +executeCallBacks(); +} + /** * Get the favorite apps * @@ -428,9 +465,51 @@ that.addMenuItems(preLoadedData); } +menus[nameKey] = that; + return that; }; +//The following are dhis2.menu Api functions that let you interact with the menu. +/** + * Add a filter to the menu that has the id nameKey. + * + * @param {String} nameKey Id string of the menu + * @param {Function} filterFunction Function that is called for every menu element, should return true for items + * that should be in the menu, otherwise false. The filterFunction receives a copy + * of the menuItem as the first parameter and the menuItemId as the second. + * + * + * @returns {boolean} Returns true if the filter function was added to the specified menu. Returns false when either + *nameKey was not a string or filterFunction not a function. + */ +dhis2.menu.filter = function (nameKey, filterFunction) { +if (du.isString(nameKey) du.isFunction(filterFunction)) { +menus[nameKey].getMenuItems().addFilter(filterFunction); +menus[nameKey].notify(); +return true; +} +return false; +} + +/** + * Returns the name keys for the current menus. + *
[Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 17142: Mandatory DE validation doesn't work in case entry form.
revno: 17142 committer: Tran Chautran.hispviet...@gmail.com branch nick: dhis2 timestamp: Fri 2014-10-17 10:31:13 +0700 message: Mandatory DE validation doesn't work in case entry form. modified: dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/defaultDataEntryForm.vm dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/sectionDataEntryForm.vm dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/singleDataEntryForm.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-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java 2014-10-16 06:17:19 + +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/program/DefaultProgramDataEntryService.java 2014-10-17 03:31:13 + @@ -573,7 +573,7 @@ String inputHTML = ; if ( dataElement != null ) { -String metaData = input id=\' + id + \' name=\' + id + \' options=\'no\' type=\'radio\' optionset=' +String metaData = input class='optionset' id=\' + id + \' name=\' + id + \' options=\'no\' type=\'radio\' optionset=' + dataElement.getOptionSet().getUid() + '; metaData += data=\{compulsory:$COMPULSORY, deName:\'$DATAELEMENTNAME\', deType:\' + dataElement.getDetailedNumberType() + \' }\ ; @@ -588,7 +588,7 @@ inputHTML += checked ; } -inputHTML += onclick=\saveRadio( \' + dataElement.getUid() + \', \'$option\' )\ / +inputHTML += value='' onclick=\saveRadio( \' + dataElement.getUid() + \', \'$option\' )\ / + i18n.getString( non_value ); inputHTML += /td; === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/defaultDataEntryForm.vm' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/defaultDataEntryForm.vm 2014-08-05 05:57:06 + +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/defaultDataEntryForm.vm 2014-10-17 03:31:13 + @@ -74,9 +74,10 @@ table style='width:100%' tr td - input id='$id' class='$id' name=$id type='radio' options='no' optionset='$programStageDataElement.dataElement.optionSet.uid' + input id='$id' class='$id optionset' name=$id type='radio' options='no' optionset='$programStageDataElement.dataElement.optionSet.uid' data={compulsory: $programStageDataElement.compulsory, deName:'$programStageDataElement.dataElement.name', deType:'$programStageDataElement.dataElement.getDetailedNumberType()' } #if( $dataValue.value == $option.name) checked #end +value='' onclick=saveRadio( '$programStageDataElement.dataElement.uid', '' ) tabindex=$tabIndex /$i18n.getString(non_value) /td #set($index=1) === modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js' --- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2014-08-05 05:57:06 + +++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2014-10-17 03:31:13 + @@ -544,7 +544,8 @@ function runCompleteEvent( isCreateEvent ) { var flag = false; -$(#dataEntryFormDiv input[name='entryfield'],select[name='entryselect']).each(function() { +$(#dataEntryFormDiv .optionset).parent().removeClass(errorCell); +$(#dataEntryFormDiv input[name='entryfield'],select[name='entryselect'],.optionset:checked).each(function() { $(this).parent().removeClass(errorCell); var arrData = $(this).attr('data').replace('{', '').replace('}', '').replace(/'/g, ).split(','); @@ -956,31 +957,60 @@ function runValidation() { - $('#loading-bar').show(); - $('#loading-bar').dialog({ - modal:true, - width: 330 - }); - $(#loading-bar).siblings(.ui-dialog-titlebar).hide(); - - var programStageInstanceId = jQuery('.stage-object-selected').attr('id').split('_')[1]; - $('#validateProgramDiv' ).load( 'validateProgram.action', - { - programStageInstanceId: programStageInstanceId - }, - function(){ - $( #loading-bar ).dialog( close ); - - $('#validateProgramDiv' ).dialog({ -title: i18n_violate_validation, -maximize: true, -closable: true, -modal:true, -