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)
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" }')
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" }')