def editar_cohortes(request, carrera_jurisdiccional_id): """ Edición de datos de cohortes del título jurisdiccional. """ try: carrera_jurisdiccional = CarreraJurisdiccional.objects.get(pk=carrera_jurisdiccional_id) except: # Es nuevo, no mostrar el formulario antes de que guarden los datos básicos return my_render( request, "titulos/carrera_jurisdiccional/new.html", { "carrera_jurisdiccional": None, "form_template": "titulos/carrera_jurisdiccional/form_cohortes.html", "page_title": "Datos de cohortes", "current_page": "cohortes", }, ) try: cohorte = CarreraJurisdiccionalCohorte.objects.get(carrera_jurisdiccional=carrera_jurisdiccional) except: cohorte = CarreraJurisdiccionalCohorte(carrera_jurisdiccional=carrera_jurisdiccional) if request.method == "POST": form = CarreraJurisdiccionalSolicitarCohortesForm(request.POST, instance=cohorte) if form.is_valid(): cohorte = form.save() request.set_flash("success", "Datos guardados correctamente.") # redirigir a edit return HttpResponseRedirect(reverse("carreraJurisdiccionalCohortesEdit", args=[carrera_jurisdiccional.id])) else: request.set_flash("warning", "Ocurrió un error guardando los datos.") else: form = CarreraJurisdiccionalSolicitarCohortesForm(instance=cohorte) try: if carrera_jurisdiccional.datos_cohorte.get().id is None: is_new = True else: is_new = False except CarreraJurisdiccionalCohorte.DoesNotExist: is_new = True return my_render( request, "titulos/carrera_jurisdiccional/edit.html", { "form": form, "carrera_jurisdiccional": carrera_jurisdiccional, "form_template": "titulos/carrera_jurisdiccional/form_cohortes.html", "is_new": is_new, "page_title": "Datos de cohortes", "current_page": "cohortes", }, )
def editar_normativas(request, solicitud_id): """ Edición de normativas """ try: solicitud = Solicitud.objects.get(pk=solicitud_id) except: # Es nuevo, no mostrar el formulario antes de que guarden los datos básicos return my_render(request, 'postitulos/solicitud/new.html', { 'solicitud': None, 'form_template': 'postitulos/solicitud/form_normativas.html', 'page_title': 'Normativas', 'current_page': 'normativas', }) if not __puede_editarse_solicitud(request, solicitud): request.set_flash('warning', 'No puede editarse la solicitud.') return HttpResponseRedirect(reverse('postituloSolicitudIndex')) if request.method == 'POST': form = SolicitudNormativasForm(request.POST, instance=solicitud) if form.is_valid(): normativas = form.save() request.set_flash('success', 'Datos guardados correctamente.') # redirigir a edit #return HttpResponseRedirect(reverse('postituloSolicitudNormativasEdit', args=[solicitud.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = SolicitudNormativasForm(instance=solicitud) current_ids = [n.id for n in solicitud.normativas_jurisdiccionales.all().order_by('numero_anio')] restantes_ids = [n.id for n in NormativaPostituloJurisdiccional.objects.filter(jurisdiccion=solicitud.jurisdiccion).exclude(id__in=current_ids).order_by('numero_anio')] # http://blog.mathieu-leplatre.info/django-create-a-queryset-from-a-list-preserving-order.html pk_list = current_ids + restantes_ids clauses = ' '.join(['WHEN id=%s THEN %s' % (pk, i) for i, pk in enumerate(pk_list)]) ordering = 'CASE %s END' % clauses queryset = NormativaPostituloJurisdiccional.objects.filter(pk__in=pk_list).extra( select={'ordering': ordering}, order_by=('ordering',)) form.fields['normativas_jurisdiccionales'].queryset = queryset return my_render(request, 'postitulos/solicitud/edit.html', { 'form': form, 'solicitud': solicitud, 'form_template': 'postitulos/solicitud/form_normativas.html', 'is_new': False, 'page_title': 'Normativas', 'current_page': 'normativas', })
def editar_normativas(request, carrera_jurisdiccional_id): """ Edición de normativas del título jurisdiccional. """ try: carrera_jurisdiccional = CarreraJurisdiccional.objects.get(pk=carrera_jurisdiccional_id) except: # Es nuevo, no mostrar el formulario antes de que guarden los datos básicos return my_render( request, "titulos/carrera_jurisdiccional/new.html", { "carrera_jurisdiccional": None, "form_template": "titulos/carrera_jurisdiccional/form_normativas.html", "page_title": "Normativas", "current_page": "normativas", }, ) if request.method == "POST": form = CarreraJurisdiccionalNormativasForm(request.POST, instance=carrera_jurisdiccional) if form.is_valid(): normativas = form.save() request.set_flash("success", "Datos guardados correctamente.") # redirigir a edit return HttpResponseRedirect( reverse("carreraJurisdiccionalNormativasEdit", args=[carrera_jurisdiccional.id]) ) else: request.set_flash("warning", "Ocurrió un error guardando los datos.") else: form = CarreraJurisdiccionalNormativasForm(instance=carrera_jurisdiccional) form.fields["normativas"].queryset = form.fields["normativas"].queryset.filter( jurisdiccion=request.get_perfil().jurisdiccion, estado__nombre=EstadoNormativaJurisdiccional.VIGENTE ) return my_render( request, "titulos/carrera_jurisdiccional/edit.html", { "form": form, "carrera_jurisdiccional": carrera_jurisdiccional, "form_template": "titulos/carrera_jurisdiccional/form_normativas.html", "is_new": False, "page_title": "Normativas", "current_page": "normativas", }, )
def editar_cohortes(request, carrera_jurisdiccional_id): """ Edición de datos de cohortes del título jurisdiccional. """ try: carrera_jurisdiccional = CarreraJurisdiccional.objects.get(pk=carrera_jurisdiccional_id) except: # Es nuevo, no mostrar el formulario antes de que guarden los datos básicos return my_render(request, 'titulos/carrera_jurisdiccional/new.html', { 'carrera_jurisdiccional': None, 'form_template': 'titulos/carrera_jurisdiccional/form_cohortes.html', 'page_title': 'Datos de cohortes', 'current_page': 'cohortes', }) try: cohorte = CarreraJurisdiccionalCohorte.objects.get(carrera_jurisdiccional=carrera_jurisdiccional) except: cohorte = CarreraJurisdiccionalCohorte(carrera_jurisdiccional=carrera_jurisdiccional) if request.method == 'POST': form = CarreraJurisdiccionalSolicitarCohortesForm(request.POST, instance=cohorte) if form.is_valid(): cohorte = form.save() request.set_flash('success', 'Datos guardados correctamente.') # redirigir a edit return HttpResponseRedirect(reverse('carreraPostituloJurisdiccionalCohortesEdit', args=[carrera_jurisdiccional.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = CarreraJurisdiccionalSolicitarCohortesForm(instance=cohorte) try: if carrera_jurisdiccional.datos_cohorte.get().id is None: is_new = True else: is_new = False except CarreraJurisdiccionalCohorte.DoesNotExist: is_new = True return my_render(request, 'titulos/carrera_jurisdiccional/edit.html', { 'form': form, 'carrera_jurisdiccional': carrera_jurisdiccional, 'form_template': 'titulos/carrera_jurisdiccional/form_cohortes.html', 'is_new': is_new, 'page_title': 'Datos de cohortes', 'current_page': 'cohortes', })
def create(request): import datetime if request.method == 'POST': form = CarreraForm(request.POST) if form.is_valid(): carrera = form.save(commit=False) carrera.estado = EstadoCarrera.objects.get(nombre=EstadoCarrera.VIGENTE) carrera.save() form.save_m2m() # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method carrera.registrar_estado() request.set_flash('success', 'Datos guardados correctamente.') # redirigir a edit return HttpResponseRedirect(reverse('carreraEdit', args=[carrera.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = CarreraForm() form.fields['estado'].queryset = EstadoCarrera.objects.filter(nombre=EstadoCarrera.VIGENTE) return my_render(request, 'titulos/carrera/new.html', { 'form': form, 'is_new': True, })
def completar_funciones(request, extension_aulica_id): ext = __get_extension_aulica(request, extension_aulica_id) if request.method == 'POST' and request.has_credencial('reg_extension_aulica_modificar'): form = ExtensionAulicaFuncionesForm(request.POST, instance=ext) if form.is_valid(): funciones = form.save() if __puede_verificar_datos(request): v = ext.get_verificacion_datos() v.funciones = form.cleaned_data['verificado'] v.save() #MailHelper.notify_by_email(MailHelper.ESTABLECIMIENTO_UPDATE, establecimiento) request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = ExtensionAulicaFuncionesForm(instance=ext) form.initial['verificado'] = ext.get_verificacion_datos().funciones return my_render(request, 'registro/extension_aulica/completar_datos.html', { 'form': form, 'form_template': 'registro/extension_aulica/form_funciones.html', 'extension_aulica': ext, 'page_title': 'Funciones', 'actual_page': 'funciones', 'configuracion_solapas': ConfiguracionSolapasExtensionAulica.get_instance(), 'datos_verificados': ext.get_verificacion_datos().get_datos_verificados() })
def create(request): """ Alta de extensión áulica. """ if request.method == 'POST': form = ExtensionAulicaCreateForm(request.POST) if form.is_valid(): ext = form.save(commit=False) estado = EstadoExtensionAulica.objects.get(nombre=EstadoExtensionAulica.PENDIENTE) ext.estado = estado ext.fecha_alta = datetime.date.today() ext.save() ext.registrar_estado() MailHelper.notify_by_email(MailHelper.EXTENSION_AULICA_CREATE, ext) request.set_flash('success', 'Datos guardados correctamente.') # redirigir a edit return HttpResponseRedirect(reverse('extensionAulica')) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = ExtensionAulicaCreateForm() jurisdiccion = request.get_perfil().jurisdiccion() form.fields["establecimiento"].queryset = Establecimiento.objects.filter(ambito__path__istartswith=request.get_perfil().ambito.path) return my_render(request, 'registro/extension_aulica/new.html', { 'form': form, 'is_new': True, })
def login(request): """ Pantalla de login al sistema. Si el request.method es POST, valida que la contraseña sea correcta y en tal caso redirige a seleccionarPerfil. """ if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): user = authenticate( form.cleaned_data['tipo_documento'], form.cleaned_data['documento'], form.cleaned_data['password'].strip(), ) if user: if user.is_active: #user.update_last_login() request.session['user_id'] = user.id user.update_last_login() # Se logueo bien, lo redirijo a seleccionarPerfil return HttpResponseRedirect(reverse('seleccionarPerfil')) else: request.set_flash('warning', 'No puede iniciar sesión: usuario bloqueado') else: init={} try: init['tipo_documento'] = TipoDocumento.objects.get(abreviatura='DNI').id except: pass form = LoginForm(initial=init) return my_render(request, 'seguridad/login/login.html', {'form': form})
def create(request, anexo_id): anexo = __get_anexo(request, anexo_id) """ Alta de autoridad. """ if request.method == 'POST': form = AnexoAutoridadForm(request.POST) if form.is_valid(): autoridad = form.save(commit=False) autoridad.anexo_id = anexo.id autoridad.save() request.set_flash('success', 'Datos guardados correctamente.') return HttpResponseRedirect(reverse('anexoAutoridadEdit', args=[autoridad.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = AnexoAutoridadForm() # Chequear si se puede dar de alta # XXX: sólo se puede dar de alta un registro por ahora alta_habilitada = AnexoAutoridad.objects.filter(anexo__id = anexo.id).count() == 0 if not alta_habilitada: # no debería estar en esta pantalla request.set_flash('warning', 'No puede dar de alta más de una autoridad.') return HttpResponseRedirect(reverse('anexoCompletarContacto', args=[anexo.id])) #return HttpResponseRedirect(reverse('anexoAutoridadesIndex', args=[anexo.id])) return my_render(request, 'registro/anexo/autoridades/new.html', { 'form': form, 'anexo': anexo, })
def edit(request, domicilio_id): """ Edición de los datos de una domicilio. """ domicilio = EstablecimientoDomicilio.objects.get(pk=domicilio_id) establecimiento = __get_establecimiento(request, domicilio.establecimiento_id) jurisdiccion = establecimiento.dependencia_funcional.jurisdiccion if request.method == 'POST': form = EstablecimientoDomicilioForm(request.POST, instance=domicilio, jurisdiccion_id=jurisdiccion.id, establecimiento_id=establecimiento.id) if form.is_valid(): domicilio = form.save() request.set_flash('success', 'Datos actualizados correctamente.') return HttpResponseRedirect(reverse('establecimientoDomiciliosIndex', args=[domicilio.establecimiento_id])) else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = EstablecimientoDomicilioForm(instance=domicilio, jurisdiccion_id=jurisdiccion.id, establecimiento_id=establecimiento.id) form.fields["localidad"].queryset = Localidad.objects.filter(departamento__jurisdiccion__id=jurisdiccion.id) return my_render(request, 'registro/establecimiento/domicilios/edit.html', { 'form': form, 'domicilio': domicilio, 'establecimiento': establecimiento, })
def edit(request, solicitud_id): """ Edición de los datos de un título jurisdiccional. """ solicitud = Solicitud.objects.get(pk=solicitud_id) if not __puede_editarse_solicitud(request, solicitud): request.set_flash('warning', 'No puede editarse la solicitud.') return HttpResponseRedirect(reverse('postituloSolicitudIndex')) estado_id = solicitud.estado_id if request.method == 'POST': form = SolicitudDatosBasicosForm(request.POST, instance=solicitud, jurisdiccion_id=solicitud.jurisdiccion_id) if form.is_valid(): sol = form.save(commit=False) sol.id = solicitud.id sol.jurisdiccion_id = solicitud.jurisdiccion_id sol.estado_id = solicitud.estado_id form.save() request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = SolicitudDatosBasicosForm(instance=solicitud, jurisdiccion_id=solicitud.jurisdiccion_id) return my_render(request, 'postitulos/solicitud/edit.html', { 'form': form, 'solicitud': solicitud, 'form_template': 'postitulos/solicitud/form_datos_basicos.html', 'is_new': False, 'page_title': 'Postítulo', 'current_page': 'datos_basicos', })
def edit(request, anexo_turno_id): """ Edición de los datos de un turno. """ anexo_turno = AnexoTurno.objects.get(pk=anexo_turno_id) anexo = __get_anexo(request, anexo_turno.anexo_id) if request.method == 'POST': form = AnexoTurnoForm(request.POST, instance=anexo_turno, anexo_id=anexo.id) if form.is_valid(): anexo_turno = form.save() request.set_flash('success', 'Datos actualizados correctamente.') return HttpResponseRedirect(reverse('anexoTurnosIndex', args=[anexo_turno.anexo_id])) else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = AnexoTurnoForm(instance=anexo_turno, anexo_id=anexo.id) es_dominio_compartido_id = TipoDominio.objects.get(descripcion=TipoDominio.TIPO_COMPARTIDO).id comparte_otro_nivel_id = TipoCompartido.objects.get(descripcion=TipoCompartido.TIPO_OTRA_INSTITUCION).id return my_render(request, 'registro/anexo/turnos/edit.html', { 'form': form, 'anexo_turno': anexo_turno, 'anexo': anexo, 'es_dominio_compartido_id': es_dominio_compartido_id, 'comparte_otro_nivel_id': comparte_otro_nivel_id, })
def create(request, anexo_id): anexo = __get_anexo(request, anexo_id) """ Alta de turno. """ if request.method == 'POST': form = AnexoTurnoForm(request.POST, anexo_id=anexo.id) if form.is_valid(): anexo_turno = form.save(commit=False) anexo_turno.anexo_id = anexo_id anexo_turno.save() form.save_m2m() request.set_flash('success', 'Datos guardados correctamente.') return HttpResponseRedirect(reverse('anexoTurnosIndex', args=[anexo_turno.anexo_id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = AnexoTurnoForm(anexo_id=anexo.id) es_dominio_compartido_id = TipoDominio.objects.get(descripcion=TipoDominio.TIPO_COMPARTIDO).id comparte_otro_nivel_id = TipoCompartido.objects.get(descripcion=TipoCompartido.TIPO_OTRA_INSTITUCION).id return my_render(request, 'registro/anexo/turnos/new.html', { 'anexo': anexo, 'form': form, 'es_dominio_compartido_id': es_dominio_compartido_id, 'comparte_otro_nivel_id': comparte_otro_nivel_id, })
def create(request): """ Alta de usuario. """ if request.method == "POST": form = UsuarioCreateForm(request.POST) if form.is_valid(): usuario = form.save(commit=False) usuario.set_password(form.cleaned_data["password"]) usuario.is_active = True usuario.save() perfil = Perfil() perfil.usuario = usuario perfil.rol = form.cleaned_data["rol"] perfil.ambito = form.cleaned_data["ambito"] perfil.fecha_asignacion = datetime.now() perfil.save() request.set_flash("success", "Datos guardados correctamente.") # redirigir a edit return HttpResponseRedirect(reverse("usuarioEdit", args=[usuario.id])) else: request.set_flash("warning", "Ocurrió un error guardando los datos.") else: init = {"tipo_documento": TipoDocumento.objects.get(abreviatura="DNI").id} form = UsuarioCreateForm(initial=init) form.fields["rol"].queryset = request.get_perfil().rol.roles_asignables.all() return my_render(request, "seguridad/usuario/new.html", {"form": form})
def create(request, extension_aulica_id): extension_aulica = __get_extension_aulica(request, extension_aulica_id) """ Alta de autoridad. """ if request.method == 'POST': form = ExtensionAulicaAutoridadForm(request.POST) if form.is_valid(): autoridad = form.save(commit=False) autoridad.extension_aulica_id = extension_aulica.id autoridad.save() request.set_flash('success', 'Datos guardados correctamente.') return HttpResponseRedirect(reverse('extensionAulicaAutoridadEdit', args=[autoridad.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = ExtensionAulicaAutoridadForm() # Chequear si se puede dar de alta # XXX: sólo se puede dar de alta un registro por ahora alta_habilitada = ExtensionAulicaAutoridad.objects.filter(extension_aulica__id = extension_aulica.id).count() == 0 if not alta_habilitada: # no debería estar en esta pantalla request.set_flash('warning', 'No puede dar de alta más de una autoridad.') return HttpResponseRedirect(reverse('extensionAulicaAutoridadesIndex', args=[extension_aulica.id])) return my_render(request, 'registro/extension_aulica/autoridades/new.html', { 'form': form, 'extension_aulica': extension_aulica, })
def eliminar(request, cohorte_id): """ Baja de una cohorte --- mientras no estén asignadas a un establecimiento --- """ cohorte = Cohorte.objects.get(pk=cohorte_id) asignada_establecimiento = cohorte.asignada_establecimiento() if asignada_establecimiento: request.set_flash('warning', 'La cohorte no puede darse de baja porque tiene establecimientos asignados.') else: request.set_flash('warning', 'Está seguro de eliminar la cohorte? Esta operación no puede deshacerse.') if request.method == 'POST': if int(request.POST['cohorte_id']) is not int(cohorte.id): raise Exception('Error en la consulta!') cohorte.delete() request.set_flash('success', 'La cohorte fue eliminada correctamente.') """ Redirecciono para evitar el reenvío del form """ return HttpResponseRedirect(reverse('cohorte')) return my_render(request, 'titulos/cohorte/eliminar.html', { 'cohorte': cohorte, 'cohorte_id': cohorte.id, 'asignada_establecimiento': asignada_establecimiento, })
def create(request, establecimiento_id): establecimiento = __get_establecimiento(request, establecimiento_id) """ Alta de domicilio. """ jurisdiccion = establecimiento.dependencia_funcional.jurisdiccion if request.method == 'POST': form = EstablecimientoDomicilioForm(request.POST, jurisdiccion_id=jurisdiccion.id, establecimiento_id=establecimiento.id) if form.is_valid(): domicilio = form.save(commit=False) domicilio.establecimiento_id = establecimiento.id domicilio.save() request.set_flash('success', 'Datos guardados correctamente.') return HttpResponseRedirect(reverse('establecimientoDomiciliosIndex', args=[domicilio.establecimiento_id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = EstablecimientoDomicilioForm(jurisdiccion_id=jurisdiccion.id, establecimiento_id=establecimiento.id) form.fields["localidad"].queryset = Localidad.objects.filter(departamento__jurisdiccion__id=jurisdiccion.id) "Localidad seleccionada al hacer refresh" try: localidad_seleccionada = request.POST['localidad'] except KeyError: localidad_seleccionada = None return my_render(request, 'registro/establecimiento/domicilios/new.html', { 'establecimiento': establecimiento, 'form': form, 'localidad_seleccionada': localidad_seleccionada, })
def informe(request, solicitud_id): solicitud = Solicitud.objects.get(pk=solicitud_id, estado__nombre__in=[EstadoSolicitud.CONTROLADO]) try: informe = solicitud.informe.get() except InformeSolicitud.DoesNotExist: informe = solicitud.generar_informe() if request.method == 'POST': form = InformeSolicitudForm(request.POST, instance=informe) informe.solicitud = solicitud if form.is_valid(): informe = form.save(commit=False) informe.solicitud = solicitud informe.save() request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') raise Exception(form.errors) else: form = InformeSolicitudForm(instance=informe) return my_render(request, 'postitulos/solicitud/informe.html', { 'solicitud': solicitud, 'informe': informe, 'form': form, })
def index(request): if request.method == 'GET': form_filter = MatriculaFormFilters(request.GET) else: form_filter = MatriculaFormFilters() q = build_query(form_filter, 1, request) paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'titulos/matricula/index.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1 })
def create(request): try: jurisdiccion_id = jurisdiccion_id=request.get_perfil().jurisdiccion().id except AttributeError: jurisdiccion_id = None if request.method == 'POST': form = SolicitudDatosBasicosForm(request.POST, jurisdiccion_id=jurisdiccion_id) if form.is_valid(): solicitud = form.save(commit=False) solicitud.estado = EstadoSolicitud.objects.get(nombre=EstadoSolicitud.PENDIENTE) solicitud.jurisdiccion = request.get_perfil().jurisdiccion() solicitud.save() solicitud.registrar_estado() request.set_flash('success', 'Datos guardados correctamente.') return HttpResponseRedirect(reverse('postituloSolicitudEdit', args=[solicitud.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = SolicitudDatosBasicosForm(jurisdiccion_id=jurisdiccion_id) # Agrego el filtro por jurisdicción return my_render(request, 'postitulos/solicitud/new.html', { 'form': form, 'form_template': 'postitulos/solicitud/form_datos_basicos.html', 'is_new': True, 'page_title': 'Postítulo', 'current_page': 'datos_basicos', })
def reset_password(request, key): try: prk = PasswordRememberKey.objects.get(key=key) new_pass = ''.join(random.sample("1234567890qwertyuiopasdfghjklzxcvbnm", 8)) prk.usuario.set_password(new_pass) user = prk.usuario user.save() prk.delete() html_content = u""" <p><b>Hola """ + user.nombre + " " + user.apellido + u""",</b></p> <p>Le informamos que su nueva contraseña de acceso al sistema REFFOD es: <b>""" + new_pass + u"""</b></p> <p>Si lo considera apropiado, una vez que haya ingresado al sistema utilizando esta contraseña, podrá cambiarla haciendo clic en el menú <b>MIS DATOS</b>, en la opción <b>Modificar contraseña</b>.</p> <p>Si desea acceder ahora, haga clic en el siguiente enlace:</p> <p align='center'> <b><a href=\""""+settings.BASE_URL+u"""\">Acceder al Sistema REFFOD</a></b> </p> <p>Muchas gracias,</p> <p><b>Registro Federal de Instituciones y Ofertas de Formación Docente</b></p> """ msg = EmailMessage(u"Nueva Contraseña de Acceso al REFFOD", html_content, settings.EMAIL_FROM, [user.email]) msg.content_subtype = "html" # Main content is now text/html msg.send() request.set_flash('success', u'Le hemos enviado a ' + user.email + u' la nueva contraseña de acceso al sistema. Tenga en cuenta que tal vez deba revisar la carpeta de Spam para leer el correo.') except: request.set_flash('warning', 'Link inválido') return my_render(request, 'seguridad/login/resetPassword.html', {})
def datos_generales(request): rows = Estadistica.datos_generales() paginator = Paginator(rows, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) rows = page.object_list return my_render(request, 'reportes/estadistica/datos_generales.html', { 'rows': rows, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, })
def remember_password(request): if request.method == 'POST' and len(request.POST) > 0: form = RememberPasswordForm(request.POST) if form.is_valid(): user = Usuario.objects.filter(documento=form.cleaned_data['documento']).filter(tipo_documento=form.cleaned_data['tipo_documento']).all()[0] key = PasswordRememberKey() key.usuario = user tmp = ''.join(random.sample("1234567890qwertyuiopasdfghjklzxcvbnm", 32)) key.key = sha1(str(user.id)).hexdigest() + tmp key.save() html_content = u""" <b>Hola """ + user.nombre + u" " + user.apellido + u""",</b> <p>Hemos recibido recientemente una solicitud para restablecer su contraseña.</p> <p>Si usted no solicitó el restablecimiento, simplemente ignore este mensaje.</p> <p>Si efectivamente es usted quien lo solicitó, por favor haga clic en el enlace que se encuentra más abajo y nosotros le enviaremos, en otro correo, la nueva contraseña para acceder al sistema.</p> <p align='center'> <b><a href=\""""+settings.BASE_URL+"""reset_password/"""+key.key+u"""\">Enviarme una Nueva Contraseña</a></b> </p> <p>Muchas gracias,</p> <p><b>Registro Federal de Instituciones y Ofertas de Formación Docente</b></p> """ msg = EmailMessage("Confirmación de Solicitud de Restablecimiento de Contraseña", html_content, settings.EMAIL_FROM, [user.email]) msg.content_subtype = "html" # Main content is now text/html msg.send() request.set_flash('success', u'Le hemos enviado a ' + user.email + u' instrucciones para restablecer su contraseña y volver a tener acceso al sistema. Tenga en cuenta que tal vez deba revisar la carpeta de Spam para leer el correo.') else: init = {} try: init['tipo_documento'] = TipoDocumento.objects.get(abreviatura='DNI').id except: pass form = RememberPasswordForm(initial=init) return my_render(request, 'seguridad/login/rememberPassword.html', {'form': form})
def create(request, extension_aulica_id): extension_aulica = __get_extension_aulica(request, extension_aulica_id) """ Alta de domicilio. """ jurisdiccion = extension_aulica.establecimiento.dependencia_funcional.jurisdiccion if request.method == 'POST': form = ExtensionAulicaDomicilioForm(request.POST, jurisdiccion_id=jurisdiccion.id, extension_aulica_id=extension_aulica.id) form.extension_aulica_id = extension_aulica_id if form.is_valid(): domicilio = form.save(commit=False) domicilio.extension_aulica_id = extension_aulica.id domicilio.save() request.set_flash('success', 'Datos guardados correctamente.') return HttpResponseRedirect(reverse('extensionAulicaDomiciliosIndex', args=[domicilio.extension_aulica_id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = ExtensionAulicaDomicilioForm(jurisdiccion_id=jurisdiccion.id, extension_aulica_id=extension_aulica.id) form.fields["localidad"].queryset = Localidad.objects.filter(departamento__jurisdiccion__id=jurisdiccion.id) return my_render(request, 'registro/extension_aulica/domicilios/new.html', { 'extension_aulica': extension_aulica, 'form': form, })
def completar_datos_basicos(request, extension_aulica_id): """ Edición de los datos de una extensión áulica. """ ext = __get_extension_aulica(request, extension_aulica_id) if request.method == 'POST' and request.has_credencial('reg_extension_aulica_modificar'): form = ExtensionAulicaDatosBasicosForm(request.POST, instance=ext) if form.is_valid(): ext = form.save() if __puede_verificar_datos(request): v = ext.get_verificacion_datos() v.datos_basicos = form.cleaned_data['verificado'] v.save() request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = ExtensionAulicaDatosBasicosForm(instance=ext) form.initial['verificado'] = ext.get_verificacion_datos().datos_basicos return my_render(request, 'registro/extension_aulica/completar_datos.html', { 'form': form, 'form_template': 'registro/extension_aulica/form_datos_basicos.html', 'extension_aulica': ext, 'page_title': 'Datos básicos', 'actual_page': 'datos_basicos', 'configuracion_solapas': ConfiguracionSolapasExtensionAulica.get_instance(), 'datos_verificados': ext.get_verificacion_datos().get_datos_verificados() })
def create(request, extension_aulica_id): extension_aulica = __get_extension_aulica(request, extension_aulica_id) """ Alta de matricula. """ if request.method == 'POST': form = ExtensionAulicaMatriculaForm(request.POST, extension_aulica=extension_aulica) if form.is_valid(): matricula = form.save(commit=False) matricula.extension_aulica_id = extension_aulica.id matricula.set_formacion_continua() matricula.set_formacion_docente() matricula.save() request.set_flash('success', 'Datos guardados correctamente.') return HttpResponseRedirect(reverse('extensionAulicaMatriculaIndexExtensionAulica', args=[matricula.extension_aulica_id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = ExtensionAulicaMatriculaForm(extension_aulica=extension_aulica) return my_render(request, 'registro/extension_aulica/matricula/new.html', { 'extension_aulica': extension_aulica, 'form': form, })
def modificar_cue(request, extension_aulica_id): extension_aulica = __get_extension_aulica(request, extension_aulica_id) if request.method == 'POST': form = ExtensionAulicaModificarCueForm(request.POST, instance=extension_aulica) if form.is_valid(): extension_aulica = form.save() MailHelper.notify_by_email(MailHelper.EXTENSION_AULICA_UPDATE, extension_aulica) request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = ExtensionAulicaModificarCueForm(instance=extension_aulica) parts = extension_aulica.get_cue_parts() form.initial['codigo_jurisdiccion'] = parts['codigo_jurisdiccion'] form.initial['cue'] = parts['cue'] form.initial['codigo_tipo_unidad_educativa'] = parts['codigo_tipo_unidad_educativa'] return my_render(request, 'registro/extension_aulica/completar_datos.html', { 'form': form, 'form_template': 'registro/extension_aulica/form_modificar_cue.html', 'extension_aulica': extension_aulica, 'page_title': 'Modificar CUE', 'actual_page': 'datos_basicos', 'configuracion_solapas': ConfiguracionSolapasExtensionAulica.get_instance(), 'datos_verificados': extension_aulica.get_verificacion_datos().get_datos_verificados() })
def edit(request, matricula_id): """ Edición de los datos de una matricula. """ matricula = ExtensionAulicaMatricula.objects.get(pk=matricula_id) extension_aulica = __get_extension_aulica(request, matricula.extension_aulica_id) if request.method == 'POST': form = ExtensionAulicaMatriculaForm(request.POST, instance=matricula, extension_aulica=extension_aulica) if form.is_valid(): matricula = form.save(commit=False) matricula.set_formacion_continua() matricula.set_formacion_docente() matricula.save() request.set_flash('success', 'Datos actualizados correctamente.') return HttpResponseRedirect(reverse('extensionAulicaMatriculaIndexExtensionAulica', args=[matricula.extension_aulica_id])) else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = ExtensionAulicaMatriculaForm(instance=matricula, extension_aulica=extension_aulica) return my_render(request, 'registro/extension_aulica/matricula/edit.html', { 'form': form, 'matricula': matricula, 'extension_aulica': extension_aulica, })
def edit(request, carrera_id): """ Edición de los datos de una carrera. """ carrera = Carrera.objects.get(pk=carrera_id) estado_actual_id = carrera.estado.id if request.method == 'POST': form = CarreraForm(request.POST, instance=carrera, initial={'estado': estado_actual_id}) if form.is_valid(): carrera = form.save(commit=False) "Cambiar el estado?" if int(request.POST['estado']) is not estado_actual_id: carrera.estado = EstadoCarrera.objects.get(pk=request.POST['estado']) carrera.save() carrera.registrar_estado() else: # Guardar directamente carrera.save() form.save_m2m() # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = CarreraForm(instance=carrera, initial={'estado': estado_actual_id}) return my_render(request, 'titulos/carrera/edit.html', { 'form': form, 'carrera': carrera, })
def cohortes_por_carrera_jurisdiccional(request, carrera_jurisdiccional_id): "Cohortes por título" carrera_jurisdiccional = CarreraJurisdiccional.objects.get(pk=carrera_jurisdiccional_id) q = Cohorte.objects.filter(carrera_jurisdiccional__id=carrera_jurisdiccional.id) paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'titulos/cohorte/cohortes_por_carrera_jurisdiccional.html', { #'form_filters': form_filter, 'carrera_jurisdiccional': carrera_jurisdiccional, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1 })