pgadmin4/web/pgadmin/settings/utils.py

63 lines
1.7 KiB
Python

##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
from flask_login import current_user
import functools
import json
from pgadmin.model import Setting
def get_dialog_type(file_type):
"""
This function return dialog type
:param file_type:
:return: dialog type.
"""
if 'pgerd' in file_type:
return 'erd_file_type'
elif 'backup' in file_type:
return 'backup_file_type'
elif 'csv' in file_type and 'txt' in file_type:
return 'import_export_file_type'
elif 'csv' in file_type and 'txt' not in file_type:
return 'storage_manager_file_type'
else:
return 'sqleditor_file_format'
def get_file_type_setting(file_types):
"""
This function return last file format setting based on file types
:param file_types:
:return: file format setting.
"""
file_type = get_dialog_type(list(file_types))
data = Setting.query.filter_by(
user_id=current_user.id, setting=file_type).first()
if data is None:
return '*'
else:
return data.value
def with_object_filters(f):
@functools.wraps(f)
def wrapped(*args, **kwargs):
data = Setting.query.filter_by(
user_id=current_user.id, setting='Object Explorer/Filter').first()
if not data or data.value is None:
data = {}
else:
data = json.loads(data.value)
return f(*args, **kwargs, object_filters=data)
return wrapped