def __init__(self, request, studentUserUJI): self.numberOfJudgeMembers = NUMBER_OF_JUDGE_MEMBERS self.request = request self.project, self.judgeMembers = None, None if studentUserUJI: self.project = QueryProject().getProjectByCourseAndStudent( QueryCourse().getCourseSelected(self.request), QueryStudent().getStudentByUserUJI(studentUserUJI)) self.judgeMembers = QueryJudgeMembers().getListMembersByProject( self.project) self.forms = [] self.id_members = [] for i in xrange(self.numberOfJudgeMembers): if request.method == 'POST': id_member = request.POST.get("miembro" + str(i) + "-miembro", '') form = MemberJudgeForm(request.POST, prefix="miembro" + str(i)) if id_member: self.id_members.append({ 'id': i + 1, 'id_member': id_member }) else: form = MemberJudgeForm(prefix="miembro" + str(i)) form.fields["miembro"].queryset = QueryUser().getListOfUser() if self.judgeMembers: form.initial["miembro"] = self.judgeMembers[i].miembro self.forms.append(form)
def activarValoracion(request, user, course, alumnoid): student = QueryStudent().getStudentByUserUJI(alumnoid) if not student : return HttpResponseNotFound() project = QueryProject().getProjectByCourseAndStudent(course, student) if not project : return HttpResponseNotFound() if not project.isUnresolved(): return HttpResponseForbidden() if (request.method == "POST"): activaValoracion(project) return HttpResponseRedirect('/coordinacio/projectes/') title = "Activar valoració" mensaje = u"Clica per a posar en curs l'evaluació de l'alumne " + student.nombreCompleto() + "." return render_to_response('mensajeValoracion.html', locals())
def __init__(self, request, studentUserUJI): self.request = request course = QueryCourse().getCourseSelected(self.request) items = QueryItem().getListItemsByEvaluationSystem( QueryEvaluationSystem().getEvaluationSystemByCourse(course)) self.project = None if studentUserUJI: self.project = QueryProject().getProjectByCourseAndStudent( QueryCourse().getCourseSelected(request), QueryStudent().getStudentByUserUJI(studentUserUJI)) projectStatus = QueryStatusProjectInCourse().getProjectByProject( self.project) if projectStatus: nextItem = QueryItem().getNextItem(projectStatus.hito) else: nextItem = QueryItem().getFirstItemCourse(course) self.forms = [] self.fechas = [] inputDate = False duration = 0 for item in items: if self.project: if self.project.estado == "C": if item == projectStatus.hito: inputDate = True elif self.project.estado == "L": if item == nextItem: inputDate = True else: inputDate = True if inputDate: if request.method == "POST": fecha = request.POST.get(str(item.id) + "-fecha", '') form = { "id": str(item.id) + "-fecha", "label": item.nombre, "plazo": duration + item.plazo, "form": EstimateDateForm(request.POST, prefix=str(item.id)) } if fecha: self.fechas.append({"item": item, "fecha": fecha}) else: form = { "id": str(item.id) + "-fecha", "label": item.nombre, "plazo": duration + item.plazo, "form": EstimateDateForm(prefix=str(item.id)) } estimateDate = QueryEstimateDate( ).getEstimateDateByProjectAndItem(self.project, item) if estimateDate: form["form"].initial["fecha"] = estimateDate.fecha self.forms.append(form) else: duration += item.plazo
def editStudent(self): alumnoDB = QueryStudent().getStudentByUserUJI(self.alumnoid) alumnoDB.nombre = self.alumno.nombre alumnoDB.apellidos = self.alumno.apellidos alumnoDB.usuarioUJI = self.alumno.usuarioUJI alumnoDB.save() self.alumno = alumnoDB
def activarValoracion(request, user, course, alumnoid): student = QueryStudent().getStudentByUserUJI(alumnoid) if not student: return HttpResponseNotFound() project = QueryProject().getProjectByCourseAndStudent(course, student) if not project: return HttpResponseNotFound() if not project.isUnresolved(): return HttpResponseForbidden() if (request.method == "POST"): activaValoracion(project) return HttpResponseRedirect('/coordinacio/projectes/') title = "Activar valoració" mensaje = u"Clica per a posar en curs l'evaluació de l'alumne " + student.nombreCompleto( ) + "." return render_to_response('mensajeValoracion.html', locals())
def index(request, login): teacher = QueryUser().getUserByUserUJI(login) if teacher: if teacher.isCoordinator(): return HttpResponseRedirect('/coordinacio/projectes/') else: return HttpResponseRedirect('/professorat/projectes/') student = QueryStudent().getStudentByUserUJI(login) if student: return HttpResponseRedirect('/valoracio/' + login + '/') else: return HttpResponseNotFound()
def reActivarValoracion(request, user, alumnoid, course, evaluacionid): student = QueryStudent().getStudentByUserUJI(alumnoid) if not student: return HttpResponseNotFound() project = QueryProject().getProjectByCourseAndStudent(course, student) if not project: return HttpResponseNotFound() evaluation = QueryEvaluation().getEvaluationByEvaluation(evaluacionid) if not evaluation: return HttpResponseNotFound() if not QueryForm().isFormCompletedOfProjectItemEvaluator( project, evaluation.getItem(), evaluation.getEvaluator()): return HttpResponseForbidden() if (request.method == 'POST'): reActivaFormulario(project, evaluation) return HttpResponseRedirect( request.path.split('formulari/evaluacio/')[0]) title = "Reactivar formulari" mensaje = u"Reactivar el formulari de l'evaluació " + unicode( evaluation) + " de " + unicode(evaluation.getItem( )) + " de l'alumne " + student.nombreCompleto() + "." return render_to_response('mensajeValoracion.html', locals())
def reActivarValoracion(request, user, alumnoid, course, evaluacionid): student = QueryStudent().getStudentByUserUJI(alumnoid) if not student : return HttpResponseNotFound() project = QueryProject().getProjectByCourseAndStudent(course, student) if not project : return HttpResponseNotFound() evaluation = QueryEvaluation().getEvaluationByEvaluation(evaluacionid) if not evaluation : return HttpResponseNotFound() if not QueryForm().isFormCompletedOfProjectItemEvaluator(project, evaluation.getItem(), evaluation.getEvaluator()): return HttpResponseForbidden() if ( request.method == 'POST' ): reActivaFormulario(project, evaluation) return HttpResponseRedirect(request.path.split('formulari/evaluacio/')[0]) title = "Reactivar formulari" mensaje = u"Reactivar el formulari de l'evaluació " + unicode(evaluation) + " de " + unicode(evaluation.getItem()) + " de l'alumne " + student.nombreCompleto() + "." return render_to_response('mensajeValoracion.html', locals())
def editProject(self): curso = self.course alumno = QueryStudent().getStudentByUserUJI(self.alumnoid) proyectoDB = QueryProject().getProjectByCourseAndStudent(curso, alumno) proyectoDB.tutor = self.tutor proyectoDB.supervisor = self.proyecto.supervisor proyectoDB.email = self.proyecto.email proyectoDB.empresa = self.proyecto.empresa proyectoDB.telefono = self.proyecto.telefono proyectoDB.titulo = self.proyecto.titulo proyectoDB.inicio = self.proyecto.inicio proyectoDB.dedicacionSemanal = self.proyecto.dedicacionSemanal proyectoDB.otrosDatos = self.proyecto.otrosDatos proyectoDB.estado = self.estado proyectoDB.save() self.proyecto = proyectoDB
def estadoValoracion(request, login, course, alumnoid): evaluationSystem = QueryEvaluationSystem().getEvaluationSystemByCourse( course) if not evaluationSystem: return HttpResponseNotFound() if not evaluationSystem.isActive(): return HttpResponseNotFound() student = QueryStudent().getStudentByUserUJI(alumnoid) if not student: return HttpResponseNotFound() project = QueryProject().getProjectByCourseAndStudent(course, student) if not (project): return HttpResponseNotFound() coordinator = False if login == alumnoid: rol = "A" else: if login in QueryProject().getloginByRol( project, "TU") and "professorat" in request.path: rol = "TU" user = QueryUser().getUserByUserUJI(login) if not user: return HttpResponseForbidden() else: coordinator = QueryUser().getUserCoordinatorByUserUJI(login) if not coordinator: return HttpResponseForbidden() user = coordinator rol = "C" hitos = QueryEvaluationSystemTreeCompleteOfProject(project, True, rol).getList() grupos = True activar = project.isUnresolved() cursoActual = QueryCourse().getLastCourse() == course return render_to_response("sistemaEvaluacionValoradoListado.html", locals())
def __init__(self, request, action="nuevo", alumnoUserUJI="", tutor=None): self.alumno = Alumno() self.proyecto = Proyecto() self.tutor = None self.action = action self.request = request self.alumnoid = alumnoUserUJI self.estado = None self.course = QueryCourse().getCourseSelected(self.request) self.tutorForm = None self.tribunalForm = None self.dateForm = None coordinator = tutor == None if action != "nuevo": self.alumno = QueryStudent().getStudentByUserUJI(alumnoUserUJI) self.proyecto = QueryProject().getProjectByCourseAndStudent( QueryCourse().getCourseSelected(self.request), self.alumno) self.estado = self.proyecto.estado if coordinator: statusProject = QueryStatusProjectInCourse( ).getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.proyecto.estado == "L": nextItem = QueryItem().getNextItem( item) if item else QueryItem().getFirstItemCourse( self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm(request, alumnoUserUJI) self.alumnoForm = AlumnoForm(prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm( request, alumnoUserUJI) if self.estado != "P" else None if coordinator: if action != "nuevo": self.tutor = self.proyecto.tutor self.tutorForm = TutorForm(prefix='tutor') self.tutorForm.fields["tutor"].queryset = QueryUser( ).getListOfTutorCoordinator() self.tutorForm.initial["tutor"] = self.tutor else: self.tutor = tutor if request.method == 'POST': # Leer los datos if action != "nuevo": if coordinator: statusProject = QueryStatusProjectInCourse( ).getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.estado == "L": nextItem = QueryItem().getNextItem( item) if item else QueryItem().getFirstItemCourse( self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm( request, alumnoUserUJI) self.alumnoForm = AlumnoForm(request.POST, prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(request.POST, prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm( request, alumnoUserUJI) if self.estado != "P" else None if coordinator: self.tutorId = self.proyectoForm.data["tutor-tutor"] else: self.tutorId = self.tutor.id
class ProyectoAlumnoForm(): def __init__(self, request, action="nuevo", alumnoUserUJI="", tutor=None): self.alumno = Alumno() self.proyecto = Proyecto() self.tutor = None self.action = action self.request = request self.alumnoid = alumnoUserUJI self.estado = None self.course = QueryCourse().getCourseSelected(self.request) self.tutorForm = None self.tribunalForm = None self.dateForm = None coordinator = tutor == None if action != "nuevo": self.alumno = QueryStudent().getStudentByUserUJI(alumnoUserUJI) self.proyecto = QueryProject().getProjectByCourseAndStudent( QueryCourse().getCourseSelected(self.request), self.alumno) self.estado = self.proyecto.estado if coordinator: statusProject = QueryStatusProjectInCourse( ).getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.proyecto.estado == "L": nextItem = QueryItem().getNextItem( item) if item else QueryItem().getFirstItemCourse( self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm(request, alumnoUserUJI) self.alumnoForm = AlumnoForm(prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm( request, alumnoUserUJI) if self.estado != "P" else None if coordinator: if action != "nuevo": self.tutor = self.proyecto.tutor self.tutorForm = TutorForm(prefix='tutor') self.tutorForm.fields["tutor"].queryset = QueryUser( ).getListOfTutorCoordinator() self.tutorForm.initial["tutor"] = self.tutor else: self.tutor = tutor if request.method == 'POST': # Leer los datos if action != "nuevo": if coordinator: statusProject = QueryStatusProjectInCourse( ).getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.estado == "L": nextItem = QueryItem().getNextItem( item) if item else QueryItem().getFirstItemCourse( self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm( request, alumnoUserUJI) self.alumnoForm = AlumnoForm(request.POST, prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(request.POST, prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm( request, alumnoUserUJI) if self.estado != "P" else None if coordinator: self.tutorId = self.proyectoForm.data["tutor-tutor"] else: self.tutorId = self.tutor.id def is_valid(self): self.alumnoEsValido = self.alumnoForm.is_valid() if (not self.alumnoEsValido and self.isEditing()): if (self.alumnoForm.data["alumno-usuarioUJI"] == self.alumnoid): self.alumnoEsValido = True if self.tutorForm: tutor = self.Tutor(self.tutorId) tutorIsValid = tutor.is_valid() self.tutor = tutor.user else: tutorIsValid = True if self.tribunalForm: tribunalIsValid = self.tribunalForm.is_valid() else: tribunalIsValid = True if self.dateForm: dateIsValid = self.dateForm.is_valid() else: dateIsValid = True return (self.alumnoEsValido and self.proyectoForm.is_valid() and tutorIsValid and tribunalIsValid and dateIsValid) def isEditing(self): return self.action == "edita" def isTutorValid(self, tutorId): tutor = self.Tutor(tutorId) valid = tutor.is_valid() if not valid: valid = tutor.is_empty() and self.isEditing() return valid def getAlumnoProyecto(self): return self.alumno, self.proyecto def getAlumnoId(self): return self.alumnoid def getAccion(self): return self.accion def save(self): if (self.action == "nuevo"): self.createProjectStudent() else: # edicion self.editProjectStudent() if self.tribunalForm: self.tribunalForm.save(self.proyecto) if self.dateForm: self.dateForm.save(self.proyecto) cambiaEstadoProyecto(self.proyecto) def createProjectStudent(self): self.createStudent() self.createProject() def createStudent(self): self.alumno.save() def createProject(self): self.proyecto.alumno = self.alumno self.proyecto.curso = self.course self.proyecto.tutor = self.tutor self.proyecto.estado = "L" self.proyecto.save() def editProjectStudent(self): self.editStudent() self.editProject() def editStudent(self): alumnoDB = QueryStudent().getStudentByUserUJI(self.alumnoid) alumnoDB.nombre = self.alumno.nombre alumnoDB.apellidos = self.alumno.apellidos alumnoDB.usuarioUJI = self.alumno.usuarioUJI alumnoDB.save() self.alumno = alumnoDB def editProject(self): curso = self.course alumno = QueryStudent().getStudentByUserUJI(self.alumnoid) proyectoDB = QueryProject().getProjectByCourseAndStudent(curso, alumno) proyectoDB.tutor = self.tutor proyectoDB.supervisor = self.proyecto.supervisor proyectoDB.email = self.proyecto.email proyectoDB.empresa = self.proyecto.empresa proyectoDB.telefono = self.proyecto.telefono proyectoDB.titulo = self.proyecto.titulo proyectoDB.inicio = self.proyecto.inicio proyectoDB.dedicacionSemanal = self.proyecto.dedicacionSemanal proyectoDB.otrosDatos = self.proyecto.otrosDatos proyectoDB.estado = self.estado proyectoDB.save() self.proyecto = proyectoDB class Tutor(): def __init__(self, tutorId): self.tutorId = tutorId self.user = None def is_valid(self): if (not self.is_empty()): self.user = QueryUser().getUserById(self.tutorId) if self.user.isTutor(): return True else: return False else: return False def is_empty(self): return self.tutorId == ''
def __init__(self, request, action="nuevo", alumnoUserUJI="", tutor=None): self.alumno = Alumno() self.proyecto = Proyecto() self.tutor = None self.action = action self.request = request self.alumnoid = alumnoUserUJI self.estado = None self.course = QueryCourse().getCourseSelected(self.request) self.tutorForm = None self.tribunalForm = None self.dateForm = None coordinator = tutor == None if action != "nuevo" : self.alumno = QueryStudent().getStudentByUserUJI(alumnoUserUJI) self.proyecto = QueryProject().getProjectByCourseAndStudent(QueryCourse().getCourseSelected(self.request), self.alumno) self.estado = self.proyecto.estado if coordinator: statusProject = QueryStatusProjectInCourse().getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.proyecto.estado == "L": nextItem = QueryItem().getNextItem(item) if item else QueryItem().getFirstItemCourse(self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm(request, alumnoUserUJI) self.alumnoForm = AlumnoForm(prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm(request, alumnoUserUJI) if self.estado != "P" else None if coordinator : if action != "nuevo" : self.tutor = self.proyecto.tutor self.tutorForm = TutorForm(prefix='tutor') self.tutorForm.fields["tutor"].queryset = QueryUser().getListOfTutorCoordinator() self.tutorForm.initial["tutor"] = self.tutor else: self.tutor = tutor if request.method == 'POST': # Leer los datos if action != "nuevo": if coordinator: statusProject = QueryStatusProjectInCourse().getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.estado == "L": nextItem = QueryItem().getNextItem(item) if item else QueryItem().getFirstItemCourse(self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm(request, alumnoUserUJI) self.alumnoForm = AlumnoForm(request.POST, prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(request.POST, prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm(request, alumnoUserUJI) if self.estado != "P" else None if coordinator : self.tutorId = self.proyectoForm.data["tutor-tutor"] else: self.tutorId = self.tutor.id
class ProyectoAlumnoForm(): def __init__(self, request, action="nuevo", alumnoUserUJI="", tutor=None): self.alumno = Alumno() self.proyecto = Proyecto() self.tutor = None self.action = action self.request = request self.alumnoid = alumnoUserUJI self.estado = None self.course = QueryCourse().getCourseSelected(self.request) self.tutorForm = None self.tribunalForm = None self.dateForm = None coordinator = tutor == None if action != "nuevo" : self.alumno = QueryStudent().getStudentByUserUJI(alumnoUserUJI) self.proyecto = QueryProject().getProjectByCourseAndStudent(QueryCourse().getCourseSelected(self.request), self.alumno) self.estado = self.proyecto.estado if coordinator: statusProject = QueryStatusProjectInCourse().getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.proyecto.estado == "L": nextItem = QueryItem().getNextItem(item) if item else QueryItem().getFirstItemCourse(self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm(request, alumnoUserUJI) self.alumnoForm = AlumnoForm(prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm(request, alumnoUserUJI) if self.estado != "P" else None if coordinator : if action != "nuevo" : self.tutor = self.proyecto.tutor self.tutorForm = TutorForm(prefix='tutor') self.tutorForm.fields["tutor"].queryset = QueryUser().getListOfTutorCoordinator() self.tutorForm.initial["tutor"] = self.tutor else: self.tutor = tutor if request.method == 'POST': # Leer los datos if action != "nuevo": if coordinator: statusProject = QueryStatusProjectInCourse().getProjectByProject(self.proyecto) item = statusProject.hito if statusProject else None if self.estado == "L": nextItem = QueryItem().getNextItem(item) if item else QueryItem().getFirstItemCourse(self.proyecto.curso) else: nextItem = item if QueryItem().hasTribunalEvaluationThisItem(nextItem): self.tribunalForm = TribunalForm(request, alumnoUserUJI) self.alumnoForm = AlumnoForm(request.POST, prefix='alumno', instance=self.alumno) self.proyectoForm = ProyectoForm(request.POST, prefix='proyecto', instance=self.proyecto) self.dateForm = EstimateDateItemForm(request, alumnoUserUJI) if self.estado != "P" else None if coordinator : self.tutorId = self.proyectoForm.data["tutor-tutor"] else: self.tutorId = self.tutor.id def is_valid(self): self.alumnoEsValido = self.alumnoForm.is_valid() if ( not self.alumnoEsValido and self.isEditing()): if ( self.alumnoForm.data["alumno-usuarioUJI"] == self.alumnoid ): self.alumnoEsValido = True if self.tutorForm : tutor = self.Tutor(self.tutorId) tutorIsValid = tutor.is_valid() self.tutor = tutor.user else: tutorIsValid = True if self.tribunalForm : tribunalIsValid = self.tribunalForm.is_valid() else: tribunalIsValid = True if self.dateForm : dateIsValid = self.dateForm.is_valid() else: dateIsValid = True return (self.alumnoEsValido and self.proyectoForm.is_valid() and tutorIsValid and tribunalIsValid and dateIsValid ) def isEditing(self): return self.action == "edita" def isTutorValid(self, tutorId): tutor = self.Tutor(tutorId) valid = tutor.is_valid() if not valid : valid = tutor.is_empty() and self.isEditing() return valid def getAlumnoProyecto(self): return self.alumno, self.proyecto def getAlumnoId(self): return self.alumnoid def getAccion(self): return self.accion def save(self): if (self.action == "nuevo"): self.createProjectStudent() else : # edicion self.editProjectStudent() if self.tribunalForm : self.tribunalForm.save(self.proyecto) if self.dateForm : self.dateForm.save(self.proyecto) cambiaEstadoProyecto(self.proyecto) def createProjectStudent(self): self.createStudent() self.createProject() def createStudent(self): self.alumno.save() def createProject(self): self.proyecto.alumno = self.alumno self.proyecto.curso = self.course self.proyecto.tutor = self.tutor self.proyecto.estado = "L" self.proyecto.save() def editProjectStudent(self): self.editStudent() self.editProject() def editStudent(self): alumnoDB = QueryStudent().getStudentByUserUJI(self.alumnoid) alumnoDB.nombre = self.alumno.nombre alumnoDB.apellidos = self.alumno.apellidos alumnoDB.usuarioUJI = self.alumno.usuarioUJI alumnoDB.save() self.alumno = alumnoDB def editProject(self): curso = self.course alumno = QueryStudent().getStudentByUserUJI(self.alumnoid) proyectoDB = QueryProject().getProjectByCourseAndStudent(curso, alumno) proyectoDB.tutor = self.tutor proyectoDB.supervisor = self.proyecto.supervisor proyectoDB.email = self.proyecto.email proyectoDB.empresa = self.proyecto.empresa proyectoDB.telefono = self.proyecto.telefono proyectoDB.titulo = self.proyecto.titulo proyectoDB.inicio = self.proyecto.inicio proyectoDB.dedicacionSemanal = self.proyecto.dedicacionSemanal proyectoDB.otrosDatos = self.proyecto.otrosDatos proyectoDB.estado = self.estado proyectoDB.save() self.proyecto = proyectoDB class Tutor(): def __init__(self, tutorId): self.tutorId = tutorId self.user = None def is_valid(self): if (not self.is_empty()) : self.user = QueryUser().getUserById(self.tutorId) if self.user.isTutor() : return True else: return False else: return False def is_empty(self): return self.tutorId == ''
def gestionProyectos(request, user, course, accion="nuevo", alumnoid="", profesorid=""): project = None errors = None camposErrores = None tutor = None if not isEditable(course): return HttpResponseForbidden() profesor = QueryUser().getUserByUserUJI(profesorid) if profesorid else None if profesorid and not profesor: return HttpResponseNotFound() coordinator = False if alumnoid: student = QueryStudent().getStudentByUserUJI(alumnoid) if student: project = QueryProject().getProjectByCourseAndStudent( course, student) revision = QueryProjectUnresolvedInCourse( ).getProjectUnresolvedByProject(project) if revision: errors = mensajeError(revision) camposErrores = revision.campos.split(",") if user == project.tutor: tutor = user if "professorat" in request.path else None else: if profesor: if profesor != project.tutor: return HttpResponseNotFound() if not user.isCoordinator(): return HttpResponseNotFound() else: if accion != "nuevo": return HttpResponseNotFound() else: tutor = user if "professorat" in request.path else None if (request.method == "POST"): form = ProyectoAlumnoForm(request, accion, alumnoid, tutor) if (form.is_valid()): form.save() if tutor: ruta = '/professorat/projectes/' else: if profesorid: ruta = '/coordinacio/projectes/' + profesorid + '/' else: ruta = '/coordinacio/projectes/' return HttpResponseRedirect(ruta) else: form = ProyectoAlumnoForm(request, accion, alumnoid, tutor) ocultaCurso = True return render_to_response('proyectoGestion.html', locals())