Commit f7116fe57aaee846bb4f9e52ea0d8837c8e6db84

Authored by Василь Свідрик
1 parent ae2387fb06
Exists in master

del sqlite, add yml

Showing 2 changed files with 42 additions and 42 deletions Inline Diff

1 from flask_sqlalchemy import SQLAlchemy 1 from flask_sqlalchemy import SQLAlchemy
2 from sqlalchemy import text 2 from sqlalchemy import text
3 from .k2obj import k2obj 3 from .k2obj import k2obj
4 import yaml 4 import yaml
5 import os 5 import os
6 import requests 6 import requests
7 import pytz 7 import pytz
8 import os 8 import os
9 import sys 9 import sys
10 from flask import session, request 10 from flask import session, request
11 from flask_login import LoginManager 11 from flask_login import LoginManager
12 import platform 12 import platform
13 13
14 class k2(k2obj): 14 class k2(k2obj):
15 version = '2.5.1.27' 15 version = '2.5.1.27'
16 db = SQLAlchemy() 16 db = SQLAlchemy()
17 domain = 'http://127.0.0.1:5000/' 17 domain = 'http://127.0.0.1:5000/'
18 update_domain = 'https://k2update.corp2.eu/' #'http://185.174.172.137/' 18 update_domain = 'https://k2update.corp2.eu/' #'http://185.174.172.137/'
19 venv_bin_path = os.path.join(os.path.dirname(sys.prefix), 'venv/Scripts') #for windows 19 venv_bin_path = os.path.join(os.path.dirname(sys.prefix), 'venv/Scripts') #for windows
20 #venv_bin_path = os.path.join(os.path.dirname(sys.prefix), 'venv/bin') #for linux 20 #venv_bin_path = os.path.join(os.path.dirname(sys.prefix), 'venv/bin') #for linux
21 json_sort_keys = False 21 json_sort_keys = False
22 timezone = pytz.timezone('Europe/Kiev') 22 timezone = pytz.timezone('Europe/Kiev')
23 secret_key = 'JH&INH987gFDHdsagh&8dwbjdw8ckw' 23 secret_key = 'JH&INH987gFDHdsagh&8dwbjdw8ckw'
24 default_language = 'en' 24 default_language = 'en'
25 current_language = '' 25 current_language = ''
26 babel_translation_directories = '' 26 babel_translation_directories = ''
27 languages = { 27 languages = {
28 'en': 'English', 28 'en': 'English',
29 'uk': 'Українська', 29 'uk': 'Українська',
30 'pl': 'Polski' 30 'pl': 'Polski'
31 } 31 }
32 components = '' 32 components = ''
33 login_manager = LoginManager() 33 login_manager = LoginManager()
34 34
35 35
36 36
37 37
38 def __init__(self): 38 def __init__(self):
39 super().__init__() 39 super().__init__()
40 40
41 @classmethod 41 @classmethod
42 def load_babel_translation_directories(cls): 42 def load_babel_translation_directories(cls):
43 with open('languages/babel_translation_directories.yml', 'r') as f: 43 with open('languages/babel_translation_directories.yml', 'r') as f:
44 data = yaml.safe_load(f) 44 data = yaml.safe_load(f)
45 #print(data['babel_translation_directories']) 45 #print(data['babel_translation_directories'])
46 cls.babel_translation_directories = data['babel_translation_directories'] 46 cls.babel_translation_directories = data['babel_translation_directories']
47 47
48 @classmethod 48 @classmethod
49 def get_locale(cls): 49 def get_locale(cls):
50 if 'lang' in session: 50 if 'lang' in session:
51 # Отримати обрану мову з сеансу користувача 51 # Отримати обрану мову з сеансу користувача
52 return session['lang'] 52 return session['lang']
53 else: 53 else:
54 # Повернути мову за замовчуванням з налаштувань додатку 54 # Повернути мову за замовчуванням з налаштувань додатку
55 return cls.default_language #app.config['DEFAULT_LANGUAGE'] 55 return cls.default_language #app.config['DEFAULT_LANGUAGE']
56 56
57 @classmethod 57 @classmethod
58 def search_babel_translation_directories(cls): 58 def search_babel_translation_directories(cls):
59 response = requests.get(f'{cls.domain}api/languages') 59 response = requests.get(f'{cls.domain}api/languages')
60 if response.status_code == 200: 60 if response.status_code == 200:
61 cls.babel_translation_directories = response.text 61 cls.babel_translation_directories = response.text
62 data = {'babel_translation_directories': response.text} 62 data = {'babel_translation_directories': response.text}
63 else: 63 else:
64 cls.babel_translation_directories = 'languages' 64 cls.babel_translation_directories = 'languages'
65 data = {'babel_translation_directories': 'languages'} 65 data = {'babel_translation_directories': 'languages'}
66 66
67 with open('languages/babel_translation_directories.yml', 'w') as f: 67 with open('languages/babel_translation_directories.yml', 'w') as f:
68 yaml.dump(data, f) 68 yaml.dump(data, f)
69 69
70 70
71 71
72 # load database settings from yml file 72 # load database settings from yml file
73 def init_db_uri(self): 73 def init_db_uri(self):
74 with open('db/db.yml', 'r') as f: 74 with open('db/db.yml', 'r') as f:
75 db_config = yaml.load(f, Loader=yaml.FullLoader) 75 db_config = yaml.load(f, Loader=yaml.FullLoader)
76 return db_config 76 return db_config
77 77
78 # creating a connection 78 # creating a connection
79 def init_db(self, app): 79 def init_db(self, app):
80 db_config = self.init_db_uri() 80 db_config = self.init_db_uri()
81 db_uri = f"mysql+{db_config['driver']}://{db_config['user']}:{db_config['password']}@{db_config['host']}/{db_config['dbname']}" 81 db_uri = f"mysql+{db_config['driver']}://{db_config['user']}:{db_config['password']}@{db_config['host']}/{db_config['dbname']}"
82 app.config['SQLALCHEMY_DATABASE_URI'] = db_uri 82 app.config['SQLALCHEMY_DATABASE_URI'] = db_uri
83 db_path = '../db/database.db' 83 #db_path = '../db/database.db'
84 app.config['SQLALCHEMY_BINDS'] = {'db2': f'sqlite:///{db_path}'} 84 #app.config['SQLALCHEMY_BINDS'] = {'db2': f'sqlite:///{db_path}'}
85 self.db.init_app(app) 85 self.db.init_app(app)
86 86
87 def init_lm(self, app): 87 def init_lm(self, app):
88 # Initialize LoginManager 88 # Initialize LoginManager
89 self.login_manager.init_app(app) 89 self.login_manager.init_app(app)
90 @classmethod 90 @classmethod
91 def get_platform(cls): 91 def get_platform(cls):
92 operating_system = platform.system() 92 operating_system = platform.system()
93 cls.platform = operating_system 93 cls.platform = operating_system
94 return cls.platform 94 return cls.platform
95 95
96 96
97 97
98 98
99 99
1 import uuid 1 # import uuid
2 from datetime import datetime 2 # from datetime import datetime
3 from .k2cfg import k2 3 # from .k2cfg import k2
4 4 #
5 db = k2.db 5 # db = k2.db
6 def generate_id(): 6 # def generate_id():
7 generated_id = uuid.uuid4().hex[:32] 7 # generated_id = uuid.uuid4().hex[:32]
8 return ''.join([generated_id[i:i + 4] for i in range(0, len(generated_id), 4)]) 8 # return ''.join([generated_id[i:i + 4] for i in range(0, len(generated_id), 4)])
9 class Component(db.Model): 9 # class Component(db.Model):
10 __bind_key__ = 'db2' 10 # __bind_key__ = 'db2'
11 __tablename__ = 'component' 11 # __tablename__ = 'component'
12 __table_args__ = {'extend_existing': True} 12 # __table_args__ = {'extend_existing': True}
13 id = db.Column(db.String(36), primary_key=True, default=generate_id) 13 # id = db.Column(db.String(36), primary_key=True, default=generate_id)
14 name = db.Column(db.String(100), nullable=False) 14 # name = db.Column(db.String(100), nullable=False)
15 description = db.Column(db.String(200)) 15 # description = db.Column(db.String(200))
16 version = db.Column(db.String(20)) 16 # version = db.Column(db.String(20))
17 git_link = db.Column(db.String(200)) 17 # git_link = db.Column(db.String(200))
18 dependencies = db.Column(db.String) 18 # dependencies = db.Column(db.String)
19 date_installed = db.Column(db.DateTime, default=datetime.utcnow) 19 # date_installed = db.Column(db.DateTime, default=datetime.utcnow)
20 installed = db.Column(db.Boolean, default=False) 20 # installed = db.Column(db.Boolean, default=False)
21 21 #
22 def __init__(self, name, description, version, git_link, dependencies, installed): 22 # def __init__(self, name, description, version, git_link, dependencies, installed):
23 self.name = name 23 # self.name = name
24 self.description = description 24 # self.description = description
25 self.version = version 25 # self.version = version
26 self.git_link = git_link 26 # self.git_link = git_link
27 self.dependencies = dependencies 27 # self.dependencies = dependencies
28 self.installed = installed 28 # self.installed = installed
29 def __repr__(self): 29 # def __repr__(self):
30 return f"Component('{self.name}', '{self.version}')" 30 # return f"Component('{self.name}', '{self.version}')"
31 @classmethod 31 # @classmethod
32 def get_repository_by_id(self,rep_id): 32 # def get_repository_by_id(self,rep_id):
33 component = db.session.query(Component).filter(Component.id == rep_id).first() 33 # component = db.session.query(Component).filter(Component.id == rep_id).first()
34 return component 34 # return component
35 @classmethod 35 # @classmethod
36 def get_repository_by_id(self,rep_id): 36 # def get_repository_by_id(self,rep_id):
37 component = db.session.query(Component).filter(Component.id == rep_id).first() 37 # component = db.session.query(Component).filter(Component.id == rep_id).first()
38 return component 38 # return component
39 #
40 #
39 41