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

Commit 45094e0

Browse files
Revert "Add basic event generator for devmode SORMAS-Foundation#4185"
This reverts commit 0b75f28.
1 parent b349401 commit 45094e0

File tree

1 file changed

+0
-262
lines changed

1 file changed

+0
-262
lines changed

sormas-ui/src/main/java/de/symeda/sormas/ui/configuration/DevModeView.java

-262
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,6 @@
6464
import de.symeda.sormas.api.contact.ContactLogic;
6565
import de.symeda.sormas.api.contact.FollowUpStatus;
6666
import de.symeda.sormas.api.contact.QuarantineType;
67-
import de.symeda.sormas.api.event.EventDto;
68-
import de.symeda.sormas.api.event.EventParticipantDto;
69-
import de.symeda.sormas.api.event.EventStatus;
7067
import de.symeda.sormas.api.facility.FacilityCriteria;
7168
import de.symeda.sormas.api.facility.FacilityDto;
7269
import de.symeda.sormas.api.i18n.Captions;
@@ -106,7 +103,6 @@ public class DevModeView extends AbstractConfigurationView {
106103

107104
private Binder<CaseGenerationConfig> caseGeneratorConfigBinder = new Binder<>();
108105
private Binder<ContactGenerationConfig> contactGeneratorConfigBinder = new Binder<>();
109-
private Binder<EventGenerationConfig> eventGeneratorConfigBinder = new Binder<>();
110106

111107
private FieldVisibilityCheckers fieldVisibilityCheckers;
112108

@@ -124,7 +120,6 @@ public DevModeView() {
124120
new Label(VaadinIcons.INFO_CIRCLE.getHtml() + " " + I18nProperties.getString(Strings.infoDeveloperOptions), ContentMode.HTML));
125121
contentLayout.addComponent(createCaseGeneratorLayout());
126122
contentLayout.addComponent(createContactGeneratorLayout());
127-
contentLayout.addComponent(createEventsGeneratorLayout());
128123

129124
addComponent(contentLayout);
130125
}
@@ -293,91 +288,6 @@ private VerticalLayout createContactGeneratorLayout() {
293288
return contactGeneratorLayout;
294289
}
295290

296-
private VerticalLayout createEventsGeneratorLayout() {
297-
VerticalLayout eventGeneratorLayout = new VerticalLayout();
298-
eventGeneratorLayout.setMargin(false);
299-
eventGeneratorLayout.setSpacing(false);
300-
301-
Label heading = new Label("Event Generation");
302-
CssStyles.style(heading, CssStyles.H2);
303-
eventGeneratorLayout.addComponent(heading);
304-
305-
HorizontalLayout eventOptionsFirstLineLayout = new HorizontalLayout();
306-
307-
TextField eventCountField = new TextField();
308-
eventCountField.setCaption(I18nProperties.getCaption(Captions.devModeContactCount));
309-
eventGeneratorConfigBinder.forField(eventCountField)
310-
.withConverter(new StringToIntegerConverter("Must be a number"))
311-
.bind(EventGenerationConfig::getEventCount, EventGenerationConfig::setEventCount);
312-
eventOptionsFirstLineLayout.addComponent(eventCountField);
313-
314-
DateField startDateField = new DateField();
315-
startDateField.setCaption(I18nProperties.getCaption(Captions.devModeContactStartDate));
316-
startDateField.setDateFormat(DateFormatHelper.getDateFormatPattern());
317-
startDateField.setLenient(true);
318-
eventGeneratorConfigBinder.bind(startDateField, EventGenerationConfig::getStartDate, EventGenerationConfig::setStartDate);
319-
eventOptionsFirstLineLayout.addComponent(startDateField);
320-
321-
DateField endDateField = new DateField();
322-
endDateField.setCaption(I18nProperties.getCaption(Captions.devModeContactEndDate));
323-
endDateField.setDateFormat(DateFormatHelper.getDateFormatPattern());
324-
endDateField.setLenient(true);
325-
eventGeneratorConfigBinder.bind(endDateField, EventGenerationConfig::getEndDate, EventGenerationConfig::setEndDate);
326-
eventOptionsFirstLineLayout.addComponent(endDateField);
327-
328-
ComboBox<Disease> diseaseField = new ComboBox<>(null, FacadeProvider.getDiseaseConfigurationFacade().getAllDiseases(true, true, true));
329-
diseaseField.setCaption(I18nProperties.getCaption(Captions.devModeContactDisease));
330-
eventGeneratorConfigBinder.bind(diseaseField, EventGenerationConfig::getDisease, EventGenerationConfig::setDisease);
331-
eventOptionsFirstLineLayout.addComponent(diseaseField);
332-
333-
List<RegionReferenceDto> regions = FacadeProvider.getRegionFacade().getAllActiveAsReference();
334-
ComboBox<RegionReferenceDto> regionField = new ComboBox<RegionReferenceDto>(null, regions);
335-
regionField.setCaption(I18nProperties.getCaption(Captions.devModeContactRegion));
336-
eventGeneratorConfigBinder.bind(regionField, EventGenerationConfig::getRegion, EventGenerationConfig::setRegion);
337-
eventOptionsFirstLineLayout.addComponent(regionField);
338-
339-
ComboBox<DistrictReferenceDto> districtField = new ComboBox<DistrictReferenceDto>();
340-
districtField.setCaption(I18nProperties.getCaption(Captions.devModeContactDistrict));
341-
eventGeneratorConfigBinder.bind(districtField, EventGenerationConfig::getDistrict, EventGenerationConfig::setDistrict);
342-
eventOptionsFirstLineLayout.addComponent(districtField);
343-
344-
regionField.addValueChangeListener(event -> {
345-
RegionReferenceDto region = event.getValue();
346-
if (region != null) {
347-
districtField.setItems(FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
348-
} else {
349-
districtField.setItems(new ArrayList<DistrictReferenceDto>());
350-
}
351-
});
352-
353-
Button generateButton = ButtonHelper.createButton("Generate Events", e -> generateEvents(), CssStyles.FORCE_CAPTION);
354-
eventOptionsFirstLineLayout.addComponent(generateButton);
355-
356-
eventGeneratorLayout.addComponent(eventOptionsFirstLineLayout);
357-
358-
HorizontalLayout eventOptionsSecondLineLayout = new HorizontalLayout();
359-
360-
TextField minParticipantsPerEventField = new TextField();
361-
minParticipantsPerEventField.setCaption("Min participants per event");
362-
eventGeneratorConfigBinder.forField(minParticipantsPerEventField)
363-
.withConverter(new StringToIntegerConverter("Must be a number"))
364-
.bind(EventGenerationConfig::getMinParticipantsPerEvent, EventGenerationConfig::setMinParticipantsPerEvent);
365-
eventOptionsSecondLineLayout.addComponent(minParticipantsPerEventField);
366-
367-
TextField maxParticipantsPerEventField = new TextField();
368-
maxParticipantsPerEventField.setCaption("Max participants per event");
369-
eventGeneratorConfigBinder.forField(maxParticipantsPerEventField)
370-
.withConverter(new StringToIntegerConverter("Must be a number"))
371-
.bind(EventGenerationConfig::getMaxParticipantsPerEvent, EventGenerationConfig::setMaxParticipantsPerEvent);
372-
eventOptionsSecondLineLayout.addComponent(maxParticipantsPerEventField);
373-
374-
EventGenerationConfig config = new EventGenerationConfig();
375-
eventGeneratorLayout.addComponent(eventOptionsSecondLineLayout);
376-
eventGeneratorConfigBinder.setBean(config);
377-
378-
return eventGeneratorLayout;
379-
}
380-
381291
private final String[] maleFirstNames = new String[] {
382292
"Nelson",
383293
"Malik",
@@ -413,14 +323,6 @@ private VerticalLayout createEventsGeneratorLayout() {
413323
"Tinibu",
414324
"Okar",
415325
"Egwu" };
416-
private final String[] eventTitles = new String[] {
417-
"Wedding",
418-
"Party",
419-
"Funeral",
420-
"Concert",
421-
"Fair",
422-
"Rallye",
423-
"Demonstration" };
424326

425327
private static Random random() {
426328
return ThreadLocalRandom.current();
@@ -430,12 +332,6 @@ private static boolean randomPercent(int p) {
430332
return random().nextInt(100) <= p;
431333
}
432334

433-
private static int randomInt(int min, int max) {
434-
if (max <= min)
435-
return min;
436-
return min + random().nextInt(max - min);
437-
}
438-
439335
private static <T> T random(List<T> list) {
440336
return list.get(random().nextInt(list.size()));
441337
}
@@ -736,87 +632,6 @@ private void generateContacts() {
736632
}
737633
}
738634

739-
private void generateEvents() {
740-
741-
EventGenerationConfig config = eventGeneratorConfigBinder.getBean();
742-
743-
int generatedParticipants = 0;
744-
745-
List<Disease> diseases = FacadeProvider.getDiseaseConfigurationFacade().getAllDiseases(true, true, true);
746-
float baseOffset = random().nextFloat();
747-
int daysBetween = (int) ChronoUnit.DAYS.between(config.startDate, config.endDate);
748-
749-
long dt = System.nanoTime();
750-
751-
for (int i = 0; i < config.getEventCount(); i++) {
752-
Disease disease = config.getDisease();
753-
if (disease == null) {
754-
disease = random(diseases);
755-
}
756-
757-
LocalDateTime referenceDateTime =
758-
getReferenceDateTime(i, config.getEventCount(), baseOffset, disease, config.getStartDate(), daysBetween);
759-
760-
fieldVisibilityCheckers = new FieldVisibilityCheckers().add(new DiseaseFieldVisibilityChecker(disease))
761-
.add(new CountryFieldVisibilityChecker(FacadeProvider.getConfigFacade().getCountryLocale()));
762-
763-
EventDto event = EventDto.build();
764-
765-
// disease
766-
event.setDisease(disease); // reset
767-
if (event.getDisease() == Disease.OTHER) {
768-
event.setDiseaseDetails("RD " + (random().nextInt(20) + 1));
769-
}
770-
771-
// title
772-
event.setEventTitle(random(eventTitles));
773-
774-
// report
775-
UserReferenceDto userReference = UserProvider.getCurrent().getUserReference();
776-
event.setReportingUser(userReference);
777-
event.setReportDateTime(Date.from(referenceDateTime.atZone(ZoneId.systemDefault()).toInstant()));
778-
779-
// region & district
780-
event.getEventLocation().setRegion(config.getRegion());
781-
event.getEventLocation().setDistrict(config.getDistrict());
782-
783-
// status
784-
event.setEventStatus(EventStatus.EVENT);
785-
786-
FacadeProvider.getEventFacade().saveEvent(event);
787-
788-
// EventParticipants
789-
int numParticipants = randomInt(config.getMinParticipantsPerEvent(), config.getMaxParticipantsPerEvent());
790-
for (int j = 0; j < numParticipants; j++) {
791-
EventParticipantDto eventParticipant = EventParticipantDto.build(event.toReference(), UserProvider.getCurrent().getUserReference());
792-
// person
793-
// instead of creating new persons everytime, it would be nice if some persons came of the original database
794-
// also, some participants should get cases and contacts created for them
795-
PersonDto person = PersonDto.build();
796-
fillEntity(person, referenceDateTime);
797-
person.setSymptomJournalStatus(null);
798-
setPersonName(person);
799-
FacadeProvider.getPersonFacade().savePerson(person);
800-
eventParticipant.setPerson(person);
801-
eventParticipant.setInvolvementDescription("Participant");
802-
803-
FacadeProvider.getEventParticipantFacade().saveEventParticipant(eventParticipant);
804-
generatedParticipants++;
805-
}
806-
}
807-
808-
dt = System.nanoTime() - dt;
809-
long perCase = dt / config.getEventCount();
810-
String msg = String.format(
811-
"Generating %,d events with a total of %,d participants took %,d ms (%,d ms per event)",
812-
config.getEventCount(),
813-
generatedParticipants,
814-
dt / 1_000_000,
815-
perCase / 1_000_000);
816-
logger.info(msg);
817-
Notification.show("", msg, Notification.Type.TRAY_NOTIFICATION);
818-
}
819-
820635
private LocalDateTime getReferenceDateTime(int i, int count, float baseOffset, Disease disease, LocalDate startDate, int daysBetween) {
821636

822637
float x = (float) i / count;
@@ -988,81 +803,4 @@ public void setCreateWithVisits(boolean createWithVisits) {
988803
this.createWithVisits = createWithVisits;
989804
}
990805
}
991-
992-
private static class EventGenerationConfig {
993-
994-
private int eventCount = 10;
995-
private LocalDate startDate = LocalDate.now().minusDays(90);
996-
private LocalDate endDate = LocalDate.now();
997-
private Disease disease = null;
998-
private RegionReferenceDto region = null;
999-
private DistrictReferenceDto district = null;
1000-
private int minParticipantsPerEvent = 3;
1001-
private int maxParticipantsPerEvent = 10;
1002-
1003-
public int getEventCount() {
1004-
return eventCount;
1005-
}
1006-
1007-
public void setEventCount(int contactCount) {
1008-
this.eventCount = contactCount;
1009-
}
1010-
1011-
public LocalDate getStartDate() {
1012-
return startDate;
1013-
}
1014-
1015-
public void setStartDate(LocalDate startDate) {
1016-
this.startDate = startDate;
1017-
}
1018-
1019-
public LocalDate getEndDate() {
1020-
return endDate;
1021-
}
1022-
1023-
public void setEndDate(LocalDate endDate) {
1024-
this.endDate = endDate;
1025-
}
1026-
1027-
public Disease getDisease() {
1028-
return disease;
1029-
}
1030-
1031-
public void setDisease(Disease disease) {
1032-
this.disease = disease;
1033-
}
1034-
1035-
public RegionReferenceDto getRegion() {
1036-
return region;
1037-
}
1038-
1039-
public void setRegion(RegionReferenceDto region) {
1040-
this.region = region;
1041-
}
1042-
1043-
public DistrictReferenceDto getDistrict() {
1044-
return district;
1045-
}
1046-
1047-
public void setDistrict(DistrictReferenceDto district) {
1048-
this.district = district;
1049-
}
1050-
1051-
public int getMinParticipantsPerEvent() {
1052-
return minParticipantsPerEvent;
1053-
}
1054-
1055-
public void setMinParticipantsPerEvent(int minParticipantsPerEvent) {
1056-
this.minParticipantsPerEvent = minParticipantsPerEvent;
1057-
}
1058-
1059-
public int getMaxParticipantsPerEvent() {
1060-
return maxParticipantsPerEvent;
1061-
}
1062-
1063-
public void setMaxParticipantsPerEvent(int maxParticipantsPerEvent) {
1064-
this.maxParticipantsPerEvent = maxParticipantsPerEvent;
1065-
}
1066-
1067-
}
1068806
}

0 commit comments

Comments
 (0)