# DrCr: Web-based double-entry bookkeeping framework # Copyright (C) 2022–2023 Lee Yingtong Li (RunasSudo) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from flask import render_template from jinja2 import PackageLoader from .webapp import app import importlib data_sources = [] # list of tuplet (url, label) advanced_reports = [] # list of tuplet (url, label) account_kinds = [ # list of tuplet (id, label) ('drcr.asset', 'Asset'), ('drcr.liability', 'Liability'), ('drcr.income', 'Income'), ('drcr.expense', 'Expense'), ('drcr.equity', 'Equity') ] transaction_providers = [] # list of callable def init_plugins(): for plugin in app.config['PLUGINS']: module = importlib.import_module(plugin) module.plugin_init() def render_plugin_template(plugin_name, template_path, **kwargs): return render_template(PackageLoader(plugin_name).load(app.jinja_env, template_path, app.jinja_env.globals), **kwargs)