Esempio n. 1
0
if 'GEOIP_PATH' in app.config:
    if not os.path.exists(app.config['GEOIP_PATH']):
        app.logger.warn("GeoIP database missing at " + app.config['GEOIP_PATH'])
    else:
        app.geoip = geoip2.database.Reader(app.config['GEOIP_PATH'])

RQ(app)

baseframe.init_app(app, requires=['baseframe-bs3', 'jquery.autosize', 'jquery.liblink',
    'jquery.wnumb', 'jquery.nouislider', 'baseframe-firasans', 'fontawesome>=4.3.0',
    'bootstrap-multiselect', 'nprogress', 'ractive', 'jquery.appear', 'hammer'])

# FIXME: Hack for external build system generating relative /static URLs.
# Fix this by generating absolute URLs to the static subdomain during build.
app.add_url_rule('/static/<path:filename>', endpoint='static',
    view_func=app.send_static_file, subdomain=None)
app.add_url_rule('/static/<path:filename>', endpoint='static',
    view_func=app.send_static_file, subdomain='<subdomain>')

# TinyMCE has to be loaded by itself, unminified, or it won't be able to find its assets
app.assets.register('js_tinymce', assets.require('!jquery.js', 'tinymce.js>=4.0.0', 'jquery.tinymce.js>=4.0.0'))
app.assets.register('css_editor', Bundle('css/editor.css',
    filters=['cssrewrite', 'cssmin'], output='css/editor.packed.css'))

from hasjob.uploads import configure as uploads_configure
uploads_configure()
mail.init_app(app)
redis_store.init_app(app)
lastuser.init_app(app)
lastuser.init_usermanager(UserManager(db, models.User))
Esempio n. 2
0

from . import extapi, views  # NOQA
from boxoffice.models import db, User, Item, Price, DiscountPolicy, DiscountCoupon, ItemCollection, Organization, Category, Invoice  # noqa
from siteadmin import OrganizationModelView, DiscountCouponModelView, InvoiceModelView  # noqa


# Configure the app
coaster.app.init_app(app)
db.init_app(app)
db.app = app
migrate = Migrate(app, db)
rq.init_app(app)

lastuser.init_app(app)
lastuser.init_usermanager(UserManager(db, User))
app.config['tz'] = timezone(app.config['TIMEZONE'])
baseframe.init_app(app, requires=['boxoffice'], ext_requires=['baseframe-bs3', 'fontawesome>=4.0.0', 'baseframe-footable', 'jquery.tinymce>=4.0.0'])

mail.init_app(app)
wtforms_json.init()


# This is a temporary solution for an admin interface, only
# to be used until the native admin interface is ready.
try:
    admin = Admin(app, name=u"Boxoffice Admin", template_mode='bootstrap3', url='/siteadmin')
    admin.add_view(OrganizationModelView(Organization, db.session))
    admin.add_view(DiscountCouponModelView(DiscountCoupon, db.session))
    admin.add_view(InvoiceModelView(Invoice, db.session))
except AssertionError:
Esempio n. 3
0
assets['boxoffice.css'][version] = 'css/app.css'
assets['boxoffice.js'][version] = 'js/scripts.js'

from . import extapi, views  # NOQA
from .models import db, User, Item, Price, DiscountPolicy, DiscountCoupon, ItemCollection, Organization, Category, Invoice  # noqa
from .siteadmin import OrganizationModelView, DiscountCouponModelView, InvoiceModelView  # noqa

# Configure the app
coaster.app.init_app(app)
db.init_app(app)
db.app = app
migrate = Migrate(app, db)
rq.init_app(app)

lastuser.init_app(app)
lastuser.init_usermanager(UserManager(db, User))
app.config['tz'] = timezone(app.config['TIMEZONE'])
baseframe.init_app(app,
                   requires=['boxoffice'],
                   ext_requires=[
                       'baseframe-bs3', 'fontawesome>=4.0.0',
                       'baseframe-footable', 'jquery.tinymce>=4.0.0'
                   ])

mail.init_app(app)
wtforms_json.init()

# This is a temporary solution for an admin interface, only
# to be used until the native admin interface is ready.
try:
    admin = Admin(app,
Esempio n. 4
0
    else:
        app.geoip = geoip2.database.Reader(app.config['GEOIP_PATH'])

RQ(app)

baseframe.init_app(app,
                   requires=[
                       'baseframe-bs3', 'jquery.autosize', 'jquery.liblink',
                       'jquery.wnumb', 'jquery.nouislider',
                       'baseframe-firasans', 'fontawesome>=4.3.0',
                       'bootstrap-multiselect', 'nprogress', 'ractive',
                       'jquery.appear', 'hammer'
                   ])
# TinyMCE has to be loaded by itself, unminified, or it won't be able to find its assets
app.assets.register(
    'js_tinymce',
    assets.require('!jquery.js', 'tinymce.js>=4.0.0',
                   'jquery.tinymce.js>=4.0.0'))
app.assets.register(
    'css_editor',
    Bundle('css/editor.css',
           filters=['cssrewrite', 'cssmin'],
           output='css/editor.packed.css'))

from hasjob.uploads import configure as uploads_configure
uploads_configure()
mail.init_app(app)
redis_store.init_app(app)
lastuser.init_app(app)
lastuser.init_usermanager(UserManager(db, models.User))
Esempio n. 5
0
# -*- coding: utf-8 -*-

# The imports in this file are order-sensitive

from pytz import timezone
from flask import Flask
from flask_lastuser import Lastuser
from flask_lastuser.sqlalchemy import UserManager
from baseframe import baseframe, assets, Version
from flask_migrate import Migrate
import coaster.app
from ._version import __version__

version = Version(__version__)
app = Flask(__name__, instance_relative_config=True)
lastuser = Lastuser()

from . import models, views
from .models import db

assets['kharcha.css'][version] = 'css/app.css'

# Configure the app
coaster.app.init_app(app)
migrate = Migrate(app, models.db)
baseframe.init_app(app, requires=['baseframe', 'jquery.expander', 'kharcha'])
lastuser.init_app(app)
lastuser.init_usermanager(UserManager(models.db, models.User, models.Team))
app.config['tz'] = timezone(app.config['TIMEZONE'])
Esempio n. 6
0
from eventframe.models import db  # NOQA

# Fourth, setup baseframe, assets and theme assets on both apps
baseframe.assets['eventframe.css'][version] = 'css/app.css'
eventassets = ThemeAwareEnvironment(eventapp)


init_app(app)
init_app(eventapp)
app.config['tz'] = timezone(eventapp.config['TIMEZONE'])
eventframe.models.db.init_app(app)
eventframe.models.db.init_app(eventapp)
migrate = Migrate(app, eventframe.models.db)
baseframe.baseframe.init_app(app, requires=['baseframe', 'toastr', 'eventframe'])
baseframe.baseframe.init_app(eventapp, requires=['baseframe'], assetenv=eventassets)
eventapp.assets = eventassets  # Replace baseframe-provided Environment with ThemeAwareEnvironment

lastuser.init_app(app)
lastuser.init_usermanager(UserManager(eventframe.models.db, eventframe.models.User))
eventassets.register('js_baseframe',
    Bundle(baseframe.assets.require('baseframe.js'), filters='uglipyjs', output='js/packed.js'))
eventassets.register('css_baseframe',
    Bundle(baseframe.assets.require('baseframe.css'), filters='cssmin', output='css/packed.css'))

setup_themes(eventapp, app_identifier='eventframe')
setup_themes(app, app_identifier='eventframe')  # To list themes in the admin views
for theme in eventapp.theme_manager.list_themes():
    load_theme_assets(eventassets, theme)

debug_app = DomainDispatcher(app.config['ADMIN_HOSTS'], app, eventapp)
Esempio n. 7
0
# -*- coding: utf-8 -*-

# The imports in this file are order-sensitive

from pytz import timezone
from flask import Flask
from flask_lastuser import Lastuser
from flask_lastuser.sqlalchemy import UserManager
from baseframe import baseframe, assets, Version
from flask_migrate import Migrate
import coaster.app
from ._version import __version__

version = Version(__version__)
app = Flask(__name__, instance_relative_config=True)
lastuser = Lastuser()

from . import models, views
from .models import db

assets['kharcha.css'][version] = 'css/app.css'


# Configure the app
coaster.app.init_app(app)
migrate = Migrate(app, models.db)
baseframe.init_app(app, requires=['baseframe', 'jquery.expander', 'kharcha'])
lastuser.init_app(app)
lastuser.init_usermanager(UserManager(models.db, models.User, models.Team))
app.config['tz'] = timezone(app.config['TIMEZONE'])
Esempio n. 8
0
class TestMergeUserData(unittest.TestCase):
    def setUp(self):
        self.app = Flask(__name__)
        self.app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
        self.app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
        db.init_app(self.app)
        self.ctx = self.app.test_request_context()
        self.ctx.push()
        # These settings are not required for merge user tests
        self.app.config['LASTUSER_SERVER'] = 'http://lastuser.testing'
        self.app.config['LASTUSER_CLIENT_ID'] = 'client_id'
        self.app.config['LASTUSER_CLIENT_SECRET'] = 'client_secret'

        self.lastuser = Lastuser(self.app)
        self.lastuser.init_usermanager(UserManager(db, User, Team))

        db.create_all()  # The users_team table doesn't exist until UserManager is inited

        self.create_test_data()

    def tearDown(self):
        db.session.rollback()
        db.drop_all()
        self.ctx.pop()

    def create_test_data(self):
        user1 = User(userid=u"1234567890123456789012", username=u"user1", fullname=u"User 1",
            email=u'*****@*****.**',
            userinfo={
                u'timezone': u'Asia/Kolkata',
                u'organizations': {
                    u'member': [
                        {
                            u'userid': u'qazwsxedcrfvtgbyhnujmi',
                            u'name': u'org1',
                            u'title': u'Organization 1',
                            },
                        ],
                    u'owner': [
                        {
                            u'userid': u'qazwsxedcrfvtgbyhnujmi',
                            u'name': u'org1',
                            u'title': u'Organization 1',
                            },
                        ]
                    }
                })
        user2 = User(userid=u"0987654321098765432109", username=u"user2", fullname=u"User 2",
            email=u'*****@*****.**',
            userinfo={
                u'timezone': u'Asia/Kolkata',
                u'organizations': {
                    u'member': [
                        {
                            u'userid': u'qwertyuiopasdfghjklzxc',
                            u'name': u'org2',
                            u'title': u'Organization 2',
                            },
                        {
                            u'userid': u'mnbvcxzlkjhgfdsapoiuyt',
                            u'name': u'org3',
                            u'title': u'Organization 3',
                            },
                        ],
                    u'owner': [
                        {
                            u'userid': u'qwertyuiopasdfghjklzxc',
                            u'name': u'org2',
                            u'title': u'Organization 2',
                            },
                        {
                            'userid': 'mnbvcxzlkjhgfdsapoiuyt',
                            'name': 'org3',
                            'title': 'Organization 3',
                            },
                        ]
                    }
                })
        user3 = User(userid=u"1234567890987654321234", username=u"user3", fullname=u"User 3",
            email=u'*****@*****.**',
            userinfo={
                u'timezone': 'Asia/Kolkata',
                u'organizations': {
                    u'member': [
                        {
                            u'userid': u'mnbvcxzlkjhgfdsapoiuyt',
                            u'name': u'org3',
                            u'title': u'Organization 3',
                            },
                        {
                            u'userid': u'qazwsxedcrfvtgbyhnujmi',
                            u'name': u'org1',
                            u'title': u'Organization 1',
                            },
                        ],
                    u'owner': [
                        {
                            u'userid': u'mnbvcxzlkjhgfdsapoiuyt',
                            u'name': u'org3',
                            u'title': u'Organization 3',
                            },
                        {
                            u'userid': u'qazwsxedcrfvtgbyhnujmi',
                            u'name': u'org1',
                            u'title': u'Organization 1',
                            },
                        ]
                    }
                })

        team1 = Team(userid=u"1324354657687980089786", orgid=u"qazwsxedcrfvtgbyhnujmi",
            title=u"Team 1", users=[user1, user2])
        team2 = Team(userid=u"0897867564534231243546", orgid=u"qwertyuiopasdfghjklzxc",
            title=u"Team 2", users=[user2, user3])
        team3 = Team(userid=u"1324354657687980132435", orgid=u"mnbvcxzlkjhgfdsapoiuyt",
            title=u"Team 3", users=[user3, user1])

        db.session.add_all([user1, user2, user3, team1, team2, team3])
        db.session.flush()

        # Create six profiles (3 users + 3 orgs)
        Profile.update_from_user(user1, db.session)
        Profile.update_from_user(user2, db.session)
        Profile.update_from_user(user3, db.session)

        db.session.commit()
Esempio n. 9
0
# First, make an app and config it

version = Version(__version__)
leaflet_version = Version('0.3.0')
app = Flask(__name__, instance_relative_config=True)
lastuser = Lastuser()
mail = Mail()

# Second, after config, import the models and views

import hacknight.models
from hacknight.models import db
import hacknight.views

# Third, setup baseframe and assets

assets['leaflet.css'][leaflet_version] = 'js/leaflet/leaflet.css'
assets['leaflet.js'][leaflet_version] = 'js/leaflet/leaflet.js'
assets['hacknight.css'][version] = 'css/app.css'
assets['hacknight.js'][version] = 'js/scripts.js'


coaster.app.init_app(app)
migrate = Migrate(app, db)
baseframe.init_app(app, requires=['baseframe', 'toastr', 'hacknight'], bundle_js=assets.require('leaflet.js'), bundle_css=assets.require('leaflet.css'))
lastuser.init_app(app)
lastuser.init_usermanager(UserManager(hacknight.models.db, hacknight.models.User))
mail.init_app(app)
app.config['tz'] = timezone(app.config['TIMEZONE'])