Skip to content

Commit f265cdd

Browse files
committed
Corrigido bug ufjf-dcc#139.
1 parent bd3c9cf commit f265cdd

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

src/br/ufjf/tcc/controller/HomeProfessorController.java

+21-5
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121

2222
import br.ufjf.tcc.business.AvisoBusiness;
2323
import br.ufjf.tcc.business.CursoBusiness;
24+
import br.ufjf.tcc.business.ParticipacaoBusiness;
2425
import br.ufjf.tcc.business.QuestionarioBusiness;
2526
import br.ufjf.tcc.business.TCCBusiness;
2627
import br.ufjf.tcc.model.Aviso;
2728
import br.ufjf.tcc.model.Curso;
29+
import br.ufjf.tcc.model.Participacao;
2830
import br.ufjf.tcc.model.Questionario;
2931
import br.ufjf.tcc.model.TCC;
3032
import br.ufjf.tcc.model.Usuario;
@@ -39,6 +41,7 @@ public class HomeProfessorController extends CommonsController {
3941
showAll = false;
4042
private List<Aviso> avisos;
4143
private Aviso aviso = new Aviso();
44+
private int typeSelecionado = 0;
4245

4346
/*
4447
* Pega todas as TCCs em que o Prof/Coord tem Participação e verifica se o
@@ -197,8 +200,9 @@ public void setShowAll(boolean showAll) {
197200
@NotifyChange("filterTccs")
198201
@Command
199202
public void filterType(@BindingParam("type") int type) {
203+
this.typeSelecionado = type;
200204
int idUsuarioLogado = getUsuario().getIdUsuario();
201-
switch (type) {
205+
switch (typeSelecionado) {
202206
case 0:
203207
filterTccs = showAll ? allTccs : tccs;
204208
break;
@@ -215,19 +219,31 @@ public void filterType(@BindingParam("type") int type) {
215219
case 2:
216220
filterTccs = new ArrayList<TCC>();
217221
for (TCC t : showAll ? allTccs : tccs){
218-
int idOrientador = t.getOrientador().getIdUsuario();
219-
int idCoOrientador = t.getCoOrientador() !=null ? t.getCoOrientador().getIdUsuario() : idUsuarioLogado;
220-
if (idOrientador != idUsuarioLogado && idCoOrientador != idUsuarioLogado)
222+
if (isInParticipacoesTCC(getUsuario(), t))
221223
filterTccs.add(t);
222224
}
223225
break;
224226
}
225227
}
228+
229+
private boolean isInParticipacoesTCC(Usuario professor, TCC t) {
230+
List<Participacao> parts = new ParticipacaoBusiness().getParticipacoesUsuarioByTCC(t);
231+
for (Participacao participacao : parts) {
232+
if(participacao.getProfessor().getIdUsuario() == professor.getIdUsuario()){
233+
return true;
234+
}
235+
}
236+
return false;
237+
}
226238

227239
@NotifyChange("filterTccs")
228240
@Command
229241
public void showAllTccs() {
230-
filterTccs = showAll ? allTccs : tccs;
242+
if(showAll){
243+
filterTccs = allTccs;
244+
}else{
245+
filterType(this.typeSelecionado);
246+
}
231247
}
232248

233249
// Formata a data de apresentação para String

src/br/ufjf/tcc/persistent/impl/TCCDAO.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ public List<TCC> getTCCsByOrientador(Usuario user) {
138138
try {
139139
Query query = getSession()
140140
.createQuery(
141-
"SELECT t FROM TCC AS t JOIN FETCH t.aluno JOIN FETCH t.orientador LEFT JOIN FETCH t.coOrientador WHERE t.orientador = :user OR t.coOrientador = :user");
141+
"SELECT DISTINCT t FROM TCC AS t JOIN FETCH t.aluno JOIN FETCH t.orientador LEFT JOIN FETCH t.coOrientador LEFT JOIN FETCH t.participacoes AS ps "
142+
+ " LEFT JOIN FETCH ps.professor AS prof WHERE t.orientador = :user OR t.coOrientador = :user");
142143
query.setParameter("user", user);
143144
results = query.list();
144145
getSession().close();
@@ -156,7 +157,8 @@ public List<TCC> getTCCsByUserParticipacao(Usuario user) {
156157
try {
157158
Query query = getSession()
158159
.createQuery(
159-
"SELECT t FROM TCC AS t JOIN FETCH t.aluno JOIN FETCH t.orientador LEFT JOIN FETCH t.coOrientador LEFT JOIN t.participacoes AS p WHERE p.professor = :user");
160+
"SELECT t FROM TCC AS t JOIN FETCH t.aluno JOIN FETCH t.orientador LEFT JOIN FETCH t.coOrientador LEFT JOIN FETCH t.participacoes AS p "
161+
+ " WHERE p.professor = :user");
160162
query.setParameter("user", user);
161163
results = query.list();
162164
getSession().close();

0 commit comments

Comments
 (0)