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

Commit a227db1

Browse files
SORMAS-Foundation#2900 - Only show covid app fields for cases
1 parent 21599c9 commit a227db1

6 files changed

Lines changed: 66 additions & 31 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2020 Helmholtz-Zentrum für Infektionsforschung GmbH (HZI)
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation, either version 3 of the License, or
7+
* (at your option) any later version.
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
* You should have received a copy of the GNU General Public License
13+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
14+
*/
15+
16+
package de.symeda.sormas.api.person;
17+
18+
public enum PersonContext {
19+
20+
CASE,
21+
CONTACT,
22+
EVENT_PARTICIPANT,
23+
OTHER;
24+
25+
}

sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasePersonView.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import de.symeda.sormas.api.FacadeProvider;
2121
import de.symeda.sormas.api.caze.CaseDataDto;
22+
import de.symeda.sormas.api.person.PersonContext;
2223
import de.symeda.sormas.api.user.UserRight;
2324
import de.symeda.sormas.ui.ControllerProvider;
2425
import de.symeda.sormas.ui.person.PersonEditForm;
@@ -39,6 +40,7 @@ protected void initView(String params) {
3940
CaseDataDto caseData = FacadeProvider.getCaseFacade().getCaseDataByUuid(getCaseRef().getUuid());
4041
CommitDiscardWrapperComponent<PersonEditForm> personEditComponent = ControllerProvider.getPersonController()
4142
.getPersonEditComponent(
43+
PersonContext.CASE,
4244
caseData.getPerson().getUuid(),
4345
caseData.getDisease(),
4446
caseData.getDiseaseDetails(),

sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactPersonView.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import de.symeda.sormas.api.FacadeProvider;
2121
import de.symeda.sormas.api.contact.ContactDto;
22+
import de.symeda.sormas.api.person.PersonContext;
2223
import de.symeda.sormas.api.user.UserRight;
2324
import de.symeda.sormas.ui.ControllerProvider;
2425
import de.symeda.sormas.ui.person.PersonEditForm;
@@ -41,6 +42,7 @@ protected void initView(String params) {
4142

4243
CommitDiscardWrapperComponent<PersonEditForm> contactPersonComponent = ControllerProvider.getPersonController()
4344
.getPersonEditComponent(
45+
PersonContext.CONTACT,
4446
dto.getPerson().getUuid(),
4547
dto.getDisease(),
4648
dto.getDiseaseDetails(),

sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantEditForm.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,19 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.ui.events;
1919

20-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
21-
2220
import com.vaadin.v7.ui.TextField;
23-
2421
import de.symeda.sormas.api.event.EventDto;
2522
import de.symeda.sormas.api.event.EventParticipantDto;
23+
import de.symeda.sormas.api.person.PersonContext;
2624
import de.symeda.sormas.api.person.PersonDto;
2725
import de.symeda.sormas.api.utils.fieldvisibility.FieldVisibilityCheckers;
2826
import de.symeda.sormas.ui.person.PersonEditForm;
2927
import de.symeda.sormas.ui.utils.AbstractEditForm;
3028
import de.symeda.sormas.ui.utils.FieldHelper;
3129
import de.symeda.sormas.ui.utils.UiFieldAccessCheckers;
3230

31+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
32+
3333
public class EventParticipantEditForm extends AbstractEditForm<EventParticipantDto> {
3434

3535
private static final long serialVersionUID = 1L;
@@ -66,7 +66,7 @@ protected void addFields() {
6666
return;
6767
}
6868

69-
PersonEditForm pef = new PersonEditForm(event.getDisease(), event.getDiseaseDetails(), null, inJurisdiction);
69+
PersonEditForm pef = new PersonEditForm(PersonContext.EVENT_PARTICIPANT, event.getDisease(), event.getDiseaseDetails(), null, inJurisdiction);
7070
pef.setWidth(100, Unit.PERCENTAGE);
7171
pef.setImmediate(true);
7272
getFieldGroup().bind(pef, EventParticipantDto.PERSON);

sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonController.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,17 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.ui.person;
1919

20-
import java.util.Date;
21-
import java.util.List;
22-
import java.util.function.Consumer;
23-
2420
import com.vaadin.server.Page;
2521
import com.vaadin.server.Sizeable.Unit;
2622
import com.vaadin.ui.Notification;
2723
import com.vaadin.ui.Notification.Type;
28-
2924
import de.symeda.sormas.api.Disease;
3025
import de.symeda.sormas.api.FacadeProvider;
3126
import de.symeda.sormas.api.caze.CaseClassification;
3227
import de.symeda.sormas.api.caze.CaseDataDto;
3328
import de.symeda.sormas.api.i18n.I18nProperties;
3429
import de.symeda.sormas.api.i18n.Strings;
30+
import de.symeda.sormas.api.person.PersonContext;
3531
import de.symeda.sormas.api.person.PersonDto;
3632
import de.symeda.sormas.api.person.PersonFacade;
3733
import de.symeda.sormas.api.person.PersonReferenceDto;
@@ -45,6 +41,10 @@
4541
import de.symeda.sormas.ui.utils.VaadinUiUtil;
4642
import de.symeda.sormas.ui.utils.ViewMode;
4743

44+
import java.util.Date;
45+
import java.util.List;
46+
import java.util.function.Consumer;
47+
4848
public class PersonController {
4949

5050
private PersonFacade personFacade = FacadeProvider.getPersonFacade();
@@ -90,13 +90,14 @@ public void onCommit() {
9090
}
9191

9292
public CommitDiscardWrapperComponent<PersonEditForm> getPersonEditComponent(
93+
PersonContext personContext,
9394
String personUuid,
9495
Disease disease,
9596
String diseaseDetails,
9697
UserRight editUserRight,
9798
final ViewMode viewMode,
9899
boolean isInJurisdiction) {
99-
PersonEditForm editForm = new PersonEditForm(disease, diseaseDetails, viewMode, isInJurisdiction);
100+
PersonEditForm editForm = new PersonEditForm(personContext, disease, diseaseDetails, viewMode, isInJurisdiction);
100101

101102
PersonDto personDto = personFacade.getPersonByUuid(personUuid);
102103
editForm.setValue(personDto);

sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,13 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.ui.person;
1919

20-
import static de.symeda.sormas.ui.utils.CssStyles.H3;
21-
import static de.symeda.sormas.ui.utils.CssStyles.VSPACE_3;
22-
import static de.symeda.sormas.ui.utils.LayoutUtil.divsCss;
23-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidColumnLocCss;
24-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRow;
25-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
26-
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
27-
import static de.symeda.sormas.ui.utils.LayoutUtil.oneOfFourCol;
28-
import static de.symeda.sormas.ui.utils.LayoutUtil.oneOfTwoCol;
29-
30-
import java.time.Month;
31-
import java.util.Arrays;
32-
import java.util.Calendar;
33-
import java.util.Collections;
34-
import java.util.Date;
35-
import java.util.GregorianCalendar;
36-
37-
import org.apache.commons.lang3.StringUtils;
38-
3920
import com.vaadin.ui.Label;
4021
import com.vaadin.v7.ui.AbstractSelect;
4122
import com.vaadin.v7.ui.AbstractSelect.ItemCaptionMode;
4223
import com.vaadin.v7.ui.ComboBox;
4324
import com.vaadin.v7.ui.DateField;
4425
import com.vaadin.v7.ui.Field;
4526
import com.vaadin.v7.ui.TextField;
46-
4727
import de.symeda.sormas.api.Disease;
4828
import de.symeda.sormas.api.FacadeProvider;
4929
import de.symeda.sormas.api.caze.CaseDataDto;
@@ -61,6 +41,7 @@
6141
import de.symeda.sormas.api.person.DeathPlaceType;
6242
import de.symeda.sormas.api.person.EducationType;
6343
import de.symeda.sormas.api.person.OccupationType;
44+
import de.symeda.sormas.api.person.PersonContext;
6445
import de.symeda.sormas.api.person.PersonDto;
6546
import de.symeda.sormas.api.person.PresentCondition;
6647
import de.symeda.sormas.api.region.CommunityReferenceDto;
@@ -79,6 +60,24 @@
7960
import de.symeda.sormas.ui.utils.OutbreakFieldVisibilityChecker;
8061
import de.symeda.sormas.ui.utils.UiFieldAccessCheckers;
8162
import de.symeda.sormas.ui.utils.ViewMode;
63+
import org.apache.commons.lang3.StringUtils;
64+
65+
import java.time.Month;
66+
import java.util.Arrays;
67+
import java.util.Calendar;
68+
import java.util.Collections;
69+
import java.util.Date;
70+
import java.util.GregorianCalendar;
71+
72+
import static de.symeda.sormas.ui.utils.CssStyles.H3;
73+
import static de.symeda.sormas.ui.utils.CssStyles.VSPACE_3;
74+
import static de.symeda.sormas.ui.utils.LayoutUtil.divsCss;
75+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidColumnLocCss;
76+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRow;
77+
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
78+
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
79+
import static de.symeda.sormas.ui.utils.LayoutUtil.oneOfFourCol;
80+
import static de.symeda.sormas.ui.utils.LayoutUtil.oneOfTwoCol;
8281

8382
public class PersonEditForm extends AbstractEditForm<PersonDto> {
8483

@@ -105,6 +104,7 @@ public class PersonEditForm extends AbstractEditForm<PersonDto> {
105104
private final ViewMode viewMode;
106105
private ComboBox birthDateDay;
107106
private ComboBox cbPlaceOfBirthFacility;
107+
private PersonContext personContext;
108108

109109
//@formatter:off
110110
private static final String HTML_LAYOUT =
@@ -162,7 +162,7 @@ public class PersonEditForm extends AbstractEditForm<PersonDto> {
162162
loc(PersonDto.GENERAL_PRACTITIONER_DETAILS));
163163
//@formatter:on
164164

165-
public PersonEditForm(Disease disease, String diseaseDetails, ViewMode viewMode, boolean isInJurisdiction) {
165+
public PersonEditForm(PersonContext personContext, Disease disease, String diseaseDetails, ViewMode viewMode, boolean isInJurisdiction) {
166166
super(
167167
PersonDto.class,
168168
PersonDto.I18N_PREFIX,
@@ -175,6 +175,7 @@ public PersonEditForm(Disease disease, String diseaseDetails, ViewMode viewMode,
175175
FieldHelper.createPersonalDataFieldAccessChecker(),
176176
FieldHelper.createSensitiveDataFieldAccessChecker()));
177177

178+
this.personContext = personContext;
178179
this.disease = disease;
179180
this.diseaseDetails = diseaseDetails;
180181
this.viewMode = viewMode;
@@ -264,6 +265,10 @@ protected void addFields() {
264265
addField(PersonDto.HAS_COVID_APP).addStyleName(CssStyles.FORCE_CAPTION_CHECKBOX);
265266
addField(PersonDto.COVID_CODE_DELIVERED).addStyleName(CssStyles.FORCE_CAPTION_CHECKBOX);
266267

268+
if (personContext != PersonContext.CASE) {
269+
setVisible(false, PersonDto.HAS_COVID_APP, PersonDto.COVID_CODE_DELIVERED);
270+
}
271+
267272
ComboBox cbPlaceOfBirthRegion = addInfrastructureField(PersonDto.PLACE_OF_BIRTH_REGION);
268273
ComboBox cbPlaceOfBirthDistrict = addInfrastructureField(PersonDto.PLACE_OF_BIRTH_DISTRICT);
269274
ComboBox cbPlaceOfBirthCommunity = addInfrastructureField(PersonDto.PLACE_OF_BIRTH_COMMUNITY);

0 commit comments

Comments
 (0)