Пример #1
0
def create_new_apptour(post_text):
    if post_text.get("tour").get("status") == "incomplete":
        print("saving new tour")
    else:
        print("creating new tour")
    tour = Tour(
        tour_name=post_text.get("tour").get("tour_name"),
        status=post_text.get("tour").get("status"),
        tour_description=post_text.get("tour").get("tour_description"),
        tour_groups=transform_tour_groups_field(post_text.get("tour").get("tour_groups")),
        tour_image=post_text.get("tour").get("tour_image"),
        tour_create_date=datetime.now()
    )
    tour.save(force_insert=True)
    connect_apptour_to_users(tour_id=tour.id)
    for step in post_text.get("steps"):
        step = Step(
            placement=step.get('placement'),
            title=step.get('title'),
            element=step.get('element'),
            content=step.get('content'),
            path=step.get('path'),
            order=step.get('order'),
            tour=tour
        )
        step.save(force_insert=True)
Пример #2
0
def update_existing_apptour(post_text):
    #check to se if creating a new apptour or making a previously incomplete(i.e., saved) apptour complete
    existing_tour = Tour.objects.get(id=post_text.get("tour").get("id"))
    if existing_tour.status == "incomplete":
        #creating new tour from existing saved tour
        if post_text.get("tour").get("status") == "incomplete":
            print("saving saved tour")
        else:
            print("creating saved tour")
        tour = Tour(
            tour_name=post_text.get("tour").get("tour_name"),
            id=post_text.get("tour").get("id"),
            status=post_text.get("tour").get("status"),
            tour_description=post_text.get("tour").get("tour_description"),
            tour_groups=transform_tour_groups_field(post_text.get("tour").get("tour_groups")),
            tour_image=post_text.get("tour").get("tour_image"),
            tour_create_date=datetime.now()
        )
        tour.save(force_update=True)
    else:
        #updaing an existing tour
        if post_text.get("tour").get("status") == "incomplete":
            print("saving previously created tour")
            print("warning: the previoius version and the newer version will both be unaccessable to the users at this time")
        else:
            print("updating previously created tour")
        tour = Tour(
            tour_name=post_text.get("tour").get("tour_name"),
            id=post_text.get("tour").get("id"),
            status=post_text.get("tour").get("status"),
            tour_description=post_text.get("tour").get("tour_description"),
            tour_groups=transform_tour_groups_field(post_text.get("tour").get("tour_groups")),
            tour_image=post_text.get("tour").get("tour_image"),
            tour_create_date=existing_tour.tour_create_date,
            tour_update_date=datetime.now()
        )
        tour.save(force_update=True)
    Step.objects.filter(tour__id=post_text.get("tour").get("id")).delete()
    for step in post_text.get("steps"):
        step = Step(
            placement=step.get('placement'),
            title=step.get('title'),
            element=step.get('element'),
            content=step.get('content'),
            path=step.get('path'),
            order=step.get('order'),
            tour=tour
        )
        step.save(force_insert=True)
Пример #3
0
 def _tour(players):
     i=0
     last=len(players)/2
     res=[]
     while i<last:
         tour=Tour(tour=tour_num,player1=players[i],player2=players[last+i])
         tour.save()
         res.append(tour)
         i+=1
     l=len(players)
     if l%2:
         tour=Tour(tour=tour_num,player1=players[l-1],points=1)
         tour.save()
         res.append(tour)
     return res
Пример #4
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))
Пример #5
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))