Beispiel #1
0
def promoverUsuario(user):

    puntajeValidador = int(obtenerParametroSistema('umbral-validador'))
    puntajeProyectista = obtenerParametroSistema('umbral-proyectista')

    # Promoción de voluntario a validador
    if user.rolid == '0be58d4e-6735-481a-8740-739a73c3be86' and user.puntaje >= puntajeValidador:
        user.rolid = '53ad3141-56bb-4ee2-adcf-5664ba03ad65'
        user.save()

        notificacionPromocionUsuario(user, 'Validador')

    # Promocion de Validador a Proyectista
    if user.rolid == '53ad3141-56bb-4ee2-adcf-5664ba03ad65' and user.puntaje >= puntajeProyectista:
        user.rolid = '628acd70-f86f-4449-af06-ab36144d9d6a'
        user.save()

        notificacionPromocionUsuario(user, 'Proyectista')
Beispiel #2
0
def promoverUsuario(user):

    puntajeValidador = int(obtenerParametroSistema('umbral-validador'))
    puntajeProyectista = obtenerParametroSistema('umbral-proyectista')

    # Promoción de voluntario a validador
    if user.rolid == ROL_VOLUNTARIO and user.puntaje >= puntajeValidador:
        user.rolid = ROL_VALIDADOR
        user.save()

        notificacionPromocionUsuario(user, 'Validador')

    # Promocion de Validador a Proyectista
    if user.rolid == ROL_VALIDADOR and user.puntaje >= puntajeProyectista:
        user.rolid = ROL_PROYECTISTA
        user.save()

        notificacionPromocionUsuario(user, 'Proyectista')
Beispiel #3
0
def validarTarea(tarea):

    if ((tarea.tareestado == 1 and tarea.taretipo == 1)
            or (tarea.tareestado != 2 and tarea.taretipo == 2)):

        if tarea.taretipo == 1:

            encuestasSinValidar = models.Encuesta.objects.filter(instrid__exact=tarea.instrid) \
                                                         .filter(estado__exact=0)

            if len(encuestasSinValidar) == 0:

                aportePositivo = int(
                    obtenerParametroSistema('aporte-positivo-encuesta'))
                aporteNegativo = int(
                    obtenerParametroSistema('aporte-negativo-encuesta'))

                encuestas = models.Encuesta.objects.filter(
                    instrid__exact=tarea.instrid)

                with transaction.atomic():
                    for encuesta in encuestas:

                        if encuesta.estado == 1:
                            puntaje = aporteNegativo

                        elif encuesta.estado == 2:
                            puntaje = aportePositivo

                        asignacionPuntaje(encuesta.userid, tarea.tareid,
                                          puntaje)

                response = True

            else:
                raise ValidationError(
                    ['Todas las encuestas deben ser validadas'])

        elif tarea.taretipo == 2:

            cartografias = models.Cartografia.objects.filter(
                instrid__exact=tarea.instrid)

            if len(cartografias) > 0:

                aportePositivo = int(
                    obtenerParametroSistema('aporte-positivo-cartografia'))
                aporteNegativo = int(
                    obtenerParametroSistema('aporte-negativo-cartografia'))

                with transaction.atomic():

                    for cartografia in cartografias:

                        # Si las cartografias no fueron marcadas como malas se marcan como buenas
                        if cartografia.estado == 0:
                            cartografia.estado = 2
                            cartografia.save()
                            puntaje = aportePositivo

                        if cartografia.estado == 1:
                            puntaje = aporteNegativo

                        if cartografia.estado == 2:
                            puntaje = aportePositivo

                        asignacionPuntaje(cartografia.userid, tarea.tareid,
                                          puntaje)

                response = True

            else:
                raise ValidationError(['No hay cartografias'])
    else:
        raise ValidationError(['La tarea no esta terminada o ya fue validada'])

    return response