#!/usr/bin/env python3 from flask import Flask, render_template, request, jsonify, url_for from flask_bootstrap import Bootstrap from flask_nav.elements import Navbar, View from flask_nav import Nav from flask_wtf import FlaskForm from wtforms import Form, TextField, TextAreaField, validators, StringField, SubmitField, SelectField from flask_sqlalchemy import SQLAlchemy from pydb import Navigator topbar = Navbar( 'MDR-Project', View('Homepage / Index', 'index'), View('Testdb', 'testdb'), View('Select field', 'select'), View('Auswahl und Reaktion', 'auswahl_reaktion'), ) # Initialisierung Flask app = Flask(__name__) app.config['SECRET_KEY'] = 'secretkey' # Notwendig fuer Forms # Navigationsbar nav = Nav(app) nav.register_element('top', topbar) nav.init_app(app) # Initialize Database connection dbNav = Navigator()
def nav_menu(): navbar = Navbar('nav_menu') if current_user.is_authenticated: navbar.items.append(View('Home', 'admin.home', interest=g.interest)) # deeper functions are only accessible when interest is set if g.interest: if current_user.has_role( ROLE_INTEREST_ADMIN) or current_user.has_role( ROLE_SUPER_ADMIN): navbar.items.append( View('Edit Routes', 'admin.routetable', interest=g.interest)) if current_user.has_role(ROLE_ICON_ADMIN) or current_user.has_role( ROLE_SUPER_ADMIN): icons = Subgroup('Icons') navbar.items.append(icons) icons.items.append( View('Icon Locations', 'admin.iconlocations', interest=g.interest)) icons.items.append( View('Icon Map', 'admin.iconmap', interest=g.interest)) icons.items.append( View('Icons', 'admin.icons', interest=g.interest)) icons.items.append( View('Icon Subtypes', 'admin.iconsubtypes', interest=g.interest)) # superadmin stuff if current_user.has_role(ROLE_SUPER_ADMIN): userroles = Subgroup('Users/Roles') navbar.items.append(userroles) userroles.items.append(View('Users', 'admin.users')) # this doesn't work because https://github.com/jwag956/flask-security/blob/743be9c979b558b4ecfb177dc8117c0bf55e38ed/flask_security/views.py#L464 # requires forgot_password has anonymous_user_required decorator # userroles.items.append(View('Reset PW', 'security.forgot_password')) userroles.items.append(View('Roles', 'admin.roles')) navbar.items.append(View('Interests', 'admin.interests')) navbar.items.append(View('Files', 'admin.files')) navbar.items.append(View('My Account', 'security.change_password')) navbar.items.append(View('Debug', 'admin.debug')) # finally for non super-admin else: navbar.items.append(View('My Account', 'security.change_password')) # common items if g.interest: navbar.items.append( View('User View', 'frontend.routes', interest=g.interest)) navbar.items.append(View('About', 'admin.sysinfo')) return navbar
def mynavbar(): if current_user.is_anonymous: navbar = Navbar('', View(gettext(u'Login'), 'user.login')) elif current_user.has_roles('Admin'): navbar = Navbar( '', View(gettext(u'Home'), 'books.index'), Subgroup( gettext(u'Books'), View(gettext(u'New Book'), 'books.new_book'), View(gettext(u'List'), 'books.index'), View(gettext(u'Search'), 'books.search'), ), Subgroup( current_user.username, View(gettext(u'Add user'), 'auth.register'), View(gettext(u'User list'), 'auth.userlist'), View(gettext(u'Show Barcde'), 'auth.barcode', userid=current_user.id), View(gettext(u'Edit password'), 'auth.edit', userid=current_user.id), Separator(), View(gettext(u'Logout'), 'user.logout'), ), ) else: navbar = Navbar( '', View(gettext(u'Home'), 'books.index'), Subgroup( gettext(u'Books'), View(gettext(u'List'), 'books.index'), View(gettext(u'Search'), 'books.search'), ), Subgroup( current_user.username, View(gettext(u'Show Barcde'), 'auth.barcode', userid=current_user.id), View(gettext(u'Edit password'), 'auth.edit', userid=current_user.id), Separator(), View(gettext(u'Logout'), 'user.logout'), ), ) return navbar
class Navigation: with open("configs/base.json", "r") as base_config_file: base_config = json.load(base_config_file) base = ['TiT', View('Home', 'home'), View('Account', "account.home")] services = [ View('JF Service', "jf.home"), View('Buyback Service', 'buyback.home'), View('Fittings', "fittings.home"), View("Market Service", "ordering.home") ] settings = [ SeparatorAlign(), View("Bug Report", 'issues'), View("Change Theme", "settings"), View('Log Out', 'auth.log_out') ] alliance = base + services corp = base + [ Subgroup("Corporation", View('Corp Main', "corp.home"), LinkTab("Corp Forums", base_config["forum_url"])), Subgroup("Services", *services) ] def __init__(self, app): nav = Nav() # noinspection PyUnusedLocal,PyAbstractClass,PyMethodMayBeStatic,PyPep8Naming @nav.renderer('custom') class CustomRenderer(BootstrapRenderer): # External links now open in new tab def visit_LinkTab(self, node): item = tags.li() item.add( tags.a(node.text, href=node.get_url(), target="_blank")) return item def visit_LogIn(self, node): item = tags.li() inner = item.add( tags.a(href=node.get_url(), _class="nav-image")) inner.add( tags.img(src=url_for("static", filename="sso_login.png"))) if node.active: item['class'] = 'active' return item def visit_SeparatorAlign(self, node): return NotImplementedError def visit_Navbar(self, node): # create a navbar id that is somewhat fixed, but do not leak any # information about memory contents to the outside node_id = self.id or sha1(str(id(node)).encode()).hexdigest() root = tags.nav() if self.html5 else tags.div( role='navigation') root['class'] = 'navbar navbar-default' cont = root.add(tags.div(_class='container-fluid')) # collapse button header = cont.add(tags.div(_class='navbar-header')) btn = header.add(tags.button()) btn['type'] = 'button' btn['class'] = 'navbar-toggle collapsed' btn['data-toggle'] = 'collapse' btn['data-target'] = '#' + node_id btn['aria-expanded'] = 'false' btn['aria-controls'] = 'navbar' btn.add(tags.span('Toggle navigation', _class='sr-only')) btn.add(tags.span(_class='icon-bar')) btn.add(tags.span(_class='icon-bar')) btn.add(tags.span(_class='icon-bar')) # title may also have a 'get_url()' method, in which case we render # a brand-link if node.title is not None: if hasattr(node.title, 'get_url'): header.add( tags.a(node.title.text, _class='navbar-brand', href=node.title.get_url())) else: header.add(tags.span(node.title, _class='navbar-brand')) bar = cont.add( tags.div( _class='navbar-collapse collapse', id=node_id, )) bar_list = bar.add(tags.ul(_class='nav navbar-nav')) bar_list_right = bar.add( tags.ul(_class='nav navbar-nav navbar-right')) to_right = False for item in node.items: if isinstance(item, SeparatorAlign): to_right = True continue if not to_right: bar_list.add(self.visit(item)) else: bar_list_right.add(self.visit(item)) return root @nav.navigation('anon') def nav_anon(): return Navbar('TiT', View('Home', 'home'), View('Buyback Service', 'buyback.home'), View('JF Service', "jf.home"), View('Recruitment', 'recruitment.home'), SeparatorAlign(), View("Change Theme", "settings"), LogIn('Log In', 'auth.sso_redirect')) @nav.navigation('neut') def nav_neut(): return Navbar('TiT', View('Home', 'home'), View('Account', "account.home"), View('Buyback Service', 'buyback.home'), View('JF Service', "jf.home"), View('Recruitment', 'recruitment.home'), SeparatorAlign(), View("Change Theme", "settings"), View('Log Out', 'auth.log_out')) @nav.navigation('corporation') def nav_corp(): items = Navigation.corp + Navigation.settings return Navbar(*items) @nav.navigation('alliance') def nav_alliance(): items = Navigation.alliance + Navigation.settings return Navbar(*items) @nav.navigation('admin') def nav_admin(): admin_elements = [] role_elements = [] market_service = False security = False for role in session.get("UI_Roles"): if role == "jf_admin": admin_elements += [ View('JF Routes', "jf.admin"), View('JF Stats', "jf.stats") ] elif role == "user_admin": admin_elements.append(View('User Roles', "admin.roles")) elif role == "jf_pilot": role_elements.append(View('JF Service', "jf.pilot")) elif role == "buyback_admin": admin_elements.append( View('Buyback Service', 'buyback.admin')) elif role in ["ordering_marketeer", "ordering_admin" ] and not market_service: role_elements.append( View('Market Service', 'ordering.admin')) market_service = True elif role in ["security_officer", "recruiter" ] and not security: role_elements.append( View('Recruitment Apps', 'recruitment.applications')) if role == "security_officer": role_elements.append( View('Security Info', 'security.home')) admin_elements.append( View('Recruitment Settings', 'recruitment.admin')) security = True elif role == "recruiter" and not security: role_elements.append( View('Recruitment Apps', 'recruitment.applications')) subs = [] if role_elements: subs.append(Subgroup('Role Pages', *role_elements)) if admin_elements: subs.append(Subgroup('Admin Pages', *admin_elements)) if session["UI_Corporation"]: items = Navigation.corp + subs + Navigation.settings elif session["UI_Alliance"]: items = Navigation.alliance + subs + Navigation.settings else: return nav_neut() return Navbar(*items) nav.init_app(app)
client = Client( 'fortune500', host=redis_server, password=redis_password, port=redis_port ) ac = AutoCompleter( 'ac', conn = client.redis ) nav = Nav() topbar = Navbar('', View('Home', 'index'), View('Aggregations', 'show_agg'), View('CEO Search', 'search_ceo'), View('Tag Search', 'search_tags'), ) nav.register_element('top', topbar) def agg_by(field): ar = aggregation.AggregateRequest().group_by(field, reducers.count().alias('my_count')).sort_by(aggregation.Desc('@my_count')) return (client.aggregate(ar).rows) def search_data(company): j = client.search(Query(company).limit_fields('title').verbatim()).docs[0].__dict__ del j['id'] del j['payload'] return(j)
import matching as matching import retriever.servo_control as sc import time import serial from PIL import Image #import visualizer.visualizer as vi import fakeapi as vi import user_preference.user_preference as up from diskcache import Cache app = Flask(__name__) nav = Nav(app) nav.register_element( 'my_navbar', Navbar('thenav', View('Home', 'home'), View('Add', 'add'), View('Remove', 'remove'), View('Return', 'ret'), View('Take', 'take'))) serialcomm = serial.Serial('/dev/cu.usbmodem101', 9600) database = [] angle_storage = Cache("angle_storage") angle_key = "cur_angle" servo_angle = angle_storage.get(angle_key) if servo_angle == None: servo_angle = 0 cur_type_of_clothes = "" cur_color = "" class_lookup = [ "Anorak", "Blazer", "Blouse", "Bomber", "Button-Down", "Caftan", "Capris",
def nav_bar(): nav.renderer() authors_list = get_authors() subgroup_items = Subgroup(*authors_list) items = [View('Home', '.index'), subgroup_items, Link('API', '/api')] return Navbar('My Blog', *items)
#form class setup class SignupForm(Form): name = TextField(u'Your name', [validators.required()]) password = TextField(u'Your favorite password', [validators.required()]) email = TextField(u'Your email address', [validators.required()]) submit = SubmitField(u'Signup') #setup navigation nav = Nav() nav.register_element( 'frontend_top', Navbar( View('Stocker', '.index'), Subgroup( 'Rankings', View('Magic Formula Trailing', 'rank', strategy='magic_formula_trailing'), View('Magic Formula Future', 'rank', strategy='magic_formula_future'), View('EBITDA', 'rank', strategy='ebitda'), View('PE ratio trailing', 'rank', strategy='pe_ratio_ttm'), View('PE ratio future', 'rank', strategy='pe_ratio_ftm'), View('GARP ratio', 'rank', strategy='garp_ratio'), View('Return on Assets', 'rank', strategy='return_on_assets'), View('Return on Equity', 'rank', strategy='return_on_equity'), View('Dividend Yield', 'rank', strategy='DividendYield'),
from flask_nav.elements import View, Navbar, Subgroup navbar = Navbar( 'IoT', View('Home', '.index'), Subgroup('Account', View('Settings', '.account_settings'), View('Log out', '.logout')), View('Help', '.help'), View('Themes', '.themes'), View('Admin', '.admin'))
def mynavbar(): return Navbar('PaStA shiny webfrontend', View('Home', 'home'), View('Mbox', 'mbox'))
from flask import Blueprint, render_template, flash, redirect, url_for from flask_bootstrap import __version__ as FLASK_BOOTSTRAP_VERSION from flask_nav.elements import Navbar, View, Subgroup, Link, Text, Separator from markupsafe import escape from .forms import SignupForm from .nav import nav frontend = Blueprint('frontend', __name__) # We're adding a navbar as well through flask-navbar. In our example, the # navbar has an usual amount of Link-Elements, more commonly you will have a # lot more View instances. nav.register_element('frontend_top', Navbar( View('IDI2018', '.index'), View('Home', '.index'), View('Forms Example', '.example_form'), Subgroup( 'Docs', Link('Flask-Bootstrap', 'http://pythonhosted.org/Flask-Bootstrap'), Link('Flask-AppConfig', 'https://github.com/mbr/flask-appconfig'), Link('Flask-Debug', 'https://github.com/mbr/flask-debug'), Separator(), Text('Bootstrap'), Link('Getting started', 'http://getbootstrap.com/getting-started/'), Link('CSS', 'http://getbootstrap.com/css/'), Link('Components', 'http://getbootstrap.com/components/'), Link('Javascript', 'http://getbootstrap.com/javascript/'), Link('Customize', 'http://getbootstrap.com/customize/'), ), Text('Using Flask-Bootstrap {}'.format(FLASK_BOOTSTRAP_VERSION)), ))
from flask_nav.elements import View, Subgroup from utilities.ui.bootstrap import CustomNavbar public_navbar = CustomNavbar('IoT', [ View('Home', 'public.index'), ], [ View('Help', 'public.help'), Subgroup('Account', View('Register', 'public.register'), View('Sign in', 'public.login')) ])
if environ.get('REDIS_PASSWORD') is not None: redis_password = environ.get('REDIS_PASSWORD') else: redis_password = '' client = Client('fortune500', host=redis_server, password=redis_password, port=redis_port) ac = AutoCompleter('ac', conn=client.redis) nav = Nav() topbar = Navbar( '', View('Home', 'index'), View('Aggregations', 'show_agg'), View('CEO Search', 'search_ceo'), View('Tag Search', 'search_tags'), View('Presentation', 'preso'), View('Example Queries', 'example_queries'), ) nav.register_element('top', topbar) def agg_by(field): ar = aggregation.AggregateRequest().group_by( field, reducers.count().alias('my_count')).sort_by( aggregation.Desc('@my_count')) return (client.aggregate(ar).rows)
from flask_nav.elements import View, Subgroup from revue import nav from revue.utilities.permissions import Permissions from revue.utilities.ui.bootstrap import CustomNavbar, PermissionView intern_navbar = CustomNavbar( 'Revue', [ View('Home', '.index'), View('Dit jaar', '.show_current_year'), View('Medewerkers', '.members'), View('Media', '.media') ], [ Subgroup('Internal', View('Public', 'public.index'), PermissionView('Admin', 'admin.index', Permissions.ADMIN), ), Subgroup('Account', View('Profiel', '.profile'), View('Groups', '.view_own_groups'), View('Logout', '.logout'), ), ] ) nav.register_element('intern_navbar', intern_navbar)
from flask import Blueprint, render_template, flash from flask_nav import Nav from flask_nav.elements import Navbar, View, Subgroup, Link, Text, Separator # create frontend blueprint for use by the app frontend = Blueprint('frontend', __name__) # flask-navbar # ============================================================================ nav = Nav() nav.register_element( 'frontend_top', Navbar( View('Demo app', '.index'), View('flash!', '.exampleflash'), Subgroup( 'links', Link('python', 'https://www.python.org/'), Separator(), Link('flask', 'http://flask.pocoo.org/'), Link('flask-bootstrap', 'https://pythonhosted.org/Flask-Bootstrap/'), Link('flask-nav', 'http://pythonhosted.org/Flask-Bootstrap/nav.html'), Link('flask-wtf', 'http://flask-wtf.readthedocs.io/en/latest/'), ), )) # routes # ============================================================================
def menunav(): menu = Navbar('Minha aplicação') menu.items = [View('Nome', 'hello_world'), View('Login', 'autenticar')] menu.items.append(Subgroup('Pessoas', View('Aluno', 'hello_world'))) menu.items.append(Link('Ajuda', 'https://www.google.com')) return menu
""" Register the top menu for the frontend. """ from flask_nav import Nav from flask_nav.elements import (Navbar, View, Link) nav = Nav() nav.register_element( 'frontend_top', Navbar( View('Home', 'frontend_blueprint.index'), View('Processors', 'processors_blueprint.processors'), View('Chains', 'chains_blueprint.chains'), View('Tasks', 'tasks_blueprint.tasks'), View('Compare', 'compare_blueprint.compare'), Link('API', dest='/api'), Link('Queue Backend', dest='/flower/'), ))
def navbar(): if current_user.is_authenticated: return Navbar( View('Kolbe', 'dashboard.index'), View('Pages', 'pages.index'), View('Tags', 'tags.index'), View('Users', 'users.index'), View('Database', 'database.index'), Subgroup(current_user.email, View('Profile', 'users.profile'), View('Logout', 'users.logout'))) else: return Navbar(View('Kolbe', 'pages.index'), View('Pages', 'pages.index'), View('Tags', 'tags.index'), View('Login', 'users.login'))
def hello_view(app): v = View('notext', 'hello', arg1=1, q1='q') app.hello_view = v return v
from flask import Flask, render_template from flask_bootstrap import Bootstrap from flask_nav.elements import Navbar, View from flask_nav import Nav # To keep things clean, we keep our Flask-Nav instance in here. We will define # frontend-specific navbars in the respective frontend, but it is also possible # to put share navigational items in here. topbar = Navbar( '', View('Home', 'home'), View('Adoption', 'pets'), ) nav = Nav() nav.register_element('top', topbar) app = Flask(__name__) bootstrap = Bootstrap(app) nav.init_app(app) @app.route('/') def home(): return render_template('home.html') @app.route('/pets') def pets(): return render_template('products.html')
from flask_nav import Nav from flask_nav.elements import Navbar, View from .views.controller import controller from .views.plot import plot, index as plot_index from .views.settings import settings from .views.update import update app = Flask(__name__) Bootstrap(app) app.register_blueprint(plot) app.register_blueprint(controller) app.register_blueprint(settings) app.register_blueprint(update) topbar = Navbar('', View('Steuerung', 'index'), View('Einstellungen', 'settings.index'), View('Aktualisierung', 'update.index')) nav = Nav() nav.register_element('top', topbar) nav.init_app(app) @app.route('/') def index(): return plot_index() @app.errorhandler(500) def internal_error(exception): app.logger.error(exception)
def nav_menu(): navbar = Navbar('nav_menu') contexthelp = {} class add_view(): def __init__(self, basehelp): self.basehelp = basehelp.format(docversion=__docversion__) def __call__(self, navmenu, text, endpoint, **kwargs): prelink = kwargs.pop('prelink', None) navmenu.items.append(View(text, endpoint, **kwargs)) contexthelp[url_for( endpoint, **kwargs)] = self.basehelp + slugify(text + ' view') if not prelink: contexthelp[url_for( endpoint, **kwargs)] = self.basehelp + slugify(text + ' view') else: contexthelp[url_for( endpoint, **kwargs)] = self.basehelp + slugify(prelink + ' ' + text + ' view') def nomenu_help(self, text, endpoint, **kwargs): prelink = kwargs.pop('prelink', None) if not prelink: contexthelp[url_for( endpoint, **kwargs)] = self.basehelp + slugify(text + ' view') else: contexthelp[url_for( endpoint, **kwargs)] = self.basehelp + slugify(prelink + ' ' + text + ' view') org_admin_view = add_view( 'https://members.readthedocs.io/en/{docversion}/organization-admin-reference.html#' ) leadership_admin_view = add_view( 'https://members.readthedocs.io/en/{docversion}/leadership-task-admin-reference.html#' ) leadership_superadmin_view = add_view( 'https://members.readthedocs.io/en/{docversion}/super-admin-reference.html#' ) leadership_member_view = add_view( 'https://members.readthedocs.io/en/{docversion}/leadership-task-member-guide.html#' ) membership_admin_view = add_view( 'https://members.readthedocs.io/en/{docversion}/membership-admin-guide.html#' ) meetings_admin_view = add_view( 'https://members.readthedocs.io/en/{docversion}/meetings-admin-reference.html#' ) meetings_member_view = add_view( 'https://members.readthedocs.io/en/{docversion}/meetings-member-guide.html#' ) racingteam_admin_view = add_view( 'https://members.readthedocs.io/en/{docversion}/racingteam-admin-reference.html#' ) # create context help menu items for views which can't be navigated to from the main menu if g.interest: meetings_member_view.nomenu_help('My Status Report', 'admin.memberstatusreport', interest=g.interest) meetings_member_view.nomenu_help('RSVP', 'admin.rsvp', interest=g.interest) meetings_admin_view.nomenu_help('Meeting', 'admin.meeting', interest=g.interest) meetings_admin_view.nomenu_help('Meeting Status', 'admin.meetingstatus', interest=g.interest) if current_user.is_authenticated: navbar.items.append(View('Home', 'admin.home', interest=g.interest)) # deeper functions are only accessible when interest is set if g.interest: # leadership member stuff if (current_user.has_role(ROLE_LEADERSHIP_MEMBER) or current_user.has_role(ROLE_LEADERSHIP_ADMIN) or current_user.has_role(ROLE_SUPER_ADMIN)): leadership_member_view(navbar, 'Task Checklist', 'admin.taskchecklist', interest=g.interest) # organization admin stuff visible to all members admins if (current_user.has_role(ROLE_MEETINGS_ADMIN) or current_user.has_role(ROLE_LEADERSHIP_ADMIN) or current_user.has_role(ROLE_MEMBERSHIP_ADMIN) or current_user.has_role(ROLE_SUPER_ADMIN)): orgadmin = Subgroup('Organization') navbar.items.append(orgadmin) org_admin_view(orgadmin, 'Distribution List', 'admin.distribution', interest=g.interest) org_admin_view(orgadmin, 'Members', 'userrole.members') org_admin_view(orgadmin, 'Positions', 'admin.positions', interest=g.interest) org_admin_view(orgadmin, 'Position Dates', 'admin.positiondates', interest=g.interest) org_admin_view(orgadmin, 'Tags', 'admin.tags', interest=g.interest) # meetings member stuff if (current_user.has_role(ROLE_MEETINGS_MEMBER) or current_user.has_role(ROLE_MEETINGS_ADMIN) or current_user.has_role(ROLE_SUPER_ADMIN)): meetingsviews = Subgroup('Meetings') navbar.items.append(meetingsviews) # meetings admin stuff if current_user.has_role( ROLE_MEETINGS_ADMIN) or current_user.has_role( ROLE_SUPER_ADMIN): meetings_admin_view(meetingsviews, 'Meetings', 'admin.meetings', interest=g.interest) meetings_admin_view(meetingsviews, 'Action Items', 'admin.actionitems', interest=g.interest) meetings_admin_view(meetingsviews, 'Motions', 'admin.motions', interest=g.interest) meetings_admin_view(meetingsviews, 'Motion Votes', 'admin.motionvotes', interest=g.interest) meetings_admin_view(meetingsviews, 'Agenda Headings', 'admin.agendaheadings', interest=g.interest) meetings_admin_view(meetingsviews, 'Invites', 'admin.invites', interest=g.interest) meetings_admin_view(meetingsviews, 'Meeting Types', 'admin.meetingtypes', interest=g.interest) meetingsviews.items.append(Separator()) meetings_member_view(meetingsviews, 'My Meetings', 'admin.mymeetings', interest=g.interest) meetings_member_view(meetingsviews, 'My Action Items', 'admin.myactionitems', interest=g.interest) # todo: should this be disabled if no motionvotes for this user? meetings_member_view(meetingsviews, 'My Motion Votes', 'admin.mymotionvotes', interest=g.interest) # not sure there is any need for this # meetings_member_view(meetingsviews, 'My Discussion Items', 'admin.memberdiscussions', interest=g.interest) # meetings member, not admin if not (current_user.has_role(ROLE_MEETINGS_ADMIN) or current_user.has_role(ROLE_SUPER_ADMIN)): meetings_member_view(meetingsviews, 'Action Items', 'admin.memberactionitems', interest=g.interest, prelink='member') meetings_member_view(meetingsviews, 'Motions', 'admin.membermotions', interest=g.interest, prelink='member') # leadership admin stuff if current_user.has_role( ROLE_LEADERSHIP_ADMIN) or current_user.has_role( ROLE_SUPER_ADMIN): leadershipadmin = Subgroup('Tasks') navbar.items.append(leadershipadmin) leadership_admin_view(leadershipadmin, 'Member Summary', 'admin.membersummary', interest=g.interest) leadership_admin_view(leadershipadmin, 'Task Details', 'admin.taskdetails', interest=g.interest) leadership_admin_view(leadershipadmin, 'Task Groups', 'admin.taskgroups', interest=g.interest) leadership_admin_view(leadershipadmin, 'Tasks', 'admin.tasks', interest=g.interest) leadership_admin_view(leadershipadmin, 'Task Fields', 'admin.taskfields', interest=g.interest) leadership_admin_view(leadershipadmin, 'History', 'admin.history', interest=g.interest) # membership admin stuff if current_user.has_role( ROLE_MEMBERSHIP_ADMIN) or current_user.has_role( ROLE_SUPER_ADMIN): membershipadmin = Subgroup('Membership') navbar.items.append(membershipadmin) membership_admin_view(membershipadmin, 'Club Members', 'admin.clubmembers', interest=g.interest) membership_admin_view(membershipadmin, 'Memberships', 'admin.memberships', interest=g.interest) membershipadmin.items.append( View('Membership Stats', 'frontend.membershipstats', interest=g.interest)) # racingteam admin stuff if current_user.has_role( ROLE_RACINGTEAM_ADMIN) or current_user.has_role( ROLE_SUPER_ADMIN): racingteamadmin = Subgroup('Racing Team') navbar.items.append(racingteamadmin) racingteam_admin_view(racingteamadmin, 'Members', 'admin.rt_members', interest=g.interest) racingteam_admin_view(racingteamadmin, 'Info Results', 'admin.rt_inforesults', interest=g.interest) racingteam_admin_view(racingteamadmin, 'Info Volunteer', 'admin.rt_infovol', interest=g.interest) racingteam_admin_view(racingteamadmin, 'Applications', 'admin.rt_applns', interest=g.interest) racingteam_admin_view(racingteamadmin, 'Application Results', 'admin.rt_applnresults', interest=g.interest) racingteam_admin_view(racingteamadmin, 'Date Range', 'admin.rt_daterange', interest=g.interest) racingteam_admin_view(racingteamadmin, 'Config', 'admin.rt_config', interest=g.interest) # superadmin stuff if current_user.has_role(ROLE_SUPER_ADMIN): userroles = Subgroup('Super') navbar.items.append(userroles) leadership_superadmin_view(userroles, 'Interest Attributes', 'admin.interestattrs') if g.interest: leadership_superadmin_view(userroles, 'Email Templates', 'admin.emailtemplates', interest=g.interest) leadership_superadmin_view(userroles, 'Document Templates', 'admin.doctemplates', interest=g.interest) leadership_superadmin_view(userroles, 'Roles', 'userrole.roles') leadership_superadmin_view(userroles, 'Interests', 'userrole.interests') leadership_superadmin_view(userroles, 'Applications', 'userrole.applications') if g.interest: leadership_superadmin_view(userroles, 'Files', 'admin.files', interest=g.interest) navbar.items.append(View('My Account', 'security.change_password')) userroles.items.append(View('Debug', 'admin.debug')) # finally for non ROLE_SUPER_ADMIN else: navbar.items.append(View('My Account', 'security.change_password')) else: navbar.items.append(View('Home', 'frontend.home', interest=g.interest)) if g.interest: usermemberssviews = Subgroup('Membership') navbar.items.append(usermemberssviews) usermemberssviews.items.append( View('Registered Members', 'frontend.members', interest=g.interest)) usermemberssviews.items.append( View('Membership Stats', 'frontend.membershipstats', interest=g.interest)) # common items if g.interest: pass navbar.items.append(View('About', 'admin.sysinfo')) if request.path in contexthelp: navbar.items.append(Link('Help', contexthelp[request.path])) return navbar
import flask IMAGE_FOLDER = '../../../../treino' URL_PATH = 'https://deti-imgrec.ua.pt/sendimage/' #IMAGE_FOLDER = '/home/ana/Documents/PI/treino' APP_ROOT = os.path.dirname(os.path.abspath(__file__)) ATRACTIONS = [] app = Flask(__name__) app.config.from_object('_config') app.config['JSON_AS_ASCII'] = False db.init_app(app) Bootstrap(app) nav = Nav(app) admin_nav = Navbar('MeetAveiro', View('Home', 'index'), View('Stats', 'show_stats'), View('Requests', 'show_requests'), View('Logout', 'signOut')) user_nav = Navbar('MeetAveiro', View('As minhas fotografias', 'user_gallery'), View('Os meus percursos', 'escInstPercurso'), View('Logout', 'signOut')) mynav = Navbar('MeetAveiro') nav.register_element('admin_nav', admin_nav) nav.register_element('user_nav', user_nav) config = { 'apiKey': "AIzaSyDCYwU48HMDzFbz_98UUl_NzNXgzy16LOY",
from flask import Flask from flask_wtf import Form from flask_nav import Nav from flask_nav.elements import Navbar,View,Link,Subgroup,Separator from flask_bootstrap import Bootstrap from flask_sqlalchemy import SQLAlchemy from config import config bootstrap = Bootstrap() nav = Nav() db = SQLAlchemy() nav.register_element('top',Navbar( View('Home','main.index'), Subgroup( 'SQL Query', View('OwSql','ow.owsql',product='owsql'), View('BopSql','bop.bopsql',product='bopsql'), View('CrossSql','owcross.crosssql',product='crosssql'), ), Subgroup( 'Redis Query', View('OwRedis','ow.owRedis',product='owRedis'), View('BopRedis','bop.bopRedis',product='bopRedis') ), Subgroup( 'Add Server', View('addOw', 'ow.addOw', product='addOw'), View('addBop', 'bop.addBop', product='addBop'),
from flask import session, redirect, url_for, request, current_app, render_template, jsonify from app.decorators import shopify_auth_required from dotenv import load_dotenv import os, requests, json from pprint import pprint from datetime import datetime from app.customers import generate_fake_customer_data, upload_all_customers, upload_customer_data, delete_customer from app.products import upload_product_data, generate_fake_variant, create_fake_products_and_variants, delete_products from app.orders import generate_orders from app.forms import CustomerForm, ProductForm, OrderForm from app.models import Customer, Product from flask_nav.elements import Navbar, View from app import nav nav.register_element('fake_data', Navbar( View('Home', '.index'), View('Customers', '.customers'), View('Products', '.products'), View('Orders', '.orders'), )) @app.route('/', methods=['GET', 'POST']) @app.route('/index', methods=['GET', 'POST']) def index(): shop_session = sfy.Session(session['shop_url'], '2019-04', session['token']) # activate the shopify session to use resources. # sfy.ShopifyResource.activate_session(shop_session) # form = FakeDataForm() # if request.method == 'POST': # if form.validate_on_submit(): # generate_fake_customer_data(form.number_of_customers_field.data)
fig.savefig(img) img.seek(0) # TODO: check somehow if this leaves IRF objects or open file handles # hanging around ... # The Mac activity app shows that this file is opened many times (once per request): # /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf # Deleting fix and ax seems to have no effect ... # del fig, ax return send_file(img, mimetype='image/png') topbar = Navbar( '', View('About', 'view_about'), View('Data', 'view_data'), View('Events', 'view_events'), View('IRFs', 'view_irfs'), ) nav = Nav() nav.register_element('top', topbar) nav.init_app(app) # def run_data_browser(data_dir): # """Run a data browser web app. # """ # # log.info('data_dir = {}'.format(data_dir)) # # http://flask.pocoo.org/docs/0.10/api/#flask.Flask.add_url_rule
nav.init_app(app) #security_app.init_app(app) # Override Flask-Mail for Google App Engine by using the hook in :class:`flask_security.core._SecurityState` user_datastore = NDBUserDatastore(User, Role) security = Security(app, user_datastore) security.send_mail_task(send_email) admin_app.init_app(app) #timesheet_app.init_app(app) add_default_views(admin_app) nav.register_element( 'console', Navbar(View('Dashboard', 'timesheet.view'), View('Hours History', 'timesheet.history'), View('Logout', 'security.logout'))) nav.register_element( 'admin_console', Navbar(View('Admin Console', 'admin.index'), View('Dashboard', 'timesheet.admin_dashboard'), View('Logout', 'security.logout'))) nav.register_element( 'login', Navbar(View('Login', 'security.login'), View('Register', 'security.register'))) # Create a user to test with @app.before_first_request
login_manager = LoginManager() login_manager.init_app(app) @login_manager.user_loader def load_user(user_id): with db().cursor() as cur: cur.execute("select 1 from users where user_email = %s", (user_id, )) if cur.fetchone() != None: return login.User(True, True, False, user_id) topbar = Navbar( '', View('Home', 'frontend.index'), View('Your Account', 'frontend.account_info'), ) nav = Nav() nav.register_element('top', topbar) nav.init_app(app) @app.route('/') def main(): data = run_query(QUERY) return render_template('index.html', data=data) @app.route('/bills')
port=os.getenv('PORT'), driver = [item for item in pyodbc.drivers()][-1] ) app = Flask(__name__, template_folder='templates', static_folder = 'static') app.config['SECRET_KEY'] = 'secret key' #generate a secret key used by forms Bootstrap(app) nav = Nav(app) nav.register_element('my_navbar', Navbar( 'Movie dashboard', View('Home Page', 'home'))) nav.init_app(app) class YearsRange(FlaskForm): #define form to get values for genres_by_years() function begin = IntegerField('Begin', [validators.DataRequired()]) end = IntegerField('End', [validators.DataRequired()]) @app.route('/', methods=['GET', 'POST']) def home(): year_range_form = YearsRange() #create a form if request.method == "POST" and year_range_form.validate_on_submit():
def mynavbar(): return Navbar( 'OnionDrop', View('Home', 'index') )