Changeset 547f39a in observatorio


Ignore:
Timestamp:
Jul 22, 2014, 3:14:07 PM (10 years ago)
Author:
Ing. Roldan Vargas <rvargas@…>
Branches:
master
Children:
feaffe3
Parents:
43b5dcf
Message:

agregada funcionalidad para actualizar combos dependientes

Location:
procesos
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • procesos/apps/comun/ajax.py

    r7c9f979 r547f39a  
    11# -*- coding: utf-8 -*-
    2 from dajax.core import Dajax
     2#from dajax.core import Dajax
     3from django.http import HttpResponse
     4from datetime import date
     5from django.db.models.loading import get_model
     6import json
     7
     8# Funciones AJAX
     9msg_not_ajax = "No se puede procesar la carga de la imagen en su navegador. Verifique que posea las opciones " \
     10               "javascript habilitadas"
    311
    412
    5 def reiniciarForm(request):
     13def generar_consulta(request):
     14    try:
     15        if not request.is_ajax():
     16            return HttpResponse(json.dumps({'resultado': False, 'error': msg_not_ajax}))
     17
     18        rif = request.GET.get('rif', None)
     19        narriba = request.GET.get('narriba', None)
     20        nabajo = request.GET.get('nabajo', None)
     21
     22        if rif and narriba and nabajo:
     23            annyo = request.GET.get('annyo', None)
     24
     25            ahora = date.today().isoformat()
     26            return HttpResponse(json.dumps({'resultado': True, 'ahora': ahora, 'annyo': annyo,
     27                                            'usuario': str(request.user)}))
     28        else:
     29            return HttpResponse(json.dumps({'resultado': False, 'error': 'Falta alguno de los datos para procesar el '
     30                                                                         'gráfico de la cadena de producción'}))
     31
     32    except Exception, e:
     33        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
     34
     35
     36def actualizar_combo(request):
     37    try:
     38        if not request.is_ajax():
     39            return HttpResponse(json.dumps({'resultado': False, 'error': msg_not_ajax}))
     40
     41        cod = request.GET.get('opcion', None)
     42        combo = request.GET.get('combo', None)
     43        app = request.GET.get('app', None)
     44        mod = request.GET.get('mod', None)
     45        campo = request.GET.get('campo', None)
     46        n_value = request.GET.get('n_value', None)
     47        n_text = request.GET.get('n_text', None)
     48        bd = request.GET.get('bd', None)
     49
     50        if cod and combo and app and mod and campo and n_value and n_text and bd:
     51            modelo = get_model(app, mod)
     52            filtro = {campo: cod}
     53            out = "<option value='0'>Seleccione...</option>"
     54
     55            combo_disabled = "false"
     56
     57            if cod != "" and cod != "0":
     58                for o in modelo.objects.using(bd).filter(**filtro).order_by(n_text):
     59                    out = "%s<option value='%s'>%s</option>" \
     60                          % (out, o.__getattribute__(n_value).encode("utf-8"),
     61                             o.__getattribute__(n_text).encode("utf-8"))
     62
     63            else:
     64                combo_disabled = "true"
     65
     66            return HttpResponse(json.dumps({'resultado': True, 'combo_disabled': combo_disabled, 'combo_html': out}))
     67
     68        else:
     69            return HttpResponse(json.dumps({'resultado': False,
     70                                            'error': 'No se ha especificado el código del municipio'}))
     71
     72    except Exception, e:
     73        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
     74
     75
     76"""def reiniciarForm(request):
    677    dajax = Dajax()
    778    dajax.script("window.location='"+request.POST['url']+"'")
    8     return dajax
     79    return dajax"""
  • procesos/apps/comun/urls.py

    r4437adc r547f39a  
    1212   url(r'^base_menu/?$', 'comun.views.base_menu', name='acceso al sistema'),
    1313   url(r'^banner/?$', 'comun.views.banner', name='banner'),
     14   url(r'^ajax/generar_consulta/?$', 'comun.ajax.generar_consulta', name='generar_consulta'),
     15   url(r'^ajax/actualizar_combo/?$', 'comun.ajax.actualizar_combo', name='actualizar_combo'),
    1416)
  • procesos/media/js/ajax-request.js

    ra0e0e20 r547f39a  
    3838    });
    3939}
     40
     41function actualizar_combo(url, opcion, combo, app, mod, campo, n_value, n_text, bd) {
     42    $.getJSON(url, {opcion:opcion, combo:combo, app:app, mod:mod, campo:campo, n_value:n_value,
     43        n_text: n_text, bd:bd}, function(datos) {
     44        if (datos.resultado) {
     45            if (datos.combo_disabled == "false") {
     46                $("#"+combo).removeAttr("disabled");
     47            }
     48            else {
     49                $("#"+combo).attr("disabled", "true");
     50            }
     51
     52            $("#"+combo).html(datos.combo_html);
     53        }
     54        else {
     55            alert(datos.error);
     56        }
     57    }).fail(function(jqxhr, textStatus, error) {
     58         var err = textStatus + ", " + error;
     59         alert( "Petición fallida. Verifique el error: " + err );
     60    });
     61}
Note: See TracChangeset for help on using the changeset viewer.