def create(request,template_name="oa/schedule/add_form.html"): """添加周课表""" user = request.user schools = helpers.get_schools(user) is_admin = helpers.is_school_admin(request.user) if is_admin: school_id = schools[0].id groups = Group.objects.filter(school_id=school_id).exclude(type=3) else: group_pks = [g.group_id for g in GroupTeacher.objects.filter(teacher=user.teacher)] groups = Group.objects.filter(pk__in=group_pks) group_count = groups.count() group_id = int(request.GET.get("class_id",-1)) ctx = {'schools':schools,'groups':groups,'group_count':group_count} if request.method == 'POST': form = ScheduleForm(request.POST,request.FILES) group_id = request.POST.get("group","") if form.is_valid(): schedule = form.save(commit=False) schedule.save() group = schedule.group messages.success(request, u'课表 %s 上传成功' % schedule.name) return redirect(request.get_full_path() + '?class_id=' + str(group.id)) else: form = ScheduleForm() ctx.update({'form':form,"group_id":group_id}) return render(request, template_name, ctx)
def teacher_index(request, template_name="oa/schedule/teacher_index.html"): """周课表列表页""" user = request.user schools = helpers.get_schools(user) school_id = int(request.GET.get("sid",-1)) group_id = int(request.GET.get("gid",-1)) try: school = get_object_or_404(School, pk=school_id) except: school = None is_admin = helpers.is_school_admin(request.user) if is_admin: groups = Group.objects.filter(school_id=school_id).exclude(type=3) else: group_pks = [g.group_id for g in GroupTeacher.objects.filter(teacher=user.teacher)] groups = Group.objects.filter(pk__in=group_pks) group_count = groups.count() schedules = Schedule.objects.all() try: group = Group.objects.get(pk=group_id) except: group = None schedules = Schedule.objects.filter(user=user) if school: schedules = schedules.filter(group__school=school) if group: schedules = schedules.filter(group=group) ctx = {"schedules":schedules,"group":group,"groups":groups,\ "schools":schools,"school":school,'group_count':group_count} return render(request, template_name, ctx)