Пример #1
0
    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)
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
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()
Пример #5
0
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())
Пример #6
0
    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
Пример #7
0
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())
Пример #8
0
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())
Пример #9
0
    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
Пример #10
0
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())