This commit is contained in:
flaskfarm
2022-10-19 16:40:29 +09:00
parent 97b1f6bf48
commit c146e03cf1
26 changed files with 965 additions and 246 deletions

View File

@@ -241,3 +241,15 @@ class Logic(object):
self.P.logger.error(traceback.format_exc())
ret = {'ret' : 'danger', 'msg':str(e)}
return ret
def arg_to_dict(self, arg):
import urllib.parse
tmp = urllib.parse.unquote(arg)
tmps = tmp.split('&')
ret = {}
for tmp in tmps:
_ = tmp.split('=')
ret[_[0]] = _[1]
return ret

View File

@@ -19,8 +19,10 @@ class ModelBase(F.db.Model):
def save(self):
try:
F.db.session.add(self)
F.db.session.commit()
with F.app.app_context():
F.db.session.add(self)
F.db.session.commit()
return self
except Exception as e:
self.logger.error(f'Exception:{str(e)}')
self.logger.error(traceback.format_exc())
@@ -43,55 +45,59 @@ class ModelBase(F.db.Model):
paging['next_page'] = False
paging['current_page'] = current_page
paging['count'] = count
cls.logger.debug('paging : c:%s %s %s %s %s %s', count, paging['total_page'], paging['prev_page'], paging['next_page'] , paging['start_page'], paging['last_page'])
F.logger.debug('paging : c:%s %s %s %s %s %s', count, paging['total_page'], paging['prev_page'], paging['next_page'] , paging['start_page'], paging['last_page'])
return paging
except Exception as e:
cls.logger.error(f'Exception:{str(e)}')
cls.logger.error(traceback.format_exc())
F.logger.error(f'Exception:{str(e)}')
F.logger.error(traceback.format_exc())
@classmethod
def get_by_id(cls, id):
try:
return F.db.session.query(cls).filter_by(id=id).first()
with F.app.app_context():
return F.db.session.query(cls).filter_by(id=int(id)).first()
except Exception as e:
cls.logger.error(f'Exception:{str(e)}')
cls.logger.error(traceback.format_exc())
F.logger.error(f'Exception:{str(e)}')
F.logger.error(traceback.format_exc())
@classmethod
def get_list(cls, by_dict=False):
try:
tmp = F.db.session.query(cls).all()
if by_dict:
tmp = [x.as_dict() for x in tmp]
return tmp
with F.app.app_context():
tmp = F.db.session.query(cls).all()
if by_dict:
tmp = [x.as_dict() for x in tmp]
return tmp
except Exception as e:
cls.logger.error(f'Exception:{str(e)}')
cls.logger.error(traceback.format_exc())
F.logger.error(f'Exception:{str(e)}')
F.logger.error(traceback.format_exc())
@classmethod
def delete_by_id(cls, id):
try:
F.db.session.query(cls).filter_by(id=id).delete()
F.db.session.commit()
return True
with F.app.app_context():
F.db.session.query(cls).filter_by(id=int(id)).delete()
F.db.session.commit()
return True
except Exception as e:
cls.logger.error(f'Exception:{str(e)}')
cls.logger.error(traceback.format_exc())
F.logger.error(f'Exception:{str(e)}')
F.logger.error(traceback.format_exc())
return False
@classmethod
def delete_all(cls):
try:
F.db.session.query(cls).delete()
F.db.session.commit()
return True
with F.app.app_context():
F.db.session.query(cls).delete()
F.db.session.commit()
return True
except Exception as e:
cls.logger.error(f'Exception:{str(e)}')
cls.logger.error(traceback.format_exc())
F.logger.error(f'Exception:{str(e)}')
F.logger.error(traceback.format_exc())
return False
@@ -113,7 +119,7 @@ class ModelBase(F.db.Model):
query = cls.make_query(order=order, search=search, option1=option1, option2=option2)
count = query.count()
query = query.limit(page_size).offset((page-1)*page_size)
cls.logger.debug('cls count:%s', count)
F.logger.debug('cls count:%s', count)
lists = query.all()
ret['list'] = [item.as_dict() for item in lists]
ret['paging'] = cls.get_paging_info(count, page, page_size)
@@ -121,18 +127,19 @@ class ModelBase(F.db.Model):
if cls.model_setting is not None and cls.__tablename__ is not None:
cls.model_setting.set(f'{cls.__tablename__}_last_list_option', f'{order}|{page}|{search}|{option1}|{option2}')
except Exception as e:
cls.logger.error('Exception:%s', e)
cls.logger.error(traceback.format_exc())
cls.logger.error(f'{cls.__tablename__}_last_list_option ERROR!' )
F.logger.error('Exception:%s', e)
F.logger.error(traceback.format_exc())
F.logger.error(f'{cls.__tablename__}_last_list_option ERROR!' )
return ret
except Exception as e:
cls.logger.error('Exception:%s', e)
cls.logger.error(traceback.format_exc())
F.logger.error('Exception:%s', e)
F.logger.error(traceback.format_exc())
# 오버라이딩
@classmethod
def make_query(cls, order='desc', search='', option1='all', option2='all'):
query = F.db.session.query(cls)
return query
with F.app.app_context():
query = F.db.session.query(cls)
return query

View File

@@ -136,7 +136,7 @@ def default_route(P):
@login_required
def sub_ajax(module_name, page_name, command):
try:
ins_module = P.get_module(module_name)
ins_module = P.logic.get_module(module_name)
ins_page = ins_module.get_page(page_name)
if ins_page != None:
if command == 'scheduler':