63 lines
1.7 KiB
Python
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
|