Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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)
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
def discover():
    sForm = searchForm()
    return render_template('discover.html', sForm=sForm)
Ejemplo n.º 17
0
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()
Ejemplo n.º 18
0
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)
Ejemplo n.º 19
0
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)
Ejemplo n.º 20
0
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)
Ejemplo n.º 21
0
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)
Ejemplo n.º 22
0
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
Ejemplo n.º 23
0
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})
Ejemplo n.º 24
0
def index():
    form = searchForm()
    session.pop('refined_search_list', None)
    return render_template('index.html', form=form)
Ejemplo n.º 25
0
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))