def course_members(request, slug): course = get_object_or_404(Course, slug=slug) course_member = CourseMember(course=course, start=datetime.today()) if request.method == "POST": form = CourseMemberCreateForm(course, request.POST, instance=course_member) if form.is_valid(): course_member = form.save(commit=False) if form.cleaned_data["price"] is not None and form.cleaned_data["expense_group"] is None: course_member.create_individual_expense_group(form.cleaned_data["price"]) else: course_member.expense_group = form.cleaned_data["expense_group"] course_member.save() return HttpResponseRedirect(form.instance.get_absolute_url()) else: form = CourseMemberCreateForm(course, instance=course_member) return render_to_response( "courses/course_member_list.html", {"course": course, "member_list": course.coursemember_set.all(), "create_member": form}, context_instance=RequestContext(request), )
def testUpdate(self): course = Course.objects.get(pk=1) member = CourseMember(course=Course.objects.get(pk=1), student=Student.objects.get(pk=1), start='2008-01-01', expense_group=course.expensegroup_set.get(pk=1)) member.save() response = self.client.get(member.get_absolute_url()) eq_(200, response.status_code) response = self.client.post(member.get_absolute_url(), { 'student':'1', 'start':'2008-01-01', 'end':'2008-12-31', 'expense_group':'1', 'testresult_set-TOTAL_FORMS':'1', 'testresult_set-INITIAL_FORMS':'0', 'coursememberassessment_set-TOTAL_FORMS':'1', 'coursememberassessment_set-INITIAL_FORMS':'0', 'testresult_set-0-test':'1', 'testresult_set-0-points':'100', 'testresult_set-0-date':'2008-01-01', 'coursememberassessment_set-0-description':'xxx', 'coursememberassessment_set-0-date':'2008-01-01', }) self.assertRedirects(response, member.get_absolute_url()) member = CourseMember.objects.get(pk=member.pk) ok_(member.end is not None) eq_(1, member.testresult_set.count()) eq_(1, member.coursememberassessment_set.count())