public inbox for [email protected]  
help / color / mirror / Atom feed
From: Murtuza Zabuawala <[email protected]>
To: Dave Page <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: [pgAdmin4][RM#3154] Update modules to latest version
Date: Tue, 3 Apr 2018 20:20:20 +0530
Message-ID: <CAKKotZQRQpDdn2KbqcUFZ_UaMnruAOxxt7dzasn6C-ShODANvQ@mail.gmail.com> (raw)
In-Reply-To: <CA+OCxoxKZ=LeY+GWW0RMz-Fcd9KrR0jm1FWQoYexshaOe2Uiyw@mail.gmail.com>
References: <CAKKotZRD_epwD7wQE0pXPJJx_6di=xpsCzNEXiTm9LqYCSWFjQ@mail.gmail.com>
	<CA+OCxoxKZ=LeY+GWW0RMz-Fcd9KrR0jm1FWQoYexshaOe2Uiyw@mail.gmail.com>

Hi Dave,

Please find updated patches, there are two patches attached one is for the
story and another is for changes required as per new modules.


On Tue, Apr 3, 2018 at 6:27 PM, Dave Page <[email protected]> wrote:

> Hi
>
> On Fri, Mar 30, 2018 at 8:01 AM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> Hi,
>>
>> PFA patch to update the modules to latest version.
>>
>>
> - Why isn't jQuery updated to 3.3.1?
>
​Done​


> ​
>
>

> - Shouldn't pkg/pip/setup_pip.py be updated with changes to psycopg2 and
> pycrypto etc?
>
​Done​


>
>
>
>> We are not able to update some of the modules to latest version due to
>> dependancy on other modules, For example
>> - Python: Flask-Security has dependancy on flask-babelex which causes
>> conflict with flask_babel
>>
>
> Hmm, flask-babelex might be a better option anyway; in particular, it
> avoids loading catalogs with every request which seems desirable given the
> size of ours. On the other hand, it hasn't been updated so recently.
>
​I have removed flask-babel and used flask_babelex instead.​


>
>
>> - JS: Can't update to Bootstrap4 because Bootstrap Switch & Bootstrap Datetime
>> picker has dependancy on Bootstrap3.
>>
>
> OK.
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>


Attachments:

  [application/octet-stream] RM_3154_v2.diff (5.3K, 3-RM_3154_v2.diff)
  download | inline diff:
diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py
index 25a5ab0..c35ee28 100644
--- a/pkg/pip/setup_pip.py
+++ b/pkg/pip/setup_pip.py
@@ -87,10 +87,15 @@ setup(
     extras_require={
         # ...
         ":python_version<'2.7'": [
-            "ordereddict", "Flask-Script", "psycopg2==2.7.3.2"
+            "ordereddict", "Flask-Script",
+            "psycopg2==2.7.3.2", "pycrypto==2.6.1"
         ],
-        ":python_version<='2.7'": ["backports.csv", "importlib"],
-        ":python_version>='2.7'": ["Flask-HTMLmin", "psycopg2>=2.7.3.2"]
+        ":python_version<='2.7'": [
+            "backports.csv", "importlib"
+        ],
+        ":python_version>='2.7'": [
+            "Flask-HTMLmin", "psycopg2>=2.7.3.2", "pycryptodome"
+        ]
     },
 
     # Specify data files to be included. For Python 2.6 include them in MANIFEST.in
diff --git a/requirements.txt b/requirements.txt
index 6f17b1e..0c42ca3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,46 +1,39 @@
 # NOTE: Any requirements with environment specifiers must be explicitly added
 #       to pkg/pip/setup_pip.py (in extras_require), otherwise they will be
 #       ignored when building a PIP Wheel.
-Babel==2.3.4
-beautifulsoup4==4.4.1
-blinker==1.3
-click==6.6
-extras==0.0.3
-fixtures==2.0.0
-Flask==0.11.1
-Flask-Babel==0.11.1
-Flask-Gravatar==0.4.2
-Flask-HTMLmin==1.2; python_version >= '2.7'
+blinker==1.4
+extras==1.0.0
+fixtures==3.0.0
+Flask==0.12.2
+Flask-Gravatar==0.5.0
+Flask-HTMLmin==1.3.2; python_version >= '2.7'
 Flask-Login==0.3.2
 Flask-Mail==0.9.1
-Flask-Migrate==2.0.3
+Flask-Migrate==2.1.1
 Flask-Principal==0.4.0
-Flask-Security==1.7.5
-Flask-SQLAlchemy==2.1
-Flask-WTF==0.12
-html5lib==1.0b3
+Flask-Security==3.0.0
+Flask-SQLAlchemy==2.3.2
+Flask-WTF==0.14.2
+html5lib==1.0.1
 importlib==1.0.3; python_version <= '2.7'
-itsdangerous==0.24
-Jinja2==2.7.3
 linecache2==1.0.0
-MarkupSafe==0.23
 ordereddict; python_version < '2.7'
-passlib==1.6.2
-pbr==1.9.1
-psycopg2>=2.7.3.2; python_version >= '2.7'
+passlib==1.7.1
+pbr==3.1.1
+psycopg2>=2.7.4; python_version >= '2.7'
 psycopg2==2.7.3.2; python_version < '2.7'
-pycrypto==2.6.1
-pyrsistent==0.11.13
-python-dateutil==2.5.0
-python-mimeparse==1.5.1
-pytz==2014.10
-simplejson==3.6.5
-six>=1.9.0
+pycrypto==2.6.1; python_version < '2.7'
+pycryptodome; python_version >= '2.7'
+pyrsistent==0.14.2
+python-dateutil==2.7.1
+python-mimeparse==1.6.0
+pytz==2018.3
+simplejson==3.13.2
+six>=1.11.0
 speaklater==1.3
-SQLAlchemy==1.0.14
-sqlparse==0.1.19
-Werkzeug==0.9.6
-WTForms==2.0.2
-backports.csv==1.0.4; python_version <= '2.7'
-Flask-Paranoid==0.1.0
+SQLAlchemy==1.2.5
+sqlparse==0.2.4
+WTForms==2.1
+backports.csv==1.0.5; python_version <= '2.7'
+Flask-Paranoid==0.2.0
 Flask-Script==2.0.5; python_version < '2.7'
diff --git a/web/package.json b/web/package.json
index f8d8760..dd0de9c 100644
--- a/web/package.json
+++ b/web/package.json
@@ -1,7 +1,7 @@
 {
   "license": "PostgreSQL",
   "devDependencies": {
-    "axios-mock-adapter": "^1.11.0",
+    "axios-mock-adapter": "^1.14.1",
     "babel-core": "~6.24.0",
     "babel-loader": "~7.1.2",
     "babel-preset-airbnb": "^2.4.0",
@@ -40,21 +40,21 @@
   "dependencies": {
     "acitree": "git+https://github.com/imsurinder90/jquery-aciTree.git#rc.7",
     "alertifyjs": "^1.10.0",
-    "axios": "^0.16.1",
+    "axios": "^0.18.0",
     "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
     "babel-polyfill": "^6.23.0",
     "babel-preset-es2015-without-strict": "~0.0.4",
     "babelify": "~7.3.0",
-    "backbone": "1.1.2",
+    "backbone": "1.3.3",
     "backform": "^0.2.0",
     "backgrid": "^0.3.8",
     "backgrid-filter": "^0.3.7",
     "backgrid-select-all": "^0.3.5",
     "backgrid-sizeable-columns": "^0.1.1",
-    "bignumber.js": "^4.0.2",
+    "bignumber.js": "^6.0.0",
     "bootstrap": "^3.3.7",
     "bootstrap-datepicker": "^1.7.0",
-    "bootstrap-switch": "3.3.2",
+    "bootstrap-switch": "3.3.4",
     "bowser": "1.6.1",
     "browserify": "~14.1.0",
     "codemirror": "^5.29.0",
@@ -69,8 +69,8 @@
     "immutability-helper": "^2.2.0",
     "imports-loader": "^0.7.1",
     "ip-address": "^5.8.9",
-    "jquery": "1.11.2",
-    "jquery-contextmenu": "^2.5.0",
+    "jquery": "^3.3.1",
+    "jquery-contextmenu": "^2.6.4",
     "jquery-ui": "^1.12.1",
     "moment": "^2.20.1",
     "mousetrap": "^1.6.1",
@@ -79,9 +79,9 @@
     "react-dom": "^16.2.0",
     "react-split-pane": "^0.1.63",
     "requirejs": "~2.3.3",
-    "select2": "^4.0.3",
+    "select2": "^4.0.6-rc.1",
     "shim-loader": "^1.0.1",
-    "slickgrid": "git+https://github.com/6pac/SlickGrid.git#2.3.7",
+    "slickgrid": "git+https://github.com/6pac/SlickGrid.git#2.3.16",
     "snapsvg": "^0.5.1",
     "spectrum-colorpicker": "^1.8.0",
     "sprintf-js": "^1.1.1",
diff --git a/web/regression/requirements.txt b/web/regression/requirements.txt
index fa61d2e..2e68c25 100644
--- a/web/regression/requirements.txt
+++ b/web/regression/requirements.txt
@@ -7,11 +7,11 @@
 # Add all the development dependencies here
 ###########################################
 pycodestyle==2.3.1
-pyperclip~=1.5.27
+pyperclip~=1.6.0
 selenium==3.3.3; python_version < '2.7'
-selenium==3.7.0; python_version >= '2.7'
+selenium==3.11.0; python_version >= '2.7'
 testscenarios==0.5.0
-testtools==2.0.0
+testtools==2.3.0
 traceback2==1.4.0
 unittest2==1.1.0
 mock===2.0.0; python_version < '3.3'


  [application/octet-stream] changes_required_with_RM_3154.diff (55.1K, 4-changes_required_with_RM_3154.diff)
  download | inline diff:
diff --git a/web/pgadmin/__init__.py b/web/pgadmin/__init__.py
index ed3f601..5caf604 100644
--- a/web/pgadmin/__init__.py
+++ b/web/pgadmin/__init__.py
@@ -16,7 +16,7 @@ from collections import defaultdict
 from importlib import import_module
 
 from flask import Flask, abort, request, current_app, session, url_for
-from flask_babel import Babel, gettext
+from flask_babelex import Babel, gettext
 from flask_login import user_logged_in, user_logged_out
 from flask_mail import Mail
 from flask_paranoid import Paranoid
diff --git a/web/pgadmin/about/__init__.py b/web/pgadmin/about/__init__.py
index 6d1e0b2..0e23f69 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
-from flask_babel import gettext
+from flask_babelex 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/browser/__init__.py b/web/pgadmin/browser/__init__.py
index 57e8510..514b186 100644
--- a/web/pgadmin/browser/__init__.py
+++ b/web/pgadmin/browser/__init__.py
@@ -18,7 +18,7 @@ from socket import error as SOCKETErrorException
 import six
 from flask import current_app, render_template, url_for, make_response, \
     flash, Response, request, after_this_request, redirect
-from flask_babel import gettext
+from flask_babelex 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 52f0fe3..83bf284 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_babel import gettext
+from flask_babelex import gettext
 from pgadmin.browser import BrowserPluginModule
 from pgadmin.browser.utils import PGChildModule
 from pgadmin.utils import PgAdminModule
diff --git a/web/pgadmin/browser/server_groups/__init__.py b/web/pgadmin/browser/server_groups/__init__.py
index 633d9ee..07632a7 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
-from flask_babel import gettext
+from flask_babelex 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 41eb429..01c72e5 100644
--- a/web/pgadmin/browser/server_groups/servers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/__init__.py
@@ -12,7 +12,7 @@ import re
 import pgadmin.browser.server_groups as sg
 from flask import render_template, request, make_response, jsonify, \
     current_app, url_for
-from flask_babel import gettext
+from flask_babelex 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
diff --git a/web/pgadmin/browser/server_groups/servers/databases/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/__init__.py
index dc465b0..f3471ef 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_babel import gettext as _
+from flask_babelex import gettext as _
 
 import pgadmin.browser.server_groups.servers as servers
 from config import PG_DEFAULT_DRIVER
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 2ea178e..9ecf064 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_babel import gettext
+from flask_babelex 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 1fa8b26..0ad0687 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_babel import gettext
+from flask_babelex 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 abef0d2..1f85a3b 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_babel import gettext
+from flask_babelex 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 c93a2fb..2fb553f 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_babel import gettext
+from flask_babelex 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 ee1325a..ad2501c 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_babel import gettext
+from flask_babelex 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_mapping/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mapping/__init__.py
index 398351d..6455b36 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mapping/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mapping/__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_babel import gettext
+from flask_babelex 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 90acae3..3b77659 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_babel import gettext
+from flask_babelex 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/schemas/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py
index 9a43b4d..e9ab634 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_babel import gettext
+from flask_babelex 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/catalog_objects/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py
index 6f2f352..26fed81 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_babel import gettext
+from flask_babelex 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 e1b513f..c8219ae 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_babel import gettext
+from flask_babelex 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 947a053..ff89245 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_babel import gettext
+from flask_babelex 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 73ad23e..17ae9ba 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_babel import gettext
+from flask_babelex 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 0d584c6..8c656c7 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
@@ -13,7 +13,7 @@ from functools import wraps
 
 import simplejson as json
 from flask import render_template, request, jsonify
-from flask_babel import gettext
+from flask_babelex 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 a98ada7..32cb8cb 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_babel import gettext
+from flask_babelex 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 9c0db1d..ed1e936 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_babel import gettext as _
+from flask_babelex 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 b8796a9..7f0dc8e 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_babel import gettext as _
+from flask_babelex 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_parser/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py
index 39bf243..88a5756 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__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_babel import gettext as _
+from flask_babelex 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 7aa05e9..bf87f69 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_babel import gettext
+from flask_babelex 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 506964b..d8e7a68 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
@@ -19,7 +19,7 @@ from functools import wraps
 import pgadmin.browser.server_groups.servers.databases as databases
 from flask import render_template, make_response, request, jsonify, \
     current_app
-from flask_babel import gettext
+from flask_babelex import gettext
 from pgadmin.browser.server_groups.servers.databases.schemas.utils import \
     SchemaChildModule, DataTypeReader
 from pgadmin.browser.server_groups.servers.databases.utils import \
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 c8a9a5a..9aa5c9b 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_babel import gettext as _
+from flask_babelex 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 3b7e0be..b1b7521 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_babel import gettext
+from flask_babelex 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 8758123..6389919 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_babel import gettext
+from flask_babelex 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 f49c2d7..a41dd6d 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 @@ import simplejson as json
 from functools import wraps
 import pgadmin.browser.server_groups.servers.databases as database
 from flask import render_template, make_response, request, jsonify
-from flask_babel import gettext as _
+from flask_babelex import gettext as _
 from pgadmin.browser.server_groups.servers.databases.schemas.utils \
     import SchemaChildModule
 from pgadmin.browser.server_groups.servers.utils import parse_priv_from_db, \
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 94062de..e57ae57 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_babel import gettext
+from flask_babelex 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 1160cfb..d49ca20 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
-from flask_babel import gettext
+from flask_babelex 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/column/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py
index 2b1ac92..83d30df 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__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_babel import gettext
+from flask_babelex 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/constraints/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/__init__.py
index 3b96c9b..4e34b43 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
@@ -13,7 +13,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_babel import gettext
+from flask_babelex 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 b993863..0de9b74 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_babel import gettext as _
+from flask_babelex 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/exclusion_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py
index c35ce6e..74d1693 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_babel import gettext as _
+from flask_babelex 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/foreign_key/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py
index ff37791..36f4eb0 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, make_response, request, jsonify
-from flask_babel import gettext as _
+from flask_babelex 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/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
index 33c2f00..cdeef40 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_babel import gettext as _
+from flask_babelex 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/indexes/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py
index 96fa1f3..44a020c 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
-from flask_babel import gettext
+from flask_babelex 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/partitions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py
index 99e3529..df19573 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
@@ -13,7 +13,7 @@ import re
 import simplejson as json
 import pgadmin.browser.server_groups.servers.databases.schemas as schema
 from flask import render_template, request
-from flask_babel import gettext
+from flask_babelex import gettext
 from pgadmin.browser.server_groups.servers.databases.schemas.utils \
     import DataTypeReader, VacuumSettings
 from pgadmin.utils.ajax import internal_server_error, \
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 8d31fde..ed03cc4 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
@@ -14,7 +14,7 @@ from functools import wraps
 
 import pgadmin.browser.server_groups.servers.databases.schemas as schemas
 from flask import render_template, make_response, request, jsonify
-from flask_babel import gettext
+from flask_babelex 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 bfc8c47..5958474 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
-from flask_babel import gettext
+from flask_babelex 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/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py
index 45403d1..732ff55 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
@@ -13,7 +13,7 @@ import re
 from functools import wraps
 import simplejson as json
 from flask import render_template, jsonify, request
-from flask_babel import gettext
+from flask_babelex import gettext
 from pgadmin.utils.ajax import make_json_response, internal_server_error, \
     make_response as ajax_response
 from pgadmin.browser.server_groups.servers.databases.schemas.utils \
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 2395439..f142c1a 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_babel import gettext
+from flask_babelex 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/views/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py
index 15b9559..4787d76 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
@@ -13,7 +13,7 @@ from functools import wraps
 
 import simplejson as json
 from flask import render_template, request, jsonify, current_app
-from flask_babel import gettext
+from flask_babelex 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/gpdb.py b/web/pgadmin/browser/server_groups/servers/gpdb.py
index 260e314..83ca4d8 100644
--- a/web/pgadmin/browser/server_groups/servers/gpdb.py
+++ b/web/pgadmin/browser/server_groups/servers/gpdb.py
@@ -7,7 +7,7 @@
 #
 ##########################################################################
 
-from flask_babel import gettext
+from flask_babelex import gettext
 from pgadmin.browser.server_groups.servers.types import ServerType
 
 
diff --git a/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py b/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py
index 29c2b88..bdfca2d 100644
--- a/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py
@@ -12,7 +12,7 @@ from functools import wraps
 import json
 
 from flask import render_template, request, jsonify
-from flask_babel import gettext as _
+from flask_babelex 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 80aa3e1..2fdf100 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 json
 from functools import wraps
 
 from flask import render_template, request, jsonify
-from flask_babel import gettext
+from flask_babelex 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 c12f524..cb39713 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 json
 from functools import wraps
 
 from flask import render_template, request, jsonify
-from flask_babel import gettext
+from flask_babelex 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 0fc456e..a6c596e 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_babel import gettext
+from flask_babelex 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 a9b622d..8a531a8 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_babel import gettext
+from flask_babelex 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 ed86476..63d1bf7 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_babel import gettext as _
+from flask_babelex import gettext as _
 import dateutil.parser as dateutil_parser
 from pgadmin.browser.collection import CollectionNodeModule
 from pgadmin.browser.utils import PGChildNodeView
diff --git a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py
index 941c645..c54ffa9 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_babel import gettext
+from flask_babelex 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 83ae029..d0bea4f 100644
--- a/web/pgadmin/browser/server_groups/servers/types.py
+++ b/web/pgadmin/browser/server_groups/servers/types.py
@@ -11,7 +11,7 @@ import os
 import sys
 
 from flask import render_template
-from flask_babel import gettext as _
+from flask_babelex import gettext as _
 from pgadmin.utils.preferences import Preferences
 
 import config
diff --git a/web/pgadmin/browser/utils.py b/web/pgadmin/browser/utils.py
index df6758d..00a72dd 100644
--- a/web/pgadmin/browser/utils.py
+++ b/web/pgadmin/browser/utils.py
@@ -14,7 +14,7 @@ from abc import abstractmethod
 import flask
 from flask import render_template, current_app
 from flask.views import View, MethodViewType, with_metaclass
-from flask_babel import gettext
+from flask_babelex import gettext
 
 from config import PG_DEFAULT_DRIVER
 from pgadmin.utils.ajax import make_json_response, precondition_required
diff --git a/web/pgadmin/dashboard/__init__.py b/web/pgadmin/dashboard/__init__.py
index 7666cb5..91162f7 100644
--- a/web/pgadmin/dashboard/__init__.py
+++ b/web/pgadmin/dashboard/__init__.py
@@ -10,7 +10,7 @@
 """A blueprint module implementing the dashboard frame."""
 from functools import wraps
 from flask import render_template, url_for, Response, g
-from flask_babel import gettext
+from flask_babelex import gettext
 from flask_security import login_required
 from pgadmin.utils import PgAdminModule
 from pgadmin.utils.ajax import make_response as ajax_response,\
diff --git a/web/pgadmin/help/__init__.py b/web/pgadmin/help/__init__.py
index e3b0194..dbdb421 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_babel import gettext
+from flask_babelex 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 19e1828..da28413 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_babel import gettext
+from flask_babelex import gettext
 from pgadmin.utils import PgAdminModule
 from pgadmin.utils.preferences import Preferences
 
diff --git a/web/pgadmin/misc/bgprocess/processes.py b/web/pgadmin/misc/bgprocess/processes.py
index 9737f46..44b3362 100644
--- a/web/pgadmin/misc/bgprocess/processes.py
+++ b/web/pgadmin/misc/bgprocess/processes.py
@@ -25,7 +25,7 @@ from pgadmin.utils import IS_PY2, u, file_quote, fs_encoding, \
 import pytz
 from dateutil import parser
 from flask import current_app
-from flask_babel import gettext as _
+from flask_babelex 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 b9be488..32afb5e 100644
--- a/web/pgadmin/misc/file_manager/__init__.py
+++ b/web/pgadmin/misc/file_manager/__init__.py
@@ -22,7 +22,7 @@ import codecs
 import simplejson as json
 from flask import render_template, Response, session, request as req, \
     url_for, current_app
-from flask_babel import gettext
+from flask_babelex 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 6358841..f27c527 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_babel import gettext
+from flask_babelex 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 a2a84c6..269bfdf 100644
--- a/web/pgadmin/settings/__init__.py
+++ b/web/pgadmin/settings/__init__.py
@@ -12,7 +12,7 @@
 import traceback
 
 from flask import Response, request, render_template, url_for
-from flask_babel import gettext
+from flask_babelex 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 200d16e..2c32417 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_babel import get_translations, gettext
+from flask_babelex import Domain, gettext
 
 from pgadmin.utils import PgAdminModule
 from pgadmin.utils.ajax import bad_request
@@ -64,9 +64,11 @@ def translations():
     """Return a js file that will handle translations so Flask interpolation
     can be isolated
     """
+    domain = Domain()
+    translations = domain.get_translations()
     template = render_template(
         "js/translations.js",
-        translations=get_translations()._catalog
+        translations=translations._catalog
     )
     return Response(
         response=template,
diff --git a/web/pgadmin/tools/backup/__init__.py b/web/pgadmin/tools/backup/__init__.py
index 8936e53..8f0589b 100644
--- a/web/pgadmin/tools/backup/__init__.py
+++ b/web/pgadmin/tools/backup/__init__.py
@@ -15,7 +15,7 @@ import os
 
 from flask import render_template, request, current_app, \
     url_for, Response
-from flask_babel import gettext as _
+from flask_babelex 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/debugger/__init__.py b/web/pgadmin/tools/debugger/__init__.py
index ca6e6d4..c0e89f5 100644
--- a/web/pgadmin/tools/debugger/__init__.py
+++ b/web/pgadmin/tools/debugger/__init__.py
@@ -16,7 +16,7 @@ import random
 
 from flask import url_for, Response, render_template, request, session, \
     current_app
-from flask_babel import gettext
+from flask_babelex import gettext
 from flask_security import login_required
 from werkzeug.useragents import UserAgent
 
diff --git a/web/pgadmin/tools/grant_wizard/__init__.py b/web/pgadmin/tools/grant_wizard/__init__.py
index c092d49..e695d7b 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_babel import gettext
+from flask_babelex import gettext
 from flask_security import login_required
 from pgadmin.browser.server_groups.servers.utils import parse_priv_to_db
 from pgadmin.utils import PgAdminModule
diff --git a/web/pgadmin/tools/import_export/__init__.py b/web/pgadmin/tools/import_export/__init__.py
index 9690475..9160a8e 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_babel import gettext as _
+from flask_babelex 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 088922b..5a596a7 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_babel import gettext as _
+from flask_babelex import gettext as _
 from flask_security import login_required
 from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc
 from pgadmin.utils import PgAdminModule, html
diff --git a/web/pgadmin/tools/restore/__init__.py b/web/pgadmin/tools/restore/__init__.py
index db1d522..f6f92b9 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_babel import gettext as _
+from flask_babelex 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/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py
index 6f5d5b7..f8d7d97 100644
--- a/web/pgadmin/tools/sqleditor/__init__.py
+++ b/web/pgadmin/tools/sqleditor/__init__.py
@@ -16,7 +16,7 @@ import random
 import simplejson as json
 from flask import Response, url_for, render_template, session, request, \
     current_app
-from flask_babel import gettext
+from flask_babelex import gettext
 from flask_security import login_required
 
 from config import PG_DEFAULT_DRIVER, ON_DEMAND_RECORD_COUNT
diff --git a/web/pgadmin/tools/sqleditor/command.py b/web/pgadmin/tools/sqleditor/command.py
index 8cc96e0..7ec03c5 100644
--- a/web/pgadmin/tools/sqleditor/command.py
+++ b/web/pgadmin/tools/sqleditor/command.py
@@ -16,7 +16,7 @@ except ImportError:
     from ordereddict import OrderedDict
 import six
 from flask import render_template
-from flask_babel import gettext
+from flask_babelex import gettext
 from pgadmin.utils.ajax import forbidden
 from pgadmin.utils.driver import get_driver
 
diff --git a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py
index 6050a0b..7c43d9b 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_babel import gettext
+from flask_babelex import gettext
 from pgadmin.utils import SHORTCUT_FIELDS as shortcut_fields, \
     ACCESSKEY_FIELDS as accesskey_fields
 from pgadmin.utils.preferences import Preferences
diff --git a/web/pgadmin/tools/sqleditor/utils/start_running_query.py b/web/pgadmin/tools/sqleditor/utils/start_running_query.py
index 3b3c502..6c09067 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_babel import gettext
+from flask_babelex import gettext
 
 from config import PG_DEFAULT_DRIVER
 from pgadmin.tools.sqleditor.utils.apply_explain_plan_wrapper import \
diff --git a/web/pgadmin/tools/user_management/__init__.py b/web/pgadmin/tools/user_management/__init__.py
index 89e36c7..ac6e2f4 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
-from flask_babel import gettext as _
+from flask_babelex import gettext as _
 from flask_security import login_required, roles_required, current_user
 from flask_security.utils import encrypt_password
 
diff --git a/web/pgadmin/utils/__init__.py b/web/pgadmin/utils/__init__.py
index c87a045..54a599c 100644
--- a/web/pgadmin/utils/__init__.py
+++ b/web/pgadmin/utils/__init__.py
@@ -13,7 +13,7 @@ from collections import defaultdict
 from operator import attrgetter
 
 from flask import Blueprint, current_app
-from flask_babel import gettext
+from flask_babelex import gettext
 
 from .paths import get_storage_directory
 from .preferences import Preferences
diff --git a/web/pgadmin/utils/ajax.py b/web/pgadmin/utils/ajax.py
index 182e490..9b44aa3 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_babel import gettext as _
+from flask_babelex import gettext as _
 
 
 class DataTypeJSONEncoder(json.JSONEncoder):
diff --git a/web/pgadmin/utils/crypto.py b/web/pgadmin/utils/crypto.py
index 07833d4..def3d68 100644
--- a/web/pgadmin/utils/crypto.py
+++ b/web/pgadmin/utils/crypto.py
@@ -28,11 +28,11 @@ def encrypt(plaintext, key):
     """
 
     iv = Random.new().read(AES.block_size)
-    cipher = AES.new(pad(key), AES.MODE_CFB, iv)
+    key = pad(key).encode('utf-8')
+    cipher = AES.new(key, AES.MODE_CFB, iv)
     # If user has entered non ascii password (Python2)
     # we have to encode it first
-    if hasattr(str, 'decode'):
-        plaintext = plaintext.encode('utf-8')
+    plaintext = plaintext.encode('utf-8')
     encrypted = base64.b64encode(iv + cipher.encrypt(plaintext))
 
     return encrypted
@@ -51,32 +51,33 @@ def decrypt(ciphertext, key):
 
     ciphertext = base64.b64decode(ciphertext)
     iv = ciphertext[:AES.block_size]
-    cipher = AES.new(pad(key), AES.MODE_CFB, iv)
+    key = pad(key).encode('utf-8')
+    cipher = AES.new(key, AES.MODE_CFB, iv)
     decrypted = cipher.decrypt(ciphertext[AES.block_size:])
 
     return decrypted
 
 
-def pad(str):
+def pad(key):
     """Add padding to the key."""
 
     global padding_string
-    str_len = len(str)
+    str_len = len(key)
 
     # Key must be maximum 32 bytes long, so take first 32 bytes
     if str_len > 32:
-        return str[:32]
+        return key[:32]
 
     # If key size id 16, 24 or 32 bytes then padding not require
     if str_len == 16 or str_len == 24 or str_len == 32:
-        return str
+        return key
 
     # Convert bytes to string (python3)
     if not hasattr(str, 'decode'):
         padding_string = padding_string.decode()
 
     # Add padding to make key 32 bytes long
-    return str + ((32 - len(str) % 32) * padding_string)
+    return key + ((32 - str_len % 32) * padding_string)
 
 
 def pqencryptpassword(password, user):
diff --git a/web/pgadmin/utils/driver/psycopg2/__init__.py b/web/pgadmin/utils/driver/psycopg2/__init__.py
index 95a49fb..5fefdee 100644
--- a/web/pgadmin/utils/driver/psycopg2/__init__.py
+++ b/web/pgadmin/utils/driver/psycopg2/__init__.py
@@ -15,7 +15,7 @@ object.
 """
 import datetime
 from flask import session
-from flask_babel import gettext
+from flask_babelex import gettext
 import psycopg2
 from psycopg2.extensions import adapt
 
diff --git a/web/pgadmin/utils/driver/psycopg2/connection.py b/web/pgadmin/utils/driver/psycopg2/connection.py
index 49dcf98..8a05ba8 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 simplejson as json
 import psycopg2
 from flask import g, current_app
-from flask_babel import gettext
+from flask_babelex import gettext
 from flask_security import current_user
 from pgadmin.utils.crypto import decrypt
 from psycopg2.extensions import adapt, encodings
diff --git a/web/pgadmin/utils/driver/psycopg2/server_manager.py b/web/pgadmin/utils/driver/psycopg2/server_manager.py
index f288a94..3066b1a 100644
--- a/web/pgadmin/utils/driver/psycopg2/server_manager.py
+++ b/web/pgadmin/utils/driver/psycopg2/server_manager.py
@@ -14,7 +14,7 @@ import os
 import datetime
 from flask import current_app, session
 from flask_security import current_user
-from flask_babel import gettext
+from flask_babelex import gettext
 
 from pgadmin.utils.crypto import decrypt
 from .connection import Connection
diff --git a/web/pgadmin/utils/driver/registry.py b/web/pgadmin/utils/driver/registry.py
index 8da6c0a..348ad7f 100644
--- a/web/pgadmin/utils/driver/registry.py
+++ b/web/pgadmin/utils/driver/registry.py
@@ -9,7 +9,7 @@
 
 from abc import ABCMeta
 
-from flask_babel import gettext
+from flask_babelex import gettext
 
 
 def _decorate_cls_name(module_name):
diff --git a/web/pgadmin/utils/exception.py b/web/pgadmin/utils/exception.py
index f010d35..5fe2e92 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_babel import gettext as _
+from flask_babelex import gettext as _
 from flask import request
 
 from pgadmin.utils.ajax import service_unavailable
diff --git a/web/pgadmin/utils/preferences.py b/web/pgadmin/utils/preferences.py
index c1fadd7..6e8e00e 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_babel import gettext
+from flask_babelex import gettext
 from flask_security import current_user
 
 from pgadmin.model import db, Preferences as PrefTable, \


view thread (14+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: [pgAdmin4][RM#3154] Update modules to latest version
  In-Reply-To: <CAKKotZQRQpDdn2KbqcUFZ_UaMnruAOxxt7dzasn6C-ShODANvQ@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox