def updateSyllabus(request, department, class_number, year, semester, section, sid): user = request.user c = getClassObject(department, class_number, year, semester, section, user) s = get_object_or_404(CourseContent, pk=sid) message = '' classUrl = getClassUrl(c) #Updates the syllabus if request.method == 'POST': course = CourseContent(id=sid, cid=c, created_on=s.created_on, was_updated=1, updated_on=datetime.datetime.now() ) form = CourseForm(request.POST, instance=course) if form.is_valid(): form.save() message = 'You have successfully updated the syllabus' else: #Initializes the form with existing syllabus information course = CourseContent.objects.get(cid=c.cid) form = CourseForm(initial={'officeHrs': course.officeHrs, 'officeLocation': course.officeLocation, 'phoneNumber': course.phoneNumber, 'TaOfficeLocation': course.TaOfficeLocation, 'TaOfficeHrs': course.TaOfficeHrs, 'lectTime': course.lectTime, 'prereq': course.prereq, 'books': course.books, 'topics': course.topics, 'markingScheme': course.markingScheme, 'academicHonesty': course.academicHonesty, 'additionalInfo': course.additionalInfo,}) content = getContent(c, user) content['form'] = form content['classUrl'] = classUrl content['message'] = message return render_to_response('instructor/syllabus.html', content, context_instance=RequestContext(request))
def syllabus(request, department, class_number, year, semester, section): user = request.user c = getClassObject(department, class_number, year, semester, section, user) message = '' classUrl = getClassUrl(c) #Form that has defined fields for prof to fill out to create a syllabus if request.method == 'POST': content = CourseContent(cid=c, created_on=datetime.datetime.now(), was_updated=0, updated_on=datetime.datetime.now() ) form = CourseForm(request.POST, instance=content) if form.is_valid(): form.save() message = 'You have successfully created a syllabus' else: #If form exists, redirect to update page, otherwise send blank form try: course = CourseContent.objects.get(cid=c.cid) return HttpResponseRedirect(classUrl+"instructor/syllabus/update/%s" %course.id) except CourseContent.DoesNotExist: form = CourseForm() content = getContent(c, user) content['form'] = form content['message'] = message return render_to_response('instructor/syllabus.html', content, context_instance=RequestContext(request))
def api_add_course(request): if request.method == 'POST': form = CourseForm(request.POST) if form.is_valid(): c = form.save(commit=False) if int(request.POST["lecturer_id"]) == -1: lec = Lecturer.objects.get_or_create(title=request.POST["lecturer_title"], name=request.POST["lecturer_name"], department=request.POST["lecturer_dept"], email=request.POST["lecturer_email"], uni=University.objects.get(id=int(request.POST["uni"])))[0] lec.save() c.lecturer = lec else: c.lecturer = Lecturer(id=int(form.data["lecturer_id"])) c.save() return course(request, c.id) else: print form.errors return add_course(request) return add_course(request)
def create_course( request, course_id=None ): #Firstst of all we need to make user that non-institutions can't create courses if request.user.user_type == "u": return HttpResponseRedirect('/ticwiapp/desktop') #Prepares the information to update or create a new course. #if id: # instance = get_object_or_404(Course, id=course_id) # form = CourseForm(request.POST or None, instance=instance) # if form.is_valid(): # form.update() # return HttpResponseRedirect('/ticwiapp/get/') # course = Course.objects.get(id=id) # dictionary = model_to_dict(course, fields=[], exclude=[]) # form = forms.CourseForm(dictionary) #else: if request.POST: form = CourseForm(request.POST) if form.is_valid(): a = form.save( commit = False ) a.user = request.user a.save() return HttpResponseRedirect('/ticwiapp/desktop') else: form = CourseForm() args = {} args.update(csrf(request)) args['form'] = form args['full_name'] = request.user.username return render_to_response('create_course.html', args)
def api_add_course(request): if request.method == 'POST': form = CourseForm(request.POST) if form.is_valid(): c = form.save(commit=False) if int(request.POST["lecturer_id"]) == -1: lec = Lecturer.objects.get_or_create( title=request.POST["lecturer_title"], name=request.POST["lecturer_name"], department=request.POST["lecturer_dept"], email=request.POST["lecturer_email"], uni=University.objects.get(id=int(request.POST["uni"])))[0] lec.save() c.lecturer = lec else: c.lecturer = Lecturer(id=int(form.data["lecturer_id"])) c.save() return course(request, c.id) else: print form.errors return add_course(request) return add_course(request)
def course_update(request, course_id): if request.method == 'POST': c = Course.objects.get(id=course_id) form = CourseForm(request.POST, request.FILES, instance=c) if form.is_valid(): u = request.user c = form.save() dimentions = (150, 150) if len(request.FILES) == 1: image = request.FILES['image'] c.image.save(image.name, createImage(c.image, dimentions)) name = u.first_name + ' ' + u.last_name username = request.user.username variables_for_template = { 'name': name, 'username': username, } return redirect('/course/' + str(course_id) + '/', variables_for_template) else: variables = _course_context(request, course_id) variables['form'] = form variables.update(csrf(request)) return render(request, 'website/course/course_info_edit.html', variables, context_instance=RequestContext(request))
def create(request): form = CourseForm(data=request.POST or None) try: user = Teacher.objects.get(pk=request.user.id) if form.is_valid(): course = form.create(user) return model_to_dict(course, fields=course_fields) except Exception as e: return e raise Http404
def addcourse(request): if request.method == "POST": form = CourseForm(request.POST) if form.is_valid(): new_course = Course(**form.cleaned_data) new_course.save() new_student_course=Student_Course(course_id=form.cleaned_data['course_id'],student_id=request.user.id) new_student_course.save() # redirect, or however you want to get to the main view # return HttpResponseRedirect('/polls/main/') else: form = CourseForm() return render(request, 'polls/addcourse.html', {'form': form})
def createcourse(request): if request.method == 'POST': # If the form has been submitted... form = CourseForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data # ... form.save() return HttpResponseRedirect('/createpage/') # Redirect after POST else: form = CourseForm() # An unbound form return render(request, "createpage/createcourse.html", { 'form': form, })
def update(request, id): try: form = CourseForm(request.PUT or None) course = Course.objects.get(author=request.user.id, pk=id) if form.is_valid(): course = form.update(course) content_type = ContentType.objects.get_for_model(course) UserLogEntry.objects.log_action(request.user.id, content_type.pk, course.id, unicode(course.title), 3) return model_to_dict(course, fields=course_fields) else: return form.error_messages except Exception as e: return e raise Http404
def course_admin_update(request, course_id, prefix): if request.is_ajax(): form = CourseForm(request.POST) if prefix == 'None' else CourseForm(request.POST, prefix=prefix) if form.is_valid(): try: course = Course.objects.get(pk=course_id) course.teacher = form.cleaned_data['teacher'] course.name = form.cleaned_data['name'] course.save() return HttpResponse('OK') except ObjectDoesNotExist: # create new object position = None if Course.objects.count() > 0: course = Course.objects.order_by('-position').all()[0] position = course.position else: position = 1 newcourse = Course() newcourse.teacher = form.cleaned_data['teacher'] newcourse.name = form.cleaned_data['name'] newcourse.position = position newcourse.save() response = {'created_object_id': newcourse.pk} return HttpResponse(json.dumps(response), mimetype="application/json") else: errors_dict = {} if form.errors: for error in form.errors: e = form.errors[error] field = prefix+"-"+error; errors_dict[field] = unicode(e) print errors_dict return HttpResponseBadRequest(json.dumps(errors_dict)) else: return HttpResponseNotFound('You do not have permission to access this page!')