Esempio n. 1
0
def advance_query_index(request, app_label, model_name):
    enq = Enquiry(model_name)
    x = enq.findAllRelationTables(None)
    #print enq.parentProperty
    b = enq.getAllFields(*x)
    condition = {
        "=": _(u"等于"),
        ">=": _(u"大于等于"),
        ">": _(u"大于"),
        "<=": _(u"小于等于"),
        "<": _(u"小于"),
        "in": _(u"满足任意一个"),
        "contains": _(u"含有"),
        "isnull": _(u"等于空值"),
    }
    #print condition
    html = writeDiv(enq.alltables, enq.allfields, enq.relatetable,
                    enq.parentProperty, b, enq.subTableProperty)
    form = gen_form_fields(enq.alltables, enq.allfields)
    #print form.as_table()
    t = loader.get_template("advenquiry.html")
    #return t.render(RequestContext(request,{'tablesName':"enq_" +model_name,"div": html,"cond":condition}))
    return render_to_response(
        "advenquiry.html", {
            'tablesName': "enq_" + model_name,
            "div": html,
            "cond": condition,
            'form': form
        })
Esempio n. 2
0
def enquiryResult(request, model_name):
    '''
    没有被调用
    '''
    enq=Enquiry(str(model_name))
    cpcd={
              ">":"__gt",
              ">=":"__gte",
              "<":"__lt",
              "<=":"__lte",
              "=":"__exact",
              "contains":"__contains",
              "in":"__in",
              "isnull":"__isnull",                            
        }
    where={}
    if request.method=="POST":
        if request.POST.has_key("lstWhere"):
            tstr=request.POST.get("lstWhere")
         
        if request.POST.has_key("lstWhere"):
            tstr=request.POST.get("lstWhere")
            tmp=tstr.split("\n")           
            
            for x in tmp[0:len(tmp)-1]:
                val=x.split()
                lk=val[0].encode("ascii")
                rk=val[1].encode("ascii")
                if len(val)>2:
                    va=val[2].encode("ascii")
                else:
                    va=""
                if va.find(",")>0:
                    va=va.split(",")
                if rk=="isnull":
                    va=True
                    
                where[lk+cpcd[rk]]=va               
        table=str(model_name)
        n=enq.Search(table,**where)       
      
        c = Context({
        'values': n
        })
        if len(n)>0:
            return HttpResponse("sucess")
        else:
            return HttpResponse("fail")
    else:
        return HttpResponse("fail")
Esempio n. 3
0
def advance_query_index(request,app_label,model_name):
    enq=Enquiry(model_name)
    x=enq.findAllRelationTables(None) 
    #print enq.parentProperty
    b=enq.getAllFields(*x)
    condition={
    "=":_(u"等于"),
    ">=":_(u"大于等于"),
    ">":_(u"大于"),
    "<=":_(u"小于等于"),
    "<":_(u"小于"),
    "in":_(u"满足任意一个"),
    "contains":_(u"含有"),
    "isnull":_(u"等于空值"),
  
    }
    #print condition
    html= writeDiv(enq.alltables,enq.allfields,enq.relatetable,enq.parentProperty,b,enq.subTableProperty)
    form=gen_form_fields(enq.alltables,enq.allfields)
    #print form.as_table()
    t=loader.get_template("advenquiry.html")
    #return t.render(RequestContext(request,{'tablesName':"enq_" +model_name,"div": html,"cond":condition}))
    return render_to_response("advenquiry.html",{'tablesName':"enq_" +model_name,"div": html,"cond":condition,'form':form})
Esempio n. 4
0
def setview(request,app_label,model_name):
    try:
        actions={}
        dataModel=""
        enq=Enquiry(model_name)
        x=enq.findAllRelationTables(None) 
        dataModel=x[0]
        x=[x[0]]
        fields=enq.getAllFields(*x)
        #视图类型
        from dbapp.models import VIEWTYPE_CHOICES
        viewtype=("%s"%n for n,v in VIEWTYPE_CHOICES)
        
        #操作权限
        if hasattr(dataModel,"get_all_operations"):
            action=dataModel.get_all_operations()
        else:
            action=[]
        for act in action:
            if hasattr(dataModel,act):
                pr=getattr(dataModel,act)
                actions[act]=u"%s"%pr.operation_name
        t=loader.get_template("view.html")
        
        relfield={}
        for name,value in enq.relatetable.items():
            relfield[value]=name
        #print relfield
       
       
        tfs={}
        #当前模型字段
        modelfields={}
        for fld in enq.allfields:
            if fld.split(".")[0]==dataModel.__name__:
                modelfields[fld.split(".")[1]]=fields[fld][3]
                tfs[fld]=fields[fld][3]
        
      
        #关联表字段
        for fld in enq.allfields:
            if fld.split(".")[0].lower()!=dataModel.__name__.lower():
                tfs[fld]=fields[relfield[fld.split(".")[0]]][3]+"." +fields[fld][3]

        #当前模型过滤器字段列表
        #print modelfields

        viewfilter={}
        try:
            if hasattr(dataModel.Admin,"list_filter"):
                for fld in dataModel.Admin.list_filter:
                    viewfilter[dataModel.__name__+"." +fld]=fields[dataModel.__name__+"."+fld][3]

        except:
            import traceback; traceback.print_exc()
            pass
        if viewfilter:
            has_filter=True
        else:
            has_filter=False
        if actions:
            hasaction=True
        else:
            hasaction=False
        
#        return t.render(RequestContext(request,{
#        'has_action':hasaction,'actions':actions,'fields':tfs,'modelfields':modelfields,
#                    'has_filter':has_filter,'viewfilter':viewfilter,
#                    'viewtype':viewtype,'all_fields':fields
#                    }))
#        
        return render_to_response("view.html",{
                            'has_action':hasaction,
                            'actions':actions,
                            'fields':tfs,
                            'modelfields':modelfields,
                            'has_filter':has_filter,
                            'viewfilter':viewfilter,
                            'viewtype':viewtype,
                            'all_fields':fields,
                    }
)
    except:
        
        import traceback; traceback.print_exc()
Esempio n. 5
0
def enquiryResult(request, model_name):
    #p = get_object_or_404(Poll, pk=poll_id)
    #return render_to_response('polls/detail.html', {'poll': p})

    enq = Enquiry(str(model_name))

    #tt=enq.Search(poll_id)
    #return render_to_response(tt)
    cpcd = {
        ">": "__gt",
        ">=": "__gte",
        "<": "__lt",
        "<=": "__lte",
        "=": "__exact",
        "contains": "__contains",
        "in": "__in",
        "isnull": "__isnull",
    }
    where = {}
    if request.method == "POST":
        #print request.POST.items()
        if request.POST.has_key("lstWhere"):
            tstr = request.POST.get("lstWhere")

        if request.POST.has_key("lstWhere"):
            tstr = request.POST.get("lstWhere")
            tmp = tstr.split("\n")

            for x in tmp[0:len(tmp) - 1]:
                val = x.split()
                lk = val[0].encode("ascii")
                rk = val[1].encode("ascii")
                if len(val) > 2:
                    va = val[2].encode("ascii")
                else:
                    va = ""
                if va.find(",") > 0:
                    va = va.split(",")
                if rk == "isnull":
                    va = True

                where[lk + cpcd[rk]] = va

        #print where
    # t = loader.get_template('polls/return.html')

    #return HttpResponse(t.render(c))\

        table = str(model_name)
        n = enq.Search(table, **where)

        c = Context({'values': n})
        #print 'N:',n

        #print getJSResponse(smart_str(n))
        #b={header:["colum1","column2"],data:[["1","1"],["2","2"],["3","3"]]}
        #n=enq.objListToJsonObj()
        #print n
        #return getJSResponse(smart_str(simplejson.dumps(n)))
        if len(n) > 0:
            return HttpResponse("sucess")
        else:
            return HttpResponse("fail")
        #return HttpResponse(t.render(c))
        #return HttpResponse("ab")
    else:
        #return HttpResponse(request)
        return HttpResponse("fail")
Esempio n. 6
0
def setview(request, app_label, model_name):
    try:
        actions = {}
        dataModel = ""
        enq = Enquiry(model_name)
        x = enq.findAllRelationTables(None)
        dataModel = x[0]
        x = [x[0]]
        fields = enq.getAllFields(*x)
        #视图类型
        from dbapp.models import VIEWTYPE_CHOICES
        viewtype = ("%s" % n for n, v in VIEWTYPE_CHOICES)

        #操作权限
        if hasattr(dataModel, "get_all_operations"):
            action = dataModel.get_all_operations()
        else:
            action = []
        for act in action:
            if hasattr(dataModel, act):
                pr = getattr(dataModel, act)
                actions[act] = u"%s" % pr.operation_name
        t = loader.get_template("view.html")

        relfield = {}
        for name, value in enq.relatetable.items():
            relfield[value] = name
        #print relfield

        tfs = {}
        #当前模型字段
        modelfields = {}
        for fld in enq.allfields:
            if fld.split(".")[0] == dataModel.__name__:
                modelfields[fld.split(".")[1]] = fields[fld][3]
                tfs[fld] = fields[fld][3]

        #关联表字段
        for fld in enq.allfields:
            if fld.split(".")[0].lower() != dataModel.__name__.lower():
                tfs[fld] = fields[relfield[fld.split(".")
                                           [0]]][3] + "." + fields[fld][3]

        #当前模型过滤器字段列表
        #print modelfields

        viewfilter = {}
        try:
            if hasattr(dataModel.Admin, "list_filter"):
                for fld in dataModel.Admin.list_filter:
                    viewfilter[dataModel.__name__ + "." +
                               fld] = fields[dataModel.__name__ + "." + fld][3]

        except:
            import traceback
            traceback.print_exc()
            pass
        if viewfilter:
            has_filter = True
        else:
            has_filter = False
        if actions:
            hasaction = True
        else:
            hasaction = False

#        return t.render(RequestContext(request,{
#        'has_action':hasaction,'actions':actions,'fields':tfs,'modelfields':modelfields,
#                    'has_filter':has_filter,'viewfilter':viewfilter,
#                    'viewtype':viewtype,'all_fields':fields
#                    }))
#
        return render_to_response(
            "view.html", {
                'has_action': hasaction,
                'actions': actions,
                'fields': tfs,
                'modelfields': modelfields,
                'has_filter': has_filter,
                'viewfilter': viewfilter,
                'viewtype': viewtype,
                'all_fields': fields,
            })
    except:

        import traceback
        traceback.print_exc()