import logging
from flask import Flask
-from flask_assets import Environment
+from flask_assets import Environment, Bundle
+from .utils.constants import Constants as C
-# Maximal value of TIME_PERIOD for Trending in days.
-# Do not change without a good reason.
-MAX_TIME_PERIOD = 180
-
-# It defines the time period for Trending in days from now back to the past from
-# which data is read to dataframes.
-# TIME_PERIOD = None means all data (max MAX_TIME_PERIOD days) is read.
-# TIME_PERIOD = MAX_TIME_PERIOD is the default value
-TIME_PERIOD = MAX_TIME_PERIOD # [days]
-
-# List of releases used for iterative data processing.
-# The releases MUST be in the order from the current (newest) to the last
-# (oldest).
-RELEASES=["csit2206", "csit2202", ]
def init_app():
"""Construct core Flask application with embedded Dash app.
"""
-
logging.basicConfig(
- format=u"%(asctime)s: %(levelname)s: %(message)s",
- datefmt=u"%Y/%m/%d %H:%M:%S",
- level=logging.INFO
+ format=C.LOG_FORMAT,
+ datefmt=C.LOG_DATE_FORMAT,
+ level=C.LOG_LEVEL
)
logging.info("Application started.")
app = Flask(__name__, instance_relative_config=False)
- app.config.from_object(u"config.Config")
+ app.config.from_object("config.Config")
with app.app_context():
# Import parts of our core Flask app.
assets = Environment()
assets.init_app(app)
+ # Compile static assets.
+ sass_bundle = Bundle(
+ "sass/lux.scss",
+ filters="libsass",
+ output="dist/css/bootstrap.css",
+ depends="**/*.scss",
+ extra={
+ "rel": "stylesheet"
+ }
+ )
+ assets.register("sass_all", sass_bundle)
+ sass_bundle.build()
+
# Set the time period for Trending
- if TIME_PERIOD is None or TIME_PERIOD > MAX_TIME_PERIOD:
- time_period = MAX_TIME_PERIOD
+ if C.TIME_PERIOD is None or C.TIME_PERIOD > C.MAX_TIME_PERIOD:
+ time_period = C.MAX_TIME_PERIOD
else:
- time_period = TIME_PERIOD
+ time_period = C.TIME_PERIOD
# Import Dash applications.
from .news.news import init_news
app = init_trending(app, time_period=time_period)
from .report.report import init_report
- app = init_report(app, releases=RELEASES)
+ app = init_report(app, releases=C.RELEASES)
return app