Esempio n. 1
0
    def simular_create_tfg_asig(self,
                                tfg,
                                alumno_1,
                                alumno_2=None,
                                alumno_3=None):
        alumno2_ok = False
        alumno3_ok = False
        try:
            # Compruebo lo minimo para asignar el tfg
            if not isinstance(tfg, Tfg):
                raise NameError("Error en los parametros de entrada")

            if not utils.is_email_alumno(alumno_1) and not utils.is_dni(
                    alumno_1):
                raise NameError("Error en el primer alumno")

            if alumno_2 and not utils.is_email_alumno(
                    alumno_2) and not utils.is_dni(alumno_2):
                raise NameError("Error en el segundo alumno")

            if alumno_3 and not utils.is_email_alumno(
                    alumno_3) and not utils.is_dni(alumno_3):
                raise NameError("Error en el tercer alumno")

            if utils.existe_tfg_asig(alumno_1):
                raise NameError("el alumno %s ya tiene un tfg asignado" %
                                alumno_1)
            # Compruebo que no este ya asignado
            try:
                Tfg_Asig.objects.get(tfg=tfg)
                raise NameError("Tfg ya asignado")
            except Tfg_Asig.DoesNotExist:
                if not utils.existe_tfg_asig(alumno_2):
                    alumno2_ok = True
                if not utils.existe_tfg_asig(alumno_3):
                    alumno3_ok = True

                # Si tiene 2 alumnos
                if alumno_2 and not alumno_3:
                    if not alumno2_ok:
                        raise NameError("Error en el segundo alumno")
                    else:
                        self.model(tfg=tfg,
                                   alumno_1=alumno_1,
                                   alumno_2=alumno_2)
                # Si tiene 3 alumnos
                elif alumno_2 and alumno_3:
                    if not alumno2_ok or not alumno3_ok:
                        raise NameError("Error en el tercer alumno")
                    else:
                        self.model(tfg=tfg,
                                   alumno_1=alumno_1,
                                   alumno_2=alumno_2,
                                   alumno_3=alumno_3)
                # Si tiene 1 alumno
                else:
                    self.model(tfg=tfg, alumno_1=alumno_1)
                return True
        except NameError as e:
            return e.message
Esempio n. 2
0
    def create(self, tfg, alumno_1, alumno_2=None, alumno_3=None):
        alumno2_ok = False
        alumno3_ok = False
        try:
            # Compruebo lo minimo para asignar el tfg
            if not isinstance(tfg, Tfg) or not isinstance(
                    alumno_1, Alumno) or not alumno_1.groups.filter(
                        name='Alumnos').exists():
                raise NameError("Error en los parametros de entrada")

            if utils.existe_tfg_asig(alumno_1):
                raise NameError("El alumno ya tiene un Tfg asignado")
            # Compruebo que no este ya asignado
            try:
                Tfg_Asig.objects.get(tfg=tfg)
                raise NameError("Tfg ya asignado")
            except Tfg_Asig.DoesNotExist:
                if not utils.comprueba_alumno(
                        alumno_1) or utils.existe_tfg_asig(alumno_1):
                    raise NameError("Error en el primer alumno")

                if utils.comprueba_alumno(
                        alumno_2) and not utils.existe_tfg_asig(alumno_2):
                    alumno2_ok = True
                if utils.comprueba_alumno(
                        alumno_3) and not utils.existe_tfg_asig(alumno_3):
                    alumno3_ok = True

                # Si tiene 2 alumnos
                if alumno_2 and not alumno_3:
                    if not alumno2_ok:
                        raise NameError("Error en el segundo alumno")
                    else:
                        tfg_asig = self.model(tfg=tfg,
                                              alumno_1=alumno_1,
                                              alumno_2=alumno_2)
                # Si tiene 3 alumnos
                elif alumno_2 and alumno_3:
                    if not alumno2_ok or not alumno3_ok:
                        raise NameError("Error en el tercer alumno")
                    else:
                        tfg_asig = self.model(tfg=tfg,
                                              alumno_1=alumno_1,
                                              alumno_2=alumno_2,
                                              alumno_3=alumno_3)
                # Si tiene 1 alumno
                else:
                    tfg_asig = self.model(tfg=tfg,
                                          alumno_1=alumno_1,
                                          alumno_2=alumno_2,
                                          alumno_3=alumno_3)
                tfg_asig.save()
                tfg.asignado = True
                tfg.save()
                # email_asig_tfg(tfg.titulo, [alumno_1.email if alumno_1.email else '', alumno_2.email if (alumno_2 and alumno_2.email) else '',
                #                             alumno_3.email if (alumno_3 and alumno_3.email) else ''])
                return dict(status=True, data=Tfg_Asig.objects.get(tfg=tfg))

        except NameError as e:
            return dict(status=False, message=e.message)
Esempio n. 3
0
    def create(self, tfg, alumno_1, alumno_2=None, alumno_3=None):
        alumno2_ok = False
        alumno3_ok = False
        try:
            # Compruebo lo minimo para asignar el tfg
            if not isinstance(tfg, Tfg) or not isinstance(alumno_1, Alumno) or not alumno_1.groups.filter(
                    name='Alumnos').exists():
                raise NameError("Error en los parametros de entrada")

            if utils.existe_tfg_asig(alumno_1):
                raise NameError("El alumno ya tiene un Tfg asignado")
            # Compruebo que no este ya asignado
            try:
                Tfg_Asig.objects.get(tfg=tfg)
                raise NameError("Tfg ya asignado")
            except Tfg_Asig.DoesNotExist:
                if not utils.comprueba_alumno(alumno_1) or utils.existe_tfg_asig(alumno_1):
                    raise NameError("Error en el primer alumno")

                if utils.comprueba_alumno(alumno_2) and not utils.existe_tfg_asig(alumno_2):
                    alumno2_ok = True
                if utils.comprueba_alumno(alumno_3) and not utils.existe_tfg_asig(alumno_3):
                    alumno3_ok = True

                # Si tiene 2 alumnos
                if alumno_2 and not alumno_3:
                    if not alumno2_ok:
                        raise NameError("Error en el segundo alumno")
                    else:
                        tfg_asig = self.model(tfg=tfg, alumno_1=alumno_1, alumno_2=alumno_2)
                # Si tiene 3 alumnos
                elif alumno_2 and alumno_3:
                    if not alumno2_ok or not alumno3_ok:
                        raise NameError("Error en el tercer alumno")
                    else:
                        tfg_asig = self.model(tfg=tfg, alumno_1=alumno_1, alumno_2=alumno_2, alumno_3=alumno_3)
                # Si tiene 1 alumno
                else:
                    tfg_asig = self.model(tfg=tfg, alumno_1=alumno_1, alumno_2=alumno_2, alumno_3=alumno_3)
                tfg_asig.save()
                tfg.asignado = True
                tfg.save()
                # email_asig_tfg(tfg.titulo, [alumno_1.email if alumno_1.email else '', alumno_2.email if (alumno_2 and alumno_2.email) else '',
                #                             alumno_3.email if (alumno_3 and alumno_3.email) else ''])
                return dict(status=True, data=Tfg_Asig.objects.get(tfg=tfg))

        except NameError as e:
            return dict(status=False, message=e.message)
Esempio n. 4
0
    def simular_create_tfg_asig(self, tfg, alumno_1, alumno_2=None, alumno_3=None):
        alumno2_ok = False
        alumno3_ok = False
        try:
            # Compruebo lo minimo para asignar el tfg
            if not isinstance(tfg, Tfg):
                raise NameError("Error en los parametros de entrada")

            if not utils.is_email_alumno(alumno_1) and not utils.is_dni(alumno_1):
                raise NameError("Error en el primer alumno")

            if alumno_2 and not utils.is_email_alumno(alumno_2) and not utils.is_dni(alumno_2):
                raise NameError("Error en el segundo alumno")

            if alumno_3 and not utils.is_email_alumno(alumno_3) and not utils.is_dni(alumno_3):
                raise NameError("Error en el tercer alumno")

            if utils.existe_tfg_asig(alumno_1):
                raise NameError("el alumno %s ya tiene un tfg asignado" % alumno_1)
            # Compruebo que no este ya asignado
            try:
                Tfg_Asig.objects.get(tfg=tfg)
                raise NameError("Tfg ya asignado")
            except Tfg_Asig.DoesNotExist:
                if not utils.existe_tfg_asig(alumno_2):
                    alumno2_ok = True
                if not utils.existe_tfg_asig(alumno_3):
                    alumno3_ok = True

                # Si tiene 2 alumnos
                if alumno_2 and not alumno_3:
                    if not alumno2_ok:
                        raise NameError("Error en el segundo alumno")
                    else:
                        self.model(tfg=tfg, alumno_1=alumno_1, alumno_2=alumno_2)
                # Si tiene 3 alumnos
                elif alumno_2 and alumno_3:
                    if not alumno2_ok or not alumno3_ok:
                        raise NameError("Error en el tercer alumno")
                    else:
                        self.model(tfg=tfg, alumno_1=alumno_1, alumno_2=alumno_2, alumno_3=alumno_3)
                # Si tiene 1 alumno
                else:
                    self.model(tfg=tfg, alumno_1=alumno_1)
                return True
        except NameError as e:
            return e.message