Subversion Repositories bacoAlunos

Rev

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

package pt.estgp.estgweb.web.controllers.courseunits;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl;
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitEvaluationForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * @author Jorge Machado
 * @author Fabio Velez
 * @date 26/Fev/2008
 * @time 18:01:54
 * @see pt.estgp.estgweb.web
 */

public class CourseUnitsEvaluationController extends CourseUnitsController
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(CourseUnitsEvaluationController.class);




    public ActionForward editEvaluation(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response)
            throws ServletException
    {
        try
        {
            CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form;

            long id = cUF.getCourseUnitId();
            if(id <= 0)
                id = cUF.getCourseUnitView().getId();


            CourseUnitView cV = loadCourseUnitViewAndCourse(id,true,false, mapping, request, response);

            cUF.setCourseUnitView(cV);
            request.setAttribute("CourseUnitView", cV);
            CourseUnitEvaluationView cpv;
            if(cV.getCourseUnit().getCourseUnitEvaluation() == null)
                cpv = new CourseUnitEvaluationView(new CourseUnitEvaluationImpl());
            else
                cpv = new CourseUnitEvaluationView(cV.getCourseUnit().getCourseUnitEvaluation());
//            request.setAttribute("CourseUnitProgramView", cpv);


            cUF.setCourseUnitEvaluationView(cpv);
            cUF.setCourseUnitView(cV);
            return mapping.findForward("edit.evaluation");
        }
        catch (FilterChainFailedException e)
        {
            return mapping.findForward("error401");
        }
        catch (NotFoundException e)
        {
            return mapping.findForward("error404");
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            return mapping.findForward("error500");
        }
    }

    public boolean saveEvaluation(ActionForm form,HttpServletRequest request, HttpServletResponse response)
            throws ServletException
    {
        CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form;
        try
        {
            boolean go = true;
            long id = cUF.getCourseUnitView().getId();
            CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView();
            if(request.getParameter("autosave") != null && request.getParameter("autosave").equals("true"))
            {
                cuV.setAutosave(true);
            }
            else
            {
                ActionErrors errors = cUF.validateSave(null,request);
                if(errors.size() > 0)
                {
                    saveErrors(request, errors);
                    go = false;
                }
            }


            IServiceManager sm = ServiceManager.getInstance();
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{cuV, id};
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"evaluationView", "unitId"};
            if(go)
            {
                cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args,names);
                addMessage(request,"courseunit.evaluation.success");
            }
            /*CourseUnitView cV = loadCourseUnitView(id,true,false, null, request, response);
            cUF.setCourseUnitView(cV);
            cUF.setCourseUnitEvaluationView(cuV);
            request.setAttribute("CourseUnitView", cV);

            if(go)
                addMessage(request,"courseunit.evaluation.success");
            if(request.getParameter("json")!=null && request.getParameter("json").equals("true"))
            {
                return mapping.findForward("jsonOk");
            }
            else if(go)
                return mapping.findForward("load");
            else
                return mapping.findForward("edit.evaluation");
            */

            return true;

        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            addError(request, "courseunit.evaluation.tryagain");
            return false;
        }
    }


    public boolean teacherCompleteEvaluation(
                                        ActionForm form,
                                        HttpServletRequest request,
                                        HttpServletResponse response)
            throws ServletException
    {
        CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form;
        try
        {
            boolean go = true;
            ActionErrors errors = cUF.validateSave(null,request);
            if(errors.size() > 0)
            {
                saveErrors(request, errors);
                go = false;
            }

            long id = cUF.getCourseUnitView().getId();
            CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView();
            cuV.setTeacherComplete(true);

            IServiceManager sm = ServiceManager.getInstance();
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{cuV, id};
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"evaluationView", "unitId"};
            if(go)
                cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args,names);
            //CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response);
            //cUF.setCourseUnitView(cV);
            //cUF.setCourseUnitEvaluationView(cuV);
            //request.setAttribute("CourseUnitView", cV);
            if(go)
                addMessage(request,"courseunit.evaluation.success");
            //if(go)
            //    return mapping.findForward("load");
            //else
            //    return mapping.findForward("edit.evaluation");
            return go;
        }
        catch (FilterChainFailedException e)
        {
            addErrorAsString(request,e.toString());
            return false;
        }
        catch (NotFoundException e)
        {
            addErrorAsString(request,e.toString());
            return false;
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            addErrorAsString(request,e.toString());
            addError(request, "courseunit.evaluation.tryagain");
            return false;
        }
    }

    public boolean publishEvaluation(ActionForm form,
                                        HttpServletRequest request,
                                        HttpServletResponse response)
            throws ServletException
    {
        CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form;
        try
        {
            boolean go = true;
            ActionErrors errors = cUF.validateSave(null,request);
            if(errors.size() > 0)
            {
                saveErrors(request, errors);
                go=false;
            }

            long id = cUF.getCourseUnitView().getId();
            CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView();
            cuV.setFechar(true);
            IServiceManager sm = ServiceManager.getInstance();
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{cuV, id};
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"evaluationView", "unitId"};
            if(go)
                cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args,names);
            //CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response);
            //cUF.setCourseUnitView(cV);
            //cUF.setCourseUnitEvaluationView(cuV);
            //request.setAttribute("CourseUnitView", cV);
            if(go)
                addMessage(request,"courseunit.evaluation.success");
            //if(go)
            //    return mapping.findForward("load");
            //else
            //    return mapping.findForward("edit.evaluation");
            return go;
        }
        catch (FilterChainFailedException e)
        {
            addErrorAsString(request,e.toString());
            return false;
        }
        catch (NotFoundException e)
        {
            addErrorAsString(request,e.toString());
            return false;
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            addError(request, "courseunit.evaluation.tryagain");
            addErrorAsString(request,e.toString());
            return false;
        }
    }



    public ActionForward openEvaluation(ActionMapping mapping,
                                           ActionForm form,
                                           HttpServletRequest request,
                                           HttpServletResponse response)
            throws ServletException
    {
        try
        {
            CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form;

            long id = cUF.getCourseUnitView().getId();
            IServiceManager sm = ServiceManager.getInstance();
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{id};
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"unitId"};
            sm.execute(RequestUtils.getRequester(request, response), "OpenCourseUnitEvaluation", args,names);
            CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response);
            cUF.setCourseUnitView(cV);
            request.setAttribute("CourseUnitView", cV);
            addMessage(request,"courseunit.evaluation.success");
            return mapping.findForward("load");
        }
        catch (FilterChainFailedException e)
        {
            return mapping.findForward("error401");
        }
        catch (NotFoundException e)
        {
            return mapping.findForward("error404");
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            return mapping.findForward("error500");
        }
    }


}