~~ODT~~

Última atualização: 2017/04/03 18:15 (edição externa)

Turmas Capacidades CT Servlet

Este servlet permite que usuários com papel de consultores de vagas de turmas visualizem os dados das vagas em turmas de CT, filtrando por ano e período.

Este caso de uso é iniciado ao se enviar uma requisição POST com protocolo HTTPS para a url http://www.sigaa.ufrn.br/turmasCapacidadesCTServlet .

Na requisição, devem ser passados os seguintes parâmetros:

  • login: Tipo - TEXTO. Campo obrigatório.
  • senha: Tipo - TEXTO. Campo obrigatório.
  • ano: Tipo - NUMÉRICO. Campo obrigatório.
  • periodo: Tipo - NUMÉRICO. Campo obrigatório.

Caso o usuário tenha informado a senha correta e tenha papel de consultor de vagas de turmas, o caso de uso busca todas as turmas de CT do ano e período informado e retorna os dados em formato CSV, contendo os seguintes campos:

  • unidade: Nome da unidade (Centro, Departamento, etc) responsável pela turma.
  • codigo_componente: Código do componente curricular da turma (EX: DEQ0376);
  • nome_componente: Nome do componente curricular da disciplina;
  • ch_componente: Carca horária do componente curricular da disciplina;
  • turma: Código da turma (EX: 01);
  • descricao_horario: Horário da turma (Ex: 2M1234);
  • local: Local da turma;
  • situacao: Situação da turma;
  • docente: Docente responsável pela turma;
  • ch_docente: Carga horária do docente;
  • capacidade: Capacidade de alunos da turma;
  • solicitacoes_matricula: Quantidade solicitações ativas de matrícula para a turma;
  • total_matriculas: Quantidade de matrículas ativas na turma
  • RN01 - Apenas usuários com o papel SigaaPapeis.CONSULTOR_VAGAS_TURMAS poderão acessar este servlet.

Resoluções/Legislações Associadas

Não se aplica.

Classe Tabela
br.ufrn.comum.dominio.Unidade sigaa.comum.unidade
br.ufrn.sigaa.ensino.medio.dominio.ModalidadeCursoMedio sigaa.medio.modalidade_curso_medio
br.ufrn.sigaa.ensino.dominio.ComponenteCurricular sigaa.ensino.componente_curricular
br.ufrn.sigaa.ensino.dominio.ComponenteCurricularDetalhes sigaa.ensino.componente_curricular_detalhes
br.ufrn.sigaa.ensino.dominio.Turma sigaa.ensino.turma
br.ufrn.sigaa.ensino.dominio.SituacaTurma sigaa.ensino.situacao_turma
br.ufrn.sigaa.ensino.dominio.DocenteTurma sigaa.ensino.docente_turma
br.ufrn.sigaa.ensino.dominio.MatriculaComponente sigaa.ensino.matricula_componente
br.ufrn.sigaa.pessoa.dominio.Servidor sigaa.rh.servidor
br.ufrn.sigaa.pessoa.dominio.Pessoa sigaa.comum.pessoa
br.ufrn.sigaa.ensino.dominio.DocenteExterno sigaa.ensino.docente_externo
br.ufrn.sigaa.graduacao.dominio.SolicitacaoMatricula sigaa.graduacao.solicitacao_matricula

Plano de Teste

O servlet não é acessado por links nos sistemas. Para testar, basta submeter um POST para a url do servlet, contendo login, senha, ano e período. Segue abaixo um formulário HTML para testar (Lembre-se de alterar o local do servidor para o que será utilizado):

<html>
  <body>
    <form action="http://localhost:8080/sigaa/turmasCapacidadesCTServlet" method="post">
			Login: <input name="login" /><br/>
			Senha: <input name="senha" type="password" /><br/>
			Ano: <input name="ano" /><br/>
			Período: <input name="periodo" /><br/>
			<input type="submit" value="Testar" />
		</form>
	</body>
</html>

Usuários: auniebson

Papel que usuário deve ter: SigaaPapeis.CONSULTOR_VAGAS_TURMAS

Não se aplica

A consulta feita no banco é a seguinte:

SELECT u.nome AS unidade, cc.codigo AS codigo_componente, ccd.nome AS nome_componente, ccd.ch_total AS ch_componente,
t.codigo AS turma, t.descricao_horario, t.local, st.descricao AS situacao,
COALESCE(p1.nome, p2.nome) AS docente,
dt.ch_dedicada_periodo AS ch_docente,
t.capacidade_aluno AS capacidade, 
(SELECT COUNT(sm.id_solicitacao_matricula) FROM graduacao.solicitacao_matricula sm WHERE sm.id_turma = t.id_turma AND sm.status IN (1,2,5,8,10) AND sm.anulado = FALSE) AS solicitacoes_matricula,
(SELECT COUNT(id_matricula_componente) FROM ensino.matricula_componente mc WHERE mc.id_turma = t.id_turma AND mc.id_situacao_matricula IN (4,6,7,9,1,2)) AS total_matriculas
FROM comum.unidade u
JOIN ensino.componente_curricular cc USING(id_unidade)
JOIN ensino.componente_curricular_detalhes ccd ON (cc.id_detalhe = ccd.id_componente_detalhes)
JOIN ensino.turma t USING(id_disciplina)
JOIN ensino.situacao_turma st USING(id_situacao_turma)
LEFT JOIN ensino.docente_turma dt USING(id_turma)
LEFT JOIN rh.servidor s ON (s.id_servidor = dt.id_docente)
LEFT JOIN comum.pessoa p1 ON (s.id_pessoa = p1.id_pessoa)
LEFT JOIN ensino.docente_externo de USING (id_docente_externo)
LEFT JOIN comum.pessoa p2 ON (de.id_pessoa = p2.id_pessoa)
WHERE (u.id_gestora = 445 OR u.id_gestora = 351 OR u.id_unidade = 351 OR cc.codigo ILIKE 'AGP%' OR cc.codigo ILIKE 'ZOO%')
AND t.ano = 2012 AND t.periodo = 1
AND t.id_situacao_turma IN (1, 2)
AND cc.nivel = 'G'
ORDER BY u.nome, cc.codigo, t.codigo, docente;

Sendo que os identificadores de situações estão parametrizados e o ano e período devem ser substituídos pelos enviados na requisição

  • desenvolvimento/especificacoes/sigaa/servlets/turmas_capacidades_ct_servlet.txt
  • Última modificação: 2017/04/03 18:15
  • (edição externa)