Example #1
0
def numerar(request, solicitud_id):
    solicitud = Solicitud.objects.get(pk=solicitud_id)
    
    if len(solicitud.normativas_jurisdiccionales.all()) > 0:
        normativas_jurisdiccionales = ', '.join([n.numero_anio for n in solicitud.normativas_jurisdiccionales.all().order_by('numero_anio')])
    else: 
        normativas_jurisdiccionales = solicitud.normativa_jurisdiccional_migrada
        
    if not solicitud.is_numerable():
        request.set_flash('warning', 'La solicitud no se puede numerar.')
        return HttpResponseRedirect(reverse('validezNacionalSolicitudIndex'))

    solicitud_establecimientos = solicitud.establecimientos.all()
    solicitud_anexos = solicitud.anexos.all()

    if request.method == 'POST':
        
        import time
        referencia = str(int(time.time()))
        
        solicitud.estado = EstadoSolicitud.objects.get(nombre=EstadoSolicitud.NUMERADO)
        solicitud.save()
        solicitud.registrar_estado()
        
        # solicitud-establecimientos
        for se in solicitud_establecimientos:
            v = ValidezNacional()
            v.tipo_unidad_educativa = 'Sede'
            v.unidad_educativa_id = se.establecimiento.id
            v.cue = se.establecimiento.cue
            v.solicitud_id = solicitud.id
            v.carrera = solicitud.carrera.nombre
            v.titulo_nacional = solicitud.titulo_nacional.nombre
            v.primera_cohorte = solicitud.primera_cohorte
            v.ultima_cohorte = solicitud.ultima_cohorte
            v.dictamen_cofev = solicitud.dictamen_cofev
            v.normativas_nacionales = solicitud.normativas_nacionales
            v.normativa_jurisdiccional = normativas_jurisdiccionales
            v.referencia = referencia
            v.save() # Necesito recuperar el ID en la siguiente línea
            v.nro_infd = v.calcular_nro_infd_establecimiento()
            v.save()
            MailHelper.notify_by_email(MailHelper.NUMERACION_SOLICITUD, v)

            
                
        # solicitud-anexos
        for sa in solicitud_anexos:
            v = ValidezNacional()
            v.tipo_unidad_educativa = 'Anexo'
            v.unidad_educativa_id = sa.anexo.id
            v.cue = sa.anexo.cue
            v.solicitud_id = solicitud.id
            v.carrera = solicitud.carrera.nombre
            v.titulo_nacional = solicitud.titulo_nacional.nombre
            v.primera_cohorte = solicitud.primera_cohorte
            v.ultima_cohorte = solicitud.ultima_cohorte
            v.dictamen_cofev = solicitud.dictamen_cofev
            v.normativas_nacionales = solicitud.normativas_nacionales
            v.normativa_jurisdiccional = normativas_jurisdiccionales
            v.referencia = referencia
            v.save() # Necesito recuperar el ID en la siguiente línea
            v.nro_infd = v.calcular_nro_infd_anexo()
            v.save()
            MailHelper.notify_by_email(MailHelper.NUMERACION_SOLICITUD, v)
            
        request.set_flash('success', 'Se ha generado la validez de títulos.')
        return HttpResponseRedirect(reverse('validezNacionalDetalleNumeracion', args=[solicitud.id, referencia]))
            
    return my_render(request, 'validez_nacional/solicitud/numerar.html', {
        'solicitud': solicitud,
        'solicitud_establecimientos': solicitud_establecimientos,
        'solicitud_anexos': solicitud_anexos,
        'normativas_jurisdiccionales': normativas_jurisdiccionales,
    })