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 iterate(self): self.move_particles() self.set_pbest() self.set_gbest() self.best = Tour(0, self.cost_map) solution = np.argsort(np.argsort(self.gbest_position)) for i in solution: self.best.add(i)
def tour_insert(self, request): if request.from_datastore: my_quote = request else: my_quote = Tour(sculpture_list=request.sculpture_list, description=request.description) my_quote.put() return my_quote
def get_tour(self): if self._tour: return self._tour tour = Tour(0, self.cost_map) solution = np.argsort(np.argsort(self.position)) for i in solution: tour.add(i) self._tour = tour return tour
class ParticleSwarmOptimization(Algorithm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) total_cities = len(self.cities) self.particles = [ Particle(total_cities, self.cost_map) for _ in range(number_particles) ] self.gbest_value = float('inf') self.gbest_position = None self.set_pbest() self.set_gbest() def set_pbest(self): for particle in self.particles: fitness_cadidate = particle.get_tour().cost if fitness_cadidate < particle.pbest_value: particle.pbest_value = fitness_cadidate particle.pbest_position = deepcopy(particle.position) def set_gbest(self): for particle in self.particles: best_fitness_cadidate = particle.get_tour().cost if best_fitness_cadidate < self.gbest_value: self.gbest_value = particle.get_tour().cost self.gbest_position = deepcopy(particle.position) def move_particles(self): for particle in self.particles: new_velocity = (W * particle.velocity)\ + c1 * random.random() * (particle.pbest_position - particle.position)\ + c2 * random.random() * (self.gbest_position - particle.position) particle.velocity = new_velocity particle.move() def get_tour(self): tour = Tour(0, self.cost_map) solution = np.argsort(np.argsort(self.gbest_position)) for i in solution: tour.add(i) return tour def iterate(self): self.move_particles() self.set_pbest() self.set_gbest() self.best = Tour(0, self.cost_map) solution = np.argsort(np.argsort(self.gbest_position)) for i in solution: self.best.add(i)
def create(self, tour): """ This function creates new tour object and adds it to DB :param tour: dictionary with tour's info """ new_tour = Tour(**tour) self.session.add(new_tour) self.session.commit()
def post(self): selected_sculpture_key = ndb.Key(urlsafe=self.request.get("sculpture_list")) selected_sculpture = selected_sculpture_key.get() sculpture_to_add = selected_sculpture.entityKey if self.request.get("entityKey"): tour_key = ndb.Key(urlsafe=self.request.get("entityKey")) tour = tour_key.get() tour.description = self.request.get("description") selected_sculpture_key = ndb.Key(urlsafe=self.request.get("sculpture_list")) selected_sculpture = selected_sculpture_key.get() sculpture_list = tour.sculpture_list sculpture_list.append(sculpture_to_add) tour.sculpture_list = sculpture_list tour.put() else: new_tour = Tour(description = self.request.get("description"), sculpture_list = [sculpture_to_add]) new_tour.put() self.redirect(self.request.referer)
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 edit(): is_valid = Tour.validate_edit(request.form) if is_valid: print(request.form) edit_tour = Tour.query.get(session["tour_id"]) print("*" * 40) print(edit_tour) edit.artist = request.form['artist'] edit.date = request.form['date'] edit.city = request.form['city'] db.session.commit() return redirect("/") else: return render_template("edit.html")
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 get_tour(self): tour = Tour(0, self.cost_map) solution = np.argsort(np.argsort(self.gbest_position)) for i in solution: tour.add(i) return tour
def tour(name): tour = Tour(name) return render_template('tour.html', tour=json.dumps(tour.load_tour()))
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))
def __init__(self, cities: List[City], cost_map): self.cities = deepcopy(cities) self.cost_map = cost_map self.best: Tour = Tour(0, cost_map)