Exemple #1
0
def detailprogress(request):
    global SESSION_PRO_KEY
    if SESSION_PRO_KEY:
        sess_key = SESSION_PRO_KEY
    else:
        sess_key=request.session.session_key+"process"
    Result={}
    processdata=cache.get(sess_key)#0610 ycm 修改进度条 使用缓存存储
    if processdata:
        if processdata['process'] == processdata['total']:
            processdata['index'] = 0
        process = int((processdata['process']*100)/processdata['total'])
        Result['index'] = processdata['index']
        Result['progress']=process
        Result['return_value'] = processdata['return_value']
       
        if process>= 100:
            process=100
            Result['index']=0 #标识符号 ,当为0 就不再来请求
            Result['progress']=100 #进度
            Result['return_value'] = processdata['return_value']#导入结束后提示信息
            cache.delete(sess_key)
            SESSION_PRO_KEY = ""
        return getJSResponse(smart_str(simplejson.dumps(Result)))
        
    else:
        Result['index']=1
        Result['progress']=0
        Result['return_value']=""
        return getJSResponse(smart_str(simplejson.dumps(Result)))
        
def get_view(request, app_label, model_name,view_name):
        model=GetModel(app_label, model_name)
        op=threadlocals.get_current_user()

        obj=ViewModel.objects.filter(model__exact=ContentType.objects.get_for_model(model),name__exact=view_name,create_operator__exact=op.username)
        ret=""
        if len(obj)>0:                
                ret=eval(obj[0].info)
                ret["viewtype"]=obj[0].viewtype
                ret=simplejson.dumps(ret)
        return getJSResponse(ret)
Exemple #3
0
def save_view(request, app_label, model_name):
    try:
        ret = {}
        op = threadlocals.get_current_user()
        #print op
        obj = GetModel(app_label, model_name)
        para = dict(request.POST)
        view_name = para['viewname'][0]
        defaultview = ""

        vi = ViewModel.objects.filter(
            model__exact=ContentType.objects.get_for_model(obj),
            name__exact=view_name,
            create_operator__exact=op.username)
        if vi:
            newview = vi[0]
        else:
            newview = ViewModel()
        newview.name = para['viewname'][0]
        newview.viewtype = para['viewtype'][0]
        col_set = []
        fun_set = {}
        filter_set = {}
        other_set = {}
        sort = {}
        fieldswidth = {}
        sort["firstsort"] = [para['firstsort'][0], para['sort1'][0]]
        sort["secondsort"] = [para['secondsort'][0], para['sort2'][0]]
        field_prefix = "%s." % obj.__name__
        flen = len(field_prefix)
        #print field_prefix, flen
        view_property = {}
        col = []
        for name, value in para.items():
            if name not in [
                    'viewname', 'firstsort', 'secondsort', 'sort1', 'sort2',
                    'viewtype'
            ]:
                if name.startswith("_fun_"):

                    fun_set[name[5:]] = value[0]

                elif name.startswith("_col_"):
                    name = name[5:]

                    if name.find(field_prefix) == 0:
                        col.append([value[0], str(name[flen:])])
                    elif name.find('.') > 0:
                        col.append([value[0], "__".join(name.split('.'))])

                elif name.startswith("_filter_"):
                    filter_set[name[8:]] = value[0]

                elif name.startswith("_other_"):
                    other_set[name[7:]] = value[0]
                elif name.startswith("_txt_"):
                    fieldswidth[name[5:]] = value[0]
                else:
                    view_property[name] = value[0]
        #print pset
        col.sort()
        for i in col:
            col_set.append(i[1])
        defaultview = ""
        if para.has_key('defaultview'):
            defaultview = 'true'
            view_property['defaultview'] = 'true'
        if defaultview == 'true':
            #print 'find'
            allvi = ViewModel.objects.filter(
                model__exact=ContentType.objects.get_for_model(obj),
                create_operator__exact=op.username)
            for v in allvi:
                info = eval(v.info)
                #print info
                info["defaultview"] = 'false'
                v.info = simplejson.dumps(info)
                v.save()

        view_property['fields'] = col_set
        view_property['action'] = fun_set
        view_property['filter'] = filter_set
        view_property['other'] = other_set
        view_property['sort'] = sort

        view_property['fieldswidth'] = fieldswidth
        pset = simplejson.dumps(view_property)
        newview.info = pset
        newview.model = ContentType.objects.get_for_model(obj)
        newview.save()
        vj = get_all_viewJson(obj)

    except:
        import traceback
        traceback.print_exc()

        ret["flag"] = "false"
        ret["msg"] = "save fail"
        ret["options"] = ""
        return getJSResponse(smart_str(simplejson.dumps(ret)))
    ret["flag"] = "true"
    ret["msg"] = "save success!"
    ret["options"] = vj

    return getJSResponse(smart_str(simplejson.dumps(ret)))
def doPostAdmin(request, dataModel, dataKey=None):
    '''
        User编辑提交处理
        '''
    f = adminForm(request, data=request.POST, dataKey=dataKey)
    if not f.is_valid():
        return retUserForm(request, f, isAdd=(dataKey == "_new_"))
    else:
        try:
            old_user = {}
            if dataKey and dataKey != "_new_":
                u_old = User.objects.get(pk=dataKey)
                old_user = {
                    "username":
                    u_old.username,
                    "first_name":
                    u_old.first_name,
                    "last_name":
                    u_old.last_name,
                    "email":
                    u"%s" % u_old.email,
                    "is_staff":
                    u_old.is_staff,
                    "is_superuser":
                    u_old.is_superuser,
                    "last_login":
                    u_old.last_login,
                    "groups":
                    ",".join([str(e.pk) for e in u_old.groups.get_query_set()])
                }

            u = f.save()
            k = "user_id_%s" % u.pk
            cache.delete(k)

            new_user = {}
            if dataKey and dataKey != "_new_":
                new_user = {
                    "username":
                    u.username,
                    "first_name":
                    u.first_name,
                    "last_name":
                    u.last_name,
                    "email":
                    u"%s" % u.email,
                    "is_staff":
                    u.is_staff,
                    "is_superuser":
                    u.is_superuser,
                    "last_login":
                    u.last_login,
                    "groups":
                    ",".join([str(e.pk) for e in u.groups.get_query_set()])
                }
                change_info = []
                for k, v in old_user.items():
                    if new_user[k] != v:
                        change_info.append(u"%s(%s->%s)" % (k, v, new_user[k]))

                from base.models_logentry import LogEntry, CHANGE
                from django.contrib.contenttypes.models import ContentType
                LogEntry.objects.log_action(
                    user_id=request.user and request.user.pk or None,
                    content_type_id=ContentType.objects.get_for_model(User).pk,
                    object_id=u.pk,
                    object_repr=u.username,
                    action_flag=CHANGE,
                    change_message=";".join(change_info))
        except:
            return render_to_response(
                "info.html", {
                    "title": _(u"用户"),
                    "content":
                    u"<ul class='errorlist'><li>%(username)s %(store)s</li></ul>"
                    % {
                        "username": f.cleaned_data['username'],
                        "store": _(u"用户已经存在")
                    }
                })
        save_operatorfinger(request)  #保存用户指纹
        del_operatorfinnger(request)  #删除用户指纹
        return getJSResponse('{ Info:"OK" }')
Exemple #5
0
def save_view(request, app_label, model_name):        
        try:
                ret={}
                op=threadlocals.get_current_user()
                #print op
                obj=GetModel(app_label, model_name)
                para=dict(request.POST)        
                view_name=para['viewname'][0]
                defaultview=""
                
                
                vi=ViewModel.objects.filter(model__exact=ContentType.objects.get_for_model(obj),name__exact=view_name,create_operator__exact=op.username)
                if vi:
                        newview=vi[0]
                else:
                        newview=ViewModel()                
                newview.name=para['viewname'][0]
                newview.viewtype=para['viewtype'][0]
                col_set=[]
                fun_set={}
                filter_set={}
                other_set={}
                sort={}
                fieldswidth={}
                sort["firstsort"]=[para['firstsort'][0],para['sort1'][0]]
                sort["secondsort"]=[para['secondsort'][0],para['sort2'][0]]
                field_prefix="%s."%obj.__name__
                flen=len(field_prefix)
                #print field_prefix, flen
                view_property={}
                col=[]
                for name,value in para.items():
                        if name not in ['viewname','firstsort','secondsort','sort1','sort2','viewtype']:
                                if name.startswith("_fun_"):                                        
                                        
                                        fun_set[name[5:]]=value[0]                                        
                                        
                                elif name.startswith("_col_"):
                                        name=name[5:]
                                        
                                        if name.find(field_prefix)==0:
                                                col.append([value[0],str(name[flen:])])
                                        elif name.find('.')>0:
                                                col.append([value[0],"__".join(name.split('.'))])
                                
                                elif name.startswith("_filter_"):
                                                filter_set[name[8:]]=value[0]
                                        
                                elif name.startswith("_other_"):
                                        other_set[name[7:]]=value[0]
                                elif name.startswith("_txt_"):
                                        fieldswidth[name[5:]]=value[0]
                                else:
                                        view_property[name]=value[0]
                #print pset
                col.sort()
                for i in col:
                        col_set.append(i[1])
                defaultview=""
                if para.has_key('defaultview'):
                        defaultview='true'
                        view_property['defaultview']='true'
                if defaultview=='true':
                        #print 'find'
                        allvi=ViewModel.objects.filter(model__exact=ContentType.objects.get_for_model(obj),create_operator__exact=op.username)
                        for v in allvi:
                                info=eval(v.info)
                                #print info
                                info["defaultview"]='false'
                                v.info=simplejson.dumps(info)
                                v.save()
                
                view_property['fields']=col_set
                view_property['action']=fun_set
                view_property['filter']=filter_set
                view_property['other']=other_set
                view_property['sort']=sort                
                
                view_property['fieldswidth']=fieldswidth                
                pset=simplejson.dumps(view_property)
                newview.info=pset
                newview.model=ContentType.objects.get_for_model(obj)
                newview.save()
                vj=get_all_viewJson(obj)
                
        except:
                import traceback; traceback.print_exc()
                
                ret["flag"]="false"
                ret["msg"]="save fail"
                ret["options"]=""
                return getJSResponse(smart_str(simplejson.dumps(ret)))
        ret["flag"]="true"
        ret["msg"]="save success!"
        ret["options"]=vj
        
        return getJSResponse(smart_str(simplejson.dumps(ret)))
def doPostAdmin(request, dataModel, dataKey=None):
        '''
        User编辑提交处理
        '''
        f=adminForm(request, data=request.POST, dataKey=dataKey)
        if not f.is_valid():
                return retUserForm(request,f, isAdd=(dataKey=="_new_"))
        else:
                try:       
                        old_user={}
                        if dataKey and dataKey!="_new_":
                             u_old=User.objects.get(pk=dataKey)
                             old_user={
                                        "username":u_old.username,
                                        "first_name":u_old.first_name,
                                        "last_name":u_old.last_name,
                                        "email":u"%s"%u_old.email,
                                        "is_staff":u_old.is_staff,
                                        "is_superuser":u_old.is_superuser,
                                        "last_login":u_old.last_login,
                                        "groups":",".join([str(e.pk) for e in u_old.groups.get_query_set()])
                                        } 
                                        
                        u=f.save()
                        k="user_id_%s"%u.pk
                        cache.delete(k)
                        
                        new_user={}
                        if dataKey and dataKey!="_new_":
                            new_user={
                                "username":u.username,
                                "first_name":u.first_name,
                                "last_name":u.last_name,
                                "email":u"%s"%u.email,
                                "is_staff":u.is_staff,
                                "is_superuser":u.is_superuser,
                                "last_login":u.last_login,
                                "groups":",".join([str(e.pk) for e in u.groups.get_query_set()])
                            }
                            change_info=[]
                            for k,v  in old_user.items():
                                    if new_user[k]!=v:
                                        change_info.append(u"%s(%s->%s)"%(k,v,new_user[k]))
        
                            from base.models_logentry import LogEntry, CHANGE
                            from django.contrib.contenttypes.models import ContentType
                            LogEntry.objects.log_action(
                                    user_id                 = request.user and request.user.pk or None,
                                    content_type_id = ContentType.objects.get_for_model(User).pk,
                                    object_id           = u.pk,
                                    object_repr         = u.username,
                                    action_flag         = CHANGE,
                                    change_message      = ";".join(change_info)
                            )
                except:
                        return render_to_response("info.html", {"title":  _(u"用户"), 
                                                        "content": u"<ul class='errorlist'><li>%(username)s %(store)s</li></ul>"%{"username":f.cleaned_data['username'],"store":_(u"用户已经存在")}
                                                        })
                save_operatorfinger(request)    #保存用户指纹
                del_operatorfinnger(request)    #删除用户指纹
                return getJSResponse('{ Info:"OK" }')