예제 #1
0
def view_many_boards(board_ids, solution, mode, root):
    """
    View many boards.
    """
    user = User.get_by_id(session['user'])
    query = DBBoard.query().filter(DBBoard.id.in_(board_ids))
    if not root:
        query = query.filter_by(user=user)
    boards = query.all()

    if mode == INSITE_BOARD_VIEW:
        return render_template('view_board.html', many=True, boards=boards, board_ids=board_ids,
                               is_solution=solution, root=root, user=user)
    elif mode == PRINT_BOARD_VIEW:
        return render_template('print_board.html', multi_board=True, boards=boards, is_solution=solution)
    elif mode == PDF_BOARD_VIEW:
        filename = 'solution.pdf' if solution else 'board.pdf'
        return render_pdf_template('pdf_board.tex', filename, multi_board=True, boards=boards, is_solution=solution)
    else:
        flash('Invalid mode', 'warning')
        return redirect(url_for('main_page'))
예제 #2
0
def view_one_board(board_id, solution, mode, root):
    """
    View a single board.
    """
    user = User.get_by_id(session['user'])
    board = DBBoard.get_by_id(board_id)

    if board is None or (board.user != user and not root):
        flash('Board not found', 'warning')
        return redirect(url_for('main_page'))

    if mode == INSITE_BOARD_VIEW:
        return render_template('view_board.html', many=False, board=board, board_id=board_id, is_solution=solution,
                               root=root, user=user)
    elif mode == PRINT_BOARD_VIEW:
        return render_template('print_board.html', multi_board=False, board=board, board_id=board_id,
                               is_solution=solution)
    elif mode == PDF_BOARD_VIEW:
        filename = 'solution.pdf' if solution else 'board.pdf'
        return render_pdf_template('pdf_board.tex', filename, multi_board=False, board=board, board_id=board_id,
                                   is_solution=solution)
    else:
        flash('Invalid mode', 'warning')
        return redirect(url_for('main_page'))