def home(request): if request.method == "GET": form = searchForm() return render_to_response('homepage.html',{'form':form}, context_instance = RequestContext(request)) elif request.method == "POST": form = searchForm(request.POST) #form validation queryString = form['queryString'].value() location = form['location'].value() message = '' jobResults = [] if location and queryString: jobResults = getJobsByKeyword(queryString) if jobResults: jobResults = getJobsByLocation(location, jobResults) queryString = queryString + " in " + location elif location: jobResults = getJobsByLocation(location) queryString = location data = { 'queryString' : '', 'location' : location } form = searchForm(data) elif queryString: jobResults = getJobsByKeyword(queryString) else: message = "Enter either keyword or location" if jobResults: if len(jobResults) > 50: jobResults = jobResults[0:51] else: message = "No jobs found, try another keyword or location" return render_to_response('homepage.html', {'message' : message, 'form' : form, 'jobs' : jobResults, 'queryString' : queryString}, context_instance = RequestContext(request))
def homepage(): """ Shows ballot search form. Initially, will render total ballots since 1907 to 2020, all ballots for that year, and total ballots for 1907. yesVotes, noVotes, displayVotePercents are helper function to ensure proper display. """ # total ballots from 1907-2020 total_ballots = BallotsFromMainDB.query.count() form = searchForm() # get all ballots from 1907 from the db and return array of objects. year = 1907 ballots_1907 = BallotsFromMainDB.query.filter_by(year=year) results_total = len(ballots_1907.all()) return render_template("index.html", ballots=ballots_1907, year=year, results_total=results_total, total_ballots=total_ballots, form=form, yesVotes=yesVotes, noVotes=noVotes, displayVotePercents=displayVotePercents)
def before_request(): g.user = current_user g.search_form = searchForm() g.courses = [] courses = Course.query.all() for c in courses: g.courses.append(c.course_name)
def post(post_id): search = searchForm() categories = Category.query.all() post = Post.query.filter_by(id=post_id).one() t = datetime.strptime(post.date_created[:-7], '%Y-%m-%d %H:%M:%S%f') f_t = datetime.strftime(t, '%B %d, %Y at %I:%M %p') return render_template('post.html', post=post, date_created=f_t, current_user=current_user, categories=categories)
def before_request(): g.user = current_user g.search_form = searchForm() g.courses=[] courses = Course.query.all() for c in courses: g.courses.append(c.course_name)
def wishlists(): if current_user.has_role('admin'): all_orders=wishlist.query.all() return render_template('view/wishlist.html', orders=all_orders) else: form=searchForm() all_orders=wishlist.query.filter_by(username=current_user.username).all() return render_template('view/wishlist.html', orders=all_orders,form= form)
def mapView(): if g.sijax.is_sijax_request: g.sijax.register_object(SijaxHandler) return g.sijax.process_request() form = searchForm(currency='DKK') return render_template('map/map.html', form=form)
def hello_world(): form = searchForm() term = search(data, format(form.search.data)) if form.validate_on_submit(): return render_template('recnik.html', headline=headline, headline2=term, form=form) return render_template('recnik.html', headline=headline, form=form)
def createPost(): form = postForm() search = searchForm() categories = Category.query.all() if form.validate_on_submit(): post = Post() post.title = form.title.data.strip() post.subtitle = form.subtitle.data.strip() category = db.session.query(Category).filter_by(name=form.category.data).one() post.category = category post.author = current_user post.body = form.body.data.strip() post.tags = form.tags.data.strip() db.session.add(post) db.session.commit() flash('Post Created Successfully') return redirect( url_for('post', post_id = post.id) ) return render_template('newpost.html', form=form, search=search, categories=categories_, cat=categories)
def editPost(post_id): form = postForm() search = searchForm() post = db.session.query(Post).filter_by(id=post_id).one() categories = Category.query.all() if form.validate_on_submit(): post.title = form.title.data.strip() post.subtitle = form.subtitle.data.strip() category = db.session.query(Category).filter_by( name=form.category.data).one() post.category = category post.body = form.body.data.strip() post.tags = form.tags.data.strip() db.session.add(post) db.session.commit() flash('Post Updated Successfully') return redirect(url_for('post', post_id=post.id)) print(post.body) return render_template('editpost.html', form=form, search=search, categories=categories_, post=post, cat=categories)
def search_results(searchQuery): sForm = searchForm() all_info, ryr, stu, maj, cyr, adv, dept, title, abstract, snippet = query( searchQuery) zip_abst = zip(abstract, snippet) columns = [('yr', 'Year'), ('stu', 'Student'), ('maj', 'Major'), ('cla', 'Class Year'), ('adv', 'Advisor'), ('dept', 'Department'), ('titl', 'Title'), ('abs', 'Abstract')] #falseCounts = 0 #Counts = 0 #for i in range(len(dept)): # stu_maj = dept[i][2] # adv_dept = dept[i][5] # if stu_maj in da: # dept[i]=(dept[i][0],dept[i][1],da[stu_maj],dept[i][3],dept[i][4],dept[i][5],dept[i][6],dept[i][7]) # Counts += 1 # else: # falseCounts += 1 # if adv_dept in da: # dept[i]=(dept[i][0],dept[i][1],dept[i][2],dept[i][3],dept[i][4],da[adv_dept],dept[i][6],dept[i][7]) # Counts += 1 # else: # falseCounts += 1 #print [(dept[i][2],dept[i][5]) for i in range(len(dept))] #print "falseCounts: " + str(falseCounts) #print "Counts: " + str(Counts) return render_template('all_search_results.html', query_all=all_info, query=searchQuery, query_ryr=ryr, query_stu=stu, query_maj=maj, query_cyr=cyr, query_adv=adv, query_dept=dept, query_title=title, query_abstract=abstract, zip_abst=zip_abst, columns=columns, sForm=sForm)
def login(): form = loginForm() search = searchForm() categories = Category.query.all() if form.validate_on_submit(): email = form.email.data.strip() password = form.password.data.strip() user = User.query.filter_by(email=email).first() if user: if check_password_hash(user.password, password): login_user(user, remember=form.remember) print(form.next.data) return redirect(form.next.data or url_for('index') ) else: flash('Invalid password') return render_template('login.html', form=form, search=search, categories=categories, current_user=current_user) else: flash('email not registered') form.next.data = request.args.get('next') return render_template('login.html', form=form, search=search, categories = categories, current_user=current_user)
def displayLrPage(itemid): form = searchForm() global storeditemid rl_article_list = [] rl_external_list = [] storeditemid = itemid prime_res = NewSearchDataOnId(str(itemid)) #this line will only get articles that have the primary article in THEIR related list only #related_res = NewSearchDataOnRelated(str(itemid)) #business requirement is that only articles that their id in the PRIMARY article's related list for hit in prime_res['hits']['hits']: pr_body = (hit["_source"]["content"]) pr_title = (hit["_source"]["title"]) pr_scope = (hit["_source"]["scope"]) for item in hit["_source"]["kmlinks"]: if "id" in item: rl_id = item['id'] related_res = NewSearchDataOnId(str(rl_id)) #create an object list to store related article information for hit in related_res['hits']['hits']: rl_article_list.append( article(hit["_source"]["title"], hit["_source"]["id"], hit["_source"]["scope"])) #create an object list to store external related links for item in hit['_source']['extlinks']: if "url" in item: rl_external_list.append(ext_link(item["name"], item["url"])) return render_template('lr-page.html', form=form, searchElements=pr_body, related_list=rl_article_list, external_list=rl_external_list)
def create_ballotsearch(): """Save search into database. Search main db based on form inputs, redirect to "/results" .""" form = searchForm() if isFormEmpty(form.data): return redirect("/") if form.validate_on_submit(): ballot = BallotSearch.add_search( month=form.month.data, year=form.year.data, prop_letter=form.prop_letter.data, ballot_subject="" if canTurnIntoInteger(form.ballot_subject.data) else form.ballot_subject.data, type_of_measure=form.type_of_measure.data, measure_placed_on_ballot_by=form.measure_placed_on_ballot_by.data, pass_or_fail=form.pass_or_fail.data, ) db.session.commit() # add search inputs into sessions to render results session[SEARCH_INPUTS] = { "month": ballot.month, "year": ballot.year, "prop_letter": ballot.prop_letter, "ballot_subject": ballot.ballot_subject, "type_of_measure": ballot.type_of_measure, "measure_placed_on_ballot_by": ballot.measure_placed_on_ballot_by, "pass_or_fail": ballot.pass_or_fail } return redirect("/search/results") else: return render_template("index.html", form=form)
def signup(): form = signupForm() search = searchForm() date = datetime.strftime(datetime.now(), '%d/%m/%Y') categories = Category.query.all() if form.validate_on_submit(): user = User() user.username = form.username.data.strip() if db.session.query(User).filter_by(username=user.username).first(): flash(f'"{user.username}" username already taken.') return redirect( url_for('signup')) user.full_name = form.full_name.data.strip() user.email = form.email.data.strip() if db.session.query(User).filter_by(email=user.email).first(): flash(f'"{user.email}" email already taken.') return redirect(url_for('signup')) user.bio = form.bio.data.strip() user.dob = form.dob.data.strip() user.password = generate_password_hash(form.password.data.strip(), method='sha256') db.session.add(user) db.session.commit() flash('Registration successfull, you can now login') return redirect(url_for('index')) return render_template('signup.html', form=form, search=search, date=date, categories=categories_, current_user=current_user, cat=categories)
def discover(): sForm = searchForm() return render_template('discover.html', sForm=sForm)
def case_list(request,pid): #没登陆的提示去登录 if not request.user.is_authenticated(): return HttpResponseRedirect("/case/login") #权限判断 canope = True child = category.objects.filter(parent_id = int(pid)) notice = '' if not is_tester(request.session['id']): canope = False else: if len(child): canope = False #列表页显示 kwargs={} case = [] cate1 = cate2 = cate3 = categoryid = ctestmodule = cpriority = cauthor = \ cexecutor = cstart_date = cend_date = cexec_status = ckeyword = cstatue = cmold = '' if request.method == "POST": search = searchForm(request.POST) if search.is_valid(): cate1 = search.cleaned_data['cate1'] cate2 = search.cleaned_data['cate2'] cate3 = search.cleaned_data['cate3'] categoryid = search.cleaned_data['categoryid'] ctestmodule = search.cleaned_data['testmodule'] cpriority = search.cleaned_data['priority'] cstatue = search.cleaned_data['status'] cmold = search.cleaned_data['mold'] cauthor = search.cleaned_data['author'] cexecutor = search.cleaned_data['executor'] cstart_date = search.cleaned_data['start_date'] cend_date = search.cleaned_data['end_date'] cexec_status = search.cleaned_data['exec_status'] ckeyword = search.cleaned_data['keyword'] subset2 = list(category.objects.filter(parent_id = pid).values_list("id",flat=True)) subset3 = list(category.objects.filter(parent_id__in = subset2)) subset = list(set(subset2).union(set(subset3))) subset.append(pid) print 'get alltestcase---start', time.ctime() cmodule = testcase.objects.filter(category__in = subset, isactived = 1) print 'get alltestcase---end', time.ctime() if ctestmodule or cpriority or cauthor or cexecutor or cstart_date or cend_date or \ cexec_status or ckeyword or cstatue: canope = False else: if len(child): cmodule = cmodule.order_by("-id").values_list("pk", flat = True)[:200] cmodule = testcase.objects.filter(pk__in = list(cmodule)) notice = u"类目包含子类目时,当前类目下最多只显示200条哈,请使用筛选项查看更多用例~~" # if not isNone(pid): # kwargs['category__in'] = subset if not isNone(cauthor): kwargs['authorid'] = cauthor if not isNone(cpriority): kwargs['priority'] = cpriority if not isNone(ckeyword): kwargs['action__contains'] = ckeyword.strip() cmodule = cmodule.filter(**kwargs) mcase = testcase.objects.filter(category__in = subset) allmodule = casemodule.objects.filter(pk__in = mcase.values_list("module",flat=True)) testmodule = casemodule.objects.filter(pk__in = cmodule.values_list("module",flat=True)) rresult = caseresult = result.objects.filter(testcase__in = cmodule) allexecutor = result.objects.filter(testcase__in = mcase).values_list("executor",flat = True).distinct() if not isNone(ctestmodule): testmodule = testmodule.filter(m_name = ctestmodule) cmodule = cmodule.filter(module_id__in = testmodule, isactived = 1) #等于 、不等于某个状态 args = [Q(result = cmold) , ~Q(result = cmold)] #不等于(未执行)、等于 1 /0 args2 = [~Q(pk__in = caseresult.values_list("testcase", flat=True).distinct()),Q(pk__in = caseresult.values_list("testcase", flat=True).distinct())] if not isNone(cmold) and not isNone(cstatue): if cmold == u"未执行": cmodule = cmodule.filter(args2[int(cstatue)]) else: if not cstart_date and not cend_date or cstatue =="1": #根据testcase_id进行分组查询,取最新执行状态 rlist = result.objects.raw('SELECT * FROM (SELECT * FROM case_result ORDER BY exec_date DESC) case_result GROUP BY testcase_id') rid = [] for r in rlist: rid.append(r.id) if cstatue == "1": cm1 = cmodule.values_list("pk",flat=True) cm2 = rresult.filter(result = cmold,pk__in = rid).values_list("testcase_id",flat=True).distinct() idd = set(cm1)^(set(cm2)) cmodule = cmodule.filter(pk__in = idd , isactived = 1) else: caseresult = caseresult.filter(args[int(cstatue)], Q(pk__in = rid)) cmodule = cmodule.filter(pk__in = caseresult.values_list("testcase", flat=True).distinct(),isactived =1) else: caseresult = caseresult.filter(args[int(cstatue)]) cmodule = cmodule.filter(pk__in = caseresult.values_list("testcase", flat=True).distinct() , isactived = 1) if not isNone(cexecutor): caseresult = caseresult.filter(executor = cexecutor) cmodule = cmodule.filter(pk__in = caseresult.values_list("testcase", flat=True).distinct() , isactived =1) if not isNone(cstart_date) or not isNone(cend_date): if not isNone(cstart_date): caseresult = caseresult.filter(exec_date__gte = cstart_date) if not isNone(cend_date): tomorrow = cend_date + datetime.timedelta(days=1) caseresult = caseresult.filter(exec_date__lte = tomorrow) cdate = set(cmodule.values_list("id",flat = True))&(set(caseresult.values_list("testcase", flat=True))) cmodule = cmodule.filter(pk__in = cdate,isactived = 1) else: try: clist = [] first = get_object_or_404(category, pk=int(pid)) clist.append(int(pid)) if first.parent_id != 0: clist.append(first.parent_id) second = get_object_or_404(category, pk= first.parent_id) if second.parent_id !=0: clist.append(second.parent_id) catelen = len(clist) if catelen: cate1 = clist[-1] catelen = catelen - 1; if catelen: cate2 = clist[-2] catelen = catelen - 1; if catelen: cate3 = clist[-3] except Exception,e: pass #通过链接访问项目时,没有项目时,返回全部列表页 ppid = len(category.objects.filter(pk = pid)) if ppid == 0: return HttpResponseRedirect('/case/caselist') else: subset2 = list(category.objects.filter(parent_id = pid).values_list("id",flat=True)) subset3 = list(category.objects.filter(parent_id__in = subset2)) subset = list(set(subset2).union(set(subset3))) subset.append(pid) cmodule = testcase.objects.filter(category__in = subset, isactived = 1) if len(child): cmodule = cmodule.order_by("-id").values_list("pk", flat = True)[:200] cmodule = testcase.objects.filter(pk__in = list(cmodule)) notice = u"类目包含子类目时,当前类目下最多只显示200条哈,请使用筛选项查看更多用例~~" testmodule = casemodule.objects.filter(pk__in = cmodule.values_list("module", flat = True)) allmodule = testmodule caseresult = result.objects.filter(testcase__in = cmodule) allexecutor = caseresult.values_list("executor",flat = True).distinct()
def categories(): search = searchForm() categories = Category.query.all() lengths = {i.name:len(list(filter(lambda x: x.published, i.members))) for i in categories} return render_template('categories.html', categories=categories, lengths=lengths, search=search)
def home(): if current_user.has_role('admin'): return render_template('admin/index_admin.html') form=searchForm() return render_template('user/index.html', form=form)
def search(): form=searchForm() book=form.title.data results=db.session.query(bookdata).filter(bookdata.title.like("%{}%".format(book))) return render_template('view/search.html', results=results, form=form)
def searchResult(): """Get data from form and return the search result. yesVotes, noVotes, displayVotePercents are helper function to ensure proper display. """ #this is an empty search forms form = searchForm() search_inputs = session[SEARCH_INPUTS] # deep copy the search inputs search_inputs_copy = copy.deepcopy(search_inputs) final_search_inputs = removeEmptyValues(search_inputs_copy) # array of filters for SQL filters = [] for key in list(final_search_inputs.keys()): if key == "ballot_subject": sql_subject_str = turnStrIntoSqlQuery( final_search_inputs['ballot_subject']) expression = ( BallotsFromMainDB.ballot_subject.like(f'{sql_subject_str}')) filters.append(expression) else: expression = (getattr(BallotsFromMainDB, key) == final_search_inputs[key]) filters.append(expression) search_results = db.session.query(BallotsFromMainDB).filter(and_(*filters)) year = final_search_inputs['year'] if "year" in final_search_inputs else "" results_total = len(search_results.all()) return render_template("result.html", ballots=search_results, year=year, final_search_inputs=final_search_inputs, form=form, yesVotes=yesVotes, results_total=results_total, noVotes=noVotes, search_inputs=search_inputs, displayVotePercents=displayVotePercents) # Adde handles the form submission # @app.route("/api/search-ballots1", methods=['POST']) # def get_ballots(): # """ # Get search queries from frontend, validate all inputs and return info about # query. Then add search inputs into db, and return data about the search. # Returns JSON like: # { searchInput: # {month, year, subject, pass_or_fail, type_measure, by, keyword} } # """ # # get data from the form # search_inputs = request.json # print('this is search_inputs', search_inputs) # # create instance of search # ballotSearch = BallotSearch( # year = search_inputs["year"] # month = search_inputs["month"] # subject = search_inputs["subject"] # type_of_measure = search_inputs["type_of_measure"] # measure_placed_by = search_inputs["measure_placed_by"] # pass_or_fail = search_inputs["pass_or_fail"] # keyword = search_inputs["keyword"] # ) # # add it to the database # db.session.add(ballotSearch) # db.session.commit() # return jsonify(ballotSearch=ballotSearch.to_dict()), 201)
def searchUpdate(): global facet_list minPageSize = 5 form = searchForm() refine_by_facet_list = [] if request.args.get('bans'): print "got here" session.pop('refined_search_list', None) # Refine By user selections if request.args.getlist('fociselected'): fociSelected = request.args.getlist('fociselected') session['refined_search_list'] = request.args.getlist('fociselected') try: refine_by_facet_list = refineResults(session['refined_search_list']) except KeyError: pass print request.args.get('rbsubmit') print request.args.getlist('fociselected') print request.args.get('facetclear') if (request.args.get('rbsubmit') == 'true' and not request.args.getlist('fociselected')) or ( request.args.get('facetclear')): refine_by_facet_list = [] session['refined_search_list'] = [] #Get store page size from cookie cookiePageSize = request.cookies.get('cookie-pagesize') search = request.args.get('search') if request.args.get('searchtype') == None: searchType = 'score' pageNo = 1 if cookiePageSize == None: pageSize = minPageSize else: pageSize = int(cookiePageSize) else: searchType = request.args.get('searchtype') pageSize = int(request.args.get('pagesize')) pageNo = int(request.args.get('pageno')) noResults = "<h3>Your search did not match any articles</h3><p><a id=\"no_article\" href=\"/search\">Click here to search again</a></p>" searchResults = "" if request.args.get('search') != "": fields = ["scope", "keywords^5", "title"] #what fields are we searching on order = "desc" #asc or desc #for searchType pass in 'score' 'date' 'popularity' if len(refine_by_facet_list) > 0: print 'a foci search' res = NewSearchwithFoci(search, searchType, pageSize, pageNo, fields, order, refine_by_facet_list) else: print 'a new search' all_res = NewSearchDataAllContent(search, fields) for hit in all_res['hits']['hits']: #loop through the list of facets for items in hit["_source"]["facets"]: if "name" in items: #store the name of the facet facet_name = items['name'] #check if this facet already exists index = -1 for i, v in enumerate(facet_list): #return the index of the element if it does if v.name == facet_name: index = i break #return -1 if it doesn't else: index = -1 if index == -1: #add a new facet item data = Facet(facet_name) for focus in items['foci']: #add the foci data.add_foci(focus) #add the facet item to the list facet_list.append(data) else: #get an existing facet item data = facet_list.pop(index) for focus in items['foci']: #add foci to that item data.add_foci(focus) #add the facet item back to the list facet_list.append(data) #finally remove any foci duplicates for each facet item for data in facet_list: data.remove_duplicates() res = NewSearchDataOnContent(search, searchType, pageSize, pageNo, fields, order) totalNoHits = int(res['hits']['total']) print "Total number of hits " + str(res['hits']['total']) for hit in res['hits']['hits']: articleId = hit["_source"]["id"] searchResults += "<h3><a id=\"article_id_" + articleId + "\" href =\"/lr-page/" + articleId + "\">" + hit[ "_source"]["title"] + "</a></h3>" searchResults += "<p>" + hit["_source"]["scope"] + "</p>" if searchResults == "": searchResults = noResults else: return render_template('index.html', form=form) if (request.args.get('bans') and totalNoHits == 0): if facet_list: facet_list = [] resp = make_response( render_template('searchResult.html', form=form, searchElements=searchResults, search=search, searchtype=searchType, totalnohits=totalNoHits, pagesize=pageSize, pageno=pageNo, facetElements=facet_list, refineFacetList=refine_by_facet_list)) #Set or create cookie to store number of results on the page cookie = str(pageSize) resp.set_cookie('cookie-pagesize', cookie) print request.cookies.get('cookie-pagesize') return resp
def allcaselist(request): #没登陆的提示去登录 if not request.user.is_authenticated(): return HttpResponseRedirect("/case/login") kwargs={} case = [] ctestmodule = cpriority = cauthor = cexecutor = cstart_date = cend_date = \ cexec_status = ckeyword = cstatue = cmold = notice = '' testmodule = casemodule.objects.filter(isactived = 1) allmodule = testmodule allexecutor = result.objects.all().values_list("executor",flat = True).distinct() if request.method == "POST": search = searchForm(request.POST) if search.is_valid(): ctestmodule = search.cleaned_data['testmodule'] cpriority = search.cleaned_data['priority'] cstatue = search.cleaned_data['status'] cmold = search.cleaned_data['mold'] cauthor = search.cleaned_data['author'] cexecutor = search.cleaned_data['executor'] cstart_date = search.cleaned_data['start_date'] cend_date = search.cleaned_data['end_date'] cexec_status = search.cleaned_data['exec_status'] ckeyword = search.cleaned_data['keyword'] if ctestmodule or cpriority or cauthor or cexecutor or cstart_date or cend_date or \ cexec_status or ckeyword or cstatue: print 'get alltestcase---start1', time.ctime() cmodule = testcase.objects.filter(isactived = 1) print 'get alltestcase---end1', time.ctime() else: print 'get alltestcase---start2', time.ctime() cmodule = testcase.objects.filter(isactived = 1).order_by("-id").values_list("pk", flat = True)[:200] cmodule = testcase.objects.filter(pk__in = list(cmodule)) notice = u"全部用例下最多只显示200条哈,请使用筛选项查看更多用例~~" print 'get alltestcase---end2', time.ctime() if not isNone(cauthor): kwargs['authorid'] = cauthor if not isNone(cpriority): kwargs['priority'] = cpriority if not isNone(ckeyword): kwargs['action__contains'] = ckeyword.strip() print 'get filter---1', time.ctime() cmodule = cmodule.filter(**kwargs) print 'get filter---2', time.ctime() caseresult = result.objects.filter(testcase__in = cmodule) print 'get filter---3', time.ctime() rresult = caseresult if not isNone(ctestmodule): testmodule = testmodule.filter(m_name = ctestmodule) cmodule = cmodule.filter(module_id__in = testmodule, isactived = 1) args = [Q(result = cmold) , ~Q(result = cmold)] args2 = [~Q(pk__in = caseresult.values_list("testcase", flat=True).distinct()),Q(pk__in = caseresult.values_list("testcase", flat=True).distinct())] if not isNone(cmold) and not isNone(cstatue): if cmold == u"未执行": cmodule = cmodule.filter(args2[int(cstatue)]) else: if not cstart_date and not cend_date or cstatue =="1": #根据testcase_id进行分组查询,取最新执行状态 rlist = result.objects.raw('SELECT * FROM (SELECT * FROM case_result ORDER BY exec_date DESC) case_result GROUP BY testcase_id') rid = [] for r in rlist: rid.append(r.id) if cstatue == "1": cm1 = cmodule.values_list("pk",flat=True) cm2 = rresult.filter(result = cmold,pk__in = rid).values_list("testcase_id",flat=True).distinct() idd = set(cm1)^(set(cm2)) cmodule = cmodule.filter(pk__in = idd , isactived = 1) else: caseresult = caseresult.filter(args[int(cstatue)], Q(pk__in = rid)) cmodule = cmodule.filter(pk__in = caseresult.values_list("testcase", flat=True).distinct(),isactived =1) else: caseresult = caseresult.filter(args[int(cstatue)]) cmodule = cmodule.filter(pk__in = caseresult.values_list("testcase", flat=True).distinct(),isactived =1) if not isNone(cexecutor): caseresult = caseresult.filter(executor = cexecutor) cmodule = cmodule.filter(pk__in = caseresult.values_list("testcase", flat=True).distinct()) if not isNone(cstart_date) or not isNone(cend_date): if not isNone(cstart_date): caseresult = caseresult.filter(exec_date__gte = cstart_date) if not isNone(cend_date): tomorrow = cend_date + datetime.timedelta(days=1) caseresult = caseresult.filter(exec_date__lte = tomorrow) cdate = set(cmodule.values_list("id",flat = True))&(set(caseresult.values_list("testcase", flat=True))) cmodule = cmodule.filter(pk__in = cdate,isactived = 1) else: cmodule = testcase.objects.filter(isactived = 1).order_by("-id").values_list("pk",flat=True)[:200] cmodule = testcase.objects.filter(pk__in = list(cmodule)) testmodule = testmodule.filter(pk__in = cmodule.values_list("module", flat = True)) caseresult = result.objects.filter(testcase__in = cmodule, isactived = 1) notice = u"全部用例下最多只显示200条哈,请使用筛选项查看更多用例~~" listid = caseresult.values_list("testcase", flat=True).distinct() count =len(cmodule) # newresult = [] # for c in listid: # p = caseresult.filter(testcase = c).order_by("-exec_date")[0] # newresult.append(p) if not ckeyword: testmodule = testmodule.order_by("m_rank") else: testmodule = testmodule.order_by("-id") for m in testmodule: ccase = {} ccase[m.id] = [] mcaselist = cmodule.filter(module = m.id, isactived = 1).order_by("rank") if len(mcaselist) != 0: for c in mcaselist: try: cresult = caseresult.filter(testcase_id = c.id).order_by("-exec_date")[0] except: cresult = '' ccase[m.id].append([c, cresult]) case.append(ccase) return render_to_response("case/case_list.html", {"case":case, "testmodule":testmodule, "allmodule":allmodule, "listid":listid, "count":count, "cauthor":cauthor, "cpriority":cpriority, "statue":cstatue, "mold":cmold, "ckeyword":ckeyword, "ctestmodule":ctestmodule, "cexecutor":cexecutor, "cstart_date":cstart_date, "cend_date":cend_date, "canope": False, "allexecutor":allexecutor, "notice":notice})
def index(): form = searchForm() session.pop('refined_search_list', None) return render_template('index.html', form=form)
def search(): sForm = searchForm() if not sForm.validate_on_submit(): return redirect(url_for('main.index')) return redirect( url_for('main.search_results', searchQuery=sForm.search.data))