Subversion Repositories bacoAlunos

Rev

Rev 1346 | Rev 1404 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.form.configuration.SchedulleTasksForm" %>
<%@ page import="pt.estgp.estgweb.domain.*" %>
<%@ page import="pt.estgp.estgweb.services.jobs.ServiceJob" %>
<%@ page import="pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService" %>
<%@ page import="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%
    String qId = request.getParameter("questionarioId");
    if(qId == null)
        qId = request.getParameter("questionario.id");
    Long questionarioId = Long.parseLong(qId);

    IServiceManager sm = ServiceManager.getInstance();
    String[] names = {"questionarioId"};
    Object[] args = {questionarioId};
    QuestionarioImpl questionario = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"loadQuestionarioAdmin",args,names);


    request.setAttribute("Questionario", questionario);


    AbstractDao.getCurrentSession().beginTransaction();
    JobServiceTaskImpl job = questionario.getCourseSelectionTaskId() > 0 ?
            (JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(questionario.getCourseSelectionTaskId()) :
            null;
    request.setAttribute("Job", job);

    List<String> institutionCodes = ConfigProperties.getListValues("questionario.instituition.");

%>



<html:form action="/user/questionariosPaeSelectCourses">
    <jsp:useBean id="QuestionarioForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" scope="request"/>
<%
    //Variavel iniciada no serviço de load por chamada do IAnswerProcessor respectivo para inicializar
    //as variaveis especificas
    QuestionarioForm.setCoursesSelectedIds(questionario.getAfetacoesVarCoursesSelectionForJob());
%>
<div class="container-fluid">
    <script>
        $(document).ready(
                function()
                {
                    <baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
                        $(".courseCheck").attr("data-toogle","toggle");
                        $('.courseCheck').bootstrapToggle({
                                on: 'Sim',
                                off: 'Não'
                        });
                        $('.checkAll').bootstrapToggle({
                                on: 'Sim',
                                off: 'Não'
                        });
                    </baco:clearOperation>
                    <baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
                    $('.courseCheck').bootstrapToggle('disable');
                    $('.checkAll').bootstrapToggle('disable');
                    </baco:notClearOperation>

                }

        );

        function selectAll(code,source)
        {

            $('#institution' + code).find('.courseCheck').each(
                    function()
                    {
                        if($(source).prop("checked"))
                            $(this).bootstrapToggle('on');
                        else
                            $(this).bootstrapToggle('off');
                    });
        }
    </script>

<div class="panel panel-primary">
    <div class="panel-heading">
        Selecção de Cursos para o Questionário ${Questionario.id} - Periodo: ${Questionario.semestre} de ${Questionario.year}
    </div>
    <div class="panel-body">
        <html:errors/>
        <jomm:messages/>

        <div class="baco-please-wait">

        </div>
        <div class="baco-please-wait-target">

            <ul class="nav nav-tabs">
                <li id="institutionsSeparatorsGerarFinal"><a href="javascript:showInstitutionCode('GerarFinal')"><strong><u>Operações</u></strong></a></li>
                <%
                    for(String institutionCode: institutionCodes)
                    {
                        String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode);
                %>
                        <li id="institutionsSeparators<%=institutionCode%>"><a href="javascript:showInstitutionCode('<%=institutionCode%>')"><%=institutionName%></a></li>
                <%
                    }
                %>

            </ul>
            <script>
                $(document).ready(
                        function(){
                            showInstitutionCode('GerarFinal');
                        }
                );


                function showInstitutionCode(institutionCode)
                {
                    <%
                    for(String institutionCode: institutionCodes)
                    {
                    %>
                        if(institutionCode == '<%=institutionCode%>')
                        {
                            $("#institution<%=institutionCode%>").show();
                            $("#institutionsSeparators<%=institutionCode%>").addClass("active");
                        }
                        else
                        {
                            $("#institution<%=institutionCode%>").hide();
                            $("#institutionsSeparators<%=institutionCode%>").removeClass("active");
                        }
                    <%
                    }
                    %>
                    if(institutionCode == 'GerarFinal')
                    {
                        $("#institutionGerarFinal").show();
                        $("#institutionsSeparatorsGerarFinal").addClass("active");
                    }
                    else
                    {
                        $("#institutionGerarFinal").hide();
                        $("#institutionsSeparatorsGerarFinal").removeClass("active");
                    }
                }
            </script>

    <%
        for(String institutionCode: institutionCodes)
        {
            String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode);
            List<Course> courses = DaoFactory.getCourseDaoImpl().findCoursesWithUnitsIn(questionario.getYear(),institutionCode,questionario.getSemestre());
    %>
            <div class="panel panel-default" id="institution<%=institutionCode%>" style="display: none">
                <div class="panel-heading">
                Cursos da <%=institutionName%>
            </div>
                <div class="panel-body">
                    <table class="tablesorterfiltered">
                    <thead>
                    <tr>
                        <th>Codigo</th>
                        <th>Tipo de Curso</th>
                        <th>Curso</th>
                        <th>Papel Comissão Curso</th>
                        <th>Unidades</th>
                        <th>Turmas</th>
                        <th class="filter-false" data-sorter="false">
                            <input class="checkAll" type="checkbox" onchange="selectAll('<%=institutionCode%>',this)">
                        </th>
                    </tr>
                    </thead>
                    <tbody>
                    <%
                        for(Course course: courses)
                        {
                            int unitsSize=DaoFactory.getCourseDaoImpl().countCoursesUnits(questionario.getYear(), course.getId());
                            int turmasSize = DaoFactory.getCourseDaoImpl().countCoursesUnitsTurmas(questionario.getYear(), course.getId());
                            CourseView cv = new CourseView(course);
                            request.setAttribute("CourseView",cv);
                    %>
                            <tr>
                                <td>${CourseView.code}</td>
                                <td><bean:message key="course.${CourseView.degreeCleanCode}"/></td>
                                <td>${CourseView.name}</td>
                                <td>
                                    <logic:notEmpty name="CourseView" property="validationRole">
                                        <bean:message key="user.role.${CourseView.validationRole}"/>
                                    </logic:notEmpty>
                                    <logic:empty name="CourseView" property="validationRole">
                                        Papel não atribuido (Corrigir Situação)
                                    </logic:empty>
                                </td>
                                <td>
                                    <a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCourseUnits.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Unidades do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest">
                                        <%=unitsSize%>
                                    </a>
                                </td>
                                <td>
                                    <a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCourseUnitsTurmas.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Turmas do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest">
                                        <%=turmasSize%>
                                    </a>
                                </td>
                                <td>
                                    <html:multibox property="coursesSelectedIds" value="${CourseView.id}" styleClass="courseCheck"/>
                                </td>
                            </tr>
                    <%
                        }
                    %>
                    </tbody>
                </table>
                </div>
            </div>
    <%
        }
    %>


            <div class="panel panel-primary" id="institutionGerarFinal">
                <div class="panel-heading">
                    Atribuição de Cursos e Unidades ao Questionário
                </div>
                <div class="panel-body">


                    <div class="col-sm-6">
                        <baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
                            <div class="alert alert-warning">Esta operação vai associar todos os cursos seleccionados e respectivas unidades curriculares
                                ao questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}</div>
                            <div class="alert alert-info alert-small">Esta operação poderá ser revertida ou então repetida para atualizar os cursos alvo do questionário</div>
                            <div class="alert alert-info alert-small">Esta operação poderá demorar alguns instantes</div>
                            <html:hidden property="questionario.id" value="${Questionario.id}"/>
                            <input type="hidden" name="questionarioId" value="${Questionario.id}"/>
                            <input type="hidden" name="dispatch" value="selectCourses"/>
                        </baco:clearOperation>



                        <baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
                            <button class="btn btn-warning" type="button" onclick="this.form.submit()">Associar Cursos e Unidades Curriculares</button>
                        </baco:clearOperation>
                        <baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
                            <baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
                                <div class="alert alert-warning">O sistema agendou a atribuição de cursos e unidades ao questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}. Veja o progresso em baixo, caso não termine no final de 30 minutos esta tarefa ficará de novo disponivel</div>
                            </baco:clearOperation>
                            <baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
                                <div class="alert alert-warning">Não têm autorização para ver esta secção</div>
                            </baco:notClearOperation>

                        </baco:notClearOperation>
                        <a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/questionarioLogState.jsp?questionarioId=${Questionario.id}" data-title="Registo de mudanças de estado do questionario ${Questionario.id}" data-toggle="modal" data-target="#modalAjaxRequest">
                            Registo de Mudanças de Estado
                        </a>
                    </div>
                    <div class="col-sm-6">
                        <baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
                            <%
                                if(job != null)
                                {
                                    SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
                                    schedulleTasksForm.setJobServiceTask(job);
                                    schedulleTasksForm.setId(job.getId());
                                    request.setAttribute("SchedulleTasksForm",schedulleTasksForm);
                                %>
                                <div class="task-log task-log-xs" data-href="<%=request.getContextPath()%>/user/questionarioPedagogicoStartChooseCourses.do?questionarioId=${Questionario.id}">
                                    <jsp:include page="/admin/configuration/taskLog.jsp"/>
                                </div>
                                <%
                                }
                                else
                                {
                                %>
                                <div class="alert alert-danger">O sistema não conseguiu encontrar a tarefa de atribuição nas tarefas agendadas, por favor verifique em todos os logs de tarefas <html:link action="/user/configurationJobTasks">Aqui</html:link> </div>
                                <%
                                    }
                                %>
                        </baco:clearOperation>
                    </div>


                </div>

            </div>
            <div class="col-sm-12">
                <html:link action="/user/adminQuestionario?questionario.id=${Questionario.id}#NOWTASK" styleClass="btn btn-danger">Voltar à administração</html:link>
            </div>
        </div>
        </div>
    </div>
</div>
<%
    AbstractDao.getCurrentSession().getTransaction().commit();
%>

</html:form>