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)
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)
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
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))