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");
}
}
}