def search_form(request): if request.method == 'GET': form = SearchForm() return render_to_response('geo_locator/search_form.html', { 'form': form, }) elif request.method == 'POST': form = SearchForm(request.POST) if form.is_valid(): entered_zip = form.cleaned_data['zip_code'] my_dma = None my_dma_name = None try: my_dma = zipdma.objects.get(zip=entered_zip).dma except: pass try: my_dma_name = dmalist.objects.get(dma=my_dma) except: pass my_coord = addr2coord(entered_zip) store_list = [] try: store_list = store.objects.all() except: pass results = [] msg = "" for store in store_list: store_addr = "%s %s, %s %s" % ( store.Address, store.City, store.State, store.Zip) ( store_lat, store_lng ) = addr2coord( store_addr ) try: store_dma = zipdma.objects.get(zip=store.Zip).dma logging.info( "User in DMA %s" % my_dma_name ) if my_dma == store_dma: test_coord = (store_lat, store_lng) if closeEnough(my_coord, test_coord): results.append( (store.StoreName, store.Address, "%s, %s %s" % (store.City, store.State, store.Zip), store.Phone) ) except: test_coord = (store_lat, store_lng) if closeEnough(my_coord, test_coord): results.append( (store.StoreName, store.Address, "%s, %s %s" % (store.City, store.State, store.Zip), store.Phone) ) if len(results) == 0: msg = "There are no stores in your area." return render_to_response('geo_locator/search_results.html', { 'results': results, 'msg': msg, 'dma_name': my_dma_name}) else: return search_form(request)
def get_search_form(): request_content = get_websoc_request() parsed_html = BeautifulSoup(request_content, "lxml") # Remove default selected quarter selected_quarter = parsed_html.find("select", {"name": "YearTerm"}).find_all(attrs={"selected": "selected"})[0] # Parses for term info raw_terms = parsed_html.find("select", {"name": "YearTerm"}).find_all("option") # Pick the first quarter if it's not Summer, otherwise use default selection if "Summer" not in raw_terms[0].text: if selected_quarter: del selected_quarter.attrs["selected"] raw_terms[0].attrs["selected"] = "selected" clean_terms = [line["value"] for line in raw_terms] terms = [str(line).replace("\xa0", "") for line in raw_terms] # Parses for GE info raw_general_ed = parsed_html.find("select", {"name": "Breadth"}).find_all("option") clean_general_eds = [line["value"] for line in raw_general_ed] general_eds = [str(line).replace("\xa0", "") for line in raw_general_ed] # Parses for department info raw_departments = parsed_html.find("select", {"name": "Dept"}).find_all("option") clean_departments = [line["value"] for line in raw_departments] departments = [str(line).replace("\xa0", "") for line in raw_departments] return SearchForm( terms=terms, clean_terms=clean_terms, general_eds=general_eds, clean_general_eds=clean_general_eds, departments=departments, clean_departments=clean_departments, )
def get_search_form(): request_content = get_websoc_request() parsed_html = BeautifulSoup(request_content, "lxml") # Parses for term info raw_terms = parsed_html.find("select", { "name": "YearTerm" }).find_all("option") clean_terms = [line["value"] for line in raw_terms] terms = [str(line).replace("\xa0", "") for line in raw_terms] # Parses for GE info raw_general_ed = parsed_html.find("select", { "name": "Breadth" }).find_all("option") clean_general_eds = [line["value"] for line in raw_general_ed] general_eds = [str(line).replace("\xa0", "") for line in raw_general_ed] # Parses for department info raw_departments = parsed_html.find("select", { "name": "Dept" }).find_all("option") clean_departments = [line["value"] for line in raw_departments] departments = [str(line).replace("\xa0", "") for line in raw_departments] return SearchForm(terms=terms, clean_terms=clean_terms, general_eds=general_eds, clean_general_eds=clean_general_eds, departments=departments, clean_departments=clean_departments)
def get(self): list_template = jinja_env.get_template('templates/list.html') id = self.request.get('id') key = ndb.Key(urlsafe=id) temp_name = key.get() if not temp_name: self.error(404) self.response.out.write('Page not found') return tutors = SearchForm.query(SearchForm.user_type != temp_name.user_type, SearchForm.sub == temp_name.sub, SearchForm.avb == temp_name.avb).fetch() user = check_user() if not user: variables = { 'login_button': 'show', 'logout_button': 'hide', 'url': users.create_login_url('/create'), 'clients': tutors, } else: variables = { 'login_button': 'hide', 'logout_button': 'show', 'url': users.create_logout_url('/'), 'clients': tutors, } self.response.write(list_template.render(variables))
def update_listing_cache(request): form_info = datastore_get("Form", "form", FORM_EXPIRE_TIME) if not form_info: form_info = get_search_form() datastore_set("Form", "form", form_info.json()) form_info_cache = SearchForm.parse_raw(form_info.get('data')) # Splits hour into 10 possible indexes mn_idx = datetime.now(timezone.utc).minute // 6 # Multiply by the total possible indexes of mn_idx hr_idx = datetime.now(timezone.utc).hour * 10 hash_index = ((mn_idx + hr_idx) % len(form_info_cache.clean_departments)) # Skip over ALL department if hash_index == 0: return params = { 'YearTerm': form_info_cache.clean_terms[0], 'Dept': form_info_cache.clean_departments[hash_index], 'force': True } try: requests.get(f'{ZOTCOURSE_BASE_URL}/search', params=params, timeout=0.001) except Exception: return
def home(): form = SearchForm(request.form) if request.method == "POST": searchString = form.searchBar.data params = {"data": {"searchString": searchString }, "request": "search"} # res = requests.post(userDataCloudURL, json=params) params = {"data": {"searchString": "" }, "request": "search"} # res = requests.post(userDataCloudURL, json=params) # linking storage # storage_client = storage.Client.from_service_account_json( # 'C:/Users/nisch/Downloads/cloudcomputinglab-291822-bf0774247e88.json') # bucket_name = "videos_360" # videoNames = storage_client.list_blobs(bucket_name) # bucket_name="videos_thumbnail" # thumbnails = storage_client.list_blobs(bucket_name) # for blob in blobs: # print(blob.name) return render_template(indexURL, form=form)
def form(request): if request.method == "POST": # 当提交表单时 form = SearchForm(request.POST) # form 包含提交的数据 if form.is_valid(): # 如果提交的数据合法 location = form.cleaned_data["location"] language = form.cleaned_data["language"] Dict = {"filename": location + language} if GetSearchInfo(location, language): return render(request, "search_result.html", {"Dict": json.dumps(Dict)}) else: return HttpResponse(str("查找结果不存在,请重新输入!")) else: # 当正常访问时 form = SearchForm() return render(request, "search.html", {"form": form})
def index(): form = SearchForm() if form.validate_on_submit(): real_name = steam.check_game(form.name.data) if real_name is not None: return redirect( url_for('words', name=real_name), code=307) # POST request to check if the name comes from form. else: form.name.data = '' return render_template('search-error.html', form=form) if steam.failed: steam.failed = False form.name.data = '' return render_template('search-warning.html', form=form) else: return render_template('search.html', form=form)
def index(request): if request.method == 'POST': # If the form has been submitted... form = SearchForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass valor = Search() valor.sdata = request.POST['sdata'] valor.sdate = request.POST['sdate'] valor.save() return render(request, 'form.html', { 'form': form, }) else: form = SearchForm() # An unbound form return render(request, 'form.html', { 'form': form, })
def post(self): print("boi") search_template = jinja_env.get_template('templates/create.html') user_type = self.request.get('userclass') sub = self.request.get('subject') availability = self.request.get('avb') user = users.get_current_user() user_id = user.user_id() name = user.nickname() email = user.email() variables = { 'name': name, 'user_type': user_type, 'sub': sub, 'availability': availability, 'user_id': user_id, 'email': email, } print(variables) info = SearchForm(name=name, user_type=user_type, sub=sub, avb=availability, id=user_id, email=email) existing_info = SearchForm.query( SearchForm.name == name, SearchForm.email == email, SearchForm.sub == sub, SearchForm.id == user_id, SearchForm.avb == availability, SearchForm.user_type == user_type).fetch(limit=1) if len(existing_info) > 0: self.redirect('/list?id=%s' % existing_info[0].key.urlsafe()) else: info.put() self.redirect('/list?id=%s' % info.key.urlsafe())
def update_listing_cache_alt(request): form_info = datastore_get("Form", "form", FORM_EXPIRE_TIME) if not form_info: form_info = get_search_form() datastore_set("Form", "form", form_info.json()) form_info_cache = SearchForm.parse_raw(form_info.get('data')) for department in form_info_cache.clean_departments: if department.strip() == 'ALL': continue params = { 'YearTerm': form_info_cache.clean_terms[0], 'Dept': department, 'force': True } try: requests.get(f'{ZOTCOURSE_BASE_URL}/search', params=params, timeout=0.001) except Exception: continue
def before_request(): g.post = Post.query.order_by("time_created").first() g.search_form = SearchForm()