示例#1
0
def run():
    from ekklesia_portal.app import make_wsgi_app
    args = parser.parse_args()
    wsgi_app = make_wsgi_app(args.config_file)

    wrapped_app = SharedDataMiddleware(
        wsgi_app, {
            '/static': ("ekklesia_portal", 'static'),
            '/static/deform': ("deform", 'static'),
            '/static/webfonts': os.environ.get('WEBFONTS_PATH'),
            '/static/js': os.environ.get('JS_PATH')
        })

    if args.stackdump:
        stackdump_setup()

    # use ipdb as default breakpoint() hook (Python 3.7 feature)
    try:
        import ipdb
    except ImportError:
        pass
    else:
        sys.breakpointhook = ipdb.set_trace

    with open(os.path.join(tmpdir, "ekklesia_portal.started"), "w") as wf:
        wf.write(datetime.datetime.now().isoformat())
        wf.write("\n")

    # reload when translation MO files change
    extra_reload_files = glob.glob('src/ekklesia_portal/translations/**/*.mo',
                                   recursive=True)
    if args.config_file is not None:
        extra_reload_files.append(args.config_file)

    werkzeug.serving.run_simple(args.bind,
                                args.http_port,
                                wrapped_app,
                                use_reloader=args.debug,
                                extra_files=extra_reload_files,
                                use_debugger=args.debug)
parser.add_argument("-c",
                    "--config-file",
                    help=f"path to config file in YAML / JSON format")
parser.add_argument("-v",
                    "--voting-phase",
                    help=f"Choose the voting phase to organize from.")
parser.add_argument("-f",
                    "--filepath",
                    help=f"Choose the filepath to import from.")

if __name__ == "__main__":
    args = parser.parse_args()

    from ekklesia_portal.app import make_wsgi_app

    app = make_wsgi_app(args.config_file)

    from ekklesia_portal.datamodel import Ballot, Proposition, VotingPhase
    from ekklesia_common.database import Session

    session = Session()
    session.autoflush = True

    sqlalchemy.orm.configure_mappers()

    load_and_add_voting_result(args.filepath, args.voting_phase)

    input(
        "press Enter to commit changes to the database, or CTRL-C to abort...")

    transaction.commit()
def run():
    from ekklesia_portal.app import make_wsgi_app
    wsgi_app = make_wsgi_app()
    morepath.run(wsgi_app)
示例#4
0
def app(settings):
    App.init_settings(settings)
    app = make_wsgi_app(testing=True)
    return app
示例#5
0
if __name__ == "__main__":
    import json
    import os
    import sys
    from transaction import commit
    from munch import Munch
    from ekklesia_portal.app import make_wsgi_app

    app = make_wsgi_app()
    from ekklesia_common import database
    from ekklesia_portal.app import App
    from ekklesia_portal.datamodel import *

    from tests.factories import *

    s = database.Session()
    q = s.query
    rollback = s.rollback

    ip = get_ipython()  # type: ignore

    ip.magic("autocall 2")
示例#6
0
if __name__ == "__main__":
    from munch import Munch
    from ekklesia_portal.app import make_wsgi_app

    app = make_wsgi_app("config.yml")
    from ekklesia_portal import database
    from ekklesia_portal.app import App
    from ekklesia_portal.database.datamodel import *

    from tests.factories import *

    s = database.Session()
    q = s.query

    ip = get_ipython()  # type: ignore

    ip.magic("autocall 2")
示例#7
0
def app(config_filepath):
    app = make_wsgi_app(config_filepath, testing=True)
    return app
示例#8
0
'''

NEW_DRAFT_EXPLANATION_DE = '''
Nach dem Abschicken wird dein Antragsentwurf automatisch im Forum in der Kategorie Antragsentwicklung eingestellt.
Der Text des Antrags kann dort von allen angemeldeten Benutzern bearbeitet werden wie in einem Wiki.
Du kannst die Bearbeitung sperren lassen. Wende dich dazu an die Antragskommission.
'''

if __name__ == "__main__":

    logg = logging.getLogger(__name__)

    args = parser.parse_args()

    if args.config_file:
        app = make_wsgi_app(args.config_file)
    else:
        settings = get_test_settings(get_db_uri())
        App.init_settings(settings)
        app = make_wsgi_app(testing=True)

    # Needed for Alembic env.py
    if args.config_file:
        os.environ['EKKLESIA_PORTAL_CONFIG'] = args.config_file
    if 'EKKLESIA_PORTAL_CONFIG' not in os.environ:
        os.environ['EKKLESIA_PORTAL_CONFIG'] = "config.yml"

    from ekklesia_common.database import db_metadata, Session
    # local import because we have to set up the database stuff before that
    from ekklesia_portal.datamodel import (
        Argument, ArgumentRelation, ArgumentVote, Ballot, CustomizableText,