Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 1b5c39a

Browse files
SORMAS-Foundation#4020 - Event date restrictions, fixed date filter
1 parent d0409de commit 1b5c39a

3 files changed

Lines changed: 18 additions & 7 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/event/EventHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,9 @@ public static String buildMeansOfTransportString(MeansOfTransport meansOfTranspo
6363
public static String buildEventActionTitleString(ActionMeasure actionMeasure, String actionTitle) {
6464
return actionMeasure == null || actionMeasure == ActionMeasure.OTHER ? actionTitle : actionMeasure.toString();
6565
}
66+
67+
public static Date getStartOrEndDate(Date eventStartDate, Date eventEndDate) {
68+
return eventStartDate != null ? eventStartDate : eventEndDate;
69+
}
70+
6671
}

sormas-backend/src/main/java/de/symeda/sormas/backend/event/EventService.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -539,17 +539,19 @@ public Predicate buildCriteriaFilter(EventCriteria eventCriteria, CriteriaBuilde
539539
filter = CriteriaBuilderHelper.and(
540540
cb,
541541
filter,
542-
cb.or(cb.greaterThanOrEqualTo(from.get(Event.START_DATE), eventCriteria.getEventDateFrom())),
543-
cb.and(
544-
cb.isNotNull(from.get(Event.END_DATE)),
545-
cb.lessThan(from.get(Event.START_DATE), eventCriteria.getEventDateFrom()),
546-
cb.greaterThanOrEqualTo(from.get(Event.END_DATE), eventCriteria.getEventDateFrom())));
542+
cb.or(
543+
cb.greaterThanOrEqualTo(from.get(Event.START_DATE), eventCriteria.getEventDateFrom()),
544+
cb.and(
545+
cb.isNotNull(from.get(Event.END_DATE)),
546+
cb.lessThan(from.get(Event.START_DATE), eventCriteria.getEventDateFrom()),
547+
cb.greaterThanOrEqualTo(from.get(Event.END_DATE), eventCriteria.getEventDateFrom()))));
547548
} else if (eventCriteria.getEventDateTo() != null) {
548549
filter = CriteriaBuilderHelper.and(
549550
cb,
550551
filter,
551-
cb.or(cb.and(cb.isNull(from.get(Event.END_DATE)), cb.lessThanOrEqualTo(from.get(Event.START_DATE), eventCriteria.getEventDateTo()))),
552-
cb.lessThanOrEqualTo(from.get(Event.END_DATE), eventCriteria.getEventDateTo()));
552+
cb.or(
553+
cb.and(cb.isNull(from.get(Event.END_DATE)), cb.lessThanOrEqualTo(from.get(Event.START_DATE), eventCriteria.getEventDateTo())),
554+
cb.lessThanOrEqualTo(from.get(Event.END_DATE), eventCriteria.getEventDateTo())));
553555
}
554556
if (eventCriteria.getSurveillanceOfficer() != null) {
555557
filter = CriteriaBuilderHelper.and(

sormas-ui/src/main/java/de/symeda/sormas/ui/events/eventLink/EventSelectionField.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import de.symeda.sormas.api.contact.ContactDto;
4141
import de.symeda.sormas.api.event.EventCriteria;
4242
import de.symeda.sormas.api.event.EventDto;
43+
import de.symeda.sormas.api.event.EventHelper;
4344
import de.symeda.sormas.api.event.EventIndexDto;
4445
import de.symeda.sormas.api.i18n.Captions;
4546
import de.symeda.sormas.api.i18n.I18nProperties;
@@ -103,8 +104,11 @@ public EventSelectionField(EventDto event, Set<String> excludedUuids, boolean se
103104
criteria.relevanceStatus(EntityRelevanceStatus.ACTIVE);
104105

105106
if (!selectSuperordinateEvent) {
107+
criteria.eventDateFrom(EventHelper.getStartOrEndDate(event.getStartDate(), event.getEndDate()));
106108
// Users are not allowed to select a subordinate event that already has a superordinate event
107109
criteria.setHasNoSuperordinateEvent(Boolean.TRUE);
110+
} else {
111+
criteria.eventDateTo(EventHelper.getStartOrEndDate(event.getStartDate(), event.getEndDate()));
108112
}
109113

110114
initializeGrid();

0 commit comments

Comments
 (0)