Esempio n. 1
0
def updateNotaMateria(request,alumnoid,notamateriaid): 
    try:
        nombremateria=request.json['nombremateria'],
        notafinal=request.json['notafinal']
    except Exception as identifier:
        raise BadResquest('Estructa de Json incorrecta',CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED) 
    #se valida el nro de la nota
    if (not(isNumber(alumnoid))):
        raise BadResquest('AlumnoID es un dato valido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    elif (not(isNumber(notamateriaid))):
        raise BadResquest('NotamateriaID es un tipo invalido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not(isNumber(notafinal))):
        raise BadResquest('Nota materia no es un dato valido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    isValidNotaFinal(notafinal)
    if (NotaMateria.existsMateriaIDToAlumnoID(alumnoid,notamateriaid)):
        try:
            notamateria=NotaMateria.getNotaMateriaByNotamateriaID(notamateriaid)
            notamateria.nombremateria=nombremateria
            notamateria.notafinal=notafinal
            notamateria.save()
            notamateria_updated=NotaMateria.getNotaMateriaByNotamateriaID(notamateriaid)
            return jsonify(alumnoid=notamateria_updated.alumno_fk,
                           notamateriaid=notamateria_updated.notamateria_id,
                           nombremateria=notamateria_updated.nombremateria,
                           notafinal=notamateria_updated.notafinal,
                            )
        except Exception as identifier:
            raise InternalServerError('Error relacionado con base de datos.', CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)       
    else:
        raise BadResquest('Los datos recibidos no coinciden.',CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED) 
Esempio n. 2
0
def deleteNotaMateria(alumnoid,notamateriaid):    
    if (not(isNumber(notamateriaid))):
        BadResquest('NotamateriaID es un dato invalido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not(isNumber(alumnoid))):
        BadResquest('AlumnoID es un dato invalido', CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not(NotaMateria.existsMateriaIDToAlumnoID(alumnoid,notamateriaid))):
        raise NotFound('No existe la materia para el alumno asociado.', CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)   
    try:
        notamateria_delete=NotaMateria.getNotaMateriaByNotamateriaID(notamateriaid)
        notamateria_delete.delete()
        return ('',status.HTTP_204_NO_CONTENT)
    except Exception as identifier:
        raise InternalServerError('Error relacionado con base de datos.', CodeInternalError.ERROR_INTERNAL_11_CONEXION_BD)   
Esempio n. 3
0
def updateNotaMateria(request, alumnoid, notamateriaid):
    try:
        json_recibido = request.json
        nombremateria = json_recibido['nombremateria']
        notafinal = request.json['notafinal']
    except Exception as identifier:
        raise BadResquest('Estructa de Json incorrecta.',
                          CodeInternalError.ERROR_INTERNAL_10_JSON_BAD_FORMED)
    #se valida el nro de la nota
    if (not (isNumber(alumnoid))):
        raise BadResquest(
            'AlumnoID no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    elif (not (isNumber(notamateriaid))):
        raise BadResquest(
            'NotamateriaID no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    if (not (isNumber(notafinal))):
        raise BadResquest(
            'Nota final no es un tipo de dato valido.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    isValidNotaFinal(notafinal)
    existe = nombremateria in Listamaterias
    if (not (existe)):
        raise BadResquest(
            'No existe el nombre de la materia.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)
    #Si el objeto recibido es igual que en la base devuelve el mismo. Si no lo es, se valida que no este actualizando
    #la materia_id con un nombre de materia ya existente.
    if (NotaMateria.existsMateriaIDToAlumnoID(alumnoid, notamateriaid)):
        notaMateria_base = NotaMateria.getNotaMateriaNotamateriaIDToAlumnoID(
            notamateriaid, alumnoid)
        if (notaMateria_base.nombremateria == nombremateria
                and notaMateria_base.notafinal == notafinal):
            return jsonify(
                alumnoid=alumnoid,
                notamateriaid=notamateriaid,
                nombremateria=nombremateria,
                notafinal=notafinal,
            )
        else:
            if (NotaMateria.existsNombreMateriaToAlumnoID(
                    alumnoid, nombremateria)):
                notamateria_existente = NotaMateria.getNotaMateriaByNombreMateria(
                    alumnoid, nombremateria)
                if (notamateria_existente.notamateria_id !=
                        notaMateria_base.notamateria_id):
                    raise Conflict(
                        'Existe otra materia con el mismo nombre.',
                        CodeInternalError.
                        ERROR_INTERNAL_14_REQUEST_DATA_DUPLICATED)
                else:
                    notamateria = NotaMateria.getNotaMateriaByNotamateriaID(
                        notamateriaid)
                    notamateria.nombremateria = nombremateria
                    notamateria.notafinal = notafinal
                    notamateria.save()
                    notamateria_updated = NotaMateria.getNotaMateriaByNotamateriaID(
                        notamateriaid)
                    return jsonify(
                        alumnoid=notamateria_updated.alumno_fk,
                        notamateriaid=notamateria_updated.notamateria_id,
                        nombremateria=notamateria_updated.nombremateria,
                        notafinal=notamateria_updated.notafinal,
                    )
            else:
                notamateria = NotaMateria.getNotaMateriaByNotamateriaID(
                    notamateriaid)
                notamateria.nombremateria = nombremateria
                notamateria.notafinal = notafinal
                notamateria.save()
                notamateria_updated = NotaMateria.getNotaMateriaByNotamateriaID(
                    notamateriaid)
                return jsonify(
                    alumnoid=notamateria_updated.alumno_fk,
                    notamateriaid=notamateria_updated.notamateria_id,
                    nombremateria=notamateria_updated.nombremateria,
                    notafinal=notamateria_updated.notafinal,
                )
    else:
        raise BadResquest(
            'Los datos recibidos no coinciden.',
            CodeInternalError.ERROR_INTERNAL_13_REQUEST_DATA_NOT_MATCHED)