diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/task/TaskService.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/task/TaskService.java index b58ef9de733..290b78eeb48 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/task/TaskService.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/task/TaskService.java @@ -493,6 +493,7 @@ public Predicate buildCriteriaFilter(TaskCriteria taskCriteria, TaskQueryContext filter, CriteriaBuilderHelper.or( cb, + cb.equal(from.get(Task.TASK_CONTEXT), TaskContext.GENERAL), cb.equal(joins.getCaseRegion().get(Region.UUID), regionUuid), cb.equal(joins.getCaseResponsibleRegion().get(Region.UUID), regionUuid), cb.equal(joins.getContactRegion().get(Region.UUID), regionUuid), @@ -508,6 +509,7 @@ public Predicate buildCriteriaFilter(TaskCriteria taskCriteria, TaskQueryContext filter, CriteriaBuilderHelper.or( cb, + cb.equal(from.get(Task.TASK_CONTEXT), TaskContext.GENERAL), cb.equal(joins.getCaseDistrict().get(District.UUID), districtUuid), cb.equal(joins.getCaseResponsibleDistrict().get(District.UUID), districtUuid), cb.equal(joins.getContactDistrict().get(District.UUID), districtUuid), diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/task/TaskFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/task/TaskFacadeEjbTest.java index eef9812e80f..0f2d2e272e5 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/task/TaskFacadeEjbTest.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/task/TaskFacadeEjbTest.java @@ -60,6 +60,8 @@ import de.symeda.sormas.api.feature.FeatureConfigurationIndexDto; import de.symeda.sormas.api.feature.FeatureType; import de.symeda.sormas.api.infrastructure.community.CommunityDto; +import de.symeda.sormas.api.infrastructure.district.DistrictReferenceDto; +import de.symeda.sormas.api.infrastructure.region.RegionReferenceDto; import de.symeda.sormas.api.person.PersonDto; import de.symeda.sormas.api.sormastosormas.share.incoming.ShareRequestDataType; import de.symeda.sormas.api.sormastosormas.share.incoming.ShareRequestStatus; @@ -120,6 +122,39 @@ public void testTaskDirectoryForDeletedLinkedCase() { assertEquals(0, tasks.size()); } + @Test + public void testTaskDirectoryForGeneralTasks() { + RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); + RegionReferenceDto region = rdcf.region; + DistrictReferenceDto district = rdcf.district; + UserDto user = creator.createUser( + region.getUuid(), + district.getUuid(), + rdcf.facility.getUuid(), + "Surv", + "Sup", + creator.userRoleDtoMap.get(DefaultUserRole.SURVEILLANCE_SUPERVISOR)); + + TaskDto task = creator.createTask( + TaskContext.GENERAL, + TaskType.DAILY_REPORT_GENERATION, + TaskStatus.DONE, + null, + null, + null, + null, + DateHelper.addDays(new Date(), 1), + user.toReference()); + + TaskCriteria taskCriteria = new TaskCriteria().taskContext(TaskContext.GENERAL).taskStatus(TaskStatus.DONE); + taskCriteria.setRegion(region); + taskCriteria.setDistrict(district); + + List tasks = getTaskFacade().getIndexList(taskCriteria, 0, 100, null); + assertEquals(1, tasks.size()); + assertEquals(task.getUuid(), tasks.get(0).getUuid()); + } + @Test public void testGetByUuidForArchivedTask() { UserDto user1 = creator.createUser(