Commit d70b68f9 by Liv Haapala

Merge branch 'master' into devel

Conflicts:
	code/MoyaWeb/src/fi/codecrew/moya/resources/i18n.properties
2 parents bd79b96a 6b9ad566
...@@ -28,6 +28,8 @@ import javax.persistence.PersistenceContext; ...@@ -28,6 +28,8 @@ import javax.persistence.PersistenceContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.sun.enterprise.security.webservices.GFServerPipeCreator;
import fi.codecrew.moya.enums.apps.SpecialPermission; import fi.codecrew.moya.enums.apps.SpecialPermission;
import fi.codecrew.moya.enums.apps.UserPermission; import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.ApprovalFacade; import fi.codecrew.moya.facade.ApprovalFacade;
...@@ -586,6 +588,9 @@ public class UserBean implements UserBeanLocal { ...@@ -586,6 +588,9 @@ public class UserBean implements UserBeanLocal {
return user; return user;
} }
@Override @Override
public SearchResult<User> getEventUsers(SearchQuery search) { public SearchResult<User> getEventUsers(SearchQuery search) {
if (search.getSearch() == null || search.getSearch().isEmpty()) if (search.getSearch() == null || search.getSearch().isEmpty())
...@@ -615,6 +620,20 @@ public class UserBean implements UserBeanLocal { ...@@ -615,6 +620,20 @@ public class UserBean implements UserBeanLocal {
returnUsers = new SearchResult<EventUser>(newSearchList, (long) newSearchList.size()); returnUsers = new SearchResult<EventUser>(newSearchList, (long) newSearchList.size());
} }
else if(searchQuery.isUsersWithUnusedCodes()){
List<EventUser> newSearchList = new ArrayList<EventUser>();
List<GroupMembership> groupMembers = new ArrayList<GroupMembership>();
groupMembers = gmfacade.findAllWithoutUser();
for (GroupMembership member : groupMembers) {
PlaceGroup group = member.getPlaceGroup();
if(group != null && !newSearchList.contains(group.getCreator())) {
newSearchList.add(group.getCreator());
}
}
returnUsers = new SearchResult<EventUser>(newSearchList, (long)newSearchList.size());
}
return returnUsers; return returnUsers;
} }
......
...@@ -108,4 +108,17 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi ...@@ -108,4 +108,17 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi
// return p.getResultList(); // return p.getResultList();
} }
public List<GroupMembership> findAllWithoutUser() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<GroupMembership> cq = cb.createQuery(GroupMembership.class);
Root<GroupMembership> root = cq.from(GroupMembership.class);
Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup);
cq.where(cb.isNull(root.get(GroupMembership_.user)),
cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent())
);
return getEm().createQuery(cq).getResultList();
}
} }
...@@ -16,6 +16,7 @@ public class UserSearchQuery extends SearchQuery { ...@@ -16,6 +16,7 @@ public class UserSearchQuery extends SearchQuery {
private List<Role> filterRoles = new ArrayList<Role>(); private List<Role> filterRoles = new ArrayList<Role>();
private boolean onlyThisEvent = true; private boolean onlyThisEvent = true;
private boolean placeAssoc = false; private boolean placeAssoc = false;
private boolean usersWithUnusedCodes = false;
private DatabaseHasCompare requireImage = DatabaseHasCompare.NONE; private DatabaseHasCompare requireImage = DatabaseHasCompare.NONE;
private BigDecimal accountSaldo; private BigDecimal accountSaldo;
...@@ -34,6 +35,14 @@ public class UserSearchQuery extends SearchQuery { ...@@ -34,6 +35,14 @@ public class UserSearchQuery extends SearchQuery {
this.onlyThisEvent = onlyThisEvent; this.onlyThisEvent = onlyThisEvent;
} }
public boolean isUsersWithUnusedCodes() {
return usersWithUnusedCodes;
}
public void setUsersWithUnusedCodes(boolean usersWithUnusedCodes) {
this.usersWithUnusedCodes = usersWithUnusedCodes;
}
public List<Role> getFilterRoles() { public List<Role> getFilterRoles() {
return filterRoles; return filterRoles;
} }
......
...@@ -42,6 +42,11 @@ ...@@ -42,6 +42,11 @@
<h:selectBooleanCheckbox id="onlythisevent" value="#{userSearchView.searchQuery.onlyThisEvent}" /> <h:selectBooleanCheckbox id="onlythisevent" value="#{userSearchView.searchQuery.onlyThisEvent}" />
<h:outputLabel for="onlythisevent" value="#{i18n['userlist.onlythisevent']}" /> <h:outputLabel for="onlythisevent" value="#{i18n['userlist.onlythisevent']}" />
<br /> <br />
<h:selectBooleanCheckbox id="userswithunusedcodes" value="#{userSearchView.searchQuery.usersWithUnusedCodes}" />
<h:outputLabel for="userswithunusedcodes" value="#{i18n['userlist.usersWithUnusedCodes']}" />
<br />
<h:inputText value="#{userSearchView.search}" /> <h:inputText value="#{userSearchView.search}" />
<h:commandButton value="#{i18n['userlist.search']}" action="#{userSearchView.newSearch()}" /> <h:commandButton value="#{i18n['userlist.search']}" action="#{userSearchView.newSearch()}" />
</h:panelGroup> </h:panelGroup>
......
...@@ -169,7 +169,11 @@ subnavi.cards = \u0009\u0009 ...@@ -169,7 +169,11 @@ subnavi.cards = \u0009\u0009
topnavi.license = Lisenssikoodit topnavi.license = Lisenssikoodit
<<<<<<< HEAD
user.unauthenticated = Kirjautumaton user.unauthenticated = Kirjautumaton
=======
user.unauthenticated = Kirjautumaton
>>>>>>> master
usercart.downloadCsv = CSV usercart.downloadCsv = CSV
usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n
...@@ -904,6 +904,7 @@ userlist.saldofilter = Saldo ...@@ -904,6 +904,7 @@ userlist.saldofilter = Saldo
userlist.search = Search userlist.search = Search
userlist.searchcount = Result count userlist.searchcount = Result count
userlist.showAdvancedSearch = Advanced search userlist.showAdvancedSearch = Advanced search
userlist.usersWithUnusedCodes = List this event's users with unused place codes
usertitle.managingUser = Shop usertitle.managingUser = Shop
......
...@@ -887,6 +887,7 @@ userlist.saldofilter = Tilin saldo ...@@ -887,6 +887,7 @@ userlist.saldofilter = Tilin saldo
userlist.search = Etsi userlist.search = Etsi
userlist.searchcount = Tuloksia userlist.searchcount = Tuloksia
userlist.showAdvancedSearch = Tarkennettu haku userlist.showAdvancedSearch = Tarkennettu haku
userlist.usersWithUnusedCodes = Lista t\u00E4m\u00E4n tapahtuman k\u00E4ytt\u00E4jist\u00E4, joilla on k\u00E4ytt\u00E4m\u00E4tt\u00F6mi\u00E4 paikkakoodeja
usertitle.managingUser = Kauppa usertitle.managingUser = Kauppa
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!