Forráskód Böngészése

Todos los controlladores acabados a falta de Managers y ajax

Mario Martínez Hernández 4 hónapja
szülő
commit
a77cd592ba

+ 31 - 0
src/main/java/es/uv/saic/feign/SupervisionClient.java

@@ -0,0 +1,31 @@
+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;
+
+import es.uv.saic.domain.SupervisionSearchParams;
+
+@FeignClient(value = "supervision-controller", url = "${saic.url.domain}")
+public interface SupervisionClient {
+    @PostMapping("/supervision")
+	public HashMap<String, Object> supervisionForm(@RequestParam String usuario, @RequestBody SupervisionSearchParams ssp);
+
+    @PostMapping("/supervision/search")
+	public HashMap<String, Object> supervisionSearch(
+        @RequestParam(name="centers[]", required=false) List<Integer> centres,
+        @RequestParam("years[]") List<Integer> cursos,
+        @RequestParam("titulations[]") List<Integer> titulacions,
+        @RequestParam(name="procedures[]", required=false) List<String> procediments,
+        @RequestParam(name="evidences[]", required=false) List<String> evidencies,
+        @RequestParam(name="searchType", required=false) String searchType,
+        @RequestParam String usuari);
+    
+    @GetMapping("/supervision/search")
+	public HashMap<String, Object> restoreSearch(@RequestBody String usuari, @RequestParam SupervisionSearchParams ssp);
+}

+ 21 - 0
src/main/java/es/uv/saic/feign/WikiClient.java

@@ -0,0 +1,21 @@
+package es.uv.saic.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import es.uv.saic.domain.Wiki;
+
+@FeignClient(value = "wiki-service", url = "${saic.url.domain}")
+public interface WikiClient {
+    @GetMapping("/wiki/text/{categoria}")
+	@ResponseBody
+	public Wiki renderWiki(@PathVariable String categoria);
+
+    @PostMapping("/wiki/editor")
+	@ResponseBody
+	public Wiki updateWiki(@RequestParam String cat, @RequestParam String text);
+}

+ 40 - 250
src/main/java/es/uv/saic/web/SupervisionController.java

@@ -1,12 +1,8 @@
 package es.uv.saic.web;
 
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Comparator;
+import java.util.HashMap;
 import java.util.List;
 
-import jakarta.servlet.http.HttpSession;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.Authentication;
 import org.springframework.stereotype.Controller;
@@ -15,37 +11,17 @@ 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.DummyDataTransfer;
-import es.uv.saic.domain.Instancia;
-import es.uv.saic.domain.InstanciaTasca;
-import es.uv.saic.domain.InstanciaTransfer;
-import es.uv.saic.domain.Organ;
 import es.uv.saic.domain.SupervisionSearchParams;
 import es.uv.saic.domain.Usuari;
-import es.uv.saic.dto.EvidenciaBuscadorDTO;
-import es.uv.saic.service.InstanciaService;
-import es.uv.saic.service.InstanciaTascaService;
-import es.uv.saic.service.OrganService;
-import es.uv.saic.service.TascaService;
-import es.uv.saic.service.UsuariService;
-import es.uv.saic.service.UsuarisRolService;
+import es.uv.saic.feign.SupervisionClient;
+import jakarta.servlet.http.HttpSession;
 
 // Render the supervision page and handle supervision searches
 @Controller
 public class SupervisionController {
-	
-	@Autowired
-	private UsuariService us;
-	@Autowired
-	private InstanciaService is;
-	@Autowired
-	private UsuarisRolService urs;
-	@Autowired
-	private OrganService ors;
-	@Autowired
-	private InstanciaTascaService its;
+
 	@Autowired
-	private TascaService tas;
+	private SupervisionClient sc;
 
 	/*
 	 * Renders the supervision page
@@ -58,140 +34,18 @@ public class SupervisionController {
 	@GetMapping("/supervision")
 	public String supervisionForm(Model model, Authentication auth, HttpSession session) {
 		
-		List<DummyDataTransfer> supervisable_procs = new ArrayList<DummyDataTransfer>();
-		List<DummyDataTransfer> supervisable_years = new ArrayList<DummyDataTransfer>();
-		List<DummyDataTransfer> supervisable_orgs = new ArrayList<DummyDataTransfer>();
-		List<DummyDataTransfer> supervisable_cents = new ArrayList<DummyDataTransfer>();
-		
-		if(urs.isGrantedUser((Usuari) auth.getPrincipal())){ // Admin o UQ
-			List<Instancia> i_list = is.findAll();
-			for(Instancia inst : i_list) {
-				DummyDataTransfer p = new DummyDataTransfer();
-				DummyDataTransfer y = new DummyDataTransfer();
-				DummyDataTransfer o = new DummyDataTransfer();
-				p.setText(inst.getProces().getNomProces());
-				p.setValue(inst.getProces().getIdProces());
-				y.setText(Integer.toString(inst.getProces().getCursAvaluat()-1) + " - " + Integer.toString(inst.getProces().getCursAvaluat()));
-				y.setValue(inst.getProces().getCursAvaluat());
-				o.setText(inst.getOrgan().getNomCas());
-				o.setText2(inst.getOrgan().getNomVal());
-				o.setValue(inst.getOrgan().getId().getLugar());
-				o.setText3(inst.getOrgan().getId().getTlugar());
-				if(!supervisable_procs.contains(p)) {
-					supervisable_procs.add(p);
-				}
-				if(!supervisable_years.contains(y)) {
-					supervisable_years.add(y);
-				}
-				if(!supervisable_orgs.contains(o) && inst.getOrgan().getId().getTlugar().equals("T") && inst.getOrgan().getId().getLugar() > 2) {
-					supervisable_orgs.add(o);
-				}
-			}
-			DummyDataTransfer o = new DummyDataTransfer();
-			o = new DummyDataTransfer();
-			Organ org = ors.findByID("T", 1);
-			o.setText(org.getNomCas());
-			o.setText2(org.getNomVal());
-			o.setValue(1);
-			supervisable_orgs.add(o);
-			o = new DummyDataTransfer();
-			org = ors.findByID("T", 2);
-			o.setText(org.getNomCas());
-			o.setText2(org.getNomVal());
-			o.setValue(2);
-			supervisable_orgs.add(o);
-			o = new DummyDataTransfer();
-			org = ors.findByID("T", 0);
-			o.setText(org.getNomCas());
-			o.setText2(org.getNomVal());
-			o.setValue(0);
-			supervisable_orgs.add(o);
-			List<Organ> org_list = ors.findCurrentCentres();
-			for(Organ or : org_list) {
-				DummyDataTransfer c = new DummyDataTransfer();
-				c.setText(or.getNomCas());
-				c.setText2(or.getNomVal());
-				c.setValue(or.getId().getLugar());
-				supervisable_cents.add(c);
-			}
-			List<DummyDataTransfer> supervisable_evs = new ArrayList<DummyDataTransfer>();
-			List<EvidenciaBuscadorDTO> evs_list = tas.getAllEvidencies();
-			for(EvidenciaBuscadorDTO e : evs_list) {
-				DummyDataTransfer c = new DummyDataTransfer();
-				c.setText(e.getCodiEvidencia());
-				c.setText2(e.getNomEvidenciaCas());
-				c.setText3(e.getNomEvidenciaVal());
-				supervisable_evs.add(c);
-			}
-			supervisable_cents.sort(Comparator.comparing(a -> a.getText()));
-			model.addAttribute("granted", true);
-			model.addAttribute("sup_evs", supervisable_evs);
-			model.addAttribute("sup_cents", supervisable_cents);
-		}
-		else { // Otros     
-			List<BigInteger> i_list = this.us.getSupervisableProcessos(urs.findActiveRols(((Usuari) auth.getPrincipal())));
-			for(BigInteger id : i_list) {
-				Instancia inst = is.findByID(id);
-				DummyDataTransfer p = new DummyDataTransfer();
-				DummyDataTransfer y = new DummyDataTransfer();
-				DummyDataTransfer o = new DummyDataTransfer();
-				p.setText(inst.getProces().getNomProces());
-				p.setText2(inst.getProces().getNomProces() + " " + inst.getProces().getTitolCas());
-				p.setText3(inst.getProces().getNomProces() + " " + inst.getProces().getTitolVal());
-				y.setText(Integer.toString(inst.getProces().getCursAvaluat()-1) + " - " + Integer.toString(inst.getProces().getCursAvaluat()));
-				y.setValue(inst.getProces().getCursAvaluat());
-				o.setText(inst.getOrgan().getNomCas());
-				o.setText2(inst.getOrgan().getNomVal());
-				o.setValue(inst.getOrgan().getId().getLugar());
-				o.setText3(inst.getOrgan().getId().getTlugar());
-				if(!supervisable_procs.contains(p)) {
-					supervisable_procs.add(p);
-				}
-				if(!supervisable_years.contains(y)) {
-					supervisable_years.add(y);
-				}
-				if(!supervisable_orgs.contains(o) && inst.getOrgan().getId().getTlugar().equals("T") && inst.getOrgan().getId().getLugar() > 2) {
-					supervisable_orgs.add(o);
-				}
-			}
-			DummyDataTransfer o = new DummyDataTransfer();
-			o = new DummyDataTransfer();
-			Organ org = ors.findByID("T", 1);
-			o.setText(org.getNomCas());
-			o.setText2(org.getNomVal());
-			o.setValue(1);
-			supervisable_orgs.add(o);
-			o = new DummyDataTransfer();
-			org = ors.findByID("T", 2);
-			o.setText(org.getNomCas());
-			o.setText2(org.getNomVal());
-			o.setValue(2);
-			supervisable_orgs.add(o);
-			o = new DummyDataTransfer();
-			org = ors.findByID("T", 0);
-			o.setText(org.getNomCas());
-			o.setText2(org.getNomVal());
-			o.setValue(0);
-			supervisable_orgs.add(o);
-			model.addAttribute("granted", false);
-		}
-		
-		supervisable_orgs.sort(Comparator.comparing(a -> a.getText()));
-		
-		model.addAttribute("sup_procs", supervisable_procs);
-		model.addAttribute("sup_years", supervisable_years);
-		model.addAttribute("sup_orgs", supervisable_orgs);
-		
-		if(session.getAttribute("searchParams") != null) {
-			SupervisionSearchParams ssp = (SupervisionSearchParams) session.getAttribute("searchParams");
-			model.addAttribute("restore", ssp);
-			session.removeAttribute("searchParams");
-		}
-		else {
-			model.addAttribute("restore", null);
-		}
-		
-		return "supervision";
+		HashMap<String, Object> response =
+			sc.supervisionForm(((Usuari) auth.getPrincipal()).getUsuari(),
+			(SupervisionSearchParams) session.getAttribute("searchParams"));
+
+        if (response != null && response.get("redirect") != null) {
+			model.addAllAttributes(response);
+			if(response.get("removeAttribute") != null)
+				session.removeAttribute(response.get("removeAttribute").toString());
+            return response.get("redirect").toString();
+        }
+
+        return "401";
 	}
 	
 	/*
@@ -217,12 +71,18 @@ public class SupervisionController {
 			@RequestParam(name="evidences[]", required=false) List<String> evidencies,
 			@RequestParam(name="searchType", required=false) String searchType,
 			HttpSession session) {
-		session.setAttribute("location", "supervision");
-		if(centres == null) { centres = us.getSupervisableCentres((Usuari) auth.getPrincipal()); }
-		this.loadResults(model, auth, centres, titulacions, cursos, procediments, evidencies, searchType);
-		session.setAttribute("searchParams", new SupervisionSearchParams(centres, titulacions, cursos, procediments, evidencies, searchType));
-		
-		return "supervisionProcedures";
+
+		HashMap<String, Object> response =
+			sc.supervisionSearch(centres, cursos, titulacions, procediments, evidencies, searchType, searchType);
+
+        if (response != null && response.get("redirect") != null) {
+			model.addAllAttributes(response);
+			session.setAttribute("searchParams", response.get("searchParams"));
+			session.setAttribute("location", response.get("location"));
+            return response.get("redirect").toString();
+        }
+
+        return "401";
 	}
 	
 	/*
@@ -235,86 +95,16 @@ public class SupervisionController {
 	 */
 	@GetMapping("/supervision/search")
 	public String restoreSearch(Model model, Authentication auth, HttpSession session) {
-		session.setAttribute("location", "supervision");
-		if(session.getAttribute("searchParams") != null) {
-			SupervisionSearchParams ssp = (SupervisionSearchParams) session.getAttribute("searchParams");
-			this.loadResults(model, auth, ssp.getCentres(), ssp.getTitulacions(), ssp.getCursos(), ssp.getProcediments(), ssp.getEvidencies(), ssp.getSearchType());
-		}
-		
-		return "supervisionProcedures"; 
-	}
-	
-	/*
-	 * Loads the search results based on the provided filters
-	 * 
-	 * @param model The model to pass data to the view
-	 * @param auth The authentication object
-	 * @param centres The selected centers
-	 * @param titulacions The selected titulacions
-	 * @param cursos The selected years
-	 * @param procediments The selected procedures
-	 * @param evidencies The selected evidences
-	 * @param searchType The type of search (by procedures or evidences)
-	 */
-	public void loadResults(Model model, Authentication auth, List<Integer> centres, List<Integer> titulacions, 
-			List<Integer> cursos, List<String> procediments, List<String> evidencies, String searchType) {
-		List<InstanciaTransfer> plist = new ArrayList<InstanciaTransfer>();
-		List<BigInteger> supervisables;
-		if(searchType != null) {
-			if(searchType.equals("evidences")) {
-				supervisables = this.is.filterSupervisablesByEvidencies(centres, titulacions, cursos, evidencies);
-			}
-			else {
-				supervisables = this.is.filterSupervisables(centres, titulacions, cursos, procediments);
-			}
-		}
-		else {
-			supervisables = this.is.filterSupervisables(centres, titulacions, cursos, procediments);
-		}
-		Instancia i;
-		InstanciaTransfer it;
-		InstanciaTasca itt;
-		for(BigInteger p_id: supervisables) {
-			i = this.is.findByID(p_id);
-			it = new InstanciaTransfer();
-			it.setIdInstancia(i.getIdInstancia());
-			it.setIdProces(i.getProces().getIdProces());
-			it.setNomProces(i.getProces().getNomProces());
-			it.setCursAvaluat(i.getProces().getCursAvaluat());
-			it.setCursActivacio(i.getProces().getCursActivacio());
-			it.setTitolCas(i.getProces().getTitolCas());
-			it.setTitolVal(i.getProces().getTitolVal());
-			it.setDescripcioCas(i.getProces().getDescripcioCas());
-			it.setDescripcioVal(i.getProces().getDescripcioVal());
-			it.setEstat(i.getEstat());
-			if(i.getOrgan().getId().getTlugar().equals("C")) {
-				Organ o = ors.findByID("T", i.getTitulacio());
-				it.setTitulacioCas(o.getNomCas());
-				it.setTitulacioVal(o.getNomVal());
-				it.setCentreCas(i.getOrgan().getNomCas());
-				it.setCentreVal(i.getOrgan().getNomVal());
-			}
-			else {
-				it.setTitulacioCas(i.getOrgan().getNomCas());
-				it.setTitulacioVal(i.getOrgan().getNomVal());
-				it.setCentreCas(i.getOrgan().getOrgan().getNomCas());
-				it.setCentreVal(i.getOrgan().getOrgan().getNomVal());
-			} 
-			if(i.getEstat().equals("A")) {
-				itt = its.findActiveByInstancia(i.getIdInstancia());
-				it.setDataLimTascaActiva(itt.getTasca().getDataLim());
-				it.setDataTascaActiva(itt.getData());
-				it.setNomTascaActivaCas(itt.getTasca().getTitolCas());
-				it.setNomTascaActivaVal(itt.getTasca().getTitolVal());
-				it.setDescTascaActivaCas(itt.getTasca().getDescripcioCas());
-				it.setDescTascaActivaVal(itt.getTasca().getDescripcioVal());
-				it.setIdTascapActiva(itt.getTasca().getIdTascap());
-				it.setTascaActivaExpired(itt.getTasca().isExpired());
-				it.setTascaActivaAssignedToUser(its.isUserAuthorized(((Usuari)auth.getPrincipal()), itt.getIdInstanciaTasca()));
-			}
-			plist.add(it);
-		}
-		model.addAttribute("procedure_list", plist);
+		HashMap<String, Object> response =
+			sc.restoreSearch(((Usuari) auth.getPrincipal()).getUsuari(),
+			(SupervisionSearchParams) session.getAttribute("searchParams"));
+
+        if (response != null && response.get("redirect") != null) {
+			model.addAllAttributes(response);
+			session.setAttribute("location", response.get("location"));
+            return response.get("redirect").toString();
+        }
+
+        return "401";
 	}
-	
 }

+ 0 - 98
src/main/java/es/uv/saic/web/TascaController.java

@@ -1,98 +0,0 @@
-package es.uv.saic.web;
-
-import java.math.BigInteger;
-
-import es.uv.saic.domain.InstanciaTasca;
-import es.uv.saic.domain.Tasca;
-import es.uv.saic.dto.InstanciaTascaDTO;
-import es.uv.saic.dto.NomProcesOrganDTO;
-import es.uv.saic.dto.ProcesDTO;
-import es.uv.saic.dto.TascaDTO;
-import es.uv.saic.dto.TascaInformeTransferDTO;
-import es.uv.saic.service.InstanciaTascaService;
-import es.uv.saic.service.TascaService;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestParam;
-
-
-@RestController
-public class TascaController {
-    @Autowired
-    TascaService ts;
-
-    @Autowired
-    InstanciaTascaService its;
-
-    @GetMapping("/instanciatasca/{id}")
-    public ResponseEntity<?> findInstanciaTascaById(@PathVariable("id") BigInteger id) {
-        try {
-            InstanciaTascaDTO instanciatasca = its.findByIdDTO(id);
-
-            return (instanciatasca != null) ? 
-            ResponseEntity.ok(instanciatasca) : ResponseEntity.badRequest().body("La instancia esta vacia");
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al obtener la instancia por el id:" +  e.getMessage());
-        }
-    }
-
-    @GetMapping("/instanciatasca2/{id}")
-    public ResponseEntity<?> findInstanciaTascaById2(@PathVariable("id") BigInteger id) {
-        try {
-            InstanciaTasca instanciatasca = its.findById(id);
-            InstanciaTascaDTO instanciaTascaDTO = new InstanciaTascaDTO(instanciatasca);
-
-            return (instanciaTascaDTO != null) ? 
-            ResponseEntity.ok(instanciaTascaDTO) : ResponseEntity.badRequest().body("La instancia esta vacia");
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al obtener la instancia por el id:" +  e.getMessage());
-        }
-    }
-
-    @PostMapping("/getLastByProcName")
-    public ResponseEntity<?> getLastByProcName(@RequestBody ProcesDTO tascaDTO) {
-        try {
-            TascaInformeTransferDTO tit = its.getLastByProcName(tascaDTO.getNomProces(),
-                tascaDTO.getLugar(), tascaDTO.getLugar2(), tascaDTO.getTambit());
-
-            return ResponseEntity.ok(tit);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al obtener la última tarea a partir del procedimiento: " + e.getMessage());
-        }
-    }
-    
-    @PostMapping("/getByProcesTascap/{idProces}/{idTascap}")
-    public ResponseEntity<?> getByProcesTascap(@PathVariable Integer idProces, @PathVariable Integer idTascap) {
-        try {
-            Tasca tasca = ts.getByProcesTascap(idProces, idTascap);
-            TascaDTO tascaDTO = new TascaDTO(tasca);
-
-            return ResponseEntity.ok(tascaDTO);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al obtener la tasca: " + e.getMessage());
-        }
-    }
-    
-    @GetMapping("/getReportFromNomProcesOrgan")
-    public ResponseEntity<?> getReportFromNomProcesOrgan(@RequestBody NomProcesOrganDTO nomProcesOrganDTO) {
-        try {
-            InstanciaTasca itasca = its.getReportFromNomProcesOrgan(nomProcesOrganDTO.getNomProces(), nomProcesOrganDTO.getTlugar(), nomProcesOrganDTO.getLugar(), nomProcesOrganDTO.getCentre(), nomProcesOrganDTO.getTitulacio());
-            InstanciaTascaDTO itDto = new InstanciaTascaDTO(itasca);
-
-            return ResponseEntity.ok(itDto);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al obtener la instancia tasca: " + e.getMessage());
-        }
-    }
-}

+ 1 - 0
src/main/java/es/uv/saic/web/TestController.java

@@ -20,6 +20,7 @@ import es.uv.saic.feign.PlantillaClient;
 import es.uv.saic.service.InstanciaService;
 import es.uv.saic.service.InstanciaTascaService;
 
+// INACCESIBLE DESDE VISTAS
 //	Generates PDFs for all instances of a given process and task for admin user 
 @Controller
 public class TestController {

+ 4 - 6
src/main/java/es/uv/saic/web/WikiController.java

@@ -11,14 +11,14 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import es.uv.saic.domain.Wiki;
-import es.uv.saic.service.WikiService;
+import es.uv.saic.feign.WikiClient;
 
 // This class is meant to fill/edit the wiki and wikiEditor html
 @Controller
 public class WikiController {
 	
 	@Autowired
-	WikiService ws;
+	private WikiClient wc;
 
 	/*
 	 * Renders the wiki page
@@ -55,7 +55,7 @@ public class WikiController {
 	@GetMapping("/wiki/text/{categoria}")
 	@ResponseBody
 	public Wiki renderWiki(Model model, Authentication auth, @PathVariable String categoria) {
-		return this.ws.findByCategoria(categoria);
+		return wc.renderWiki(categoria);
 	}
 	
 	/*
@@ -70,9 +70,7 @@ public class WikiController {
 	@PostMapping("/wiki/editor")
 	@ResponseBody
 	public Wiki updateWiki(Model model, Authentication auth, @RequestParam String cat, @RequestParam String text) {
-		Wiki w = this.ws.findByCategoria(cat);
-		w.setText(text);
-		return this.ws.save(w);
+		return wc.updateWiki(cat, text);
 	}
 	
 }