Example #1
0
def index():
    tag_url = tags.gen_tag_url(flask.request)
    order = flask.request.args.get("order")
    tag = flask.request.args.get("tag")
    try:
        return flask.render_template(
            'index.html',
            polls=Poll.fetch_all(order, tag),
            tag_url=tag_url,
            order=order,
            tag=tag,
            cookie=flask.request.cookies.get('voteData'))
    except ValueError:
        flask.abort(400)  # Args invalid
Example #2
0
def search_view():
    try:
        tag_url = tags.gen_tag_url(flask.request)
        search = flask.request.args.get("q")  # Search terms
        if search is None:  # When using /search, q should always be provided
            flask.abort(400)
        # Delete any trailing or inital spaces and not case sensitive
        search = search.lower().strip()
        tag = flask.request.args.get("tag")
        if tag is not None and len(tag) == 0:  # If tag is empty, set to none
            tag = None
        order = flask.request.args.get("order")
        all_polls = Poll.fetch_all(order, tag)
        returned_polls = []
        include = False
        # Search for string in title, description and responses
        for p in all_polls:
            if search in p.title.lower():
                include = True
            if search in p.description.lower():
                include = True
            responses = p.get_responses()
            for r in responses:
                if search in r.response_str.lower():
                    include = True
            if p not in returned_polls and include:
                returned_polls.append(p)
            include = False
        return flask.render_template('index.html',
                                     polls=returned_polls,
                                     tag_url=tag_url,
                                     order=order,
                                     tag=tag,
                                     search_term=search)
    except ValueError:
        flask.abort(400)  # Order arg invalid