def select_all_emp_data(request, model_name): model = { "USER_TEMP_SCH": USER_TEMP_SCH, "USER_OF_RUN": USER_OF_RUN, } try: ignore_keys = [] Cls = model[model_name] qs = Cls.objects.all() dept_emp_all = request.REQUEST.get("dept_emp_all", None) if dept_emp_all == 'true': dept_childrens = request.REQUEST.get("dept_childrens", None) if dept_childrens == 'true': depts = request.REQUEST.get("UserID__DeptID__in", None) if depts: depts = depts.split(",") depts = get_dept_from_all(depts, request) qs = get_max_in(qs, depts, "UserID__DeptID__in") ignore_keys.extend(["UserID__DeptID__in", "UserID__in"]) else: ignore_keys.append("UserID__DeptID__in") return model_data_list(request, Cls, qs, ignore_keys=ignore_keys) except: import traceback traceback.print_exc()
def response_datalist(request, data): fn="_tmp_%s"%id(data) attrs=dict([(k, models.CharField(max_length=1024, verbose_name=k)) for k in data['fields']]) admin_attrs={"read_only":True, "cache": False, "log":False} utils.save_tmp_file(fn, (attrs, admin_attrs, data['data'])) model=create_model(fn, base_model=models.Model, attrs=attrs, admin_attrs=admin_attrs) return dataviewdb.model_data_list(request, model, QSList(model,data['data']), model_url=reverse(data_list, args=(fn,)))
def data_list(request, fn): attrs, admin_attrs, data=utils.load_tmp_file(fn) #print "attrs:%s"%attrs #print "admin_attrs:%s"%admin_attrs model=create_model(fn.encode("utf-8"), base_model=models.Model, attrs=attrs, admin_attrs=admin_attrs) return dataviewdb.model_data_list(request, model, QSList(model,data), model_url=reverse(data_list, args=(fn,)))
def select_meeting_data(request): from mysite.meeting.models.model_meeting import MeetingEntity from mysite.meeting.models.room import Room # from mysite.iclock.models.room import Room from dbapp.dataviewdb import model_data_list import json all_meeting = request.REQUEST.get("all_meeting", None) if all_meeting == "all": qs = MeetingEntity.all_objects.all() else: qs = MeetingEntity.objects.all() return model_data_list(request, MeetingEntity, qs)
def select_emp_data2(request): '''筛选会议人员,会议系统专用 scott add''' from mysite.personnel.models.model_emp import Employee from mysite.personnel.models.model_issuecard import IssueCard, CARD_VALID, CARD_STOP, CARD_LOST, CARD_OVERDUE, POS_CARD from mysite.meeting.models.meeting_emp import MeetingEmp mes = MeetingEmp.objects.all() pins = [] for me in mes: pins.append(me.user.PIN) all_emp = request.REQUEST.get("all_emp", None) if all_emp == "all": qs = Employee.all_objects.filter(PIN__in=pins) elif all_emp == "filed_card": #获取没发卡人员 if get_option("POS_IC"): ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD, sys_card_no__isnull=False).values_list('UserID') #获取已发卡人员ID elif get_option("POS_ID"): ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD).values_list('UserID') #获取已发卡人员ID else: ids = IssueCard.objects.filter(cardstatus=CARD_VALID).values_list( 'UserID') #获取已发卡人员ID qs = Employee.objects.all().exclude(id__in=ids).filter(PIN__in=pins) # qs = Employee.objects.all().filter(using_card="") elif all_emp == "filed_having_card": #获取已发卡人员 if get_option("POS_IC"): ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD, sys_card_no__isnull=False).values_list('UserID') #获取已发卡人员ID elif get_option("POS_ID"): ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD).values_list('UserID') #获取已发卡人员ID else: ids = IssueCard.objects.filter(cardstatus=CARD_VALID).values_list( 'UserID') #获取已发卡人员ID qs = Employee.objects.all().filter(id__in=ids).filter(PIN__in=pins) # qs = Employee.objects.all().exclude(using_card="") else: qs = Employee.objects.filter(PIN__in=pins) return model_data_list(request, Employee, qs)
def select_emp_data(request): from mysite.personnel.models.model_emp import Employee from mysite.personnel.models.model_issuecard import IssueCard, CARD_VALID, CARD_STOP, CARD_LOST, CARD_OVERDUE, POS_CARD from mysite.iclock.iutils import get_dept_from_all, get_max_in, contruct_q all_emp = request.REQUEST.get("all_emp", None) orgdept = request.REQUEST.get("PIN__range", "") op_type = request.REQUEST.get("op_type", "") para = dict(request.REQUEST) if all_emp == "all": qs = Employee.all_objects.all() elif all_emp == "filed_card": #获取没发卡人员 if get_option("POS_IC"): ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD, sys_card_no__isnull=False).values_list('UserID') elif get_option("POS_ID"): ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD).values_list('UserID') else: ids = IssueCard.objects.filter( cardstatus=CARD_VALID).values_list('UserID') if orgdept: #批量发卡 where = {} for p in para: if p.find("__") > 0: t = p.split("__") if p.find("__range") > 0: where[str(p)] = eval(para[p]) elif p.find("__in") > 0: where[str(p)] = para[p].split(",") else: where[str(p)] = para[p].decode("utf-8") qs = Employee.objects.all().filter(Q(**where)).exclude(id__in=ids) else: qs = Employee.objects.all().exclude(id__in=ids) # qs = Employee.objects.all().filter(using_card="") elif all_emp == "filed_having_card": #获取已发卡人员 if get_option("POS_IC"): if op_type == "allowance": #补贴特殊处理 from mysite.pos.models.model_allowance import Allowance now_time = datetime.datetime.now() if ONLINE_ALLOWANCE: batch = ((now_time.year - 2000) * 12 + now_time.month) * 31 + now_time.day else: batch = now_time.strftime("%Y%m")[2:] allow_sys_card = Allowance.objects.filter( batch=batch).values_list('sys_card_no') #已领取补贴卡账号 ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD, sys_card_no__isnull=False).exclude( sys_card_no__in=allow_sys_card).values_list( 'UserID') #获取没领取补贴人员ID else: ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD, sys_card_no__isnull=False).values_list( 'UserID') #获取已发卡人员ID elif get_option("POS_ID"): ids = IssueCard.objects.filter( cardstatus__in=[CARD_VALID, CARD_OVERDUE], card_privage=POS_CARD).values_list('UserID') #获取已发卡人员ID else: ids = IssueCard.objects.filter(cardstatus=CARD_VALID).values_list( 'UserID') #获取已发卡人员ID # q_data = Employee.objects.all() # try: # qs = get_max_in_ids(q_data,ids) # except: # import traceback;traceback.print_exc() qs = Employee.objects.all().filter(id__in=ids) # qs = Employee.objects.all().exclude(using_card="") else: qs = Employee.objects.all() ignore_keys = [] checked_child = request.REQUEST.get("checked_child", None) if checked_child == "true": dept_ids = request.REQUEST.get("DeptID__id__in", None) if dept_ids: dept_ids = dept_ids.split(",") dept_ids = [int(e) for e in dept_ids] dept_obj = get_dept_from_all(dept_ids, request) if len(dept_obj) > 1000: query = [] while dept_obj: query.append(Q(DeptID__in=dept_obj[:900])) dept_obj = dept_obj[900:] combine_query = query[0] for qq in query[1:]: combine_query |= qq qs = qs.filter(combine_query) else: qs = qs.filter(DeptID__in=dept_obj) ignore_keys = ["DeptID__id__in"] return model_data_list(request, Employee, qs, ignore_keys=ignore_keys)