From cb7fa2763dbddb28722a2134b33ec6a6b2204256 Mon Sep 17 00:00:00 2001 From: osmala <ossi.laine@utu.fi> Date: Thu, 3 Dec 2020 21:14:25 +0200 Subject: [PATCH] Reformat project structure --- app.db | Bin 122880 -> 0 bytes app/db.py | 16 +++ embody_plot.py => app/embody_plot.py | 0 app/experiment/views.py | 7 +- babel.cfg | 3 - .../create_rating_db.sql | 0 dump.sql | 94 ------------------ 7 files changed, 18 insertions(+), 102 deletions(-) delete mode 100644 app.db create mode 100644 app/db.py rename embody_plot.py => app/embody_plot.py (100%) delete mode 100644 babel.cfg rename create_rating_db.sql => db/create_rating_db.sql (100%) delete mode 100644 dump.sql diff --git a/app.db b/app.db deleted file mode 100644 index 0a7a1e2e1dbcbae3aead8584aa2ecce4834a8772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122880 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 SPGQE#)MC&U01i%mPBQ@HZf?K; diff --git a/app/db.py b/app/db.py new file mode 100644 index 0000000..3a9fc39 --- /dev/null +++ b/app/db.py @@ -0,0 +1,16 @@ +from sqlalchemy import create_engine +from sqlalchemy.orm import scoped_session, sessionmaker +from sqlalchemy.ext.declarative import declarative_base +from config import Config + +engine = create_engine(Config.SQLALCHEMY_DATABASE_URI, convert_unicode=True) +db_session = scoped_session(sessionmaker(autocommit=False, + autoflush=False, + bind=engine)) +Base = declarative_base() +Base.query = db_session.query_property() + + +def init_db(): + import app.models + Base.metadata.create_all(bind=engine) diff --git a/embody_plot.py b/app/embody_plot.py similarity index 100% rename from embody_plot.py rename to app/embody_plot.py diff --git a/app/experiment/views.py b/app/experiment/views.py index cfee867..711f3fa 100644 --- a/app/experiment/views.py +++ b/app/experiment/views.py @@ -35,11 +35,8 @@ from app.forms import ( ) from app.utils import get_mean_from_slider_answers, map_answers_to_questions, \ generate_csv +from app.embody_plot import get_coordinates -import embody_plot - -# Stimuli upload folder setting -#APP_ROOT = os.path.dirname(os.path.abspath(__file__)) experiment_blueprint = Blueprint("experiment", __name__, template_folder='templates', @@ -1051,7 +1048,7 @@ def start_create_embody(): def create_embody(meta): page = meta["page"] embody = meta["embody"] - img_path = embody_plot.get_coordinates(page, embody) + img_path = get_coordinates(page, embody) app.logger.info(img_path) emit('end', {'path': img_path}) diff --git a/babel.cfg b/babel.cfg deleted file mode 100644 index c40b2e8..0000000 --- a/babel.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[python: app/**.py] -[jinja2: app/templates/**.html] -extensions=jinja2.ext.autoescape,jinja2.ext.with_ diff --git a/create_rating_db.sql b/db/create_rating_db.sql similarity index 100% rename from create_rating_db.sql rename to db/create_rating_db.sql diff --git a/dump.sql b/dump.sql deleted file mode 100644 index e617923..0000000 --- a/dump.sql +++ /dev/null @@ -1,94 +0,0 @@ -CREATE TABLE background_question ( - idbackground_question INTEGER NOT NULL, - background_question VARCHAR(120), - experiment_idexperiment INTEGER, - PRIMARY KEY (idbackground_question) -); -CREATE TABLE experiment ( - idexperiment INTEGER NOT NULL, - name VARCHAR(120), - instruction VARCHAR(120), - directoryname VARCHAR(120), - language VARCHAR(120), - status VARCHAR(120), - randomization VARCHAR(120), - PRIMARY KEY (idexperiment) -); -CREATE TABLE trial_randomization ( - idtrial_randomization INTEGER NOT NULL, - page_idpage INTEGER, - randomized_idpage INTEGER, - answer_set_idanswer_set INTEGER, - experiment_idexperiment INTEGER, - PRIMARY KEY (idtrial_randomization) -); -CREATE TABLE user ( - id INTEGER NOT NULL, - username VARCHAR(64), - email VARCHAR(120), - password_hash VARCHAR(128), - PRIMARY KEY (id) -); -CREATE TABLE answer_set ( - idanswer_set INTEGER NOT NULL, - experiment_idexperiment INTEGER, - session VARCHAR(120), - agreement VARCHAR(120), - answer_counter INTEGER, - PRIMARY KEY (idanswer_set), - FOREIGN KEY(experiment_idexperiment) REFERENCES experiment (idexperiment) -); -CREATE TABLE background_question_option ( - idbackground_question_option INTEGER NOT NULL, - background_question_idbackground_question INTEGER, - option VARCHAR(120), - PRIMARY KEY (idbackground_question_option), - FOREIGN KEY(background_question_idbackground_question) REFERENCES background_question (idbackground_question) -); -CREATE TABLE page ( - idpage INTEGER NOT NULL, - experiment_idexperiment INTEGER, - type VARCHAR(120), - text VARCHAR(120), - media VARCHAR(120), - PRIMARY KEY (idpage), - FOREIGN KEY(experiment_idexperiment) REFERENCES experiment (idexperiment) -); -CREATE TABLE question ( - idquestion INTEGER NOT NULL, - experiment_idexperiment INTEGER, - question VARCHAR(120), - `left` VARCHAR(120), - `right` VARCHAR(120), - PRIMARY KEY (idquestion), - FOREIGN KEY(experiment_idexperiment) REFERENCES experiment (idexperiment) -); -CREATE TABLE answer ( - idanswer INTEGER NOT NULL, - question_idquestion INTEGER, - answer_set_idanswer_set INTEGER, - answer VARCHAR(120), - page_idpage INTEGER, - PRIMARY KEY (idanswer), - FOREIGN KEY(answer_set_idanswer_set) REFERENCES answer_set (idanswer_set), - FOREIGN KEY(page_idpage) REFERENCES page (idpage), - FOREIGN KEY(question_idquestion) REFERENCES question (idquestion) -); -CREATE TABLE background_question_answer ( - idbackground_question_answer INTEGER NOT NULL, - answer_set_idanswer_set INTEGER, - answer VARCHAR(120), - background_question_idbackground_question INTEGER, - PRIMARY KEY (idbackground_question_answer), - FOREIGN KEY(answer_set_idanswer_set) REFERENCES answer_set (idanswer_set), - FOREIGN KEY(background_question_idbackground_question) REFERENCES background_question (idbackground_question) -); -CREATE UNIQUE INDEX ix_experiment_directoryname ON experiment (directoryname); -CREATE INDEX ix_experiment_instruction ON experiment (instruction); -CREATE INDEX ix_experiment_name ON experiment (name); -CREATE UNIQUE INDEX ix_user_email ON user (email); -CREATE UNIQUE INDEX ix_user_username ON user (username); -CREATE INDEX ix_page_media ON page (media); -CREATE INDEX ix_page_text ON page (text); -CREATE INDEX ix_page_type ON page (type); - -- GitLab