예제 #1
0
def supply_category(request, template_name="supply/category_form.html"):
    """物资类别设置"""
    schools = get_schools(request.user)
    school_id = int(request.GET.get("sid")) if request.GET.get("sid") else 0
    school = user_manage_school(request.user,school_id)
    extra = int(request.GET.get("extra", 0))
    categorys = []
    category_list = []
    for p in SupplyCategory.objects.filter(school=school,parent_id=0):
        categorys.append(p)
        category_list.append({'name':p.name,'parent':None})
        for s in SupplyCategory.objects.filter(school=school,parent=p):
            categorys.append(s)
            category_list.append({'name':s.name,'parent':s.parent})
    
    if request.method == 'POST':
        extra = request.POST['form-TOTAL_FORMS']
        formset = formset_factory(SupplyCategoryForm, extra=extra)
        form = formset(request.POST,initial=category_list)
        
        if form.is_valid():
            i = 0
            for f in form:
                try:
                    cat = categorys[i]
                    cat.name = f['name'].value()
                    cat.save()
                except:
                    cat = f.save(commit=False)
                    if not f['parent'].value():
                        cat.parent_id = 0
                    cat.school = school
                    cat.save()
                i += 1
            messages.success(request, u'操作成功')
            redirect_url = reverse('oa_supply_category') + "?sid=" + str(school_id)
            return redirect(redirect_url)
    else:
        formset = formset_factory(SupplyCategoryForm,extra=extra)
        form = formset(initial=category_list)

    ctx = {'form':form,'extra':extra,'categorys':categorys,'schools':schools,'school':school}
    return render(request, template_name,ctx)
예제 #2
0
파일: disk.py 프로젝트: nuannuanwu/weixiao
def disk_category(request, template_name="disk/category_form.html"):
    """网盘类别设置"""
    schools = get_schools(request.user)
    school_id = int(request.GET.get("sid")) if request.GET.get("sid") else 0
    type = int(request.GET.get("ty")) if request.GET.get("ty") else 0
    school = user_manage_school(request.user,school_id)
    extra = int(request.GET.get("extra", 0))
    categorys = []
    category_list = []
    if type == 1 and request.user.teacher.school.parent_id == 0:
        p_list = DiskCategory.objects.filter(school_id=school_id,parent_id=0,type=type)
    else:
        p_list = DiskCategory.objects.filter(school=school,parent_id=0,type=type)
    if type == 0:
        p_list = p_list.filter(user=request.user)
    for p in p_list:
        categorys.append(p)
        category_list.append({'name':p.name,'parent':None})
        for s in DiskCategory.objects.filter(school=school,parent=p,type=type):
            categorys.append(s)
            category_list.append({'name':s.name,'parent':s.parent})
    
    if request.method == 'POST':
        if type == 1 and school_id == 0:
            messages.success(request, u'请选择机构')
            return redirect(reverse('oa_disk_category') + "?sid=" + str(school_id) + "&ty=" + str(type)) 
        extra = request.POST['form-TOTAL_FORMS']
        formset = formset_factory(DiskCategoryForm, extra=extra)
        form = formset(request.POST,initial=category_list)
        
        if request.is_ajax():
            error_list = []
            for fo in for4:
                error_list = error_list + fo.errors.items()
            return helpers.ajax_validate_form_error_list(error_list)
        
        if form.is_valid():
            i = 0
            for f in form:
                try:
                    cat = categorys[i]
                    cat.name = f['name'].value()
                    if type == 0:
                        cat.user = request.user
                    cat.save()
                except:
                    cat = f.save(commit=False)
                    if not f['parent'].value():
                        cat.parent_id = 0
                    cat.school = school
                    cat.type = type
                    if type == 0:
                        cat.user = request.user
                    cat.save()
                i += 1
            messages.success(request, u'操作成功')
            return redirect(reverse('oa_disk_category') + "?sid=" + str(school_id) + "&ty=" + str(type)) 
    else:
        formset = formset_factory(DiskCategoryForm,extra=extra)
        form = formset(initial=category_list)

    ctx = {'form':form,'extra':extra,'categorys':categorys,'sid':school_id,'schools':schools,"type":type}
    return render(request, template_name,ctx)