Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 846 → Rev 847

/impl/conf/WEB-INF/struts/struts-courseunits.xml
48,7 → 48,7
</action>
 
<action path="/courseUnitProgramController"
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController"
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsProgramController"
name="CourseUnitProgramForm"
scope="request"
parameter="dispatch"
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java
70,6 → 70,8
cupv.persistViewInObjectAdministrator(program);
cupv.persistViewInObjectCoordinator(program);
cupv.persistViewInObjectTeacher(program);
//TODO METER O PROF RESPONSAVEL
setResponsableTeacher(cupv, c);
}
if(usession.getUser() instanceof Teacher && (((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true)))
{
82,6 → 84,8
)
{
cupv.persistViewInObjectCoordinator(program);
//TODO METER O PROF RESPONSAVEL
setResponsableTeacher(cupv, c);
}
List<String> errors = new ArrayList<String>();
createPdf(c,errors,usession);
96,6 → 100,13
return cupv;
}
 
private void setResponsableTeacher(CourseUnitProgramView cupv, CourseUnit c) {
if(cupv.getResponsableId() > 0)
{
Teacher t = DaoFactory.getTeacherDaoImpl().load(cupv.getResponsableId());
c.setResponsableTeacher(t);
}
}
 
 
public void createPdf(CourseUnit cu, List<String> errors) throws IOException, TransformerException, FOPException {
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitProgramView.java
14,6 → 14,18
public class CourseUnitProgramView extends DomainObjectView
{
 
//INICIADO a -1 porque só vai ser preciso nalguns serviços WEB
//serviço em uso Salvar Ficha Curricular
private long responsableId = -1;
 
public long getResponsableId() {
return responsableId;
}
 
public void setResponsableId(long responsableId) {
this.responsableId = responsableId;
}
 
private CourseUnitProgram courseUnitProgram;
 
public Class getReferenceClass()
/impl/src/java/pt/estgp/estgweb/web/form/courseunits/CourseUnitProgramForm.java
13,15 → 13,16
* @time 14:28:59
* @see pt.estgp.estgweb.web.form.blogs
*/
public class CourseUnitProgramForm extends ApplicationForm
public class CourseUnitProgramForm extends CourseUnitsForm
{
private static final Logger logger = Logger.getLogger(CourseUnitProgramForm.class);
 
CourseUnitProgramView courseUnitProgramView = new CourseUnitProgramView();
CourseUnitView courseUnitView = new CourseUnitView();
 
long courseUnitId;
long cloneFromUnitId;
 
 
public CourseUnitProgramForm(CourseUnitProgramView courseUnitProgramView, CourseUnitView courseUnitView, long courseUnitId) {
this.courseUnitProgramView = courseUnitProgramView;
this.courseUnitView = courseUnitView;
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsProgramController.java
New file
0,0 → 1,270
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 org.apache.struts.upload.FormFile;
import org.hibernate.ObjectNotFoundException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.CourseUnitProgram;
import pt.estgp.estgweb.domain.CourseUnitProgramImpl;
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl;
import pt.estgp.estgweb.domain.views.*;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.controllers.blogs.BlogsController;
import pt.estgp.estgweb.web.controllers.profile.ProfileController;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.web.form.blogs.BlogForm;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm;
import pt.estgp.estgweb.web.form.profile.ProfileForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterRetrieveException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.IncompatibleFilterException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterExpressionException;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ExecutedFilterException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
 
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 CourseUnitsProgramController extends CourseUnitsController
{
private static final Logger logger = Logger.getLogger(CourseUnitsProgramController.class);
 
 
 
 
public ActionForward editProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) 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);
CourseUnitProgramView cpv;
if(cV.getCourseUnit().getCourseUnitProgram() == null)
cpv = new CourseUnitProgramView(new CourseUnitProgramImpl());
else
cpv = new CourseUnitProgramView(cV.getCourseUnit().getCourseUnitProgram());
// request.setAttribute("CourseUnitProgramView", cpv);
 
if(cpv.getCourseUnitProgram().getCourseUnitProgramPart2() == null)
cpv.getCourseUnitProgram().setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());
 
 
cUF.setCourseUnitProgramView(cpv);
cUF.setCourseUnitView(cV);
return mapping.findForward("edit.program");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
public ActionForward saveProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
 
long id = cUF.getCourseUnitView().getId();
CourseUnitProgramView cuV = cUF.getCourseUnitProgramView();
cuV.setResponsableId(cUF.getCourseUnitView().getResponsableId());
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{cuV, id};
sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitProgram", args);
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response);
cUF.setCourseUnitView(cV);
request.setAttribute("CourseUnitView", cV);
return mapping.findForward("load");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
public ActionForward cloneProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
 
long id = cUF.getCourseUnitView().getId();
long idFrom = cUF.getCloneFromUnitId();
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{idFrom, id};
CourseUnitProgram cP = (CourseUnitProgram) sm.execute(RequestUtils.getRequester(request, response), "CloneCourseUnitProgram", args);
 
CourseUnitView cV = loadCourseUnitViewAndCourse(id,true,false, mapping, request, response);
 
cUF.setCourseUnitView(cV);
request.setAttribute("CourseUnitView", cV);
CourseUnitProgramView cpv;
if(cV.getCourseUnit().getCourseUnitProgram() == null)
cpv = new CourseUnitProgramView(new CourseUnitProgramImpl());
else
cpv = new CourseUnitProgramView(cV.getCourseUnit().getCourseUnitProgram());
// request.setAttribute("CourseUnitProgramView", cpv);
 
if(cpv.getCourseUnitProgram().getCourseUnitProgramPart2() == null)
cpv.getCourseUnitProgram().setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());
 
 
cUF.setCourseUnitProgramView(cpv);
cUF.setCourseUnitView(cV);
return mapping.findForward("edit.program");
 
 
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
 
}
 
 
//TODO meter aqui a navegação respectiva de adicionar teacher e ir para o programa de novo
public ActionForward addTeacher(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
long teacherId = cUF.getTeacherId();
long courseUnitId = cUF.getCourseUnitView().getId();
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{teacherId,courseUnitId};
 
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "AddTeacherCourseUnit", args, names);
if(cV.isNotFound())
addError(request,"error.courseunit.teacher.not.found");
 
return editProgram(mapping,form,request,response);
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
 
public ActionForward removeTeacher(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
long teacherId = cUF.getId(); //can't come in SELECT BOX because is for choose
long courseUnitId = cUF.getCourseUnitView().getId();
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{teacherId,courseUnitId};
 
sm.execute(RequestUtils.getRequester(request, response), "RemoveTeacherCourseUnit", args, names);
return editProgram(mapping,form,request,response);
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsAdminController.java
5,9 → 5,14
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.CourseUnitProgram;
import pt.estgp.estgweb.domain.CourseUnitProgramImpl;
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl;
import pt.estgp.estgweb.domain.views.CourseUnitProgramView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.services.common.ISearchResults;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
379,7 → 384,7
// sm.execute(RequestUtils.getRequester(request, response), "DeleteCourseUnit", args, names);
 
// addMessage(request,"courseunit.removed");
logger.info("Não implementado por razoes de segurança");
logger.info("N�o implementado por razoes de seguran�a");
addMessage(request,"courseunit.security.not.implemented");
} catch (Throwable e) {
addMessage(request,"error.500");
424,5 → 429,4
 
 
 
 
}
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsController.java
48,7 → 48,7
{
private static final Logger logger = Logger.getLogger(CourseUnitsController.class);
 
private ActionForward createBackup(String service,
protected ActionForward createBackup(String service,
Object[] args,
ActionMapping mapping,
ActionForm form,
99,7 → 99,7
return createBackup("CreateUserImportYearCourseUnitWorksBackup",args,mapping,form,request,response);
}
 
private ActionForward loadCourseUnitAndForward(CourseUnitsForm cUF, long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response)
protected ActionForward loadCourseUnitAndForward(CourseUnitsForm cUF, long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response)
throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException
{
CourseUnitView cV = loadCourseUnitView(id,initTeachers,initStudents, mapping, request, response);
108,7 → 108,7
return mapping.findForward("load");
}
 
private CourseUnitView loadCourseUnitView(long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response)
protected CourseUnitView loadCourseUnitView(long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response)
throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException
{
IServiceManager sm = ServiceManager.getInstance();
129,7 → 129,7
}
}
 
private CourseUnitView loadCourseUnitViewAndCourse(long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response)
protected CourseUnitView loadCourseUnitViewAndCourse(long id, boolean initTeachers, boolean initStudents, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response)
throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException
{
IServiceManager sm = ServiceManager.getInstance();
374,142 → 374,8
}
 
 
public ActionForward editProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
 
long id = cUF.getCourseUnitId();
 
 
CourseUnitView cV = loadCourseUnitViewAndCourse(id,true,false, mapping, request, response);
 
cUF.setCourseUnitView(cV);
request.setAttribute("CourseUnitView", cV);
CourseUnitProgramView cpv;
if(cV.getCourseUnit().getCourseUnitProgram() == null)
cpv = new CourseUnitProgramView(new CourseUnitProgramImpl());
else
cpv = new CourseUnitProgramView(cV.getCourseUnit().getCourseUnitProgram());
// request.setAttribute("CourseUnitProgramView", cpv);
 
if(cpv.getCourseUnitProgram().getCourseUnitProgramPart2() == null)
cpv.getCourseUnitProgram().setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());
 
cUF.setCourseUnitProgramView(cpv);
cUF.setCourseUnitView(cV);
return mapping.findForward("edit.program");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
public ActionForward saveProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
 
long id = cUF.getCourseUnitId();
CourseUnitProgramView cuV = cUF.getCourseUnitProgramView();
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{cuV, id};
sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitProgram", args);
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response);
cUF.setCourseUnitView(cV);
request.setAttribute("CourseUnitView", cV);
return mapping.findForward("load");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
public ActionForward cloneProgram(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
 
long id = cUF.getCourseUnitId();
long idFrom = cUF.getCloneFromUnitId();
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{idFrom, id};
CourseUnitProgram cP = (CourseUnitProgram) sm.execute(RequestUtils.getRequester(request, response), "CloneCourseUnitProgram", args);
 
CourseUnitView cV = loadCourseUnitViewAndCourse(id,true,false, mapping, request, response);
 
cUF.setCourseUnitView(cV);
request.setAttribute("CourseUnitView", cV);
CourseUnitProgramView cpv;
if(cV.getCourseUnit().getCourseUnitProgram() == null)
cpv = new CourseUnitProgramView(new CourseUnitProgramImpl());
else
cpv = new CourseUnitProgramView(cV.getCourseUnit().getCourseUnitProgram());
// request.setAttribute("CourseUnitProgramView", cpv);
 
if(cpv.getCourseUnitProgram().getCourseUnitProgramPart2() == null)
cpv.getCourseUnitProgram().setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());
 
 
cUF.setCourseUnitProgramView(cpv);
cUF.setCourseUnitView(cV);
return mapping.findForward("edit.program");
 
 
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
public ActionForward validateInvalidateAssignement(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
908,4 → 774,5
 
 
 
 
}
/impl/src/web/user/courseunits/courseunitProgram.jsp
5,6 → 5,7
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="com.sun.swing.internal.plaf.synth.resources.synth_sv" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="pt.estgp.estgweb.domain.Teacher" %>
<%@ 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" %>
34,6 → 35,13
(List<pt.estgp.estgweb.domain.views.CourseUnitView>)
sm.execute(RequestUtils.getRequester(request, response), "LoadUnitOtherYearsWithProgram", args, names);
request.setAttribute("OtherYearUnits", otherYearUnits);
 
 
names = new String[]{};
args = new Object[]{};
List<Teacher> teachers = (List<Teacher>)
sm.execute(RequestUtils.getRequester(request, response), "LoadTeachers", args, names);
request.setAttribute("teachers", teachers);
}catch(Exception e)
{
System.err.print(e.toString());
79,7 → 87,8
 
<html:form action="/courseUnitProgramController">
<input type="hidden" name="dispatch" value="saveProgram">
<html:hidden property="courseUnitId"/>
<html:hidden property="id"/>
<html:hidden property="courseUnitView.id"/>
 
 
<%
96,6 → 105,16
</select>
<input type="button" value="Clonar a partir deste programa" onclick="if(confirm('<bean:message key="courseunit.confirmaclonagem"/>')){set(form,'cloneProgram');form.submit()}"/>
</div>
 
 
 
 
 
 
 
 
 
 
<%
}
%>
124,7 → 143,85
if(editCoordinatorPart)
{
%>
 
<%// DADOS DE UNIDADE //%>
 
<tr>
<th>
<bean:message key="courseunit.responsable"/>
</th>
<td>
<html:select property="courseUnitView.responsableId">
<html:option value="0"></html:option>
<logic:iterate id="teacher" name="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<html:option value="${teacher.id}">${teacher.name} (${teacher.code})</html:option>
</logic:iterate>
</html:select>
</td>
</tr>
<baco:isAdmin>
<tr>
<th>
<bean:message key="courseunit.teachers"/>
</th>
<td>
<logic:lessEqual value="0" name="CourseUnitView" property="id">
<i><bean:message key="courseunit.to.add.teachers.save.first"/></i>
</logic:lessEqual>
 
 
<html:select property="teacherId">
<logic:present name="CourseUnitProgramForm" property="teachers">
<logic:iterate id="teacher" name="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<jomm:option itemName="teacher" itemProperty="id" comparableObjectName="CourseUnitProgramForm"
comparableObjectProperty="teacherId">
${teacher.name} (${teacher.code})
</jomm:option>
</logic:iterate>
<input type="button" value="<bean:message key="add"/>"
onclick="set(this.form,'addTeacher');this.form.submit();">
</logic:present>
</html:select>
<logic:greaterThan name="CourseUnitView" property="teachersSize" value="0">
<table class="dataTable removeButton">
<logic:iterate id="userView" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<th>
${userView.code}
</th>
<th>
${userView.name}
</th>
<td><input type="button" class="removeButton"
onclick="CourseUnitProgramForm.id.value='${userView.id}';set(this.form,'removeTeacher');this.form.submit();">
</td>
</tr>
</logic:iterate>
</table>
</logic:greaterThan>
</td>
</tr>
</baco:isAdmin>
<baco:isNotAdmin>
<logic:iterate id="prof" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<th>
<bean:message key="courseunit.teachers"/>
</th>
<td>
${prof.name} (${prof.code})
</td>
</tr>
</logic:iterate>
</baco:isNotAdmin>
<%//TODO adicionar workflow e inicializações para a função addTeacher%>
 
 
 
 
 
 
<tr>
<td align="right"><bean:message key="courseunit.program.objectivos"/></td>
<td width="80%"><html:textarea property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.objectivos" style="width:100%;height:200px" /></td>
</tr>
191,6 → 288,24
{
%>
<tr>
<th>
<bean:message key="courseunit.responsable"/>
</th>
<td>
${CourseUnitView.responsableTeacher.name} (${CourseUnitView.responsableTeacher.code})
</td>
</tr>
<logic:iterate id="prof" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<th>
<bean:message key="courseunit.teachers"/>
</th>
<td>
${prof.name} (${prof.code})
</td>
</tr>
</logic:iterate>
<tr>
<td align="right"><bean:message key="courseunit.program.objectivos"/></td>
<td width="80%"><html:textarea disabled="true" property="courseUnitProgramView.courseUnitProgram.courseUnitProgramPart2.objectivos" style="width:100%;height:200px" /></td>
</tr>
378,7 → 493,7
<%--DOCENTE--%>
 
</baco:canManage>
<tr><td colspan="2"><html:submit><bean:message key="confirm"/></html:submit></td></tr>
<tr><td colspan="2"><input type="button" value="<bean:message key="confirm"/>" onclick="set(form,'saveProgram');form.submit()"/></td></tr>
 
</table>