Beispiel #1
0
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()
Beispiel #2
0
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,)))
Beispiel #3
0
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,)))
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)