Browse Source

ManagersController adapted

Drowsito 1 week ago
parent
commit
3922d413ea

+ 39 - 8
src/main/java/es/uv/saic/dto/UsuariDTO.java

@@ -3,24 +3,55 @@ package es.uv.saic.dto;
 import es.uv.saic.domain.Usuari;
 
 public class UsuariDTO {
+    private String nom;
+    private String cognoms;
+    private String email;
     private String usuari;
-	private String clau;
     
+    public UsuariDTO(String nom, String cognoms, String email, String usuari) {
+        this.nom = nom;
+        this.cognoms = cognoms;
+        this.email = email;
+        this.usuari = usuari;
+    }
+
     public UsuariDTO(Usuari usuari) {
+        this.nom = usuari.getNom();
+        this.cognoms = usuari.getCognoms();
+        this.email = usuari.getEmail();
         this.usuari = usuari.getUsuari();
-        this.clau = usuari.getClau();
+    }
+
+    public String getNom() {
+        return nom;
+    }
+
+    public void setNom(String nom) {
+        this.nom = nom;
+    }
+
+    public String getCognoms() {
+        return cognoms;
+    }
+
+    public void setCognoms(String cognoms) {
+        this.cognoms = cognoms;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
     }
 
     public String getUsuari() {
         return usuari;
     }
+
     public void setUsuari(String usuari) {
         this.usuari = usuari;
     }
-    public String getClau() {
-        return clau;
-    }
-    public void setClau(String clau) {
-        this.clau = clau;
-    }
+    
 }

+ 9 - 3
src/main/java/es/uv/saic/feign/ManagerClient.java

@@ -1,12 +1,18 @@
 package es.uv.saic.feign;
 
+import java.util.HashMap;
 import java.util.List;
 
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 @FeignClient(value = "manager-controller", url = "${saic.url.domain}")
 public interface ManagerClient {
-    @GetMapping("/getCentres")
-    String managers();
+    @PostMapping("/managers")
+    HashMap<String, Object> managersForm(@RequestBody String usuari);
+
+    @PostMapping("/managers/search")
+    HashMap<String, Object> managersSearch(@RequestParam("center") List<Integer> centres, @RequestParam(name="titulation[]", required=false) List<Integer> titulacions);
 }

+ 9 - 106
src/main/java/es/uv/saic/web/ManagersController.java

@@ -1,8 +1,7 @@
 package es.uv.saic.web;
 
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
+import java.util.HashMap;
 import java.util.List;
 
 import jakarta.servlet.http.HttpSession;
@@ -15,27 +14,14 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import es.uv.saic.domain.Organ;
-import es.uv.saic.domain.Rol;
 import es.uv.saic.domain.Usuari;
-import es.uv.saic.domain.UsuarisRol;
-import es.uv.saic.service.OrganService;
-import es.uv.saic.service.RolService;
-import es.uv.saic.service.UsuariService;
-import es.uv.saic.service.UsuarisRolService;
+import es.uv.saic.feign.ManagerClient;
 
 // Controller for the managers administration page 
 @Controller
 public class ManagersController {
-	
-	@Autowired
-	private UsuarisRolService urs;
-	@Autowired
-	private OrganService ors;
 	@Autowired
-	private UsuariService us;
-	@Autowired
-	private RolService rs;
+	private ManagerClient mc;
 	
 	/*
 	 * Load the managers administration page data into the model
@@ -50,42 +36,15 @@ public class ManagersController {
 	@GetMapping("/managers")
 	public String managersForm(Model model, Authentication auth, HttpSession session) {
 		
-		List<Organ> sup_centres;
-		List<Organ> sup_titulacions;
-		if(urs.isGrantedUser((Usuari) auth.getPrincipal())){
-			sup_centres = this.ors.getCentres();
-			sup_titulacions = this.ors.getTitulacions();
-		}
-		else {
-			sup_centres = this.ors.getUsuariCentres(((Usuari) auth.getPrincipal()).getUsuari());
-			if(sup_centres != null) {
-				if(sup_centres.size() > 0) {
-					sup_titulacions = this.ors.getTitulacionsByCentres(sup_centres);
-				}
-				else {
-					sup_titulacions = this.ors.getUsuariTitulacions(((Usuari) auth.getPrincipal()).getUsuari());
-					for(Organ o : sup_titulacions) {
-						sup_centres.add(o.getOrgan());
-					}
-				}
-			}
-			else {
-				sup_titulacions = this.ors.getUsuariTitulacions(((Usuari) auth.getPrincipal()).getUsuari());
-			}
-		}
-		model.addAttribute("sup_centres", sup_centres);
-		model.addAttribute("sup_titulacions", sup_titulacions);
-		
-		List<Usuari> users = us.findAll();
-		List<Rol> roles = rs.findAssignables();
-		model.addAttribute("users", users);
-		model.addAttribute("roles", roles);
+		HashMap<String, Object> map = mc.managersForm(((Usuari) auth.getPrincipal()).getUsuari());
+		model.addAllAttributes(map);
 		
 	
 		if(session.getAttribute("respTitulacions") != null && session.getAttribute("respCentres") != null ) {
 			model.addAttribute("restoreCentres", ((List<Integer>)session.getAttribute("respCentres")).toString());
 			model.addAttribute("restoreTitulacions", ((List<Integer>)session.getAttribute("respTitulacions")).toString());
-			this.loadManagers(model, (List<Integer>)session.getAttribute("respCentres"), (List<Integer>)session.getAttribute("respTitulacions"));
+			HashMap<String, Object> map2 = mc.managersSearch((List<Integer>)session.getAttribute("respCentres"), (List<Integer>)session.getAttribute("respTitulacions"));
+			model.addAllAttributes(map2);
 			session.removeAttribute("respTitulacions");
 			session.removeAttribute("respCentres");
 		}
@@ -113,68 +72,12 @@ public class ManagersController {
 		if(titulacions == null) {
 			titulacions = new ArrayList<Integer>();
 		}
-		this.loadManagers(model, centres, titulacions);
+		HashMap<String, Object> map = mc.managersSearch(centres, titulacions);
+		model.addAllAttributes(map);
 		
 		session.setAttribute("respTitulacions", titulacions);
 		session.setAttribute("respCentres", centres);
 		
 		return "components/list_managers";
 	}
-	
-	/*
-	 * Load the search results into the model
-	 * @Param model The model to load the data into
-	 * @Param centres List of centre ids to search managers in
-	 * @Param titulacions List of titulacion ids to search managers in
-	 */
-	public void loadManagers(Model model, List<Integer> centres, List<Integer> titulacions) {
-		List<UsuarisRol> resp_centre = urs.findManagerByCentres(centres);
-		Collections.sort(resp_centre, new Comparator<UsuarisRol>() {  
-		    @Override  
-		    public int compare(UsuarisRol a, UsuarisRol b) {  
-		          
-		        int OrgnomComp = a.getOrgan().getNomVal().compareTo(b.getOrgan().getNomVal()); 
-		        if (OrgnomComp != 0) {  
-		            return OrgnomComp;  
-		        }  
-		        int rolComp = a.getRol().getNomRol().compareTo(b.getRol().getNomRol());
-		        if (rolComp != 0) {  
-		            return rolComp;  
-		        }
-		        return a.getUsuari().getNom().concat(a.getUsuari().getCognoms()).compareTo(
-		        		b.getUsuari().getNom().concat(b.getUsuari().getCognoms()));  
-		    }  
-		});
-		
-		List<UsuarisRol> resp_titulacio = new ArrayList<UsuarisRol>();
-		if(titulacions.size() > 0) {
-			resp_titulacio = urs.findManagerByTitulacions(titulacions);
-			Collections.sort(resp_titulacio, new Comparator<UsuarisRol>() {  
-			    @Override  
-			    public int compare(UsuarisRol a, UsuarisRol b) {  
-			          
-			        int OrgnomComp = a.getOrgan().getNomVal().compareTo(b.getOrgan().getNomVal()); 
-			        if (OrgnomComp != 0) {  
-			            return OrgnomComp;  
-			        }  
-			        int rolComp = a.getRol().getNomRol().compareTo(b.getRol().getNomRol());
-			        if (rolComp != 0) {  
-			            return rolComp;  
-			        }
-			        return a.getUsuari().getNom().concat(a.getUsuari().getCognoms()).compareTo(
-			        		b.getUsuari().getNom().concat(b.getUsuari().getCognoms()));  
-			    }  
-			});
-		}
-				
-		if(resp_centre == null) {
-			model.addAttribute("results", false);
-		}
-		else{
-			model.addAttribute("results", true);
-			model.addAttribute("resp_centres", resp_centre);
-			model.addAttribute("resp_titulacions", resp_titulacio);
-		}
-	}
-	
 }

+ 4 - 4
src/main/resources/templates/components/list_managers.html

@@ -15,8 +15,8 @@
 			<form enctype='multipart/form-data' method="POST" action="/admin/userrole/remove" style="display:inline;margin-left:25px;" th:if="${#authentication.principal.isAdmin() or #authentication.principal.isGranted()}">
 				<input type="hidden" name="idRol" th:value="${item.rol.idRol}">
 				<input type="hidden" name="usuari" th:value="${item.usuari.usuari}">
-				<input type="hidden" name="tlugar" th:value="${item.organ.id.tlugar}">
-				<input type="hidden" name="lugar" th:value="${item.organ.id.lugar}">
+				<input type="hidden" name="tlugar" th:value="${item.organ.tlugar}">
+				<input type="hidden" name="lugar" th:value="${item.organ.lugar}">
 				<button th:if="${(#authentication.principal.isAdmin() or #authentication.principal.isGranted()) and item.rol.idRol != 1}" 
 					class="btn btn-danger pointer" style="width:40px;height:38px;border-radius:40px;" th:title="#{admin.action.delete}">
 					<i class="fas fa-trash"></i>
@@ -31,8 +31,8 @@
 			<form enctype='multipart/form-data' method="POST" action="/admin/userrole/remove" style="display:inline;margin-left:25px;" th:if="${#authentication.principal.isAdmin() or #authentication.principal.isGranted()}">
 				<input type="hidden" name="idRol" th:value="${item.rol.idRol}">
 				<input type="hidden" name="usuari" th:value="${item.usuari.usuari}">
-				<input type="hidden" name="tlugar" th:value="${item.organ.id.tlugar}">
-				<input type="hidden" name="lugar" th:value="${item.organ.id.lugar}">
+				<input type="hidden" name="tlugar" th:value="${item.organ.tlugar}">
+				<input type="hidden" name="lugar" th:value="${item.organ.lugar}">
 				<button th:if="${(#authentication.principal.isAdmin() or #authentication.principal.isGranted()) and item.rol.idRol != 1}" 
 					class="btn btn-danger pointer" style="width:40px;height:38px;border-radius:40px;" th:title="#{admin.action.delete}">
 					<i class="fas fa-trash"></i>

+ 5 - 5
src/main/resources/templates/managers.html

@@ -27,13 +27,13 @@
 				<div class="uv-table-group-procedure" th:if="${sup_centres != null}">
 					<label th:text="#{managers.centers}">Centre(s)</label>
 					<select class="selectpicker" id="centersSelector" name="centers[]" data-live-search="true" data-width="100%" data-actions-box="true" th:attr="data-none-selected-text=#{global.selectors.noData}" required>
-				        <option th:each="item : ${sup_centres}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.id.lugar}"></option>
+				        <option th:each="item : ${sup_centres}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.lugar}"></option>
 				    </select>
 				</div>
 				<div class="uv-table-group-procedure">
 					<label th:text="#{managers.titulations}" th:if="${sup_titulacions != null}">Titulació(ns)</label>
 					<select class="selectpicker" id="titulationsSelector" name="titulations[]" multiple data-live-search="true" data-width="100%" data-actions-box="true" required>
-				        <option th:each="item : ${sup_titulacions}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.id.lugar}"></option>
+				        <option th:each="item : ${sup_titulacions}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.lugar}"></option>
 				    </select>
 				</div>
 				<div class="uv-table-group-procedure" style="margin-top:50px;cursor: auto;">
@@ -53,7 +53,7 @@
 				</div>
 				<div class="uv-table-group-procedure" id="results" style="cursor: auto;">
 					<div th:if="${#ctx.containsVariable('results')}">
-						<div th:replace="components/list_managers.html :: results" ></div>
+						<div th:replace="~{components/list_managers.html :: results}" ></div>
 					</div>
 				</div>
 			</div>
@@ -75,13 +75,13 @@
 						<div class="form-group">
 							<label th:text="#{admin.managers.center}">Centre</label>
 							<select class="selectpicker" id="roleCentersSelector" name="centre" data-live-search="true" data-width="100%" data-actions-box="true" required>
-						        <option th:each="item : ${sup_centres}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.id.lugar}"></option>
+						        <option th:each="item : ${sup_centres}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.lugar}"></option>
 						    </select>
 						</div>
 						<div class="form-group">
 							<label th:text="#{admin.managers.titulation}">Titulació</label>
 							<select class="selectpicker" id="roleTitulationsSelector" name="titulacio" data-live-search="true" data-width="100%" data-actions-box="true">
-						        <option th:each="item : ${sup_titulacions}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.id.lugar}"></option>
+						        <option th:each="item : ${sup_titulacions}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.lugar}"></option>
 						    </select>
 						</div>
 						<div class="form-group">