Ferdinand Thiessen f03314efac | ||
---|---|---|
.. | ||
modules | ||
system | ||
__init__.py | ||
app.py | ||
flaschengeist.example.cfg | ||
logging.yml | ||
readme.md |
readme.md
Flaschengeist
Installation
Requirements
- mysql or mariadb
- python 3.4+
Install python files
pip3 install --user .
or with ldap support
pip3 install --user ".[ldap]"
Configuration
- Rename
flaschengeist.example.cfg
toflaschengeist.cfg
- Move it to either
- the module path (where flaschegeist is installed)
~/.config/
- A custom path and set environment variable
FLASCHENGEIST_CONF
- Change at least the database parameters
Database installation
run_flaschengeist --install
Run
run_flaschengeist
or with debug messages:
run_flaschengeist --debug
Plugin Development
File Structure
flaschengeist-example-plugin
|> __init__.py
|> model.py
|> setup.py
Files
__init__.py
from flask import Blueprint
from flaschengeist.modules import Plugin
example_bp = Blueprint("example", __name__, url_prefix="/example")
permissions = {"EXAMPLE_HELLO": "example_hello"}
def register():
# If no model is needed:
# return Plugin(schedule_bp, permissions)
# else if model is used:
class ExamplePlugin(Plugin):
def install(self):
from flaschengeist.system.database import db
import .model
db.create_all()
db.session.commit()
return ExamplePlugin(schedule_bp, permissions)
@schedule_bp.route("/hello", methods=['GET'])
@login_required(roles=['example_hello'])
def __hello(id, **kwargs):
return "Hello"
model.py
Optional, only needed if you need your own models (database)
from flaschengeist.system.database import db
model_name = __name__
class ExampleModel(db.Model):
"""Example Model"""
__tablename__ = 'example'
id = db.Column(db.Integer, primary_key=True)
description = db.Column(db.String(240))
setup.py
from setuptools import setup, find_packages
setup(
name="flaschengeist-example-plugin",
version="0.0.0-dev",
packages=find_packages(),
install_requires=[
"flaschengeist >= 2",
],
entry_points={
"flaschengeist.plugin": [
"example = flaschengeist-example-plugin:register" "roles = flaschengeist.modules.roles:register",
]
},
)