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

Commit fd4d414

Browse files
[GITFLOW]merging 'hotfix-1.43.1' into 'master'
2 parents b37ad80 + a7b724f commit fd4d414

16 files changed

Lines changed: 67 additions & 41 deletions

File tree

sormas-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<parent>
33
<groupId>de.symeda.sormas</groupId>
44
<artifactId>sormas-base</artifactId>
5-
<version>1.43.0</version>
5+
<version>1.43.1</version>
66
<relativePath>../sormas-base</relativePath>
77
</parent>
88
<modelVersion>4.0.0</modelVersion>

sormas-app/app/src/main/java/de/symeda/sormas/app/backend/event/EventDao.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public Event build() {
7474
event.setReportDateTime(new Date());
7575
event.setReportingUser(ConfigProvider.getUser());
7676
event.getEventLocation().setRegion(ConfigProvider.getUser().getRegion());
77+
event.getEventLocation().setDistrict(ConfigProvider.getUser().getDistrict());
7778
event.setEventStatus(EventStatus.POSSIBLE);
7879

7980
return event;

sormas-app/app/src/main/java/de/symeda/sormas/app/component/dialog/AbstractDialog.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public abstract class AbstractDialog implements NotificationContext {
5858
private int buttonPanelLayoutResourceId;
5959
private DialogViewConfig config;
6060
private boolean liveValidationDisabled;
61+
private boolean closeOnPositiveButtonClick;
6162

6263
// Button callbacks
6364
private boolean suppressNextDismiss;
@@ -67,19 +68,13 @@ public abstract class AbstractDialog implements NotificationContext {
6768

6869
// Constructor
6970

70-
public AbstractDialog(
71-
final FragmentActivity activity,
72-
int rootLayoutId,
73-
int contentLayoutResourceId,
74-
int buttonPanelLayoutResourceId,
75-
int headingResourceId,
76-
int subHeadingResourceId) {
77-
71+
public AbstractDialog(final FragmentActivity activity, int rootLayoutId, int contentLayoutResourceId, int buttonPanelLayoutResourceId, int headingResourceId, int subHeadingResourceId, boolean closeOnPositiveButtonClick) {
7872
this.builder = new AlertDialog.Builder(activity);
7973
this.activity = activity;
8074
this.rootLayoutId = rootLayoutId;
8175
this.contentLayoutResourceId = contentLayoutResourceId;
8276
this.buttonPanelLayoutResourceId = buttonPanelLayoutResourceId;
77+
this.closeOnPositiveButtonClick = closeOnPositiveButtonClick;
8378

8479
Resources resources = activity.getResources();
8580
String heading = null;
@@ -99,6 +94,16 @@ public AbstractDialog(
9994
this.config = new DialogViewConfig(heading, subHeading, positiveLabel, negativeLabel, deleteLabel, positiveIcon, negativeIcon);
10095
}
10196

97+
public AbstractDialog(
98+
final FragmentActivity activity,
99+
int rootLayoutId,
100+
int contentLayoutResourceId,
101+
int buttonPanelLayoutResourceId,
102+
int headingResourceId,
103+
int subHeadingResourceId) {
104+
this(activity, rootLayoutId, contentLayoutResourceId, buttonPanelLayoutResourceId, headingResourceId, subHeadingResourceId, true);
105+
}
106+
102107
// Instance methods
103108

104109
private DialogRootLayoutBinding bindRootLayout(final Context context) {
@@ -225,7 +230,9 @@ protected void onPositiveClick() {
225230
positiveCallback.call();
226231
}
227232

228-
dismiss();
233+
if (closeOnPositiveButtonClick) {
234+
dismiss();
235+
}
229236
}
230237

231238
private void onNegativeClick() {

sormas-app/app/src/main/java/de/symeda/sormas/app/component/dialog/LocationDialog.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,17 @@ public class LocationDialog extends AbstractDialog {
5050
// Constructor
5151

5252
public LocationDialog(final FragmentActivity activity, Location location, FieldAccessCheckers fieldAccessCheckers) {
53+
this(activity, location, true, fieldAccessCheckers);
54+
}
55+
56+
public LocationDialog(final FragmentActivity activity, Location location, boolean closeOnPositiveButtonClick, FieldAccessCheckers fieldAccessCheckers) {
5357
super(
5458
activity,
5559
R.layout.dialog_root_layout,
5660
R.layout.dialog_location_layout,
5761
R.layout.dialog_root_two_button_panel_layout,
5862
R.string.heading_location,
59-
-1);
63+
-1, closeOnPositiveButtonClick);
6064

6165
this.data = location;
6266
this.fieldAccessCheckers = fieldAccessCheckers;
@@ -120,6 +124,15 @@ protected void initializeContentView(ViewDataBinding rootBinding, ViewDataBindin
120124
});
121125
}
122126

127+
public void setRegionAndDistrictRequired(boolean required) {
128+
contentBinding.locationRegion.setRequired(required);
129+
contentBinding.locationDistrict.setRequired(required);
130+
}
131+
132+
public DialogLocationLayoutBinding getContentBinding() {
133+
return contentBinding;
134+
}
135+
123136
@Override
124137
public boolean isRounded() {
125138
return true;

sormas-app/app/src/main/java/de/symeda/sormas/app/event/edit/EventEditFragment.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,23 @@
2222
import de.symeda.sormas.api.Disease;
2323
import de.symeda.sormas.api.event.EventStatus;
2424
import de.symeda.sormas.api.event.TypeOfPlace;
25+
import de.symeda.sormas.api.utils.ValidationException;
2526
import de.symeda.sormas.app.BaseActivity;
2627
import de.symeda.sormas.app.BaseEditFragment;
2728
import de.symeda.sormas.app.R;
2829
import de.symeda.sormas.app.backend.event.Event;
2930
import de.symeda.sormas.app.backend.location.Location;
31+
import de.symeda.sormas.app.caze.edit.EpiDataBurialDialog;
3032
import de.symeda.sormas.app.component.Item;
3133
import de.symeda.sormas.app.component.dialog.LocationDialog;
34+
import de.symeda.sormas.app.component.validation.FragmentValidator;
35+
import de.symeda.sormas.app.core.notification.NotificationHelper;
3236
import de.symeda.sormas.app.databinding.FragmentEventEditLayoutBinding;
3337
import de.symeda.sormas.app.util.DataUtils;
3438
import de.symeda.sormas.app.util.DiseaseConfigurationCache;
3539

40+
import static de.symeda.sormas.app.core.notification.NotificationType.ERROR;
41+
3642
public class EventEditFragment extends BaseEditFragment<FragmentEventEditLayoutBinding, Event, Event> {
3743

3844
private Event record;
@@ -59,12 +65,18 @@ public void onClick(View v) {
5965
private void openAddressPopup(final FragmentEventEditLayoutBinding contentBinding) {
6066
final Location location = record.getEventLocation();
6167
final Location locationClone = (Location) location.clone();
62-
final LocationDialog locationDialog = new LocationDialog(BaseActivity.getActiveActivity(), locationClone, null);
68+
final LocationDialog locationDialog = new LocationDialog(BaseActivity.getActiveActivity(), locationClone, false,null);
6369
locationDialog.show();
64-
70+
locationDialog.setRegionAndDistrictRequired(true);
6571
locationDialog.setPositiveCallback(() -> {
66-
contentBinding.eventEventLocation.setValue(locationClone);
67-
record.setEventLocation(locationClone);
72+
try {
73+
FragmentValidator.validate(getContext(), locationDialog.getContentBinding());
74+
contentBinding.eventEventLocation.setValue(locationClone);
75+
record.setEventLocation(locationClone);
76+
locationDialog.dismiss();
77+
} catch (ValidationException e) {
78+
NotificationHelper.showDialogNotification(locationDialog, ERROR, e.getMessage());
79+
}
6880
});
6981
}
7082

sormas-app/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>sormas-base</artifactId>
55
<groupId>de.symeda.sormas</groupId>
6-
<version>1.43.0</version>
6+
<version>1.43.1</version>
77
<relativePath>../sormas-base</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

sormas-backend/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>sormas-base</artifactId>
55
<groupId>de.symeda.sormas</groupId>
6-
<version>1.43.0</version>
6+
<version>1.43.1</version>
77
<relativePath>../sormas-base</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,13 +385,15 @@ public List<ContactExportDto> getExportList(ContactCriteria contactCriteria, int
385385
listCriteriaBuilder.getJurisdictionSelections(joins))
386386
.collect(Collectors.toList()));
387387

388+
cq.distinct(true);
389+
388390
Predicate filter = listCriteriaBuilder.buildContactFilter(contactCriteria, cb, contact, cq);
389391

390392
if (filter != null) {
391393
cq.where(filter);
392394
}
393395

394-
cq.orderBy(cb.desc(contact.get(Contact.REPORT_DATE_TIME)));
396+
cq.orderBy(cb.desc(contact.get(Contact.REPORT_DATE_TIME)), cb.desc(contact.get(Contact.ID)));
395397

396398
List<ContactExportDto> exportContacts = em.createQuery(cq).setFirstResult(first).setMaxResults(max).getResultList();
397399

sormas-backend/src/main/java/de/symeda/sormas/backend/sample/SampleFacadeEjb.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,8 @@ private List<SampleExportDto> getExportList(SampleCriteria sampleCriteria, CaseC
527527
joins.getContact().get(Contact.CONTACT_CLASSIFICATION),
528528
joins.getContact().get(Contact.CONTACT_STATUS)));
529529

530+
cq.distinct(true);
531+
530532
selections.addAll(getCaseJurisdictionSelections(joins));
531533
selections.addAll(getContactJurisdictionSelections(joins));
532534

@@ -547,7 +549,7 @@ private List<SampleExportDto> getExportList(SampleCriteria sampleCriteria, CaseC
547549
cq.where(filter);
548550
}
549551

550-
cq.orderBy(cb.desc(sample.get(Sample.REPORT_DATE_TIME)));
552+
cq.orderBy(cb.desc(sample.get(Sample.REPORT_DATE_TIME)), cb.desc(sample.get(Sample.ID)));
551553

552554
List<SampleExportDto> resultList = em.createQuery(cq).setFirstResult(first).setMaxResults(max).getResultList();
553555

sormas-base/dependencies/serverlibs.pom

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<parent>
99
<artifactId>sormas-base</artifactId>
1010
<groupId>de.symeda.sormas</groupId>
11-
<version>1.43.0</version>
11+
<version>1.43.1</version>
1212
<relativePath>../</relativePath>
1313
</parent>
1414

0 commit comments

Comments
 (0)