@@ -989,6 +989,136 @@ def test_filter_supports_unicode(self, browser):
989989 u'Abgeschlossene Vertr\xe4 ge' ],
990990 titles )
991991
992+ @browsing
993+ def test_filter_by_responsible (self , browser ):
994+ self .login (self .regular_user , browser = browser )
995+
996+ view = ('@listing?name=dossiers&columns:list=title&columns:list=responsible' )
997+ browser .open (self .leaf_repofolder , view = view , headers = self .api_headers )
998+ items = browser .json ['items' ]
999+
1000+ # Assert all items
1001+ self .assertEqual (17 , len (items ))
1002+
1003+ # filter by dossier_responsible
1004+ view = (
1005+ '@listing?name=dossiers'
1006+ '&columns:list=title'
1007+ '&columns:list=responsible'
1008+ '&filters.responsible:record:list={}' .format (self .dossier_responsible ))
1009+ browser .open (self .leaf_repofolder , view = view , headers = self .api_headers )
1010+ items = browser .json ['items' ]
1011+
1012+ self .assertEqual (10 , len (items ))
1013+ self .assertTrue ([dossier ["responsible" ] == self .dossier_responsible for dossier in items ])
1014+
1015+ @browsing
1016+ def test_filter_by_dossier_inactive_responsible (self , browser ):
1017+ self .login (self .regular_user , browser = browser )
1018+ inactive_user_1 = create (
1019+ Builder ('ogds_user' )
1020+ .having (active = False , userid = "inactive_user_1" )
1021+ )
1022+ inactive_user_2 = create (
1023+ Builder ('ogds_user' )
1024+ .having (active = False , userid = "inactive_user_2" )
1025+ )
1026+
1027+ create (
1028+ Builder ('dossier' )
1029+ .titled (u'Dossier with inactive responsible 1' )
1030+ .within (self .leaf_repofolder )
1031+ .having (responsible = "{}" .format (inactive_user_1 .userid ))
1032+ )
1033+ create (
1034+ Builder ('dossier' )
1035+ .titled (u'Dossier with inactive responsible 2' )
1036+ .within (self .leaf_repofolder )
1037+ .having (responsible = "{}" .format (inactive_user_2 .userid ))
1038+ )
1039+
1040+ self .commit_solr ()
1041+
1042+ view = ('@listing?name=dossiers&columns:list=title&columns:list=responsible' )
1043+ browser .open (self .leaf_repofolder , view = view , headers = self .api_headers )
1044+ items = browser .json ['items' ]
1045+
1046+ # Assert all items
1047+ self .assertEqual (19 , len (items ))
1048+
1049+ # filter by inactive users
1050+ view = (
1051+ '@listing?name=dossiers'
1052+ '&columns:list=title'
1053+ '&columns:list=responsible'
1054+ '&filters.inactive_responsibles:record:boolean=true' )
1055+ browser .open (self .leaf_repofolder , view = view , headers = self .api_headers )
1056+ items = browser .json ['items' ]
1057+
1058+ self .assertEqual (2 , len (items ))
1059+ self .assertTrue ([dossier ["responsible" ] == [inactive_user_1 , inactive_user_2 ] for dossier in items ])
1060+
1061+ @browsing
1062+ def test_filter_by_dossier_inactive_responsible_with_specific_user (self , browser ):
1063+ self .login (self .regular_user , browser = browser )
1064+ inactive_user_1 = create (
1065+ Builder ('ogds_user' )
1066+ .having (active = False , userid = "inactive_user_1" )
1067+ )
1068+ inactive_user_2 = create (
1069+ Builder ('ogds_user' )
1070+ .having (active = False , userid = "inactive_user_2" )
1071+ )
1072+
1073+ create (
1074+ Builder ('dossier' )
1075+ .titled (u'Dossier with inactive responsible 1' )
1076+ .within (self .leaf_repofolder )
1077+ .having (responsible = "{}" .format (inactive_user_1 .userid ))
1078+ )
1079+ create (
1080+ Builder ('dossier' )
1081+ .titled (u'Dossier with inactive responsible 2' )
1082+ .within (self .leaf_repofolder )
1083+ .having (responsible = "{}" .format (inactive_user_2 .userid ))
1084+ )
1085+
1086+ self .commit_solr ()
1087+ self .login (self .regular_user , browser = browser )
1088+
1089+ view = ('@listing?name=dossiers&columns:list=title&columns:list=responsible' )
1090+ browser .open (self .leaf_repofolder , view = view , headers = self .api_headers )
1091+ items = browser .json ['items' ]
1092+
1093+ # Assert all items
1094+ self .assertEqual (19 , len (items ))
1095+
1096+ # filter by inactive users
1097+ view = (
1098+ '@listing?name=dossiers'
1099+ '&columns:list=title'
1100+ '&columns:list=responsible'
1101+ '&filters.inactive_responsibles:record:boolean=true' )
1102+ browser .open (self .leaf_repofolder , view = view , headers = self .api_headers )
1103+ items = browser .json ['items' ]
1104+
1105+ self .assertEqual (2 , len (items ))
1106+ self .assertTrue ([dossier ["responsible" ] == [inactive_user_1 , inactive_user_2 ] for dossier in items ])
1107+
1108+ # filter by specific inactive user
1109+ view = (
1110+ '@listing?name=dossiers'
1111+ '&columns:list=title'
1112+ '&columns:list=responsible'
1113+ '&filters.inactive_responsibles:record:boolean=true'
1114+ '&filters.responsible:record:list={}' .format (inactive_user_1 .userid ))
1115+ browser .open (self .leaf_repofolder , view = view , headers = self .api_headers )
1116+ items = browser .json ['items' ]
1117+
1118+ self .assertEqual (1 , len (items ))
1119+ self .assertTrue ([dossier ["responsible" ] == inactive_user_1 for dossier in items ])
1120+ self .assertTrue ([dossier ["title" ] == 'Dossier with inactive responsible 1' for dossier in items ])
1121+
9921122 @browsing
9931123 def test_workspaces_listing (self , browser ):
9941124 self .login (self .workspace_member , browser = browser )
0 commit comments