Commit f7116fe57aaee846bb4f9e52ea0d8837c8e6db84
1 parent
ae2387fb06
Exists in
master
del sqlite, add yml
Showing 2 changed files with 42 additions and 42 deletions Inline Diff
k2/k2cfg.py
| 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 |
k2/k2comp.py
| 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 |