k2cfg.py
2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
from .k2obj import k2obj
import yaml
import os
import requests
import pytz
import os
import sys
from flask import session
class k2(k2obj):
version = '2.5.1.27'
db = SQLAlchemy()
domain = 'http://127.0.0.1:5000/'
update_domain ='http://127.0.0.1:8001/'
venv_bin_path = os.path.join(os.path.dirname(sys.prefix), 'venv/Scripts')
json_sort_keys = False
timezone = pytz.timezone('Europe/Kiev')
secret_key = 'JH&INH987gFDHdsagh&8dwbjdw8ckw'
default_language = 'en'
current_language = ''
babel_translation_directories = ''
def __init__(self):
super().__init__()
@classmethod
def load_babel_translation_directories(cls):
with open('languages/babel_translation_directories.yml', 'r') as f:
data = yaml.safe_load(f)
cls.babel_translation_directories = data['babel_translation_directories']
@classmethod
def get_locale(cls):
if 'lang' in session:
# Отримати обрану мову з сеансу користувача
return session['lang']
else:
# Повернути мову за замовчуванням з налаштувань додатку
return cls.default_language #app.config['DEFAULT_LANGUAGE']
@classmethod
def search_babel_translation_directories(cls):
response = requests.get(f'{cls.domain}api/languages')
if response.status_code == 200:
cls.babel_translation_directories = response.text
data = {'babel_translation_directories': response.text}
else:
cls.babel_translation_directories = 'languages'
data = {'babel_translation_directories': 'languages'}
with open('languages/babel_translation_directories.yml', 'w') as f:
yaml.dump(data, f)
@classmethod
def get_menu_elenents(cls):
with open('components/menu.yml', 'r') as f:
yaml_data = yaml.load(f, Loader=yaml.FullLoader)
cls.menu = yaml_data
# load database settings from yml file
def init_db_uri(self):
with open('db/db.yml', 'r') as f:
db_config = yaml.load(f, Loader=yaml.FullLoader)
return db_config
# creating a connection
def init_db(self, app):
db_config = self.init_db_uri()
db_uri = f"mysql+{db_config['driver']}://{db_config['user']}:{db_config['password']}@{db_config['host']}/{db_config['dbname']}"
app.config['SQLALCHEMY_DATABASE_URI'] = db_uri
db_path = '../db/database.db'
app.config['SQLALCHEMY_BINDS'] = {'db2': f'sqlite:///{db_path}'}
self.db.init_app(app)