Пример #1
0
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))
Пример #2
0
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))