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)
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)