def tour(request): """ Handles adding a tour """ current_user = request.user #get class currentStudent = Student.objects.get(pk=current_user.entityId) studentClass = currentStudent.team.teacher.className students = Student.objects.filter(team__teacher__className=studentClass) SlideFormSet = formset_factory(forms.TourSlide,extra=1) if request.method == 'POST': #create forms tourForm = forms.TourForm(request.POST,request.FILES) slideFormset = SlideFormSet(request.POST,request.FILES) #validate forms if tourForm.is_valid() and slideFormset.is_valid(): #create tour newTour = Tour(title=tourForm.cleaned_data['title'],teamPhoto=tourForm.cleaned_data["teamPhoto"],student=currentStudent) newTour.save() #create tour authors for authorId in request.POST.getlist('authors[]',[]): #get student student = Student.objects.get(pk=authorId) #create tour author author = TourAuthors(student=student,tour=newTour) author.save() #create tour slides slideIdx=1 defaultCoverPhoto = slideFormset.forms[0].cleaned_data['image'] for slide in slideFormset.forms: TourSlide(photo=slide.cleaned_data['image'],text=slide.cleaned_data['text'], link=slide.cleaned_data['link'],tour=newTour,sequence=slideIdx,audio=slide.cleaned_data['audio']).save() if(slide.cleaned_data['isCoverPhoto']): #set cover photo newTour.coverPhoto = slide.cleaned_data['image'] newTour.save() slideIdx= slideIdx + 1 if not newTour.coverPhoto: newTour.coverPhoto = defaultCoverPhoto newTour.save() #return response json_data = json.dumps({"HTTPRESPONSE": 200}) return HttpResponse(json_data, mimetype="application/json") else: return render_to_response('add_a_tour.html',{'tour':tourForm,'slide_formset':slideFormset,'students':students},context_instance=RequestContext(request)) else: #get request #tour form tour = forms.TourForm() #tour slides slide_formset = SlideFormSet() #students return render_to_response('add_a_tour.html',{'tour':tour,'slide_formset':slide_formset,'students':students},context_instance=RequestContext(request))
def tour(request): """ Handles adding a tour """ current_user = request.user #get class currentStudent = Student.objects.get(pk=current_user.entityId) studentClass = currentStudent.team.teacher.className students = Student.objects.filter(team__teacher__className=studentClass) SlideFormSet = formset_factory(forms.TourSlide, extra=1) if request.method == 'POST': #create forms tourForm = forms.TourForm(request.POST, request.FILES) slideFormset = SlideFormSet(request.POST, request.FILES) #validate forms if tourForm.is_valid() and slideFormset.is_valid(): #create tour newTour = Tour(title=tourForm.cleaned_data['title'], teamPhoto=tourForm.cleaned_data["teamPhoto"], student=currentStudent) newTour.save() #create tour authors for authorId in request.POST.getlist('authors[]', []): #get student student = Student.objects.get(pk=authorId) #create tour author author = TourAuthors(student=student, tour=newTour) author.save() #create tour slides slideIdx = 1 defaultCoverPhoto = slideFormset.forms[0].cleaned_data['image'] for slide in slideFormset.forms: TourSlide(photo=slide.cleaned_data['image'], text=slide.cleaned_data['text'], link=slide.cleaned_data['link'], tour=newTour, sequence=slideIdx, audio=slide.cleaned_data['audio']).save() if (slide.cleaned_data['isCoverPhoto']): #set cover photo newTour.coverPhoto = slide.cleaned_data['image'] newTour.save() slideIdx = slideIdx + 1 if not newTour.coverPhoto: newTour.coverPhoto = defaultCoverPhoto newTour.save() #return response json_data = json.dumps({"HTTPRESPONSE": 200}) return HttpResponse(json_data, mimetype="application/json") else: return render_to_response('add_a_tour.html', { 'tour': tourForm, 'slide_formset': slideFormset, 'students': students }, context_instance=RequestContext(request)) else: #get request #tour form tour = forms.TourForm() #tour slides slide_formset = SlideFormSet() #students return render_to_response('add_a_tour.html', { 'tour': tour, 'slide_formset': slide_formset, 'students': students }, context_instance=RequestContext(request))