@@ -62,9 +62,13 @@ private void createCampaignFilter() {
6262
6363 @ SuppressWarnings ("deprecation" )
6464 private void createJurisdictionFilters () {
65- // Region filter
66- setFilterVisibilitiesBasedOnArea (areaFilter .getValue ());
67- if (UserProvider .getCurrent ().getUser ().getArea () == null ) {
65+ final AreaReferenceDto userArea = UserProvider .getCurrent ().getUser ().getArea ();
66+ final RegionReferenceDto userRegion = UserProvider .getCurrent ().getUser ().getRegion ();
67+ final DistrictReferenceDto userDistrict = UserProvider .getCurrent ().getUser ().getDistrict ();
68+
69+ dashboardDataProvider .setArea (userArea );
70+ if (userArea == null && userRegion == null ) {
71+ setFilterVisibilitiesBasedOnArea (areaFilter .getValue ());
6872 areaFilter .setWidth (200 , Unit .PIXELS );
6973 areaFilter .setInputPrompt (I18nProperties .getString (Strings .promptArea ));
7074 areaFilter .addItems (FacadeProvider .getAreaFacade ().getAllActiveAsReference ());
@@ -78,9 +82,9 @@ private void createJurisdictionFilters() {
7882 dashboardDataProvider .setArea ((AreaReferenceDto ) areaFilter .getValue ());
7983 }
8084
81- // Region filter
82- setFilterVisibilitiesBasedOnRegion ( regionFilter . getValue ());
83- if ( UserProvider . getCurrent (). getUser (). getRegion () == null ) {
85+ dashboardDataProvider . setRegion ( userRegion );
86+ if ( userRegion == null ) {
87+ setFilterVisibilitiesBasedOnRegion ( regionFilter . getValue ());
8488 regionFilter .setWidth (200 , Unit .PIXELS );
8589 regionFilter .setInputPrompt (I18nProperties .getString (Strings .promptRegion ));
8690 regionFilter .addValueChangeListener (e -> {
@@ -93,10 +97,13 @@ private void createJurisdictionFilters() {
9397 dashboardDataProvider .setRegion ((RegionReferenceDto ) regionFilter .getValue ());
9498 }
9599
96- // District filter
97- if (UserProvider . getCurrent (). getUser (). getDistrict () == null ) {
100+ dashboardDataProvider . setDistrict ( userDistrict );
101+ if (userRegion != null || userDistrict == null ) {
98102 districtFilter .setWidth (200 , Unit .PIXELS );
99103 districtFilter .setInputPrompt (I18nProperties .getString (Strings .promptDistrict ));
104+ if (userRegion != null ) {
105+ districtFilter .addItems (FacadeProvider .getDistrictFacade ().getAllActiveByRegion (userRegion .getUuid ()));
106+ }
100107 districtFilter .addValueChangeListener (e -> {
101108 dashboardDataProvider .setDistrict ((DistrictReferenceDto ) districtFilter .getValue ());
102109 dashboardView .refreshDashboard ();
0 commit comments