Ejemplo n.º 1
0
def library_search():

    if request.method == 'GET':
        return redirect(url_for('index'))

    form = LibrarySearch(request.form)

    email = session.get('user_email', None)
    user = db.User.find_one({ 'email' : email })

    libraries = []
    if user is not None:
        libraries = retrieve_all(user=user, only_owned=True)

    if form.search_keywords.data is None or form.search_keywords.data == '':
        flash('Please enter a search term')
        return render_template('index.html', form=form, libraries=libraries)

    # Build query; first look for entries that belong to user, then look for entries that are marked public
    keywords = form.search_keywords.data
 
    entries = list(retrieve_by_terms(keywords, user=user, only_owned=form.user_owned.data))

    if len(entries) < 1:
        flash("Searching for '%s' returned 0 results" % keywords)
        return render_template('index.html', form=form, libraries=libraries)
    else:
        return render_template('library_list.html', user=user, libraries=entries)    
Ejemplo n.º 2
0
def list_library(format=None):

    if format != 'json':
        format = 'html'

    only_owned = bool(request.args.get("owned", False))

    # retrieve entries marked as public and that belong to the user
    if format == 'html':
        email = session.get('user_email', None)
    elif format == 'json':
        email = request.args.get("email", None)

    user = db.User.find_one({ 'email' : email })

    # We should paginate here
    entries = list(retrieve_all(user=user, only_owned=only_owned))

    if format == 'html':
        if len(entries) < 1:
            flash('No entries exist in the library')
        return render_template('library_list.html', libraries=entries, user=user)
    elif format == 'json':
        ls = [entry.simplified_json() for entry in entries]
        return jsonify( { 'results' : ls } )