#!/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()

Example #2
0
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
Example #3
0
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",
Example #7
0
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)
Example #8
0

#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'),
Example #9
0
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'))
Example #10
0
def mynavbar():
    return Navbar('PaStA shiny webfrontend', View('Home', 'home'),
                  View('Mbox', 'mbox'))
Example #11
0
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)), ))
Example #12
0
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'))
])
Example #13
0
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)
Example #14
0
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)
Example #15
0
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
# ============================================================================
Example #16
0
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
Example #17
0
"""
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/'),
    ))
Example #18
0
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'))
Example #19
0
def hello_view(app):
    v = View('notext', 'hello', arg1=1, q1='q')
    app.hello_view = v
    return v
Example #20
0
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')
Example #21
0
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)
Example #22
0
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
Example #23
0
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",
Example #24
0
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'),
Example #25
0
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)
Example #26
0
    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
Example #27
0
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
Example #28
0
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')
Example #29
0
    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():
Example #30
0
def mynavbar():
    return Navbar(
        'OnionDrop',
        View('Home', 'index')
    )