def add_or_edit_class(request, class_pk=None): if class_pk: clss = get_object_or_404(Class, pk=class_pk) else: clss = Class() if request.method == 'POST': form = ClassForm(request.POST, instance=clss) if form.is_valid(): clss.start = datetime.datetime.strptime('11-14-2015 '+request.POST.get('start_time')+':'+request.POST.get('start_min'), '%m-%d-%Y %H:%M') clss.end = datetime.datetime.strptime('11-14-2015 '+request.POST.get('end_time')+':'+request.POST.get('end_min'), '%m-%d-%Y %H:%M') form.save() clss.save() clss.wl_moveup() return redirect(add_or_edit_class) form = ClassForm(instance=clss) classes = Class.objects.all() context = { 'form': form, 'classes': classes, } return render(request, 'templates/manage_classes.html', context)
def create_class(request): if not is_teacher(request.user): return redirect('index') class_form = ClassForm(request.POST or None) if class_form.is_valid(): classe = class_form.save() classe.teachers.add(Teacher.objects.get(user=request.user)) classe.save() return redirect('Classes:index') return render(request, 'classes/form.html', { 'form': class_form, 'edit': False })
def edit_class(request, id): if not is_teacher(request.user): return redirect('index') if not Class.objects.filter( pk=id, teachers__in=[Teacher.objects.get(user=request.user)]): return redirect('Classes:index') my_class = Class.objects.get(pk=id) class_form = ClassForm(request.POST or None, instance=my_class) if class_form.is_valid(): my_class.save() return redirect('Classes:index') return render(request, 'classes/form.html', { 'form': class_form, 'edit': True })
def edit_class(request, id): if not is_teacher(request.user): return redirect('index') if not Class.objects.filter(pk=id, teachers__in=[Teacher.objects.get(user=request.user)]): return redirect('Classes:index') my_class = Class.objects.get(pk=id) class_form = ClassForm(request.POST or None, instance = my_class) if class_form.is_valid(): my_class.save() return redirect('Classes:index') return render(request, 'classes/form.html', { 'form': class_form, 'edit': True })