def setVolunteerGroupbyList(volunteer, id_list):
    try:
        vol_id = str(getattr(volunteer, Volunteer.ID))
    except:
        vol_id = str(1)

    group_all_list = back.getGroupbyDict({})
    for group in group_all_list:
        vol_list = back.getGroupAllDictByObject(group)[Group.VOL_LIST].split(
            '_')
        if vol_id in vol_list:
            vol_list.remove(vol_id)
        if '' in vol_list:
            vol_list.remove('')
        vol_string = '_'.join(vol_list)
        back.setGroup(group, Group.VOL_LIST, vol_string)

    for new_id in id_list:
        new_id = str(new_id)
        if len(back.getGroupbyDict({Group.ID: new_id})) <= 0:
            continue
        group = back.getGroupbyDict({Group.ID: new_id})[0]
        vol_list = back.getGroupAllDictByObject(group)[Group.VOL_LIST].split(
            '_')
        if '' in vol_list:
            vol_list.remove('')
        if vol_id in vol_list:
            print 'Big bug!'
        else:
            vol_list.append(vol_id)
        back.setGroup(group, Group.VOL_LIST, '_'.join(vol_list))
    return True
def setStudentGroupbyList(student, id_list):
    try:
        stu_id = str(getattr(student, Student.ID))
    except:
        stu_id = str(1)

    group_all_list = back.getGroupbyDict({})
    for group in group_all_list:
        stu_list = back.getGroupAllDictByObject(group)[Group.STU_LIST].split(
            '_')
        if stu_id in stu_list:
            stu_list.remove(stu_id)
        if '' in stu_list:
            stu_list.remove('')
        stu_string = '_'.join(stu_list)
        back.setGroup(group, Group.STU_LIST, stu_string)

    for new_id in id_list:
        new_id = str(new_id)
        if len(back.getGroupbyDict({Group.ID: new_id})) <= 0:
            continue
        group = back.getGroupbyDict({Group.ID: new_id})[0]
        stu_list = back.getGroupAllDictByObject(group)[Group.STU_LIST].split(
            '_')
        if '' in stu_list:
            stu_list.remove('')
        if stu_id in stu_list:
            print 'Big bug!'
        else:
            stu_list.append(stu_id)
        back.setGroup(group, Group.STU_LIST, '_'.join(stu_list))
    return True
def getVolunteerGroupIDListString(volunteer):
    try:
        vol_id = getattr(volunteer, Volunteer.ID)
    except:
        vol_id = 1

    group_all_list = back.getGroupbyDict({})
    id_list = []
    for group in group_all_list:
        vol_list = back.getGroupAllDictByObject(group)[Group.VOL_LIST].split(
            '_')
        if str(vol_id) in vol_list:
            id_list.append(str(getattr(group, Group.ID)))
    return ' '.join(id_list)
def getStudentGroupIDListString(student):
    stu_id = 0
    try:
        stu_id = getattr(student, Student.ID)
    except:
        stu_id = 1

    group_all_list = back.getGroupbyDict({})
    id_list = []
    for group in group_all_list:
        stu_list = back.getGroupAllDictByObject(group)[Group.STU_LIST].split(
            '_')
        if str(stu_id) in stu_list:
            id_list.append(str(getattr(group, Group.ID)))
    return ' '.join(id_list)
예제 #5
0
def get_grouplist(request):
    # by dqn14 Nov 7, 2016
    # use this if-else to block violent access
    if request.is_ajax() and request.method == 'POST':
        group_list = back.getGroupbyDict({})
        ret_list = []
        t = [{'value':'', 'string':''}]
        for group in group_list:
            group_info = back.getGroupAllDictByObject(group)
            group_id = group_info[Group.ID]
            group_name = group_info[Group.NAME]
            t.append({'value': str(group_id), 'string': '%s:%s'%(str(group_id), str(group_name))})
        return JsonResponse(t, safe=False)
    else:
        return HttpResponse('Access denied.')
예제 #6
0
def set_volunteer(request):
    # by dqn14 Nov 2, 2016
    # use this if-else to block violent access
    if request.is_ajax() and request.method == 'POST':
        group_id = int(request.POST.get('group_id'))
        student_id_num = request.POST.get('student_num')

        vol_list = vol.getVolunteerbyField(Volunteer.STUDENT_ID, student_id_num)
        if len(vol_list) == 0:
            t = {}
            t['success'] = 'N'
            t['message'] = u'不存在这个志愿者,请重新输入学号,亲'
            return JsonResponse(t)

        volunteer = vol_list[0]
        vol_id = getattr(volunteer, Volunteer.ID)
        try:
            group = back.getGroupbyDict({Group.ID: group_id})[0]
        except:
            t = {}
            t['success'] = 'N'
            t['message'] = u'真的有这个组吗,老师?'
            return JsonResponse(t)

        vol_list = back.getGroupAllDictByObject(group)[Group.VOL_LIST].split('_')
        if '' in vol_list:
            vol_list.remove('')

        if str(vol_id) not in vol_list:
            vol_list.append(str(vol_id))

        back.setGroup(group, Group.VOL_LIST, '_'.join(vol_list))


        t = {}
        t['success']='Y'
        t['message']=u'设置成功'
        return JsonResponse(t)
    else:
        return HttpResponse('Access denied.')