From d644b4f94ec71af78a46434121bce0fcd626a2dc Mon Sep 17 00:00:00 2001 From: Akshay Joshi Date: Wed, 24 Nov 2021 17:22:57 +0530 Subject: [PATCH] 1) Replace Flask-BabelEx with Flask-Babel. Fixes #6088 2) Upgrade Flask to version 2. Fixes #7010 --- DEPENDENCIES | 25 +++++++------- docs/en_US/release_notes_6_3.rst | 4 ++- requirements.txt | 19 +++++------ web/migrations/versions/09d53fca90c7_.py | 7 ++-- web/migrations/versions/fdc58d9bd449_.py | 14 ++++++-- web/pgadmin/__init__.py | 33 +++++++++++-------- web/pgadmin/about/__init__.py | 2 +- web/pgadmin/authenticate/__init__.py | 2 +- web/pgadmin/authenticate/internal.py | 2 +- web/pgadmin/authenticate/kerberos.py | 6 ++-- web/pgadmin/authenticate/ldap.py | 2 +- web/pgadmin/authenticate/oauth2.py | 6 ++-- web/pgadmin/authenticate/webserver.py | 6 ++-- web/pgadmin/browser/__init__.py | 2 +- web/pgadmin/browser/collection.py | 2 +- .../browser/register_browser_preferences.py | 2 +- web/pgadmin/browser/server_groups/__init__.py | 2 +- .../browser/server_groups/servers/__init__.py | 17 +++++----- .../servers/databases/__init__.py | 2 +- .../servers/databases/casts/__init__.py | 2 +- .../databases/event_triggers/__init__.py | 2 +- .../servers/databases/extensions/__init__.py | 2 +- .../foreign_data_wrappers/__init__.py | 2 +- .../foreign_servers/__init__.py | 2 +- .../foreign_servers/user_mappings/__init__.py | 2 +- .../servers/databases/languages/__init__.py | 2 +- .../databases/publications/__init__.py | 2 +- .../servers/databases/schemas/__init__.py | 2 +- .../databases/schemas/aggregates/__init__.py | 2 +- .../schemas/catalog_objects/__init__.py | 2 +- .../catalog_objects/columns/__init__.py | 2 +- .../databases/schemas/collations/__init__.py | 2 +- .../databases/schemas/domains/__init__.py | 2 +- .../domains/domain_constraints/__init__.py | 2 +- .../schemas/foreign_tables/__init__.py | 2 +- .../schemas/fts_configurations/__init__.py | 2 +- .../schemas/fts_dictionaries/__init__.py | 2 +- .../databases/schemas/fts_parsers/__init__.py | 2 +- .../schemas/fts_templates/__init__.py | 2 +- .../databases/schemas/functions/__init__.py | 2 +- .../databases/schemas/operators/__init__.py | 2 +- .../databases/schemas/packages/__init__.py | 2 +- .../schemas/packages/edbfuncs/__init__.py | 2 +- .../schemas/packages/edbvars/__init__.py | 2 +- .../databases/schemas/sequences/__init__.py | 2 +- .../databases/schemas/synonyms/__init__.py | 2 +- .../databases/schemas/tables/__init__.py | 2 +- .../schemas/tables/columns/__init__.py | 2 +- .../databases/schemas/tables/columns/utils.py | 2 +- .../tables/compound_triggers/__init__.py | 2 +- .../schemas/tables/compound_triggers/utils.py | 2 +- .../schemas/tables/constraints/__init__.py | 2 +- .../constraints/check_constraint/__init__.py | 2 +- .../constraints/check_constraint/utils.py | 2 +- .../exclusion_constraint/__init__.py | 2 +- .../constraints/exclusion_constraint/utils.py | 2 +- .../constraints/foreign_key/__init__.py | 2 +- .../tables/constraints/foreign_key/utils.py | 2 +- .../constraints/index_constraint/__init__.py | 2 +- .../constraints/index_constraint/utils.py | 2 +- .../schemas/tables/indexes/__init__.py | 2 +- .../databases/schemas/tables/indexes/utils.py | 2 +- .../schemas/tables/partitions/__init__.py | 32 ++++++++---------- .../tables/row_security_policies/__init__.py | 2 +- .../tables/row_security_policies/utils.py | 2 +- .../schemas/tables/rules/__init__.py | 2 +- .../schemas/tables/triggers/__init__.py | 2 +- .../schemas/tables/triggers/utils.py | 2 +- .../servers/databases/schemas/tables/utils.py | 2 +- .../databases/schemas/types/__init__.py | 2 +- .../databases/schemas/views/__init__.py | 2 +- .../databases/subscriptions/__init__.py | 2 +- .../server_groups/servers/pgagent/__init__.py | 2 +- .../servers/pgagent/schedules/__init__.py | 2 +- .../servers/pgagent/steps/__init__.py | 2 +- .../browser/server_groups/servers/ppas.py | 2 +- .../servers/resource_groups/__init__.py | 2 +- .../server_groups/servers/roles/__init__.py | 4 +-- .../servers/tablespaces/__init__.py | 2 +- .../browser/server_groups/servers/types.py | 2 +- web/pgadmin/browser/utils.py | 6 ++-- web/pgadmin/dashboard/__init__.py | 2 +- web/pgadmin/help/__init__.py | 2 +- web/pgadmin/misc/__init__.py | 2 +- web/pgadmin/misc/bgprocess/processes.py | 2 +- web/pgadmin/misc/file_manager/__init__.py | 2 +- web/pgadmin/preferences/__init__.py | 2 +- web/pgadmin/settings/__init__.py | 2 +- web/pgadmin/tools/__init__.py | 2 +- web/pgadmin/tools/backup/__init__.py | 2 +- web/pgadmin/tools/datagrid/__init__.py | 2 +- web/pgadmin/tools/debugger/__init__.py | 2 +- web/pgadmin/tools/erd/__init__.py | 2 +- web/pgadmin/tools/grant_wizard/__init__.py | 2 +- web/pgadmin/tools/import_export/__init__.py | 2 +- web/pgadmin/tools/maintenance/__init__.py | 2 +- web/pgadmin/tools/psql/__init__.py | 2 +- web/pgadmin/tools/restore/__init__.py | 2 +- web/pgadmin/tools/schema_diff/__init__.py | 2 +- web/pgadmin/tools/schema_diff/model.py | 2 +- web/pgadmin/tools/search_objects/__init__.py | 2 +- web/pgadmin/tools/search_objects/utils.py | 2 +- web/pgadmin/tools/sqleditor/__init__.py | 2 +- web/pgadmin/tools/sqleditor/command.py | 2 +- .../sqleditor/utils/constant_definition.py | 2 +- .../tools/sqleditor/utils/filter_dialog.py | 2 +- .../utils/is_query_resultset_updatable.py | 2 +- web/pgadmin/tools/sqleditor/utils/macros.py | 2 +- .../sqleditor/utils/query_tool_preferences.py | 2 +- .../sqleditor/utils/start_running_query.py | 2 +- web/pgadmin/tools/storage_manager/__init__.py | 2 +- web/pgadmin/tools/user_management/__init__.py | 2 +- web/pgadmin/utils/__init__.py | 18 +++++----- web/pgadmin/utils/ajax.py | 2 +- web/pgadmin/utils/constants.py | 2 +- web/pgadmin/utils/csrf.py | 3 +- .../utils/driver/psycopg2/connection.py | 2 +- .../utils/driver/psycopg2/server_manager.py | 2 +- web/pgadmin/utils/exception.py | 2 +- web/pgadmin/utils/preferences.py | 2 +- 120 files changed, 211 insertions(+), 199 deletions(-) diff --git a/DEPENDENCIES b/DEPENDENCIES index 382cb9cde..955fac2a7 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -23,36 +23,35 @@ Python Dependencies Name Version Licence URL ---- ------- ------- --- -Flask 1.1.4 BSD-3-Clause https://palletsprojects.com/p/flask/ +Flask 2.0.2 BSD-3-Clause https://palletsprojects.com/p/flask Flask-Gravatar 0.5.0 BSD https://github.com/zzzsochi/Flask-Gravatar/ Flask-Login 0.5.0 MIT https://github.com/maxcountryman/flask-login Flask-Mail 0.9.1 BSD https://github.com/rduplain/flask-mail -Flask-Migrate 2.7.0 MIT http://github.com/miguelgrinberg/flask-migrate/ +Flask-Migrate 3.1.0 UNKNOWN https://github.com/miguelgrinberg/flask-migrate Flask-SQLAlchemy 2.5.1 BSD-3-Clause https://github.com/pallets/flask-sqlalchemy -Flask-WTF 0.15.1 BSD https://github.com/wtforms/flask-wtf +Flask-WTF 1.0.0 BSD-3-Clause https://github.com/wtforms/flask-wtf/ Flask-Compress 1.10.1 MIT https://github.com/colour-science/flask-compress +Flask-Paranoid 0.2.0 MIT http://github.com/miguelgrinberg/flask-paranoid/ +Flask-Babel 2.0.0 BSD http://github.com/python-babel/flask-babel +Flask-Security-Too 4.1.2 MIT https://github.com/Flask-Middleware/flask-security +Flask-SocketIO 5.1.1 UNKNOWN https://github.com/miguelgrinberg/flask-socketio +WTForms 3.0.0 BSD-3-Clause https://wtforms.readthedocs.io/ passlib 1.7.4 BSD https://passlib.readthedocs.io pytz 2021.3 MIT http://pythonhosted.org/pytz -simplejson 3.17.5 MIT License https://github.com/simplejson/simplejson +simplejson 3.17.6 MIT License https://github.com/simplejson/simplejson six 1.16.0 MIT https://github.com/benjaminp/six speaklater3 1.4 UNKNOWN https://github.com/ThomasWaldmann/speaklater sqlparse 0.4.2 BSD-3-Clause https://github.com/andialbrecht/sqlparse -WTForms 2.3.3 BSD-3-Clause https://wtforms.readthedocs.io/ -Flask-Paranoid 0.2.0 MIT http://github.com/miguelgrinberg/flask-paranoid/ psutil 5.8.0 BSD https://github.com/giampaolo/psutil psycopg2 2.8.6 LGPL with exceptions https://psycopg.org/ python-dateutil 2.8.2 Dual License https://github.com/dateutil/dateutil -SQLAlchemy 1.3.24 MIT http://www.sqlalchemy.org -itsdangerous 1.1.0 BSD https://palletsprojects.com/p/itsdangerous/ -Flask-Security-Too 4.1.2 MIT https://github.com/Flask-Middleware/flask-security +SQLAlchemy 1.4.27 MIT https://www.sqlalchemy.org bcrypt 3.2.0 Apache License, Version 2.0 https://github.com/pyca/bcrypt/ cryptography 3.4.8 BSD or Apache License, Version 2.0 https://github.com/pyca/cryptography sshtunnel 0.4.0 MIT https://github.com/pahaz/sshtunnel ldap3 2.9.1 LGPL v3 https://github.com/cannatag/ldap3 -Flask-BabelEx 0.9.4 BSD http://github.com/mrjoes/flask-babelex gssapi 1.6.14 LICENSE.txt https://github.com/pythongssapi/python-gssapi -Flask-SocketIO 5.1.1 UNKNOWN https://github.com/miguelgrinberg/flask-socketio -eventlet 0.31.0 UNKNOWN http://eventlet.net +eventlet 0.33.0 UNKNOWN http://eventlet.net httpagentparser 1.9.1 http://www.opensource.org/licenses/mit-license.php http://shon.github.com/httpagentparser user-agents 2.2.0 MIT https://github.com/selwin/python-user-agents pywinpty 1.1.1 Unknown Unknown @@ -62,7 +61,7 @@ requests 2.25.1 NOTE: This report was generated using Python 3.9. Full information may not be shown for Python modules that are not required with this version. -35 dependencies listed. +34 dependencies listed. Javascript Dependencies ======================= diff --git a/docs/en_US/release_notes_6_3.rst b/docs/en_US/release_notes_6_3.rst index 166ab1fe2..a4d57e6b0 100644 --- a/docs/en_US/release_notes_6_3.rst +++ b/docs/en_US/release_notes_6_3.rst @@ -13,7 +13,9 @@ New features Housekeeping ************ +| `Issue #6088 `_ - Replace Flask-BabelEx with Flask-Babel. | `Issue #6984 `_ - Port Backup Global, Backup Server, and Backup object dialog in React. +| `Issue #7010 `_ - Upgrade Flask to version 2. Bug fixes ********* @@ -23,4 +25,4 @@ Bug fixes | `Issue #6986 `_ - Fixed an issue where the user can't debug function with timestamp parameter. | `Issue #6989 `_ - Fixed an issue where the Change Password menu option is missing for internal authentication source when more than one authentication source is defined. | `Issue #7006 `_ - Ensure that Python 3.10 and the latest eventlet dependency should not break the application. -| `Issue #7013 `_ - Fix an RPM build issue that could lead to a conflict with python3 at installation. \ No newline at end of file +| `Issue #7013 `_ - Fix an RPM build issue that could lead to a conflict with python3 at installation. diff --git a/requirements.txt b/requirements.txt index fcad98e8d..493d27dda 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,35 +8,34 @@ # ############################################################################### -Flask==1.* +Flask==2.* Flask-Gravatar==0.* Flask-Login==0.* Flask-Mail==0.* -Flask-Migrate==2.* +Flask-Migrate==3.* Flask-SQLAlchemy==2.* -Flask-WTF==0.* +Flask-WTF==1.* Flask-Compress==1.* +Flask-Paranoid==0.* +Flask-Babel==2.* +Flask-Security-Too==4.* +Flask-SocketIO>=5.0.1 +WTForms==3.* passlib==1.* pytz==2021.* simplejson==3.* six==1.* speaklater3==1.* sqlparse==0.* -WTForms==2.* -Flask-Paranoid==0.* psutil==5.* psycopg2==2.8.* python-dateutil==2.* -SQLAlchemy==1.3.* -itsdangerous<=1.1.0 -Flask-Security-Too==4.* +SQLAlchemy==1.4.* bcrypt==3.* cryptography==3.* sshtunnel==0.* ldap3==2.* -Flask-BabelEx==0.* gssapi==1.6.* -flask-socketio>=5.0.1 eventlet==0.33.0 httpagentparser==1.9.* user-agents==2.2.0 diff --git a/web/migrations/versions/09d53fca90c7_.py b/web/migrations/versions/09d53fca90c7_.py index 0220edafd..3214754f1 100644 --- a/web/migrations/versions/09d53fca90c7_.py +++ b/web/migrations/versions/09d53fca90c7_.py @@ -209,8 +209,11 @@ def upgrade(): os.urandom(32)).decode() db.engine.execute(sql) - sql = "INSERT INTO keys (name, value) VALUES ('SECRET_KEY', '%s')" % base64.urlsafe_b64encode( - os.urandom(32)).decode() + if hasattr(config, 'SECRET_KEY'): + sql = "INSERT INTO keys (name, value) VALUES ('SECRET_KEY', '%s')" % config.SECRET_KEY + else: + sql = "INSERT INTO keys (name, value) VALUES ('SECRET_KEY', '%s')" % base64.urlsafe_b64encode( + os.urandom(32)).decode() db.engine.execute(sql) # If SECURITY_PASSWORD_SALT is not in the config, but we're upgrading, then it must (unless the diff --git a/web/migrations/versions/fdc58d9bd449_.py b/web/migrations/versions/fdc58d9bd449_.py index c37a3a2b0..3d76e948c 100644 --- a/web/migrations/versions/fdc58d9bd449_.py +++ b/web/migrations/versions/fdc58d9bd449_.py @@ -22,7 +22,7 @@ import sqlalchemy as sa from alembic import op from flask import current_app from flask_security import Security, SQLAlchemyUserDatastore -from flask_security.utils import encrypt_password +from flask_security.utils import hash_password from pgadmin.model import db, User, Role from pgadmin.setup import get_version from pgadmin.setup import user_info @@ -116,14 +116,24 @@ VALUES(1, 1, 'Servers') os.urandom(32) ).decode() ) + + secret_key = getattr( + config, 'SECRET_KEY', base64.urlsafe_b64encode( + os.urandom(32) + ).decode() + ) if current_app.extensions.get('security') is None: current_app.config['SECURITY_PASSWORD_SALT'] = current_salt + current_app.config['SECRET_KEY'] = secret_key user_datastore = SQLAlchemyUserDatastore(db, User, Role) Security(current_app, user_datastore, register_blueprint=False) else: current_app.config['SECURITY_PASSWORD_SALT'] = current_salt + current_app.config['SECRET_KEY'] = secret_key + setattr(config, 'SECURITY_PASSWORD_SALT', current_salt) - password = encrypt_password(password) + setattr(config, 'SECRET_KEY', secret_key) + password = hash_password(password) db.engine.execute(""" INSERT INTO "user" diff --git a/web/pgadmin/__init__.py b/web/pgadmin/__init__.py index 8047b3417..b12af2cfc 100644 --- a/web/pgadmin/__init__.py +++ b/web/pgadmin/__init__.py @@ -23,8 +23,8 @@ from importlib import import_module from flask import Flask, abort, request, current_app, session, url_for from flask_socketio import SocketIO from werkzeug.exceptions import HTTPException -from flask_babelex import Babel, gettext -from flask_babelex import gettext as _ +from flask_babel import Babel, gettext +from flask_babel import gettext as _ from flask_login import user_logged_in, user_logged_out from flask_mail import Mail from flask_paranoid import Paranoid @@ -78,17 +78,21 @@ class PgAdmin(Flask): super(PgAdmin, self).__init__(*args, **kwargs) def find_submodules(self, basemodule): - for module_name in find_modules(basemodule, True): - if module_name in self.config['MODULE_BLACKLIST']: + try: + for module_name in find_modules(basemodule, True): + if module_name in self.config['MODULE_BLACKLIST']: + self.logger.info( + 'Skipping blacklisted module: %s' % module_name + ) + continue self.logger.info( - 'Skipping blacklisted module: %s' % module_name - ) - continue - self.logger.info('Examining potential module: %s' % module_name) - module = import_module(module_name) - for key in list(module.__dict__.keys()): - if isinstance(module.__dict__[key], PgAdminModule): - yield module.__dict__[key] + 'Examining potential module: %s' % module_name) + module = import_module(module_name) + for key in list(module.__dict__.keys()): + if isinstance(module.__dict__[key], PgAdminModule): + yield module.__dict__[key] + except Exception as _: + return [] @property def submodules(self): @@ -704,8 +708,9 @@ def create_app(app_name=None): ########################################################################## for module in app.find_submodules('pgadmin'): app.logger.info('Registering blueprint module: %s' % module) - app.register_blueprint(module) - app.register_logout_hook(module) + if app.blueprints.get(module.name) is None: + app.register_blueprint(module) + app.register_logout_hook(module) @app.before_request def limit_host_addr(): diff --git a/web/pgadmin/about/__init__.py b/web/pgadmin/about/__init__.py index 51afeab98..5460d7801 100644 --- a/web/pgadmin/about/__init__.py +++ b/web/pgadmin/about/__init__.py @@ -11,7 +11,7 @@ import sys from flask import Response, render_template, __version__, url_for, request -from flask_babelex import gettext +from flask_babel import gettext from flask_security import current_user, login_required from pgadmin.utils import PgAdminModule from pgadmin.utils.menu import MenuItem diff --git a/web/pgadmin/authenticate/__init__.py b/web/pgadmin/authenticate/__init__.py index 82c5ea9b0..e41242ac3 100644 --- a/web/pgadmin/authenticate/__init__.py +++ b/web/pgadmin/authenticate/__init__.py @@ -14,7 +14,7 @@ import copy from flask import current_app, flash, Response, request, url_for, \ session, redirect -from flask_babelex import gettext +from flask_babel import gettext from flask_security.views import _security from flask_security.utils import get_post_logout_redirect, \ get_post_login_redirect, logout_user diff --git a/web/pgadmin/authenticate/internal.py b/web/pgadmin/authenticate/internal.py index 515f00a5d..9929eadf7 100644 --- a/web/pgadmin/authenticate/internal.py +++ b/web/pgadmin/authenticate/internal.py @@ -13,7 +13,7 @@ import six from flask import current_app, flash from flask_security import login_user from abc import abstractmethod, abstractproperty -from flask_babelex import gettext +from flask_babel import gettext from .registry import AuthSourceRegistry from pgadmin.model import User diff --git a/web/pgadmin/authenticate/kerberos.py b/web/pgadmin/authenticate/kerberos.py index a018f473e..3926f79d8 100644 --- a/web/pgadmin/authenticate/kerberos.py +++ b/web/pgadmin/authenticate/kerberos.py @@ -13,7 +13,7 @@ import base64 from os import environ, path, remove from werkzeug.datastructures import Headers, MultiDict -from flask_babelex import gettext +from flask_babel import gettext from flask import request, Response, session,\ current_app, render_template, flash, url_for from flask_security.views import _security @@ -53,10 +53,10 @@ if config.KRB_KTNAME and config.KRB_KTNAME != '': class KerberosModule(PgAdminModule): - def register(self, app, options, first_registration=False): + def register(self, app, options): # Do not look for the sub_modules, # instead call blueprint.register(...) directly - super(PgAdminModule, self).register(app, options, first_registration) + super(PgAdminModule, self).register(app, options) def get_exposed_url_endpoints(self): return ['kerberos.login', diff --git a/web/pgadmin/authenticate/ldap.py b/web/pgadmin/authenticate/ldap.py index f53c843cc..e4c5f1f89 100644 --- a/web/pgadmin/authenticate/ldap.py +++ b/web/pgadmin/authenticate/ldap.py @@ -16,7 +16,7 @@ from ldap3 import Connection, Server, Tls, ALL, ALL_ATTRIBUTES, ANONYMOUS,\ from ldap3.core.exceptions import LDAPSocketOpenError, LDAPBindError,\ LDAPInvalidScopeError, LDAPAttributeError, LDAPInvalidFilterError,\ LDAPStartTLSError, LDAPSSLConfigurationError -from flask_babelex import gettext +from flask_babel import gettext from urllib.parse import urlparse from .internal import BaseAuthentication diff --git a/web/pgadmin/authenticate/oauth2.py b/web/pgadmin/authenticate/oauth2.py index cc1143e06..ea0336e0c 100644 --- a/web/pgadmin/authenticate/oauth2.py +++ b/web/pgadmin/authenticate/oauth2.py @@ -14,7 +14,7 @@ import config from authlib.integrations.flask_client import OAuth from flask import current_app, url_for, session, request,\ redirect, Flask, flash -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_user, current_user from flask_security.utils import get_post_logout_redirect, \ get_post_login_redirect, logout_user @@ -32,10 +32,10 @@ OAUTH2_AUTHORIZE = 'oauth2.authorize' class Oauth2Module(PgAdminModule): - def register(self, app, options, first_registration=False): + def register(self, app, options): # Do not look for the sub_modules, # instead call blueprint.register(...) directly - super(PgAdminModule, self).register(app, options, first_registration) + super(PgAdminModule, self).register(app, options) def get_exposed_url_endpoints(self): return [OAUTH2_AUTHORIZE, diff --git a/web/pgadmin/authenticate/webserver.py b/web/pgadmin/authenticate/webserver.py index 4c84f79a4..846224bef 100644 --- a/web/pgadmin/authenticate/webserver.py +++ b/web/pgadmin/authenticate/webserver.py @@ -14,7 +14,7 @@ import string import config from flask import request, current_app, session, Response, render_template, \ url_for -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_user from .internal import BaseAuthentication from pgadmin.model import User @@ -27,10 +27,10 @@ from os import environ, path, remove class WebserverModule(PgAdminModule): - def register(self, app, options, first_registration=False): + def register(self, app, options): # Do not look for the sub_modules, # instead call blueprint.register(...) directly - super(PgAdminModule, self).register(app, options, first_registration) + super(PgAdminModule, self).register(app, options) def get_exposed_url_endpoints(self): return ['webserver.login', diff --git a/web/pgadmin/browser/__init__.py b/web/pgadmin/browser/__init__.py index 8915d112d..fc24b546d 100644 --- a/web/pgadmin/browser/__init__.py +++ b/web/pgadmin/browser/__init__.py @@ -22,7 +22,7 @@ import six import time from flask import current_app, render_template, url_for, make_response, \ flash, Response, request, after_this_request, redirect, session -from flask_babelex import gettext +from flask_babel import gettext from flask_gravatar import Gravatar from flask_login import current_user, login_required from flask_security.changeable import change_user_password diff --git a/web/pgadmin/browser/collection.py b/web/pgadmin/browser/collection.py index 5b29b9b54..85b3ec959 100644 --- a/web/pgadmin/browser/collection.py +++ b/web/pgadmin/browser/collection.py @@ -11,7 +11,7 @@ from abc import ABCMeta, abstractmethod import six from flask import url_for, render_template -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser import BrowserPluginModule from pgadmin.browser.utils import PGChildModule from pgadmin.utils import PgAdminModule diff --git a/web/pgadmin/browser/register_browser_preferences.py b/web/pgadmin/browser/register_browser_preferences.py index 50d18c770..6715cef83 100644 --- a/web/pgadmin/browser/register_browser_preferences.py +++ b/web/pgadmin/browser/register_browser_preferences.py @@ -7,7 +7,7 @@ # ########################################################################## import sys -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.utils.constants import PREF_LABEL_DISPLAY,\ PREF_LABEL_KEYBOARD_SHORTCUTS, PREF_LABEL_TABS_SETTINGS, \ PREF_LABEL_OPTIONS, QT_DEFAULT_PLACEHOLDER diff --git a/web/pgadmin/browser/server_groups/__init__.py b/web/pgadmin/browser/server_groups/__init__.py index 1cedc9c5d..990fc7a3d 100644 --- a/web/pgadmin/browser/server_groups/__init__.py +++ b/web/pgadmin/browser/server_groups/__init__.py @@ -14,7 +14,7 @@ from abc import ABCMeta, abstractmethod import six from flask import request, jsonify, render_template -from flask_babelex import gettext +from flask_babel import gettext from flask_security import current_user, login_required from pgadmin.browser import BrowserPluginModule from pgadmin.browser.utils import NodeView diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py index ac9b21729..b87d8b205 100644 --- a/web/pgadmin/browser/server_groups/servers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/__init__.py @@ -11,7 +11,7 @@ import simplejson as json import pgadmin.browser.server_groups as sg from flask import render_template, request, make_response, jsonify, \ current_app, url_for, session -from flask_babelex import gettext +from flask_babel import gettext from flask_security import current_user, login_required from pgadmin.browser.server_groups.servers.types import ServerType from pgadmin.browser.utils import PGChildNodeView @@ -302,19 +302,18 @@ class ServerModule(sg.ServerGroupPluginModule): return scripts - def register(self, app, options, first_registration=False): + def register(self, app, options): """ Override the default register function to automagically register sub-modules at once. """ - if first_registration: - driver = get_driver(PG_DEFAULT_DRIVER, app) - app.jinja_env.filters['qtLiteral'] = driver.qtLiteral - app.jinja_env.filters['qtIdent'] = driver.qtIdent - app.jinja_env.filters['qtTypeIdent'] = driver.qtTypeIdent - app.jinja_env.filters['hasAny'] = has_any + driver = get_driver(PG_DEFAULT_DRIVER, app) + app.jinja_env.filters['qtLiteral'] = driver.qtLiteral + app.jinja_env.filters['qtIdent'] = driver.qtIdent + app.jinja_env.filters['qtTypeIdent'] = driver.qtTypeIdent + app.jinja_env.filters['hasAny'] = has_any - super(ServerModule, self).register(app, options, first_registration) + super(ServerModule, self).register(app, options) # We do not have any preferences for server node. def register_preferences(self): diff --git a/web/pgadmin/browser/server_groups/servers/databases/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/__init__.py index 04b93ad75..c5c1a6181 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import simplejson as json from flask import render_template, current_app, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import current_user import pgadmin.browser.server_groups.servers as servers diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py index 38f0ddddc..59898e6aa 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py index 3b3e1a857..bf7dc835c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py index 357a1c3f7..70a8db421 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py index fb681ecbc..6adad7cfa 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.utils import parse_priv_from_db, \ parse_priv_to_db, validate_options, tokenize_options diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py index 9c2274ea5..04f2cb484 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.utils import parse_priv_from_db, \ parse_priv_to_db, validate_options, tokenize_options diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py index 9cf26a870..4383d0a31 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py @@ -16,7 +16,7 @@ import pgadmin.browser.server_groups.servers as servers from pgadmin.browser.server_groups.servers.utils import \ validate_options, tokenize_options from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py index 624743aba..9f03de82a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.utils import parse_priv_from_db, \ parse_priv_to_db diff --git a/web/pgadmin/browser/server_groups/servers/databases/publications/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/publications/__init__.py index d3a89a682..7eda980d6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/publications/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/publications/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py index e33478224..f8148b615 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py @@ -12,7 +12,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers as servers from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/aggregates/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/aggregates/__init__.py index d6377a334..5ede08ab9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/aggregates/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/aggregates/__init__.py @@ -12,7 +12,7 @@ from functools import wraps from flask import render_template -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as database from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py index 8376f4392..21acd21e6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py @@ -12,7 +12,7 @@ from functools import wraps from flask import render_template -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as database from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py index a2faa542c..b075621c8 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py @@ -12,7 +12,7 @@ from functools import wraps from flask import render_template -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as database from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py index 7b222448a..664e96699 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as database from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py index d58bb36d9..623d14c32 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as databases from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py index d3b2ef3d7..f8edd0578 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases.schemas.domains \ as domains diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py index 2b516468e..1fe4d1e21 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py @@ -16,7 +16,7 @@ from functools import wraps import simplejson as json from flask import render_template, make_response, request, jsonify, \ current_app -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as databases from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py index bef3def60..758aadbcc 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, make_response, current_app, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ import pgadmin.browser.server_groups.servers.databases as databases from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py index e422ddb03..bf229a37c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, make_response, current_app, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ import pgadmin.browser.server_groups.servers.databases as databases from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py index 22c0c7ec4..7534d5982 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from config import PG_DEFAULT_DRIVER from pgadmin.browser.server_groups.servers.databases import DatabaseModule diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py index c5206c7ef..831c592f9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from config import PG_DEFAULT_DRIVER from pgadmin.browser.server_groups.servers.databases import DatabaseModule diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py index cf34ab735..37758ad3d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py @@ -18,7 +18,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify, \ current_app -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as databases from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/operators/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/operators/__init__.py index aa72b34d2..10ad2cc5a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/operators/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/operators/__init__.py @@ -12,7 +12,7 @@ from functools import wraps from flask import render_template -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases as database from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py index 7823a7dd1..9f755b57b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ import pgadmin.browser.server_groups.servers.databases as database from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py index 8a1e265f0..e0d8ed492 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py @@ -14,7 +14,7 @@ import re from functools import wraps from flask import render_template, make_response -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases\ .schemas.packages as packages diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbvars/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbvars/__init__.py index 8849fd8f6..bae97bb0d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbvars/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbvars/__init__.py @@ -12,7 +12,7 @@ from functools import wraps from flask import render_template, make_response -from flask_babelex import gettext +from flask_babel import gettext import pgadmin.browser.server_groups.servers.databases.schemas \ .packages as packages diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py index a94dc774c..4c7fcef32 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ import pgadmin.browser.server_groups.servers.databases as database from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py index 159be81bc..9e8217100 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.server_groups.servers.databases.schemas.utils \ import SchemaChildModule from pgadmin.browser.utils import PGChildNodeView diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py index 74b60fd13..66cf8bfba 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py @@ -14,7 +14,7 @@ import re import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify, url_for, current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.server_groups.servers.databases.schemas.utils \ import SchemaChildModule, DataTypeReader, VacuumSettings from pgadmin.browser.server_groups.servers.utils import parse_priv_to_db diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/__init__.py index 73c1b07db..9148bd3fb 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.databases.schemas.utils \ import DataTypeReader diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/utils.py index 48c525d20..714a498b7 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/columns/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Compound Triggers. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ExecuteError from pgadmin.browser.server_groups.servers.databases.schemas.utils \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py index 2f0406365..d069857e1 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/utils.py index 672c00ecb..a359fa90d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Compound Triggers. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from pgadmin.browser.server_groups.servers.databases.schemas.utils \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/__init__.py index fa6eb5afe..f2a098d74 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/__init__.py @@ -15,7 +15,7 @@ from functools import wraps from pgadmin.utils.driver import get_driver import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, make_response -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.utils.ajax import make_json_response, \ make_response as ajax_response, internal_server_error diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py index 2692bc026..16d16d81b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.databases.schemas.tables.\ constraints.type import ConstraintRegistry diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/utils.py index d6284ae2e..73eb81f06 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Check Constraint. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from functools import wraps diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py index f10bde48f..592e92162 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.browser.server_groups.servers.databases.schemas.tables.\ constraints.type import ConstraintRegistry, ConstraintTypeModule from pgadmin.browser.utils import PGChildNodeView diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/utils.py index 407a9eef5..97cb2fc7b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Exclusion Constraint. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from functools import wraps diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py index 48a722f2f..b7fd39738 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.server_groups.servers.databases.schemas.tables.\ constraints.type import ConstraintRegistry, ConstraintTypeModule from pgadmin.browser.utils import PGChildNodeView diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/utils.py index 3e99e5698..afeac5606 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Foreign Keys. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from functools import wraps diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py index f7cb5d245..bea5d019f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.browser.server_groups.servers.databases.schemas.tables.\ constraints.type import ConstraintRegistry, ConstraintTypeModule from pgadmin.browser.utils import PGChildNodeView diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/utils.py index 9dc00da85..a78ca80c4 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Index Constraint. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from functools import wraps diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py index b84d3dc88..fefd19e4f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.databases.schemas.tables.\ partitions import backend_supported diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/utils.py index cd8679d3d..c36456011 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Indexes. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from functools import wraps diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py index d700ccff2..533b68ebd 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py @@ -14,7 +14,7 @@ import random import simplejson as json import pgadmin.browser.server_groups.servers.databases.schemas as schema from flask import render_template, request, current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.server_groups.servers.databases.schemas.utils \ import DataTypeReader, VacuumSettings from pgadmin.utils.ajax import internal_server_error, \ @@ -116,34 +116,28 @@ class PartitionsModule(CollectionNodeModule): """ return backend_supported(self, manager, **kwargs) - def register(self, app, options, first_registration=False): + def register(self, app, options): """ Override the default register function to automatically register sub-modules of table node under partition table node. """ - if first_registration: - self.submodules = list(app.find_submodules(self.import_name)) - - super(CollectionNodeModule, self).register( - app, options, first_registration - ) + self.submodules = list(app.find_submodules(self.import_name)) + super(CollectionNodeModule, self).register(app, options) for module in self.submodules: - if first_registration: - module.parentmodules.append(self) + module.parentmodules.append(self) app.register_blueprint(module) # Now add sub modules of table node to partition table node. - if first_registration: - # Exclude 'partition' module for now to avoid cyclic import issue. - modules_to_skip = ['partition', 'column'] - for parent in self.parentmodules: - if parent.node_type == 'table': - self.submodules += [ - submodule for submodule in parent.submodules - if submodule.node_type not in modules_to_skip - ] + # Exclude 'partition' module for now to avoid cyclic import issue. + modules_to_skip = ['partition', 'column'] + for parent in self.parentmodules: + if parent.node_type == 'table': + self.submodules += [ + submodule for submodule in parent.submodules + if submodule.node_type not in modules_to_skip + ] @property def module_use_template_javascript(self): diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/__init__.py index f21dcabf2..c36541d47 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/utils.py index c9f3fdc25..256f34bba 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/row_security_policies/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for row level security. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from functools import wraps diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py index 9a01eed4f..136043a92 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py @@ -15,7 +15,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases.schemas as schemas from flask import render_template, make_response, request, jsonify,\ current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.databases.schemas.utils import \ parse_rule_definition diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py index 9e53969eb..57dbf1d36 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as database from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/utils.py index 3c2cf2ffd..bcbf9e959 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/utils.py @@ -10,7 +10,7 @@ """ Implements Utility class for Triggers. """ from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.ajax import internal_server_error from pgadmin.utils.exception import ObjectGone, ExecuteError from pgadmin.browser.server_groups.servers.databases.schemas.utils \ diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py index aff24f460..0044c72f0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py @@ -14,7 +14,7 @@ import copy from functools import wraps import simplejson as json from flask import render_template, jsonify, request -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.server_groups.servers.databases.schemas\ .tables.base_partition_table import BasePartitionTable diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py index 098284c7c..fda11e255 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py @@ -13,7 +13,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext import re import pgadmin.browser.server_groups.servers.databases as database diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py index 0b6d7b229..369847c25 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py @@ -15,7 +15,7 @@ from functools import wraps import simplejson as json from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext +from flask_babel import gettext from flask_security import current_user import pgadmin.browser.server_groups.servers.databases as databases from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/databases/subscriptions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/subscriptions/__init__.py index 13680b987..a37490341 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/subscriptions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/subscriptions/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, internal_server_error, \ diff --git a/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py b/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py index c9f6c327f..2c44dd2e7 100644 --- a/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from datetime import datetime, time from flask import render_template, request, jsonify -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py index b47e3e501..b5862b807 100644 --- a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from functools import wraps from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, gone, \ diff --git a/web/pgadmin/browser/server_groups/servers/pgagent/steps/__init__.py b/web/pgadmin/browser/server_groups/servers/pgagent/steps/__init__.py index fae3339bb..a494d19f3 100644 --- a/web/pgadmin/browser/server_groups/servers/pgagent/steps/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/pgagent/steps/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from functools import wraps from flask import render_template, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView from pgadmin.utils.ajax import make_json_response, gone, \ diff --git a/web/pgadmin/browser/server_groups/servers/ppas.py b/web/pgadmin/browser/server_groups/servers/ppas.py index 0dceea6be..8ce54f870 100644 --- a/web/pgadmin/browser/server_groups/servers/ppas.py +++ b/web/pgadmin/browser/server_groups/servers/ppas.py @@ -7,7 +7,7 @@ # ########################################################################## -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.server_groups.servers.types import ServerType diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py b/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py index 243905bfd..c52dc655e 100644 --- a/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers as servers from flask import render_template, make_response, request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import NodeView from pgadmin.utils.ajax import make_json_response, \ diff --git a/web/pgadmin/browser/server_groups/servers/roles/__init__.py b/web/pgadmin/browser/server_groups/servers/roles/__init__.py index 37e3cbf71..22cda4f26 100644 --- a/web/pgadmin/browser/server_groups/servers/roles/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/roles/__init__.py @@ -12,7 +12,7 @@ from functools import wraps import pgadmin.browser.server_groups as sg import simplejson as json from flask import render_template, request, jsonify, current_app -from flask_babelex import gettext as _ +from flask_babel import gettext as _ import dateutil.parser as dateutil_parser from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView @@ -23,7 +23,7 @@ from pgadmin.utils.driver import get_driver from pgadmin.utils.constants import ERROR_FETCHING_ROLE_INFORMATION from config import PG_DEFAULT_DRIVER -from flask_babelex import gettext +from flask_babel import gettext _REASSIGN_OWN_SQL = 'reassign_own.sql' diff --git a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py index d1217776f..9e53a4a9c 100644 --- a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py @@ -12,7 +12,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers as servers from flask import render_template, make_response, request, jsonify, current_app -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.utils import parse_priv_from_db, \ parse_priv_to_db diff --git a/web/pgadmin/browser/server_groups/servers/types.py b/web/pgadmin/browser/server_groups/servers/types.py index 5d99b1493..f55e9b368 100644 --- a/web/pgadmin/browser/server_groups/servers/types.py +++ b/web/pgadmin/browser/server_groups/servers/types.py @@ -13,7 +13,7 @@ import config import copy from flask import render_template -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from pgadmin.utils.preferences import Preferences from werkzeug.exceptions import InternalServerError from pgadmin.utils.constants import BINARY_PATHS diff --git a/web/pgadmin/browser/utils.py b/web/pgadmin/browser/utils.py index 757ede48c..e92779208 100644 --- a/web/pgadmin/browser/utils.py +++ b/web/pgadmin/browser/utils.py @@ -13,8 +13,8 @@ from abc import abstractmethod import flask from flask import render_template, current_app -from flask.views import View, MethodViewType, with_metaclass -from flask_babelex import gettext +from flask.views import View, MethodViewType +from flask_babel import gettext from config import PG_DEFAULT_DRIVER from pgadmin.utils.ajax import make_json_response, precondition_required,\ @@ -139,7 +139,7 @@ class PGChildModule(object): pass -class NodeView(with_metaclass(MethodViewType, View)): +class NodeView(View, metaclass=MethodViewType): """ A PostgreSQL Object has so many operaions/functions apart from CRUD (Create, Read, Update, Delete): diff --git a/web/pgadmin/dashboard/__init__.py b/web/pgadmin/dashboard/__init__.py index 1116a0915..c399cd62a 100644 --- a/web/pgadmin/dashboard/__init__.py +++ b/web/pgadmin/dashboard/__init__.py @@ -11,7 +11,7 @@ import math from functools import wraps from flask import render_template, url_for, Response, g, request -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required import simplejson as json from pgadmin.utils import PgAdminModule diff --git a/web/pgadmin/help/__init__.py b/web/pgadmin/help/__init__.py index ea4ea17f6..302152190 100644 --- a/web/pgadmin/help/__init__.py +++ b/web/pgadmin/help/__init__.py @@ -9,7 +9,7 @@ """A blueprint module implementing the pgAdmin help system.""" from flask import url_for -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.utils import PgAdminModule from pgadmin.utils.menu import MenuItem, Panel from pgadmin.utils.preferences import Preferences diff --git a/web/pgadmin/misc/__init__.py b/web/pgadmin/misc/__init__.py index 6a6122870..21941fa92 100644 --- a/web/pgadmin/misc/__init__.py +++ b/web/pgadmin/misc/__init__.py @@ -11,7 +11,7 @@ import pgadmin.utils.driver as driver from flask import url_for, render_template, Response, request -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.utils import PgAdminModule, replace_binary_path from pgadmin.utils.csrf import pgCSRFProtect from pgadmin.utils.session import cleanup_session_files diff --git a/web/pgadmin/misc/bgprocess/processes.py b/web/pgadmin/misc/bgprocess/processes.py index 4da7896a0..0a16f0268 100644 --- a/web/pgadmin/misc/bgprocess/processes.py +++ b/web/pgadmin/misc/bgprocess/processes.py @@ -29,7 +29,7 @@ from pgadmin.utils.constants import KERBEROS import pytz from dateutil import parser from flask import current_app, session -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import current_user import config diff --git a/web/pgadmin/misc/file_manager/__init__.py b/web/pgadmin/misc/file_manager/__init__.py index 0973df4a2..59ce2ae13 100644 --- a/web/pgadmin/misc/file_manager/__init__.py +++ b/web/pgadmin/misc/file_manager/__init__.py @@ -24,7 +24,7 @@ from werkzeug.exceptions import InternalServerError import simplejson as json from flask import render_template, Response, session, request as req, \ url_for, current_app, send_from_directory -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required from pgadmin.utils import PgAdminModule from pgadmin.utils import get_storage_directory diff --git a/web/pgadmin/preferences/__init__.py b/web/pgadmin/preferences/__init__.py index f11f4317a..24cafe825 100644 --- a/web/pgadmin/preferences/__init__.py +++ b/web/pgadmin/preferences/__init__.py @@ -15,7 +15,7 @@ side and for getting/setting preferences. import config import simplejson as json from flask import render_template, url_for, Response, request, session -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required from pgadmin.utils import PgAdminModule from pgadmin.utils.ajax import success_return, \ diff --git a/web/pgadmin/settings/__init__.py b/web/pgadmin/settings/__init__.py index 91ff3204f..23eab7604 100644 --- a/web/pgadmin/settings/__init__.py +++ b/web/pgadmin/settings/__init__.py @@ -13,7 +13,7 @@ import traceback import json from flask import Response, request, render_template, url_for, current_app -from flask_babelex import gettext +from flask_babel import gettext from flask_login import current_user from flask_security import login_required from pgadmin.utils import PgAdminModule diff --git a/web/pgadmin/tools/__init__.py b/web/pgadmin/tools/__init__.py index eeda71038..bf78ebe89 100644 --- a/web/pgadmin/tools/__init__.py +++ b/web/pgadmin/tools/__init__.py @@ -11,7 +11,7 @@ from flask import render_template, Response from flask import url_for -from flask_babelex import Domain, gettext +from flask_babel import Domain, gettext from pgadmin.utils import PgAdminModule from pgadmin.utils.ajax import bad_request diff --git a/web/pgadmin/tools/backup/__init__.py b/web/pgadmin/tools/backup/__init__.py index 2e166b5b4..7179941ea 100644 --- a/web/pgadmin/tools/backup/__init__.py +++ b/web/pgadmin/tools/backup/__init__.py @@ -16,7 +16,7 @@ import operator from flask import render_template, request, current_app, \ url_for, Response -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import login_required, current_user from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc from pgadmin.utils import PgAdminModule, get_storage_directory, html, \ diff --git a/web/pgadmin/tools/datagrid/__init__.py b/web/pgadmin/tools/datagrid/__init__.py index 05ed998c6..804fa9295 100644 --- a/web/pgadmin/tools/datagrid/__init__.py +++ b/web/pgadmin/tools/datagrid/__init__.py @@ -17,7 +17,7 @@ from threading import Lock from flask import Response, url_for, session, request, make_response from werkzeug.useragents import UserAgent from flask import current_app as app, render_template -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required, current_user from pgadmin.tools.sqleditor.command import ObjectRegistry, SQLFilter from pgadmin.tools.sqleditor import check_transaction_status diff --git a/web/pgadmin/tools/debugger/__init__.py b/web/pgadmin/tools/debugger/__init__.py index 1831229fb..70e01c99b 100644 --- a/web/pgadmin/tools/debugger/__init__.py +++ b/web/pgadmin/tools/debugger/__init__.py @@ -15,7 +15,7 @@ import re from flask import url_for, Response, render_template, request, \ current_app -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required from werkzeug.useragents import UserAgent diff --git a/web/pgadmin/tools/erd/__init__.py b/web/pgadmin/tools/erd/__init__.py index 8ff273458..e6657d771 100644 --- a/web/pgadmin/tools/erd/__init__.py +++ b/web/pgadmin/tools/erd/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from flask import url_for, request from flask import render_template, current_app as app from flask_security import login_required -from flask_babelex import gettext +from flask_babel import gettext from werkzeug.useragents import UserAgent from pgadmin.utils import PgAdminModule, \ SHORTCUT_FIELDS as shortcut_fields diff --git a/web/pgadmin/tools/grant_wizard/__init__.py b/web/pgadmin/tools/grant_wizard/__init__.py index 9df3715d9..ec4c2a6f7 100644 --- a/web/pgadmin/tools/grant_wizard/__init__.py +++ b/web/pgadmin/tools/grant_wizard/__init__.py @@ -12,7 +12,7 @@ import simplejson as json from flask import Response, url_for from flask import render_template, request, current_app -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required from urllib.parse import unquote diff --git a/web/pgadmin/tools/import_export/__init__.py b/web/pgadmin/tools/import_export/__init__.py index 6491250ed..b1421d9b1 100644 --- a/web/pgadmin/tools/import_export/__init__.py +++ b/web/pgadmin/tools/import_export/__init__.py @@ -13,7 +13,7 @@ import simplejson as json import os from flask import url_for, Response, render_template, request, current_app -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import login_required, current_user from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc from pgadmin.utils import PgAdminModule, get_storage_directory, html, \ diff --git a/web/pgadmin/tools/maintenance/__init__.py b/web/pgadmin/tools/maintenance/__init__.py index f0b24ce8f..5d506a75b 100644 --- a/web/pgadmin/tools/maintenance/__init__.py +++ b/web/pgadmin/tools/maintenance/__init__.py @@ -12,7 +12,7 @@ import simplejson as json from flask import url_for, Response, render_template, request, current_app -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import login_required, current_user from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc from pgadmin.utils import PgAdminModule, html, does_utility_exist, get_server diff --git a/web/pgadmin/tools/psql/__init__.py b/web/pgadmin/tools/psql/__init__.py index 99b1cd62a..3eed05f53 100644 --- a/web/pgadmin/tools/psql/__init__.py +++ b/web/pgadmin/tools/psql/__init__.py @@ -18,7 +18,7 @@ from config import PG_DEFAULT_DRIVER from flask import Response, url_for, request from flask import render_template, copy_current_request_context, \ current_app as app -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required, current_user from pgadmin.browser.utils import underscore_unescape, underscore_escape from pgadmin.utils import PgAdminModule diff --git a/web/pgadmin/tools/restore/__init__.py b/web/pgadmin/tools/restore/__init__.py index 94fac8046..04b29f780 100644 --- a/web/pgadmin/tools/restore/__init__.py +++ b/web/pgadmin/tools/restore/__init__.py @@ -14,7 +14,7 @@ import os from flask import render_template, request, current_app, \ url_for, Response -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import login_required, current_user from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc from pgadmin.utils import PgAdminModule, get_storage_directory, html, \ diff --git a/web/pgadmin/tools/schema_diff/__init__.py b/web/pgadmin/tools/schema_diff/__init__.py index 596b976ad..ec621bdcc 100644 --- a/web/pgadmin/tools/schema_diff/__init__.py +++ b/web/pgadmin/tools/schema_diff/__init__.py @@ -16,7 +16,7 @@ import copy from flask import Response, session, url_for, request from flask import render_template, current_app as app from flask_security import current_user, login_required -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.utils import PgAdminModule from pgadmin.utils.ajax import make_json_response, bad_request, \ make_response as ajax_response, internal_server_error diff --git a/web/pgadmin/tools/schema_diff/model.py b/web/pgadmin/tools/schema_diff/model.py index 56b5264c1..9ced7beea 100644 --- a/web/pgadmin/tools/schema_diff/model.py +++ b/web/pgadmin/tools/schema_diff/model.py @@ -7,7 +7,7 @@ # ########################################################################## -from flask_babelex import gettext +from flask_babel import gettext class SchemaDiffModel(object): diff --git a/web/pgadmin/tools/search_objects/__init__.py b/web/pgadmin/tools/search_objects/__init__.py index bd0c905e8..915c9d6b5 100644 --- a/web/pgadmin/tools/search_objects/__init__.py +++ b/web/pgadmin/tools/search_objects/__init__.py @@ -10,7 +10,7 @@ """Implements Search Object feature""" from flask import request -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required from pgadmin.utils import PgAdminModule diff --git a/web/pgadmin/tools/search_objects/utils.py b/web/pgadmin/tools/search_objects/utils.py index 429164bb0..ecfa2a5bf 100644 --- a/web/pgadmin/tools/search_objects/utils.py +++ b/web/pgadmin/tools/search_objects/utils.py @@ -8,7 +8,7 @@ ########################################################################## from flask import current_app, render_template -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.utils.driver import get_driver from config import PG_DEFAULT_DRIVER diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index f2625ae78..045c01bfd 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -17,7 +17,7 @@ import simplejson as json from config import PG_DEFAULT_DRIVER, ON_DEMAND_RECORD_COUNT from flask import Response, url_for, render_template, session, current_app from flask import request, jsonify -from flask_babelex import gettext +from flask_babel import gettext from flask_security import login_required, current_user from pgadmin.misc.file_manager import Filemanager from pgadmin.tools.sqleditor.command import QueryToolCommand diff --git a/web/pgadmin/tools/sqleditor/command.py b/web/pgadmin/tools/sqleditor/command.py index c4252bf71..c62fe3381 100644 --- a/web/pgadmin/tools/sqleditor/command.py +++ b/web/pgadmin/tools/sqleditor/command.py @@ -13,7 +13,7 @@ from abc import ABCMeta, abstractmethod from collections import OrderedDict import six from flask import render_template -from flask_babelex import gettext +from flask_babel import gettext from werkzeug.exceptions import InternalServerError from pgadmin.utils.ajax import forbidden from pgadmin.utils.driver import get_driver diff --git a/web/pgadmin/tools/sqleditor/utils/constant_definition.py b/web/pgadmin/tools/sqleditor/utils/constant_definition.py index e415d681d..666c17c25 100644 --- a/web/pgadmin/tools/sqleditor/utils/constant_definition.py +++ b/web/pgadmin/tools/sqleditor/utils/constant_definition.py @@ -8,7 +8,7 @@ ########################################################################## """Definition of constants for SQLEditor.""" -from flask_babelex import gettext +from flask_babel import gettext # Async Constants ASYNC_OK = 1 diff --git a/web/pgadmin/tools/sqleditor/utils/filter_dialog.py b/web/pgadmin/tools/sqleditor/utils/filter_dialog.py index 7e2150f3f..833a4cd4a 100644 --- a/web/pgadmin/tools/sqleditor/utils/filter_dialog.py +++ b/web/pgadmin/tools/sqleditor/utils/filter_dialog.py @@ -10,7 +10,7 @@ """Code to handle data sorting in view data mode.""" import pickle import simplejson as json -from flask_babelex import gettext +from flask_babel import gettext from flask import current_app from pgadmin.utils.ajax import make_json_response, internal_server_error from pgadmin.tools.sqleditor.utils.update_session_grid_transaction import \ diff --git a/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py b/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py index 51fa54824..d2eb892dd 100644 --- a/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py +++ b/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py @@ -22,7 +22,7 @@ read-only. """ from flask import render_template -from flask_babelex import gettext +from flask_babel import gettext from collections import OrderedDict from werkzeug.exceptions import InternalServerError diff --git a/web/pgadmin/tools/sqleditor/utils/macros.py b/web/pgadmin/tools/sqleditor/utils/macros.py index 090e8cb76..b464a5987 100644 --- a/web/pgadmin/tools/sqleditor/utils/macros.py +++ b/web/pgadmin/tools/sqleditor/utils/macros.py @@ -10,7 +10,7 @@ """Handle Macros for SQL Editor.""" import simplejson as json -from flask_babelex import gettext +from flask_babel import gettext from flask import current_app, request from flask_security import login_required, current_user from pgadmin.utils.ajax import make_response as ajax_response,\ diff --git a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py index 9f03f7273..6810ec3f6 100644 --- a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py +++ b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py @@ -8,7 +8,7 @@ ########################################################################## """Register preferences for query tool""" -from flask_babelex import gettext +from flask_babel import gettext from pgadmin.utils.constants import PREF_LABEL_DISPLAY,\ PREF_LABEL_KEYBOARD_SHORTCUTS, PREF_LABEL_EXPLAIN, PREF_LABEL_OPTIONS,\ PREF_LABEL_EDITOR, PREF_LABEL_CSV_TXT, PREF_LABEL_RESULTS_GRID,\ diff --git a/web/pgadmin/tools/sqleditor/utils/start_running_query.py b/web/pgadmin/tools/sqleditor/utils/start_running_query.py index b0826de45..78a2d7132 100644 --- a/web/pgadmin/tools/sqleditor/utils/start_running_query.py +++ b/web/pgadmin/tools/sqleditor/utils/start_running_query.py @@ -13,7 +13,7 @@ import pickle import random from flask import Response -from flask_babelex import gettext +from flask_babel import gettext from config import PG_DEFAULT_DRIVER from pgadmin.tools.sqleditor.utils.apply_explain_plan_wrapper import \ diff --git a/web/pgadmin/tools/storage_manager/__init__.py b/web/pgadmin/tools/storage_manager/__init__.py index 32ced10f1..e80353c07 100644 --- a/web/pgadmin/tools/storage_manager/__init__.py +++ b/web/pgadmin/tools/storage_manager/__init__.py @@ -13,7 +13,7 @@ import simplejson as json import os from flask import url_for, Response, render_template, request, current_app -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import login_required, current_user from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc from pgadmin.utils import PgAdminModule, get_storage_directory, html, \ diff --git a/web/pgadmin/tools/user_management/__init__.py b/web/pgadmin/tools/user_management/__init__.py index bc057e413..b89eed113 100644 --- a/web/pgadmin/tools/user_management/__init__.py +++ b/web/pgadmin/tools/user_management/__init__.py @@ -14,7 +14,7 @@ import re from flask import render_template, request, \ url_for, Response, abort, current_app, session -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask_security import login_required, roles_required, current_user from flask_security.utils import encrypt_password from werkzeug.exceptions import InternalServerError diff --git a/web/pgadmin/utils/__init__.py b/web/pgadmin/utils/__init__.py index 11d742b97..2262eaf74 100644 --- a/web/pgadmin/utils/__init__.py +++ b/web/pgadmin/utils/__init__.py @@ -14,7 +14,7 @@ from collections import defaultdict from operator import attrgetter from flask import Blueprint, current_app -from flask_babelex import gettext +from flask_babel import gettext from flask_security import current_user, login_required from threading import Lock @@ -58,21 +58,21 @@ class PgAdminModule(Blueprint): # To be implemented by child classes pass - def register(self, app, options, first_registration=False): + def register(self, app, options): """ Override the default register function to automagically register sub-modules at once. """ - if first_registration: - self.submodules = list(app.find_submodules(self.import_name)) - super(PgAdminModule, self).register(app, options, first_registration) + self.submodules = list(app.find_submodules(self.import_name)) + + super(PgAdminModule, self).register(app, options) for module in self.submodules: - if first_registration: - module.parentmodules.append(self) - app.register_blueprint(module) - app.register_logout_hook(module) + module.parentmodules.append(self) + if app.blueprints.get(module.name) is None: + app.register_blueprint(module) + app.register_logout_hook(module) def get_own_stylesheets(self): """ diff --git a/web/pgadmin/utils/ajax.py b/web/pgadmin/utils/ajax.py index 3283eecb5..e84cbb801 100644 --- a/web/pgadmin/utils/ajax.py +++ b/web/pgadmin/utils/ajax.py @@ -14,7 +14,7 @@ import decimal import simplejson as json from flask import Response -from flask_babelex import gettext as _ +from flask_babel import gettext as _ class DataTypeJSONEncoder(json.JSONEncoder): diff --git a/web/pgadmin/utils/constants.py b/web/pgadmin/utils/constants.py index 96d46367b..48b702c4c 100644 --- a/web/pgadmin/utils/constants.py +++ b/web/pgadmin/utils/constants.py @@ -8,7 +8,7 @@ ########################################################################## """Application wide constants.""" -from flask_babelex import gettext +from flask_babel import gettext # Mimetypes MIMETYPE_APP_HTML = 'text/html' diff --git a/web/pgadmin/utils/csrf.py b/web/pgadmin/utils/csrf.py index 71ae82ea1..cff9ab96f 100644 --- a/web/pgadmin/utils/csrf.py +++ b/web/pgadmin/utils/csrf.py @@ -24,7 +24,8 @@ class _PGCSRFProtect(CSRFProtect): """ exempt_views = [ - 'flask.helpers.send_static_file', + 'flask.app.', + 'flask.scaffold.send_static_file', 'flask_security.views.login', 'flask_security.views.logout', 'pgadmin.tools.translations', diff --git a/web/pgadmin/utils/driver/psycopg2/connection.py b/web/pgadmin/utils/driver/psycopg2/connection.py index c36b94fb7..a2d1a873d 100644 --- a/web/pgadmin/utils/driver/psycopg2/connection.py +++ b/web/pgadmin/utils/driver/psycopg2/connection.py @@ -20,7 +20,7 @@ from collections import deque import psycopg2 import threading from flask import g, current_app, session -from flask_babelex import gettext +from flask_babel import gettext from flask_security import current_user from pgadmin.utils.crypto import decrypt, encrypt from psycopg2.extensions import encodings diff --git a/web/pgadmin/utils/driver/psycopg2/server_manager.py b/web/pgadmin/utils/driver/psycopg2/server_manager.py index 2a951b6ed..aa5868b1b 100644 --- a/web/pgadmin/utils/driver/psycopg2/server_manager.py +++ b/web/pgadmin/utils/driver/psycopg2/server_manager.py @@ -15,7 +15,7 @@ import datetime import config from flask import current_app, session from flask_security import current_user -from flask_babelex import gettext +from flask_babel import gettext from werkzeug.exceptions import InternalServerError from pgadmin.utils import get_complete_file_path diff --git a/web/pgadmin/utils/exception.py b/web/pgadmin/utils/exception.py index 24b3a5758..361488d91 100644 --- a/web/pgadmin/utils/exception.py +++ b/web/pgadmin/utils/exception.py @@ -9,7 +9,7 @@ from werkzeug.exceptions import HTTPException from werkzeug.http import HTTP_STATUS_CODES -from flask_babelex import gettext as _ +from flask_babel import gettext as _ from flask import request from pgadmin.utils.ajax import service_unavailable, gone, internal_server_error diff --git a/web/pgadmin/utils/preferences.py b/web/pgadmin/utils/preferences.py index 941c00140..146270396 100644 --- a/web/pgadmin/utils/preferences.py +++ b/web/pgadmin/utils/preferences.py @@ -17,7 +17,7 @@ import simplejson as json import dateutil.parser as dateutil_parser from flask import current_app -from flask_babelex import gettext +from flask_babel import gettext from flask_security import current_user from pgadmin.model import db, Preferences as PrefTable, \