def most_viewed_recipes():
    """Sorting recipes based on views"""
    filter_recipes = mongo.db.recipes.find({
        "views": {
            "$gt": -1
        }
    }).sort([("views", -1)])
    page, per_page, offset = get_page_args(page_parameter='page',
                                           per_page_parameter='per_page')
    total_filter_recipes = filter_recipes.count()
    recipes_fetched = filter_recipes.skip(
        (page - 1) * ITEMS_PER_PAGE).limit(ITEMS_PER_PAGE)
    pagination = Pagination(page=page,
                            per_page=ITEMS_PER_PAGE,
                            total=total_filter_recipes,
                            record_name='Recipes')
    return render_template("orderingrecipes.html",
                           recipes=recipes_fetched,
                           cuisines=mongo.db.cuisines.find(),
                           allergens=mongo.db.allergens.find(),
                           page=page,
                           per_page=per_page,
                           pagination=pagination,
                           filter_text="MOST VIEWED")
Esempio n. 2
0
def fw_state(state, sorting_key='_id', sorting_order="DESCENDING"):
    if sorting_order == "ASCENDING":
        sort_order = 1
    elif sorting_order == "DESCENDING":
        sort_order = -1
    else:
        raise RuntimeError()
    current_sorting_key = sorting_key
    current_sorting_order = sorting_order
    db = app.lp.fireworks
    q = {} if state == "total" else {"state": state}
    q = _addq_FW(q)
    fw_count = app.lp.get_fw_ids(query=q, count_only=True)
    try:
        page = int(request.args.get('page', 1))
    except ValueError:
        page = 1

    rows = list(db.find(q, projection=["fw_id", "name", "created_on", "updated_on"]).sort(
        [(sorting_key, sort_order)]).skip(
        (page - 1) * PER_PAGE).limit(PER_PAGE))
    pagination = Pagination(page=page, total=fw_count, record_name='fireworks',
                            per_page=PER_PAGE)
    return render_template('fw_state.html', **locals())
Esempio n. 3
0
def courseUpdate():
    # 执行爬虫函数,获取更新的课程
    # docrawler()

    allcourses = []  # 存放课程名、学校名、专业名和课程详情
    newcourse = newCourse.query.all()
    # 获取更新的课程
    for i in newcourse:
        course = Course.query.filter(i.CID == Course.CID).first()
        majors = Majors.query.filter(course.MID == Majors.MID).all()
        for j in majors:
            allcourses.append({
                'cid': course.CID,
                'name': course.Cname,
                'school': j.Sname,
                'major': j.Mname,
                'info': course.Cinfo
            })

    user_id = session.get('user_id')
    id = 0
    if user_id:
        id = user_id
    total = len(allcourses)
    PER_PAGE = 10  # 每页列表行数
    page = request.args.get(get_page_parameter(), type=int,
                            default=1)  # 获取页码,默认为第一页
    start = (page - 1) * PER_PAGE  # 每一页开始位置
    end = start + PER_PAGE  # 每一页结束位置
    pagination = Pagination(bs_version=3, page=page,
                            total=total)  # Bootstrap的版本,默认为3
    courses = allcourses[start:end]  # 进行切片处理

    context = {'pagination': pagination, 'courses': courses, 'id': id}

    return render_template('course.html', user_id=user_id, **context)
Esempio n. 4
0
def node_logs(node_id, page=1):
    node = Node.query.filter(Node.id == node_id).first_or_404()
    status_logs = StatusLog.query.filter_by(node=node)

    status_logs = get_paginate_options(
        request,
        StatusLog, ('line', 'message', 'severity', 'filename'),
        existing_query=status_logs,
        page=page,
        max_pp=50,
        default_sort='desc')

    pagination = Pagination(page=page,
                            per_page=status_logs.per_page,
                            total=status_logs.total,
                            alignment='center',
                            show_single_page=False,
                            record_name='status logs',
                            bs_version=3)

    return render_template('logs.html',
                           node=node,
                           status_logs=status_logs.items,
                           pagination=pagination)
Esempio n. 5
0
def page(table, p):
    try:
        model = get_model_by_tablename(table)
        columns = get_columns(model)
        # pagination
        total_count = len(session.query(model).all())
        pagination = Pagination(page=p, total=total_count, per_page=records_num, bs_version='4', href='{}',
                                alignment='center')
        if p == 1:
            data = session.query(model).order_by(model.index).limit(records_num)
        elif 1 < p < pagination.total_pages + 1:
            data = session.query(model).order_by(model.index).limit(records_num).offset(records_num * (p - 1))
        else:
            return redirect(url_for('page', table=table, p=1))
        context = {
            'table': table,
            'data': data,
            'columns': columns,
            'pagination': pagination
        }
        return render_template('table.html', **context)
    except Exception as e:
        logger.error('Error occurred. Details: {}'.format(e))
        abort(500)
def get_equipment():
    shop = mongo.db.equipment
    offset = int(
        request.args.get('offset')) if request.args.get('offset') else 1
    limit = int(request.args.get('limit')) if request.args.get('offset') else 8
    page = int(request.args.get('page', 2))
    total = mongo.db.equipment.count()
    per_page = limit
    pagination = get_pagination(
        page=page,
        per_page=per_page,  #results per page
        total=total,  #total number of results 
        format_total=True,  #format total. example 1,024
        format_number=True,  #turn on format flag
        record_name='repositories',  #provide context
    )
    starting_id = shop.find().sort('_id', pymongo.ASCENDING)
    last_id = starting_id[offset]['_id']

    equipment = shop.find({
        '_id': {
            '$gte': last_id
        }
    }).sort('item_name', pymongo.ASCENDING).limit(limit)

    next_url = '/equipment?limit=' + str(limit) + '&offset=' + str(offset +
                                                                   limit)
    prev_url = '/equipment?limit=' + str(limit) + '&offset=' + str(offset -
                                                                   limit)

    pagination = Pagination(page=page, limit=limit)
    #return jsonify ({'result': output, 'prev_url': '', 'next_url': ''})

    return render_template('equipment.html',
                           equipment=equipment,
                           pagination=pagination)
Esempio n. 7
0
File: user.py Progetto: 052603/flask
def get_page(search_d):
	form = SearchForm()
	form.c_project.choices = [('','')]+[(a.project,a.project) for a in AllProject.query.all()]
	search_d = eval(search_d)
	if search_d['genre']=='':
		search_d['genre']="A类,B类,C类"
	all_search_cus = Customer.query.order_by(Customer.pink_time.desc()).filter(
				Customer.c_name.like('%'+search_d['c_name']+'%') if search_d['c_name'] is not '' else "",
				Customer.phone.like('%'+search_d['phone'].strip()+'%') if search_d['phone'] is not '' else "",
				Customer.project.like('%'+search_d['project']+'%') if search_d['project'] is not '' else "",
				Customer.genre.in_(search_d['genre'].split(',')) if search_d['genre'] is not '' else "",
				Customer.date_time.like('%'+search_d['date_time']+'%') if search_d['date_time'] is not '' else "",
				Customer.sale_name==current_user.username
				)
	per_page = 10
	page = request.args.get(get_page_parameter(), type=int, default=1)
	start = (page-1)*per_page
	end = start+per_page
	search_cus = all_search_cus.slice(start,end)
	biaoji_l = []
	for search in search_cus:
		comments = Comment.query.filter_by(c_name_id=search.id)
		if comments.first():
			for comment in comments:
				if ReadComment.query.filter_by(user=current_user.username,comment_id = comment.id).first() == None:
					biaoji = '未读'
					break
				else:
					biaoji = '已读'
			biaoji_l.append(biaoji)
		else:
			biaoji = '无评价'
			biaoji_l.append(biaoji)
	time_l,school_l,time_zj = last_time(search_cus)
	pagination = Pagination(bs_version=3,page=page, total=all_search_cus.count())
	return render_template('search.html',search_cus = search_cus,form = form,username=current_user.username,search_d = search_d,pagination = pagination,biaoji_l = biaoji_l,time_l = time_l)
Esempio n. 8
0
def recherche():
    """
    Route permettant d'afficher les articles correspondants au mot rentré par l'utilisateur
    :return: template recherche.html
    :rtype: template
    """
    # récupération du mot clef rentré par l'utilisateur avec la méthode get afin d'éviter un if trop long
    motclef = request.args.get("keyword", None)
    # initialisation du resultat en une liste vide (afin d'avoir une liste vide comme résultat par défaut)
    resultats= []
    # vérification de l'existence d'un mot clef
    if motclef:
        # récupération sous la forme d'une liste de tout les articles pour lesquels le mot clef est contenu dans
        # l'attribut texte, trié par date de parution
        resultats= Article.query.filter(Article.article_texte.like("%{}%".format(motclef))).order_by(
            Article.article_numJournal.asc()).all()

    #création de la pagination
    page, per_page, offset = get_page_args(page_parameter='page',
                                           per_page_parameter='per_page')
    pagination_resultats = get_index(resultats, offset=offset, per_page=per_page)
    pagination = Pagination(page=page, per_page=per_page, total=len(resultats))
    return render_template("pages/recherche.html", resultats=pagination_resultats, page=page, per_page=per_page,
                           pagination=pagination)
Esempio n. 9
0
def view_invoices(): 
    try:
        page = int(request.args.get('page', 1))
    except ValueError:
        page = 1
    if session['account_type'] == 'company':
        invoices = Invoice.query.filter_by(owner_id=current_user.id).all()
        title = 'View Invoices'
    elif session['account_type'] == 'admin':
        invoices = Invoice.query.filter_by(broker_id=None).all()
        title = 'Assign Broker'
    elif session['account_type'] == 'broker':
        invoices = Broker.query.filter_by(id=current_user.id).first().invoices
        invoices = list(filter(lambda inv: inv.processed == False or (
            inv.processed == True and inv.manual_processing == True), invoices))
        title = 'Process Invoices'
    if len(invoices)==0:
        flash('No new uploaded invoices!', 'danger')
        return redirect(url_for('home'))
    else:
        i = (page-1)*2
        li_items = invoices[i:i+2]
        pagination = Pagination(page=page, per_page=2, total=len(invoices), record_name='items', css_framework='bootstrap4')
    return render_template('view_invoices.html', title=title, userdetail=current_user, image_files=li_items,pagination=pagination)
Esempio n. 10
0
def topchef():
    page = request.args.get(get_page_parameter(), type=int, default=1)
    results = []
    results = db.session.query(
        Recipe, Author, Ingredient,
        Cuisine).join(Author).join(Ingredient).join(Cuisine).order_by(
            Recipe.recipe_rating.desc()).all()
    print(results)
    #ordered_results = result_
    page_size = len(results)
    offset = (page - 1) * TOP_CHEF_PER_PAGE

    pagination_results = get_results(offset, TOP_CHEF_PER_PAGE, results)

    pagination = Pagination(page=page,
                            per_page=TOP_CHEF_PER_PAGE,
                            total=page_size,
                            css_framework='bootstrap3')

    return render_template('topchef.html',
                           results=pagination_results,
                           page=page,
                           per_page=TOP_CHEF_PER_PAGE,
                           pagination=pagination)
Esempio n. 11
0
def lieux():
    """
    Route permettant l'affichage d'un index de lieux présentant tous les lieux mentionnés,, leurs occurences et un lien
    vers chacun de ces articles.
    :return: template index_lieu.html
    :rtype: template
    """
    # récupération de la table d'association articleHasLieu ainsi que les articles et lieux qui lui sont associé
    association_Article_Lieu = db.session.query(articleHasLieu, Article, Lieu).join(Article).join(Lieu).all()
    # on obtient une liste de tuple que l'on va restructurer pour former un dictionnaire ayant pour clé un lieu et
    # pour valeurs tous les articles correspondants
    index_lieu_article = {key: [v[2] for v in val] for key, val in
             groupby(sorted(association_Article_Lieu, key=lambda ele: ele[1]), key=lambda ele: ele[3])}
    # transformation du dictionnaire en liste de dictionnaire
    index_lieu_article = [{k: v} for (k, v) in index_lieu_article.items()]
    # création de la pagination
    page, per_page, offset = get_page_args(page_parameter='page',
                                           per_page_parameter='per_page')
    # récupération de la portion de la liste concernant la page à afficher
    pagination_index = get_index(index_lieu_article, offset=offset, per_page=per_page)
    # définition de la pagination
    pagination = Pagination(page=page, per_page=per_page, total=len(index_lieu_article))
    return render_template("pages/index_lieu.html", list=index_lieu_article, page=page, per_page=per_page,
                           pagination=pagination)
Esempio n. 12
0
def search():
    # 从输入框中获取数据,数据默认为空
    keyword = request.args.get('keyword', '')
    if keyword == '':
        # 如果输入框的内容为空则跳过不做处理
        pass
    page = request.args.get(get_page_parameter(), type = int, default = 1)
    start = (page-1)*8
    end = start + 8
    category = request.args.get('category', 'post')
    # 判断用户要在哪个指定区域查询(支持模糊搜索)
    if category == 'user':
        resultlist = FrontUser.query.whoosh_search(keyword, like=True).order_by(FrontUser.join_time.desc()).slice(start, end)
        total = FrontUser.query.whoosh_search(keyword, like=True).count()
    elif category == 'area':
        resultlist = Area.query.whoosh_search(keyword, like=True).order_by(Area.number.desc()).slice(start, end)
        total = Area.query.whoosh_search(keyword, like=True).count()
    else:
        resultlist = Post.query.whoosh_search(keyword, like=True).order_by(Post.create_time.desc()).slice(start, end)
        total = Post.query.whoosh_search(keyword, like=True).count()

    pagination = Pagination(bs_version=3, page=page, total = total, outer_window=0, inner_window=2)

    return render_template('frontstage/front_search.html', resultlist=resultlist, keyword=keyword, total=total, category=category, pagination=pagination)
Esempio n. 13
0
def profile_reviews():
    # set flask paginate parameters for generating pages
    page, per_page, offset = get_page_args(
        page_parameter='page', per_page_parameter='per_page')
    per_page = 3
    offset = (page - 1) * per_page
    # create a user variable to use when
    #  searching for the users mongodb reviews
    user = session["user"]
    # find a total game count for pagination purposes
    total = mongo.db.games.find({"created_by": user}).count()
    # create a list of games
    findGames = mongo.db.games.find({"created_by": user}).sort("_id", -1)
    # paginate the games
    paginatedGames = findGames[offset: offset + per_page]
    # create pagination variable for flask paginate
    pagination = Pagination(page=page, per_page=per_page, total=total)
    # render template and pass through all the relevant variables
    return render_template('profile_reviews.html',
                           games=paginatedGames,
                           page=page,
                           per_page=per_page,
                           pagination=pagination,
                           )
Esempio n. 14
0
def fighters():
    search = False
    page, per_page, offset = get_page_args()
    fighters = db['fighters']  #select collection
    heading = 'POUND FOR POUND'
    visitors = get_visit_count()
    fighter_list = fighters.find({}, {
        "_id": 0,
        "name": 1,
        "striking": 1,
        "grappling": 1
    }).skip((page - 1) * per_page).limit(per_page)
    pagination = Pagination(page=page,
                            per_page=10,
                            offset=offset,
                            total=fighter_list.count(),
                            search=search,
                            record_name='fighters')
    return render_template('index.html',
                           fighters=fighter_list,
                           t=title,
                           h=heading,
                           pagination=pagination,
                           visitors=visitors)
Esempio n. 15
0
def node_view(nid):
    n = Node.query.filter_by(id=nid, deleted=False).first_or_404()
    node_title = n.title
    per_page = current_app.config['PER_PAGE']
    page = int(request.args.get('page', 1))
    offset = (page - 1) * per_page

    topics_all = Topic.query.filter_by(node_id=nid, deleted=False).order_by(
        Topic.time_created.desc()).limit(per_page + offset)
    topics = topics_all[offset:offset + per_page]
    pagination = Pagination(page=page,
                            total=Topic.query.filter_by(node_id=nid,
                                                        deleted=False).count(),
                            per_page=per_page,
                            record_name='topics',
                            CSS_FRAMEWORK='bootstrap',
                            bs_version=3)
    return render_template('voice/node_view.html',
                           topics=topics,
                           title=gettext('Node view'),
                           post_list_title=gettext("Node ") + node_title +
                           gettext("'s topics"),
                           pagination=pagination)
    return render_template('voice/node_view.html')
def all_sandwich():
    page, per_page, offset = get_page_args(page_parameter='page',
                                           per_page_parameter='per_page')
    # per_page = 8
    # offset = page * per_page

    total = mongo.db.sandwiches.find().count()

    sandwiches = mongo.db.sandwiches.find()

    sandwich_pagination = sandwiches[offset:offset + per_page]
    print(sandwich_pagination)

    pagination = Pagination(page=page,
                            per_page=per_page,
                            total=total,
                            css_framework='bootstrap4')

    return render_template('all_sandwich.html',
                           sandwiches=sandwiches,
                           page=page,
                           per_page=per_page,
                           sandwich_pagination=sandwich_pagination,
                           pagination=pagination)
Esempio n. 17
0
def hot():
    """ Show the hottest topics recently.

    Sort the topic by reply_count, if have same reply_count, then sort by click.
    """
    per_page = current_app.config['PER_PAGE']
    page = int(request.args.get('page', 1))
    offset = (page - 1) * per_page

    topics_all = Topic.query.filter_by(deleted=False).order_by(
        Topic.reply_count.desc(), Topic.click.desc()).limit(per_page + offset)

    topics = topics_all[offset:offset + per_page]
    pagination = Pagination(page=page,
                            total=Topic.query.filter_by(deleted=False).count(),
                            per_page=per_page,
                            record_name='topics',
                            CSS_FRAMEWORK='bootstrap',
                            bs_version=3)
    return render_template('voice/index.html',
                           topics=topics,
                           title=gettext('Hottest Topics'),
                           post_list_title=gettext('Hottest Topics'),
                           pagination=pagination)
Esempio n. 18
0
def todos_POST():
    # create a paginator to redirect the user to the last page after a todo has been added
    page, per_page, offset = get_page_args(page_parameter='page',
                                           per_page_parameter='per_page')
    todos = Todo.query.filter(Todo.user_id == current_user.get_id()).offset(
        offset).limit(offset + per_page).all()
    pagination = Pagination(page=page,
                            total=get_todos_count(current_user.get_id()),
                            per_page=per_page)

    form = CreateTodoForm(request.form)

    if form.validate_on_submit():
        todo = Todo(current_user.get_id(), form.description.data)
        db_session.add(todo)
        db_session.commit()
        flash('Todo successfully created!', 'success')
        return redirect('/todo?page=%s' % pagination.total_pages)

    return render_template('todos.html',
                           form=form,
                           todos=todos,
                           page=page,
                           pagination=pagination)
Esempio n. 19
0
def listCustomer():
    try:
        # Pagination
        search = False
        q = request.args.get('q')
        if q:
            search = True
        page = request.args.get(get_page_parameter(), type=int, default=1)
        per_page = 20
        startat = page * per_page
        if startat <= per_page:
            startat = 0
        count = exeReq("SELECT count(*) FROM user WHERE grp = 'customer';")
        count = re.sub("[^0-9]", "","{}".format(count))
        pagination = Pagination(page=page, total=int(count), search=search, record_name='list', css_framework='foundation', per_page=per_page)

        # Get data
        list = exeReq("SELECT login, email, grp FROM user WHERE grp = 'customer';")

        wEvent('/html/v1.0/customer/list','exeReq','Get list','OK')
        return render_template('listCustomer.html', list = list, maps = getMaps(), pagination=pagination)
    except Exception as e:
        wEvent('/html/v1.0/customer/list','exeReq','Get list','KO')
        return 'List error'
Esempio n. 20
0
def recipes(page):
    conn = psycopg2.connect(
        "dbname='db_plant' user='******' host='db' password='******'")
    page = request.args.get(get_page_parameter(), type=int, default=int(page))
    cur2 = conn.cursor()
    cur2.execute('SELECT * FROM recipe')
    rows = cur2.rowcount
    if (page == 1):
        cur = conn.cursor()
        cur.execute(
            'SELECT * FROM recipe LIMIT {limit} offset {offset}'.format(
                limit=10, offset=0))
        data = cur.fetchall()
    else:
        cur = conn.cursor()
        cur.execute(
            'SELECT * FROM recipe LIMIT {limit} offset {offset}'.format(
                limit=10, offset=(5 * int(page))))
        data = cur.fetchall()
    pagination = Pagination(page=page,
                            total=rows,
                            css_framework='bootstrap4',
                            record_name='plants')
    return render_template('recettes.html', plants=data, pagination=pagination)
Esempio n. 21
0
def lang():
    form = LangHandleForm()
    dump = Language.dump()
    if form.validate_on_submit():
        selected = request.form.getlist("selected_lang")
        if form.submit_add.data:
            return redirect(url_for("lang.save"))
        if form.submit_edit.data:
            if len(selected) != 1:
                flash("Invalid edited items. Allowed only one selected item")
            else:
                for lng in dump:
                    if lng.filang_id == int(selected[0]):
                        session["to_edit"] = {
                            "filang_id": lng.filang_id,
                            "fslang_iso639_1": lng.fslang_iso639_1,
                            "fslang_desc": lng.fslang_desc,
                        }
                        return redirect(url_for("lang.update"))
        elif form.submit_delete.data:
            Language.delete(tuple(selected))
            return redirect(url_for("lang.lang"))
    search = False
    q = request.args.get('q')
    if q:
        search = True
    page = request.args.get(get_page_parameter(), type=int, default=1)
    pagination = Pagination(page=page,
                            css_framework="foundation",
                            per_page=25,
                            total=len(dump),
                            search=search)
    return render_template("lang/overview.html",
                           render_lst=dump,
                           pagination=pagination,
                           form=form)
Esempio n. 22
0
def update_logos_multiple():
    if request.method == "POST":
        if request.form.get("choose_box", None) == 'Choose an Option':
            flash("PLEASE CHOOSE A COMPANY TO LABEL")
        else:
            responses = insert_logos_multiple(request.form)
            if responses:
                # Insert in database
                for response in responses:
                    new_logo = LogosMapper()
                    new_logo.company = response['company']
                    new_logo.id = response['id']
                    new_logo.image_path = response['path']
                    new_logo.image_vector = response['vector']
                    db.session.add(new_logo)
                    db.session.commit()
    _unlabeled_images = list()
    for folder in os.listdir(_UNLABELED_LOGOS):
        folder_path = os.path.join(_UNLABELED_LOGOS, folder)
        for image in os.listdir(folder_path):
            _unlabeled_images.append(os.path.join(folder, image))

    per_page_parameter = 12
    page = request.args.get(get_page_parameter(), type=int, default=1)
    images = _unlabeled_images[(page - 1) * per_page_parameter:page *
                               per_page_parameter]
    pagination = Pagination(page=page,
                            total=len(_unlabeled_images),
                            per_page_parameter=per_page_parameter,
                            record_name='Logos',
                            css_framework='bootstrap4')
    return render_template("dashboard_list_logos_multiple.html",
                           mapper=Company.json(),
                           images=images,
                           images_folder=_UNLABELED_LOGOS,
                           pagination=pagination)
Esempio n. 23
0
def search():
    qval = request.args.get('q')
    page = request.args.get('page', 1, type=int)
    print(qval, request.get_json(), request.data, request.args)
    res = None
    pagination = None
    if qval:
        res = _get_search(qval, page)
        if res:
            res = json.loads(res)['response']
            total, per_page = res['record_count'], 20
            href = ''.join(['/en/search?q=', qval, '&num=20&page={0}'])
            if total > per_page:
                pagination = Pagination(page=page,
                                        per_page=per_page,
                                        href=href,
                                        bs_version=4,
                                        total=total,
                                        record_name='users')
    return render_template('index.html',
                           qval=qval or '',
                           res=res,
                           locale=get_locale(),
                           pagination=pagination)
Esempio n. 24
0
def edit_companies():
    form = TeamsMapper()

    if 'reset_previous' in request.form:
        company = {'reset_previous': request.form['reset_previous']}
        _ = reset_previous(company)
    elif 'delete' in request.form:
        company = {'name': request.form['delete']}
        _ = delete_item(company)
    elif form.validate():
        _ = change_links_all(request.form)
    page = request.args.get(get_page_parameter(), type=int, default=1)

    companies = Company.get_page(int(page), page_limit=10)
    pagination = Pagination(page=page,
                            total=Company.count(),
                            per_page_parameter=10,
                            search=False,
                            record_name='Company',
                            css_framework='bootstrap4')
    return render_template("dashboard_edit_companies.html",
                           form=form,
                           companies=companies,
                           pagination=pagination)
Esempio n. 25
0
    def index(self):
        """Get the list of analyses.

        .. :quickref: Analysis; Get the list of analyses

        Response is paginated and will only contain 25 results. The most recent
        analyses appear first.

        :query page: page number.
        :type page: int

        :>json list analyses: list of analyses (see :http:get:`/analyses/(id)` for details on the format of an analysis).
        """
        page = int(request.args.get('page', 1))

        analyses = current_user.analyses.find().sort(
            '_id', DESCENDING).limit(PER_PAGE).skip((page - 1) * PER_PAGE)
        pagination = Pagination(page=page,
                                per_page=PER_PAGE,
                                total=analyses.count(),
                                css_framework='bootstrap3')
        analyses = {'analyses': clean_analyses(list(analyses))}
        for analysis in analyses['analyses']:
            file = current_user.files.find_one({'_id': analysis['file']})
            analysis['file'] = clean_files(file)

            if 'analyst' in analysis:
                analyst = store.users.find_one({'_id': analysis['analyst']})
                analysis['analyst'] = clean_users(analyst)

        return render(analyses,
                      'analyses/index.html',
                      ctx={
                          'data': analyses,
                          'pagination': pagination
                      })
Esempio n. 26
0
def display_even_integers_to_n(number):
    is_non_negative: bool = non_negative_integer(number)
    if not is_non_negative:
        return render_template("non_negative_integer.html", number=number)
    numbers: list = list(range(2, number + 1, 2))
    page, per_page, offset = get_page_args(page_parameter='page',
                                           per_page_parameter='per_page')
    if (page is None) or (page > len(numbers) / 10 + 1) or page <= 0:
        abort(400)
    pagination = Pagination(page=page,
                            per_page=per_page,
                            total=len(numbers),
                            css_framework='bootstrap4')
    digit_list = get_pagination_digits_list(digit_list=numbers,
                                            offset=offset,
                                            per_page=per_page)
    return render_template(
        "display_integers.html",
        title="Display Even Integers 1 to {}".format(number),
        numbers=digit_list,
        page=page,
        per_page=per_page,
        pagination=pagination,
    )
Esempio n. 27
0
def wf_state(state, sorting_key='_id', sorting_order="DESCENDING"):
    if sorting_order == "ASCENDING":
        sort_order = 1
    elif sorting_order == "DESCENDING":
        sort_order = -1
    else:
        raise RuntimeError()
    current_sorting_key = sorting_key
    current_sorting_order = sorting_order
    db = app.lp.workflows
    q = {} if state == "total" else {"state": state}
    q = _addq_WF(q)
    wf_count = app.lp.get_wf_ids(query=q, count_only=True)
    try:
        page = int(request.args.get('page', 1))
    except ValueError:
        page = 1
    rows = list(db.find(q).sort([(sorting_key, sort_order)]).skip(
        (page - 1) * PER_PAGE).limit(PER_PAGE))
    for r in rows:
        r["fw_id"] = r["nodes"][0]
    pagination = Pagination(page=page, total=wf_count, record_name='workflows',
                            per_page=PER_PAGE)
    return render_template('wf_state.html', **locals())
Esempio n. 28
0
def qs_subject():
    page = request.args.get(get_page_parameter(), type=int, default=1)
    start = (page - 1) * 10
    end = start + 10
    t = request.args.get('t',type=int,default=2021)
    s = request.args.get('s',type=str,default='science')
    qs_sub = None
    total = None
    if s == 'science':
        if t:
            for i in range(2016,2022):
                if t == i:
                    qs_sub = Qs_science_rank.query.filter_by(time=t).slice(start, end)
                    total = Qs_science_rank.query.filter_by(time=t).count()
    elif s == 'accounting':
        if t:
            for i in range(2016,2022):
                if t == i:
                    qs_sub = Qs_accounting_rank.query.filter_by(time=t).slice(start, end)
                    total = Qs_science_rank.query.filter_by(time=t).count()

    elif s == 'enginnering':
        if t:
            for i in range(2016,2022):
                if t == i:
                    qs_sub = Qs_engineering_rank.query.filter_by(time=t).slice(start, end)
                    total = Qs_science_rank.query.filter_by(time=t).count()

    elif s == 'technology':
        if t:
            for i in range(2016,2022):
                if t == i:
                    qs_sub = Qs_technology_rank.query.filter_by(time=t).slice(start, end)
                    total = Qs_science_rank.query.filter_by(time=t).count()
    pagination = Pagination(bs_version=4, page=page, total=total, outer_window=0, inner_window=2)
    return render_template('qs_rank.html',qs_sub=qs_sub,t=t,s=s,pagination=pagination)
Esempio n. 29
0
    def calc(self):
        """ calculate values for skip, etc. """
        self.maxPage = int((self.total + self.perPage - 1)/self.perPage)
        if self.maxPage < 1: self.maxPage = 1
        if self.page < 1: self.page = 1
        if self.page > self.maxPage: self.page = self.maxPage

        self.skip = (self.page-1)*self.perPage
        self.fromIx = self.skip + 1
        self.toIx = self.skip + self.perPage
        if self.toIx > self.total: self.toIx = self.total
        self.numShow = self.toIx - self.fromIx + 1

        self.info = "Displaying rows %d-%d of %d." % (
            self.fromIx, self.toIx, self.total)

        self.flaskPag = Pagination(
            page=self.page,
            css_framework="bootstrap3",
            link_size=self.perPage,
            show_single_page=self.showSinglePage,
            per_page=self.perPage,
            total=self.total)
        self.links = self.flaskPag.links
def user_recipes():
    """Display only user specific recipes"""
    if not 'user_name' in session:
        return redirect('/login')
    else:
        #https://gist.github.com/Faizanq/a4d07f1a9624bdf6d3ddd9d4d6cc1b2d
        page, per_page, offset = get_page_args(page_parameter='page',
                                               per_page_parameter='per_page')
        user_recipes_filtered = mongo.db.recipes.find(
            {"user_name": session['user_name']})
        total = user_recipes_filtered.count()
        my_recipes_fetched = user_recipes_filtered.sort([
            ('upvotes', DESCENDING)
        ]).skip((page - 1) * ITEMS_PER_PAGE).limit(ITEMS_PER_PAGE)
        pagination = Pagination(page=page,
                                per_page=ITEMS_PER_PAGE,
                                total=total,
                                record_name='Recipes')
        return render_template('userrecipes.html',
                               recipes=my_recipes_fetched,
                               username=session['user_name'],
                               page=page,
                               per_page=per_page,
                               pagination=pagination)