コード例 #1
0
ファイル: import_sda.py プロジェクト: rclanan/radar
def create_app(config_filename):
    app = Flask(__name__)
    app.config.from_pyfile(config_filename)

    db.init_app(app)

    return app
コード例 #2
0
ファイル: app.py プロジェクト: rclanan/radar
def create_app():
    app = Flask(__name__)
    app.config.from_object('radar.default_settings')
    app.config.from_envvar('RADAR_SETTINGS')

    # noinspection PyUnresolvedReferences
    from radar import models

    db.init_app(app)

    return app
コード例 #3
0
ファイル: app.py プロジェクト: rclanan/radar
from radar.api.views.renal_imaging import RenalImagingList, RenalImagingDetail
from radar.api.views.salt_wasting_clinical_features import SaltWastingClinicalFeaturesList, \
    SaltWastingClinicalFeaturesDetail
from radar.api.views.users import UserDetail, UserList

from radar.lib.database import db


app = Flask(__name__)
app.config.from_object('radar.default_settings')
app.config.from_object('radar.api.default_settings')
app.config.from_envvar('RADAR_SETTINGS')

cors = CORS(app)

db.init_app(app)

app.add_url_rule('/patients', view_func=PatientList.as_view('patient_list'))
app.add_url_rule('/patients/<int:id>', view_func=PatientDetail.as_view('patient_detail'))

app.add_url_rule('/demographics', view_func=DemographicsList.as_view('demographics_list'))
app.add_url_rule('/demographics/<int:id>', view_func=DemographicsDetail.as_view('demographics_detail'))
app.add_url_rule('/dialysis', view_func=DialysisList.as_view('dialysis_list'))
app.add_url_rule('/dialysis/<int:id>', view_func=DialysisDetail.as_view('dialysis_detail'))
app.add_url_rule('/dialysis-types', view_func=DialysisTypeList.as_view('dialysis_type_list'))
app.add_url_rule('/salt-wasting-clinical-features', view_func=SaltWastingClinicalFeaturesList.as_view('salt_wasting_clinical_features_list'))
app.add_url_rule('/salt-wasting-clinical-features/<int:id>', view_func=SaltWastingClinicalFeaturesDetail.as_view('salt_wasting_clinical_features_detail'))
app.add_url_rule('/renal-imaging', view_func=RenalImagingList.as_view('renal_imaging_list'))
app.add_url_rule('/renal-imaging/<int:id>', view_func=RenalImagingDetail.as_view('renal_imaging_detail'))

app.add_url_rule('/users', view_func=UserList.as_view('user_list'))
コード例 #4
0
ファイル: app.py プロジェクト: rclanan/radar
def create_app():
    app = Flask(__name__)
    app.config.from_object('radar.default_settings')
    app.config.from_object('radar.web.default_settings')
    app.config.from_envvar('RADAR_SETTINGS')

    db.init_app(app)

    login_manager = LoginManager()
    login_manager.init_app(app)
    login_manager.user_loader(load_user)
    login_manager.login_view = 'auth.login'

    Markdown(app)

    mail.init_app(app)

    app.register_blueprint(radar_bp)
    app.register_blueprint(auth_bp)
    app.register_blueprint(disease_groups_bp, url_prefix='/disease-groups')
    app.register_blueprint(units_bp, url_prefix='/units')
    app.register_blueprint(users_bp, url_prefix='/users')
    app.register_blueprint(patients_bp, url_prefix='/patients')
    app.register_blueprint(recruit_bp, url_prefix='/patients')
    app.register_blueprint(news_bp, url_prefix='/news')
    app.register_blueprint(stats_bp, url_prefix='/stats')

    patient_blueprints = [
        (diagnosis_bp, '/diagnosis'),
        (dialysis_bp, '/dialysis'),
        (genetics_bp, '/genetics'),
        (hospitalisations_bp, '/hospitalisations'),
        (results_bp, '/results'),
        (medications_bp, '/medications'),
        (pathology_bp, '/pathology'),
        (plasmapheresis_bp, '/plasmapheresis'),
        (renal_imaging_bp, '/renal-imaging'),
        (salt_wasting_bp, '/salt-wasting'),
        (transplants_bp, '/transplants'),
    ]

    patient_base = '/patients/<int:patient_id>'

    for bp, url_prefix in patient_blueprints:
        app.register_blueprint(bp, url_prefix=patient_base + url_prefix)

    app.before_request(require_login)
    app.before_request(force_password_change)

    # Register template filters
    app.add_template_filter(strftime)
    app.add_template_filter(year_format)
    app.add_template_filter(date_format)
    app.add_template_filter(datetime_format)
    app.add_template_filter(nl2br)
    app.add_template_filter(missing)
    app.add_template_filter(yn)
    app.add_template_filter(number_format)

    # Register template globals/functions
    app.add_template_global(url_for_order_by)
    app.add_template_global(url_for_page)
    app.add_template_global(url_for_per_page)

    # Register context processors (data available in all templates)
    app.context_processor(inject_navigation)
    app.context_processor(inject_delete_form)

    # Register error handlers
    app.register_error_handler(403, forbidden)
    app.register_error_handler(404, page_not_found)
    app.register_error_handler(500, internal_server_error)

    # Automatically set the created_user and modified_user
    event.listen(SignallingSession, 'before_flush', before_flush_set_created_listener)
    event.listen(SignallingSession, 'before_flush', before_flush_set_modified_listener)

    return app