Ejemplo n.º 1
0
def cambiaEstadoProyecto(proyecto, cambiaPendiente=False):
    if proyecto.estado == "L" or proyecto.estado == "C" or cambiaPendiente:
        status = QueryStatusProjectInCourse().getProjectByProject(proyecto)

        if (QueryStatusProjectInCourse().isCompleted(status)
                and status) or not status:

            nextItem = QueryItem().getNextItem(
                status.hito) if status else QueryItem().getFirstItemCourse(
                    proyecto.curso)

            textProjectIncomplete = camposPorRellenarProyecto(
                proyecto, nextItem)

            isProjectIncomplete = False if textProjectIncomplete == "" else True

            isTribunalIncomplete = tribunalPorRellenarProyecto(
                proyecto, nextItem)

            dateEstimateNextItem = QueryEstimateDate(
            ).getEstimateDateByProjectAndItem(proyecto,
                                              nextItem) if nextItem else True

            evaluationSystem = QueryEvaluationSystem(
            ).getEvaluationSystemByCourse(proyecto.curso)

            if not isProjectIncomplete and not isTribunalIncomplete and dateEstimateNextItem and evaluationSystem.estado == "A":
                revision = QueryProjectUnresolvedInCourse(
                ).getProjectUnresolvedByProject(proyecto)
                if revision: revision.delete()
                if status: status.delete()
                if nextItem:
                    status = EstadoProyectoEnCurso()
                    status.proyecto = proyecto
                    status.hito = nextItem
                    status.save()
                    activaFormulario(proyecto, nextItem)
                proyecto.estado = "C" if nextItem else "F"
                proyecto.save()
                eliminaProyectoPorRellenar(proyecto)
            else:
                revision = QueryProjectUnresolvedInCourse(
                ).getProjectUnresolvedByProject(proyecto)
                if revision: revision.delete()
                else:
                    emailAvisoProyectoEnRevision(proyecto, nextItem,
                                                 isTribunalIncomplete)

                textProjectIncomplete = buildErrors(textProjectIncomplete,
                                                    isTribunalIncomplete,
                                                    dateEstimateNextItem,
                                                    nextItem)

                pendentStatus = ProyectoParaRevisionEnCurso()
                pendentStatus.proyecto = proyecto
                pendentStatus.campos = textProjectIncomplete
                pendentStatus.save()
                proyecto.estado = "L"
                proyecto.save()
Ejemplo n.º 2
0
def cambiaEstadoProyecto(proyecto, cambiaPendiente=False):
    if proyecto.estado =="L" or proyecto.estado=="C" or cambiaPendiente:
        status = QueryStatusProjectInCourse().getProjectByProject(proyecto)
        
        if (QueryStatusProjectInCourse().isCompleted(status) and status) or not status :
        
            nextItem = QueryItem().getNextItem(status.hito) if status else QueryItem().getFirstItemCourse(proyecto.curso)
        
            textProjectIncomplete = camposPorRellenarProyecto(proyecto, nextItem)
            
            isProjectIncomplete = False if textProjectIncomplete == "" else True
            
            isTribunalIncomplete = tribunalPorRellenarProyecto(proyecto, nextItem)
            
            dateEstimateNextItem = QueryEstimateDate().getEstimateDateByProjectAndItem(proyecto, nextItem) if nextItem else True
            
            evaluationSystem = QueryEvaluationSystem().getEvaluationSystemByCourse(proyecto.curso)
            
            if not isProjectIncomplete and not isTribunalIncomplete and dateEstimateNextItem and evaluationSystem.estado=="A":
                revision = QueryProjectUnresolvedInCourse().getProjectUnresolvedByProject(proyecto)
                if revision : revision.delete()
                if status : status.delete()
                if nextItem:
                    status = EstadoProyectoEnCurso()
                    status.proyecto = proyecto
                    status.hito = nextItem
                    status.save()
                    activaFormulario(proyecto, nextItem)
                proyecto.estado="C" if nextItem else "F"
                proyecto.save()
                eliminaProyectoPorRellenar(proyecto)
            else:
                revision = QueryProjectUnresolvedInCourse().getProjectUnresolvedByProject(proyecto)
                if revision : revision.delete()
                else :
                    emailAvisoProyectoEnRevision(proyecto, nextItem, isTribunalIncomplete)
                
                textProjectIncomplete = buildErrors(textProjectIncomplete, isTribunalIncomplete, dateEstimateNextItem, nextItem)
                                
                pendentStatus = ProyectoParaRevisionEnCurso()
                pendentStatus.proyecto = proyecto
                pendentStatus.campos = textProjectIncomplete
                pendentStatus.save()
                proyecto.estado = "L"
                proyecto.save()
Ejemplo n.º 3
0
def eliminaProyectoPorRellenar(proyecto):
    proyectoPendiente = QueryProjectUnresolvedInCourse().getProjectUnresolvedByProject(proyecto)
    if proyectoPendiente : proyectoPendiente.delete()
Ejemplo n.º 4
0
def eliminaProyectoPorRellenar(proyecto):
    proyectoPendiente = QueryProjectUnresolvedInCourse(
    ).getProjectUnresolvedByProject(proyecto)
    if proyectoPendiente: proyectoPendiente.delete()
Ejemplo n.º 5
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())