class MachinehubController(FlaskView):
    decorators = [requires_auth]
    route_prefix = '/'
    route_base = '/'

    def __init__(self):
        self.machines_model = MachineModel()

    @route('/machines/<int:page>')
    def machines(self, page):
        links = []
        count = self.machines_model.count
        machines = self.machines_model.get_machines_for_page(page, PER_PAGE, count)
        for name, doc in machines:
            url = url_for('MachineController:machine', machine_name=name)
            links.append((url, name, doc.title or "", doc.description or ""))
        if not machines and page != 1:
            abort(404)
        pagination = Pagination(page, PER_PAGE, count)
        return render_template('explorer.html',
                               pagination=pagination,
                               links=links
                               )

    @route('/')
    def index(self):
        return render_template('home.html')
class MachinehubController(FlaskView):
    decorators = [requires_auth]
    route_prefix = '/'
    route_base = '/'

    def __init__(self):
        self.machines_model = MachineModel()

    @route('/machines/<int:page>')
    def machines(self, page):
        links = []
        count = self.machines_model.count
        machines = self.machines_model.get_machines_for_page(
            page, PER_PAGE, count)
        for name, doc in machines:
            url = url_for('MachineController:machine', machine_name=name)
            links.append((url, name, doc.title or "", doc.description or ""))
        if not machines and page != 1:
            abort(404)
        pagination = Pagination(page, PER_PAGE, count)
        return render_template('explorer.html',
                               pagination=pagination,
                               links=links)

    @route('/')
    def index(self):
        return render_template('home.html')