Beispiel #1
0
    def update(self, tfg_asig, validated_data):
        try:
            # comprobando alumno_1
            if 'alumno_1' in validated_data.keys():
                alumno_1 = utils.get_or_create_alumno(
                    validated_data.get('alumno_1'))
                tfg_asig.alumno_1 = alumno_1

            # comprobando alumno_2
            if 'alumno_2' in validated_data.keys():
                alumno_2 = utils.get_or_create_alumno(
                    validated_data.get('alumno_2'))
                tfg_asig.alumno_2 = alumno_2

            # comprobando alumno_3
            if 'alumno_3' in validated_data.keys():
                alumno_3 = utils.get_or_create_alumno(
                    validated_data.get('alumno_3'))
                tfg_asig.alumno_3 = alumno_3

            # comprobando convocatoria
            if 'convocatoria' in validated_data.keys():
                try:
                    res_subtipo = SubTipo_Evento.objects.get(codigo='SOL_EVAL')
                except:
                    raise NameError("El Tipo no existe")
                try:
                    res_tipo = Tipo_Evento.objects.get(
                        codigo=validated_data.get('convocatoria'))
                    res_convocatoria = Convocatoria.objects.get(
                        titulacion=tfg_asig.tfg.titulacion,
                        subtipo=res_subtipo,
                        tipo=res_tipo,
                        anio=validated_data.get('anio'))
                except:
                    raise NameError("La convocatoria no existe")

                if not utils.check_convocatoria(res_convocatoria, res_subtipo):
                    raise NameError("Fuera de plazo")
                else:
                    tfg_asig.convocatoria = res_convocatoria

            tfg_asig.save()

            return dict(status=True,
                        data=Tfg_Asig.objects.get(tfg=tfg_asig.tfg))
        except NameError as e:
            return dict(status=False, message=e.message)
    def update(self, tfg_asig, validated_data):
        try:
            # comprobando alumno_1
            if 'alumno_1' in validated_data.keys():
                alumno_1 = utils.get_or_create_alumno(validated_data.get('alumno_1'))
                tfg_asig.alumno_1 = alumno_1

            # comprobando alumno_2
            if 'alumno_2' in validated_data.keys():
                alumno_2 = utils.get_or_create_alumno(validated_data.get('alumno_2'))
                tfg_asig.alumno_2 = alumno_2

            # comprobando alumno_3
            if 'alumno_3' in validated_data.keys():
                alumno_3 = utils.get_or_create_alumno(validated_data.get('alumno_3'))
                tfg_asig.alumno_3 = alumno_3

            # comprobando convocatoria
            if 'convocatoria' in validated_data.keys():
                try:
                    res_subtipo = SubTipo_Evento.objects.get(codigo='SOL_EVAL')
                except:
                    raise NameError("El Tipo no existe")
                try:
                    res_tipo = Tipo_Evento.objects.get(codigo=validated_data.get('convocatoria'))
                    res_convocatoria = Convocatoria.objects.get(titulacion=tfg_asig.tfg.titulacion,
                                                                subtipo=res_subtipo, tipo=res_tipo,
                                                                anio=validated_data.get('anio'))
                except:
                    raise NameError("La convocatoria no existe")

                if not utils.check_convocatoria(res_convocatoria, res_subtipo):
                    raise NameError("Fuera de plazo")
                else:
                    tfg_asig.convocatoria = res_convocatoria

            tfg_asig.save()

            return dict(status=True, data=Tfg_Asig.objects.get(tfg=tfg_asig.tfg))
        except NameError as e:
            return dict(status=False, message=e.message)
    def update(self, user, comision, validated_data):
        try:
            # comprobando presidente
            if 'presidente' in validated_data.keys():
                try:
                    presidente = Profesor.objects.get(email=validated_data.get('presidente'))
                    posicion, id_comision = utils.check_miembro(comision, presidente)
                    comision_intercambiar = Comision_Evaluacion.objects.get(id=id_comision)
                    if not posicion:
                        comision.presidente = presidente
                    elif utils.check_miembro_repetido(comision_intercambiar,
                                                      comision.presidente.email) and utils.check_miembro_repetido(
                            comision, presidente):
                        utils.intercambiar_miembros(comision, comision_intercambiar, 'presidente', posicion)
                    comision_intercambiar.save()
                except Profesor.DoesNotExist:
                    raise NameError('El presidente no existe')

            # comprobando primer titular
            if 'titular_1' in validated_data.keys():
                try:
                    titular_1 = Profesor.objects.get(email=validated_data.get('titular_1'))
                    if not utils.check_miembro(comision, titular_1):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise NameError('El primer vocal no existe')
                if not isinstance(titular_1, Profesor) or titular_1.groups.filter(name='Profesores').exists():
                    raise NameError("Primer Titular incorrecto")
                else:
                    comision.titular_1 = titular_1

            # comprobando segundo titular
            if 'titular_2' in validated_data.keys():
                try:
                    titular_2 = Profesor.objects.get(email=validated_data.get('titular_2'))
                    if not utils.check_miembro(comision, titular_2):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise NameError('El segundo vocal')
                if not isinstance(titular_2, Profesor) or titular_2.groups.filter(name='Profesores').exists():
                    raise NameError("Segundo titular incorrecto")
                else:
                    comision.titular_2 = titular_2

            # comprobando primer suplente
            if 'suplente_1' in validated_data.keys():
                try:
                    suplente_1 = Profesor.objects.get(email=validated_data.get('sup_presidente'))
                    if not utils.check_miembro(comision, suplente_1):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise NameError('El suplente del presidente no existe')
                if not isinstance(suplente_1, Profesor) or suplente_1.groups.filter(name='Profesores').exists():
                    raise NameError("Suplente del presidente incorrecto")
                else:
                    comision.suplente_1 = suplente_1

            # comprobando suplente del primer titular
            if 'suplente_2' in validated_data.keys():
                try:
                    suplente_2 = Profesor.objects.get(email=validated_data.get('suplente_2'))
                    if not utils.check_miembro(comision, suplente_2):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise ('El suplente del primer vocal no existe')
                if not isinstance(suplente_2, Profesor) or suplente_2.groups.filter(name='Profesores').exists():
                    raise NameError("Suplente del primer titular incorrecto")
                else:
                    comision.suplente_2 = suplente_2

            # comprobando convocatoria
            if 'convocatoria' in validated_data.keys():
                try:
                    res_tipo = Tipo_Evento.objects.get(codigo=validated_data.get('convocatoria'))
                except:
                    raise NameError("La convocatoria no existe")
                try:
                    res_subtipo = SubTipo_Evento.objects.get(codigo=validated_data.get('tipo'))
                except:
                    raise NameError("El Tipo no existe")
                if not utils.check_convocatoria(res_tipo, res_subtipo):
                    raise NameError("Fuera de plazo")
                else:
                    comision.convocatoria = res_tipo

            comision.save()

            return dict(status=True, data=Comision_Evaluacion.objects.get(presidente=comision.presidente).to_dict(user))
        except NameError as e:
            return dict(status=False, message=e.message)
    def update(self, user, comision, validated_data):
        try:
            # comprobando presidente
            if 'presidente' in validated_data.keys():
                try:
                    presidente = Profesor.objects.get(
                        email=validated_data.get('presidente'))
                    posicion, id_comision = utils.check_miembro(
                        comision, presidente)
                    comision_intercambiar = Comision_Evaluacion.objects.get(
                        id=id_comision)
                    if not posicion:
                        comision.presidente = presidente
                    elif utils.check_miembro_repetido(
                            comision_intercambiar, comision.presidente.email
                    ) and utils.check_miembro_repetido(comision, presidente):
                        utils.intercambiar_miembros(comision,
                                                    comision_intercambiar,
                                                    'presidente', posicion)
                    comision_intercambiar.save()
                except Profesor.DoesNotExist:
                    raise NameError('El presidente no existe')

            # comprobando primer titular
            if 'titular_1' in validated_data.keys():
                try:
                    titular_1 = Profesor.objects.get(
                        email=validated_data.get('titular_1'))
                    if not utils.check_miembro(comision, titular_1):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise NameError('El primer vocal no existe')
                if not isinstance(titular_1,
                                  Profesor) or titular_1.groups.filter(
                                      name='Profesores').exists():
                    raise NameError("Primer Titular incorrecto")
                else:
                    comision.titular_1 = titular_1

            # comprobando segundo titular
            if 'titular_2' in validated_data.keys():
                try:
                    titular_2 = Profesor.objects.get(
                        email=validated_data.get('titular_2'))
                    if not utils.check_miembro(comision, titular_2):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise NameError('El segundo vocal')
                if not isinstance(titular_2,
                                  Profesor) or titular_2.groups.filter(
                                      name='Profesores').exists():
                    raise NameError("Segundo titular incorrecto")
                else:
                    comision.titular_2 = titular_2

            # comprobando primer suplente
            if 'suplente_1' in validated_data.keys():
                try:
                    suplente_1 = Profesor.objects.get(
                        email=validated_data.get('sup_presidente'))
                    if not utils.check_miembro(comision, suplente_1):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise NameError('El suplente del presidente no existe')
                if not isinstance(suplente_1,
                                  Profesor) or suplente_1.groups.filter(
                                      name='Profesores').exists():
                    raise NameError("Suplente del presidente incorrecto")
                else:
                    comision.suplente_1 = suplente_1

            # comprobando suplente del primer titular
            if 'suplente_2' in validated_data.keys():
                try:
                    suplente_2 = Profesor.objects.get(
                        email=validated_data.get('suplente_2'))
                    if not utils.check_miembro(comision, suplente_2):
                        raise NameError('El cambio no esta permitido')
                except:
                    raise ('El suplente del primer vocal no existe')
                if not isinstance(suplente_2,
                                  Profesor) or suplente_2.groups.filter(
                                      name='Profesores').exists():
                    raise NameError("Suplente del primer titular incorrecto")
                else:
                    comision.suplente_2 = suplente_2

            # comprobando convocatoria
            if 'convocatoria' in validated_data.keys():
                try:
                    res_tipo = Tipo_Evento.objects.get(
                        codigo=validated_data.get('convocatoria'))
                except:
                    raise NameError("La convocatoria no existe")
                try:
                    res_subtipo = SubTipo_Evento.objects.get(
                        codigo=validated_data.get('tipo'))
                except:
                    raise NameError("El Tipo no existe")
                if not utils.check_convocatoria(res_tipo, res_subtipo):
                    raise NameError("Fuera de plazo")
                else:
                    comision.convocatoria = res_tipo

            comision.save()

            return dict(status=True,
                        data=Comision_Evaluacion.objects.get(
                            presidente=comision.presidente).to_dict(user))
        except NameError as e:
            return dict(status=False, message=e.message)