Source code for schedula.utils.form.server

# coding=utf-8
# -*- coding: UTF-8 -*-
#
# Copyright 2015-2025, Vincenzo Arcidiacono;
# Licensed under the EUPL (the 'Licence');
# You may not use this work except in compliance with the Licence.
# You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl

"""
It provides functions to build the base form flask app.

Sub-Modules:

.. currentmodule:: schedula.utils.form.server

.. autosummary::
    :nosignatures:
    :toctree: form/

    admin
    contact
    credits
    csrf
    export
    extensions
    files
    gdpr
    items
    locale
    security
"""
import logging
import schedula as sh

log = logging.getLogger(__name__)


[docs] def default_get_form_context(): from flask import current_app from flask_security import current_user as cu return { 'reCAPTCHA': current_app.config.get('RECAPTCHA_PUBLIC_KEY'), 'stripeKey': current_app.config.get('STRIPE_PUBLISHABLE_KEY'), 'userInfo': sh.combine_dicts(*( getattr(cu, k, lambda: {})() for k in ("get_security_payload",) )), }
[docs] def basic_app(sitemap, app): from ..config import Config from .extensions import db app.config.from_object(Config()) if getattr(sitemap, 'basic_app_config'): app.config.from_object(sitemap.basic_app_config) # Create database connection object db.init_app(app) if app.config['SCHEDULA_SECRETS_ENABLED']: from .json_secrets import Secrets Secrets(app) if app.config['SCHEDULA_LOCALE_ENABLED']: from .locale import Locales Locales(app) if app.config['SCHEDULA_CSRF_ENABLED']: from .csrf import csrf csrf.init_app(app) if app.config['SECURITY_ENABLED']: from .security import Security Security(app) if app.config.get('ADMIN_ENABLED'): from .admin import Admin Admin(app) if app.config.get('SCHEDULA_CREDITS_ENABLED'): from .credits import Credits Credits(app, sitemap) if app.config.get('CONTACT_ENABLED'): from .contact import Contact Contact(app) if app.config.get('ITEMS_STORAGE_ENABLED'): from .items import Items Items(app, sitemap) if app.config.get('FILES_STORAGE_ENABLED'): from .files import Files Files(app, sitemap) if app.config['SCHEDULA_GDPR_ENABLED']: from .gdpr import GDPR GDPR(app, sitemap) if app.config['SCHEDULA_EXPORT_FORM_ENABLED']: from .export import ExportForm ExportForm(app, sitemap) @app.context_processor def inject_application_root(): return dict(app_root=app.config.get('APPLICATION_ROOT', '')) return app