public inbox for [email protected]  
help / color / mirror / Atom feed
[pgAdmin4][RM#3154] Update modules to latest version
14+ messages / 4 participants
[nested] [flat]

* [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-03-30 07:01  Murtuza Zabuawala <[email protected]>
  0 siblings, 2 replies; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-03-30 07:01 UTC (permalink / raw)
  To: pgadmin-hackers

Hi,

PFA patch to update the modules to latest version.

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
- JS: Can't update to Bootstrap4 because Bootstrap Switch & Bootstrap Datetime
picker has dependancy on Bootstrap3.


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Attachments:

  [application/octet-stream] RM_3154_updated.diff (6.2K, 3-RM_3154_updated.diff)
  download | inline diff:
diff --git a/requirements.txt b/requirements.txt
index 6f17b1e..b73f8f1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,46 +1,40 @@
 # 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-Babel==0.11.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-SQLAlchemy==2.3.2
 Flask-WTF==0.12
-html5lib==1.0b3
+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 3ce86a1..27a71aa 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",
@@ -70,7 +70,7 @@
     "imports-loader": "^0.7.1",
     "ip-address": "^5.8.9",
     "jquery": "1.11.2",
-    "jquery-contextmenu": "^2.5.0",
+    "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",
     "underscore": "^1.8.3",
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/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'


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-03-30 14:29  Victoria Henry <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  1 sibling, 1 reply; 14+ messages in thread

From: Victoria Henry @ 2018-03-30 14:29 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: pgadmin-hackers

Hi Murtuza,

I ran this patch through the pipelines and all tests passed.
Everything looks good.

Sinerely,

Victoria

On Fri, Mar 30, 2018 at 3:01 AM, Murtuza Zabuawala <
[email protected]> wrote:

> Hi,
>
> PFA patch to update the modules to latest version.
>
> 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
> - JS: Can't update to Bootstrap4 because Bootstrap Switch & Bootstrap Datetime
> picker has dependancy on Bootstrap3.
>
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-03-31 06:53  Murtuza Zabuawala <[email protected]>
  parent: Victoria Henry <[email protected]>
  0 siblings, 0 replies; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-03-31 06:53 UTC (permalink / raw)
  To: Victoria Henry <[email protected]>; +Cc: pgadmin-hackers

Thanks for reviewing Victoria.

On Fri, Mar 30, 2018 at 7:59 PM, Victoria Henry <[email protected]> wrote:

> Hi Murtuza,
>
> I ran this patch through the pipelines and all tests passed.
> Everything looks good.
>
> Sinerely,
>
> Victoria
>
> On Fri, Mar 30, 2018 at 3:01 AM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> Hi,
>>
>> PFA patch to update the modules to latest version.
>>
>> 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
>> - JS: Can't update to Bootstrap4 because Bootstrap Switch & Bootstrap Datetime
>> picker has dependancy on Bootstrap3.
>>
>>
>> --
>> Regards,
>> Murtuza Zabuawala
>> EnterpriseDB: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>>
>


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-03 12:57  Dave Page <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  1 sibling, 1 reply; 14+ messages in thread

From: Dave Page @ 2018-04-03 12:57 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: pgadmin-hackers

Hi

On Fri, Mar 30, 2018 at 8:01 AM, Murtuza Zabuawala <
[email protected]> wrote:

> Hi,
>
> PFA patch to update the modules to latest version.
>
>
- Why isn't jQuery updated to 3.3.1?

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



> 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.


> - 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


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-03 14:50  Murtuza Zabuawala <[email protected]>
  parent: Dave Page <[email protected]>
  0 siblings, 1 reply; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-04-03 14:50 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: pgadmin-hackers

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, \


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-03 15:20  Murtuza Zabuawala <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  0 siblings, 1 reply; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-04-03 15:20 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: pgadmin-hackers

Please hold on my previous patch.

We can't use latest jQuery version as SlickGrid has dependancy on older
version.
I'll send updated patch again.

On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <
[email protected]> wrote:

> 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 <
>> [email protected]> 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
>>
>
>


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-03 15:49  Murtuza Zabuawala <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  0 siblings, 2 replies; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-04-03 15:49 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: pgadmin-hackers

​Hi Dave,

Reverted back jQuery version to 1.x because of SlickGrid dependancy.
Please find updated patch.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <
[email protected]> wrote:

> Please hold on my previous patch.
>
> We can't use latest jQuery version as SlickGrid has dependancy on older
> version.
> I'll send updated patch again.
>
> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> 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 <
>>> [email protected]> 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] changes_required_with_RM_3154.diff (55.1K, 3-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, \


  [application/octet-stream] RM_3154_v3.diff (12.1K, 4-RM_3154_v3.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..7310fe2 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": "^1.11.2",
+    "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'
diff --git a/web/yarn.lock b/web/yarn.lock
index da5e5f6..94060ca 100644
--- a/web/yarn.lock
+++ b/web/yarn.lock
@@ -355,9 +355,9 @@ aws4@^1.2.1, aws4@^1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
 
-axios-mock-adapter@^1.11.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.11.0.tgz#96e4bb2702cf6900f2ae5f9bdbef6e5dc86669e2"
+axios-mock-adapter@^1.14.1:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.14.1.tgz#c8e0ee1134955267538d566d7ae068be20467158"
   dependencies:
     deep-equal "^1.0.1"
 
@@ -367,11 +367,11 @@ axios@^0.15.3:
   dependencies:
     follow-redirects "1.0.0"
 
-axios@^0.16.1:
-  version "0.16.2"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-0.16.2.tgz#ba4f92f17167dfbab40983785454b9ac149c3c6d"
+axios@^0.18.0:
+  version "0.18.0"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102"
   dependencies:
-    follow-redirects "^1.2.3"
+    follow-redirects "^1.3.0"
     is-buffer "^1.1.5"
 
 babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
@@ -1058,12 +1058,18 @@ babylon@^6.11.0, babylon@^6.18.0:
   version "6.18.0"
   resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
 
[email protected], "[email protected] || 1.2.3 || ~1.3.2":
+"[email protected] || 1.2.3 || ~1.3.2":
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.1.2.tgz#c2c04c66bf87268fb82c177acebeff7d37ba6f2d"
   dependencies:
     underscore ">=1.5.0"
 
[email protected]:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.3.3.tgz#4cc80ea7cb1631ac474889ce40f2f8bc683b2999"
+  dependencies:
+    underscore ">=1.8.3"
+
 backbone@~1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.2.3.tgz#c22cfd07fc86ebbeae61d18929ed115e999d65b9"
@@ -1146,9 +1152,9 @@ bignumber.js@^2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"
 
-bignumber.js@^4.0.2:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1"
+bignumber.js@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-6.0.0.tgz#bbfa047644609a5af093e9cbd83b0461fa3f6002"
 
 bin-build@^2.0.0:
   version "2.2.0"
@@ -1285,11 +1291,9 @@ bootstrap-datepicker@^1.7.0:
   dependencies:
     jquery ">=1.7.1 <4.0.0"
 
[email protected]:
-  version "3.3.2"
-  resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.3.2.tgz#79ddb49fadc308fb731e257f95957af48996eea7"
-  dependencies:
-    jquery ">=1.9.0"
[email protected]:
+  version "3.3.4"
+  resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz#70e0aeb2a877c0dc766991de108e2170fc29a2ff"
 
 bootstrap@^3.3, bootstrap@^3.3.7:
   version "3.3.7"
@@ -2235,7 +2239,7 @@ dateformat@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
 
-debug@2, [email protected], debug@^2.1.1, debug@^2.2.0, debug@^2.4.5, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6:
+debug@2, [email protected], debug@^2.1.1, debug@^2.2.0, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   dependencies:
@@ -3260,11 +3264,11 @@ [email protected]:
   dependencies:
     debug "^2.2.0"
 
-follow-redirects@^1.2.3:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.2.4.tgz#355e8f4d16876b43f577b0d5ce2668b9723214ea"
+follow-redirects@^1.3.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa"
   dependencies:
-    debug "^2.4.5"
+    debug "^3.1.0"
 
 [email protected]:
   version "4.6.3"
@@ -4558,9 +4562,9 @@ [email protected]:
   dependencies:
     jquery ">=1.7.0"
 
-jquery-contextmenu@^2.5.0:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/jquery-contextmenu/-/jquery-contextmenu-2.6.2.tgz#83c7ba45c67c814cc4095b19551fd12e5d71da7e"
+jquery-contextmenu@^2.6.4:
+  version "2.6.4"
+  resolved "https://registry.yarnpkg.com/jquery-contextmenu/-/jquery-contextmenu-2.6.4.tgz#f48e56c436b1becb6935e5dd0def02e39d4e129e"
 
 jquery-mousewheel@~3.1.13:
   version "3.1.13"
@@ -4574,10 +4578,14 @@ [email protected]:
   version "1.11.1"
   resolved "https://registry.yarnpkg.com/jquery/-/jquery-1.11.1.tgz#b6ec928590112ebed69e1e49cbfd0025ccd60ddb"
 
[email protected], jquery@>=1.7.0, "jquery@>=1.7.1 <4.0.0", jquery@>=1.8.0, jquery@>=1.9.0, "jquery@^1.8.3 || ^2.0 || ^3.0":
+jquery@>=1.7.0, "jquery@>=1.7.1 <4.0.0", jquery@>=1.8.0, "jquery@^1.8.3 || ^2.0 || ^3.0":
   version "1.11.2"
   resolved "https://registry.yarnpkg.com/jquery/-/jquery-1.11.2.tgz#30ab26857211c37caa83da0f6903155fe49bb72d"
 
+jquery@^1.11.2:
+  version "1.12.4"
+  resolved "https://registry.yarnpkg.com/jquery/-/jquery-1.12.4.tgz#01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c"
+
 js-base64@^2.1.8, js-base64@^2.1.9:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf"
@@ -7115,9 +7123,9 @@ seek-bzip@^1.0.3:
   dependencies:
     commander "~2.8.1"
 
-select2@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.3.tgz#207733fe91eacb9cb1a13f12463401f472449e0f"
+select2@^4.0.6-rc.1:
+  version "4.0.6-rc.1"
+  resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.6-rc.1.tgz#aa6c3038a7f0f2e91ffade38f0a21c15e1813276"
   dependencies:
     almond "~0.3.1"
     jquery-mousewheel "~3.1.13"
@@ -7259,9 +7267,9 @@ slice-ansi@^1.0.0:
   dependencies:
     is-fullwidth-code-point "^2.0.0"
 
-"slickgrid@git+https://github.com/6pac/SlickGrid.git#2.3.7":
-  version "2.3.4"
-  resolved "git+https://github.com/6pac/SlickGrid.git#8ff68140bd5be132d2913640b4b1f2512219d075"
+"slickgrid@git+https://github.com/6pac/SlickGrid.git#2.3.16":
+  version "2.3.16"
+  resolved "git+https://github.com/6pac/SlickGrid.git#4f8c6f498d0b82391fdf382beb8ef114ed7408e7"
   dependencies:
     jquery ">=1.8.0"
     jquery-ui ">=1.8.0"
@@ -7958,7 +7966,7 @@ underscore.string@^3.3.4:
     sprintf-js "^1.0.3"
     util-deprecate "^1.0.2"
 
-underscore@>=1.5.0, underscore@>=1.7.0, underscore@^1.8.0, underscore@^1.8.3:
+underscore@>=1.5.0, underscore@>=1.7.0, underscore@>=1.8.3, underscore@^1.8.0, underscore@^1.8.3:
   version "1.8.3"
   resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
 


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-03 20:09  Joao De Almeida Pereira <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  1 sibling, 1 reply; 14+ messages in thread

From: Joao De Almeida Pereira @ 2018-04-03 20:09 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers

Hi Murtuza,

The patches look good and they pass all tests in CI.
One think that we realized was the SlickGrid as a npm package now:
https://www.npmjs.com/package/slickgrid
Also Slickgrid comes packaged with jquery 3.1 not sure if it is fully
supported or not......

Thanks
Victoria & Joao

On Tue, Apr 3, 2018 at 11:50 AM Murtuza Zabuawala <
[email protected]> wrote:

> ​Hi Dave,
>
> Reverted back jQuery version to 1.x because of SlickGrid dependancy.
> Please find updated patch.
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
> On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <
> [email protected]> wrote:
>
>> Please hold on my previous patch.
>>
>> We can't use latest jQuery version as SlickGrid has dependancy on older
>> version.
>> I'll send updated patch again.
>>
>> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <
>> [email protected]> wrote:
>>
>>> 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 <
>>>> [email protected]> 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
>>>>
>>>
>>>
>>
>


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-04 07:24  Murtuza Zabuawala <[email protected]>
  parent: Joao De Almeida Pereira <[email protected]>
  0 siblings, 1 reply; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-04-04 07:24 UTC (permalink / raw)
  To: Joao De Almeida Pereira <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers

Hi Joao,

Yes it bundles latest version but I doubt that is not using it, If we
upgrade the jQuery to 3.3.1 then it's breaking the SlickGrid.
I have tried that and I started getting jQuery related errors when trying
to run query tool or when running jasmine tests.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Wed, Apr 4, 2018 at 1:39 AM, Joao De Almeida Pereira <
[email protected]> wrote:

> Hi Murtuza,
>
> The patches look good and they pass all tests in CI.
> One think that we realized was the SlickGrid as a npm package now:
> https://www.npmjs.com/package/slickgrid
> Also Slickgrid comes packaged with jquery 3.1 not sure if it is fully
> supported or not......
>
> Thanks
> Victoria & Joao
>
> On Tue, Apr 3, 2018 at 11:50 AM Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> ​Hi Dave,
>>
>> Reverted back jQuery version to 1.x because of SlickGrid dependancy.
>> Please find updated patch.
>>
>> --
>> Regards,
>> Murtuza Zabuawala
>> EnterpriseDB: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>>
>> On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <murtuza.zabuawala@
>> enterprisedb.com> wrote:
>>
>>> Please hold on my previous patch.
>>>
>>> We can't use latest jQuery version as SlickGrid has dependancy on older
>>> version.
>>> I'll send updated patch again.
>>>
>>> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <murtuza.zabuawala@
>>> enterprisedb.com> wrote:
>>>
>>>> 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
>>>>>
>>>>
>>>>
>>>
>>


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-04 09:47  Dave Page <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  1 sibling, 0 replies; 14+ messages in thread

From: Dave Page @ 2018-04-04 09:47 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: pgadmin-hackers

Thanks, patch applied.



On Tue, Apr 3, 2018 at 4:49 PM, Murtuza Zabuawala <
[email protected]> wrote:

> ​Hi Dave,
>
> Reverted back jQuery version to 1.x because of SlickGrid dependancy.
> Please find updated patch.
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
> On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> Please hold on my previous patch.
>>
>> We can't use latest jQuery version as SlickGrid has dependancy on older
>> version.
>> I'll send updated patch again.
>>
>> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <
>> [email protected]> wrote:
>>
>>> 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 <
>>>> [email protected]> 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
>>>>
>>>
>>>
>>
>


-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-04 09:49  Dave Page <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  0 siblings, 1 reply; 14+ messages in thread

From: Dave Page @ 2018-04-04 09:49 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: Joao De Almeida Pereira <[email protected]>; pgadmin-hackers

On Wed, Apr 4, 2018 at 8:24 AM, Murtuza Zabuawala <
[email protected]> wrote:

> Hi Joao,
>
> Yes it bundles latest version but I doubt that is not using it, If we
> upgrade the jQuery to 3.3.1 then it's breaking the SlickGrid.
> I have tried that and I started getting jQuery related errors when trying
> to run query tool or when running jasmine tests.
>

Can you spend some time trying to figure it out please? We need to get on
to 3.x as older versions are no longer receiving updates which could pose a
security risk.


>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
> On Wed, Apr 4, 2018 at 1:39 AM, Joao De Almeida Pereira <
> [email protected]> wrote:
>
>> Hi Murtuza,
>>
>> The patches look good and they pass all tests in CI.
>> One think that we realized was the SlickGrid as a npm package now:
>> https://www.npmjs.com/package/slickgrid
>> Also Slickgrid comes packaged with jquery 3.1 not sure if it is fully
>> supported or not......
>>
>> Thanks
>> Victoria & Joao
>>
>> On Tue, Apr 3, 2018 at 11:50 AM Murtuza Zabuawala <
>> [email protected]> wrote:
>>
>>> ​Hi Dave,
>>>
>>> Reverted back jQuery version to 1.x because of SlickGrid dependancy.
>>> Please find updated patch.
>>>
>>> --
>>> Regards,
>>> Murtuza Zabuawala
>>> EnterpriseDB: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>>
>>> On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <
>>> [email protected]> wrote:
>>>
>>>> Please hold on my previous patch.
>>>>
>>>> We can't use latest jQuery version as SlickGrid has dependancy on older
>>>> version.
>>>> I'll send updated patch again.
>>>>
>>>> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <
>>>> [email protected]> wrote:
>>>>
>>>>> 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 <
>>>>>> [email protected]> 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
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>


-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-04 09:50  Murtuza Zabuawala <[email protected]>
  parent: Dave Page <[email protected]>
  0 siblings, 1 reply; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-04-04 09:50 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: Joao De Almeida Pereira <[email protected]>; pgadmin-hackers

On Wed, Apr 4, 2018 at 3:19 PM, Dave Page <[email protected]> wrote:

>
>
> On Wed, Apr 4, 2018 at 8:24 AM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> Hi Joao,
>>
>> Yes it bundles latest version but I doubt that is not using it, If we
>> upgrade the jQuery to 3.3.1 then it's breaking the SlickGrid.
>> I have tried that and I started getting jQuery related errors when trying
>> to run query tool or when running jasmine tests.
>>
>
> Can you spend some time trying to figure it out please? We need to get on
> to 3.x as older versions are no longer receiving updates which could pose a
> security risk.
>
​Sure Dave.​


>
>
>>
>> --
>> Regards,
>> Murtuza Zabuawala
>> EnterpriseDB: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>>
>> On Wed, Apr 4, 2018 at 1:39 AM, Joao De Almeida Pereira <
>> [email protected]> wrote:
>>
>>> Hi Murtuza,
>>>
>>> The patches look good and they pass all tests in CI.
>>> One think that we realized was the SlickGrid as a npm package now:
>>> https://www.npmjs.com/package/slickgrid
>>> Also Slickgrid comes packaged with jquery 3.1 not sure if it is fully
>>> supported or not......
>>>
>>> Thanks
>>> Victoria & Joao
>>>
>>> On Tue, Apr 3, 2018 at 11:50 AM Murtuza Zabuawala <
>>> [email protected]> wrote:
>>>
>>>> ​Hi Dave,
>>>>
>>>> Reverted back jQuery version to 1.x because of SlickGrid dependancy.
>>>> Please find updated patch.
>>>>
>>>> --
>>>> Regards,
>>>> Murtuza Zabuawala
>>>> EnterpriseDB: http://www.enterprisedb.com
>>>> The Enterprise PostgreSQL Company
>>>>
>>>>
>>>> On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <
>>>> [email protected]> wrote:
>>>>
>>>>> Please hold on my previous patch.
>>>>>
>>>>> We can't use latest jQuery version as SlickGrid has dependancy on
>>>>> older version.
>>>>> I'll send updated patch again.
>>>>>
>>>>> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> 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 <
>>>>>>> [email protected]> 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
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-06 07:52  Murtuza Zabuawala <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  0 siblings, 1 reply; 14+ messages in thread

From: Murtuza Zabuawala @ 2018-04-06 07:52 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: Joao De Almeida Pereira <[email protected]>; pgadmin-hackers

Hi Dave,

I checked and found that the issue was in wcDocker which was causing
problem while opening query tool,
I have logged an issue on github:
https://github.com/WebCabin/wcDocker/issues/124

Query tool, Debugger etc are working properly when open in new Browser Tab
and not in Panel.

I'm also able to fix the issue which I was facing while running Jasmine
test by correctting the path for *jquery.event.drag* library from
jquery.event.drag-2.2 to jquery.event.drag-2.3.0.

Let's wait for author's reply on the issue.


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Wed, Apr 4, 2018 at 3:20 PM, Murtuza Zabuawala <
[email protected]> wrote:

> On Wed, Apr 4, 2018 at 3:19 PM, Dave Page <[email protected]> wrote:
>
>>
>>
>> On Wed, Apr 4, 2018 at 8:24 AM, Murtuza Zabuawala <
>> [email protected]> wrote:
>>
>>> Hi Joao,
>>>
>>> Yes it bundles latest version but I doubt that is not using it, If we
>>> upgrade the jQuery to 3.3.1 then it's breaking the SlickGrid.
>>> I have tried that and I started getting jQuery related errors when
>>> trying to run query tool or when running jasmine tests.
>>>
>>
>> Can you spend some time trying to figure it out please? We need to get on
>> to 3.x as older versions are no longer receiving updates which could pose a
>> security risk.
>>
> ​Sure Dave.​
>
>
>>
>>
>>>
>>> --
>>> Regards,
>>> Murtuza Zabuawala
>>> EnterpriseDB: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>>
>>> On Wed, Apr 4, 2018 at 1:39 AM, Joao De Almeida Pereira <
>>> [email protected]> wrote:
>>>
>>>> Hi Murtuza,
>>>>
>>>> The patches look good and they pass all tests in CI.
>>>> One think that we realized was the SlickGrid as a npm package now:
>>>> https://www.npmjs.com/package/slickgrid
>>>> Also Slickgrid comes packaged with jquery 3.1 not sure if it is fully
>>>> supported or not......
>>>>
>>>> Thanks
>>>> Victoria & Joao
>>>>
>>>> On Tue, Apr 3, 2018 at 11:50 AM Murtuza Zabuawala <
>>>> [email protected]> wrote:
>>>>
>>>>> ​Hi Dave,
>>>>>
>>>>> Reverted back jQuery version to 1.x because of SlickGrid dependancy.
>>>>> Please find updated patch.
>>>>>
>>>>> --
>>>>> Regards,
>>>>> Murtuza Zabuawala
>>>>> EnterpriseDB: http://www.enterprisedb.com
>>>>> The Enterprise PostgreSQL Company
>>>>>
>>>>>
>>>>> On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Please hold on my previous patch.
>>>>>>
>>>>>> We can't use latest jQuery version as SlickGrid has dependancy on
>>>>>> older version.
>>>>>> I'll send updated patch again.
>>>>>>
>>>>>> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> 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 <
>>>>>>>> [email protected]> 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
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>


^ permalink  raw  reply  [nested|flat] 14+ messages in thread

* Re: [pgAdmin4][RM#3154] Update modules to latest version
@ 2018-04-06 07:55  Dave Page <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  0 siblings, 0 replies; 14+ messages in thread

From: Dave Page @ 2018-04-06 07:55 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: Joao De Almeida Pereira <[email protected]>; pgadmin-hackers

On Fri, Apr 6, 2018 at 8:52 AM, Murtuza Zabuawala <
[email protected]> wrote:

> Hi Dave,
>
> I checked and found that the issue was in wcDocker which was causing
> problem while opening query tool,
> I have logged an issue on github: https://github.com/
> WebCabin/wcDocker/issues/124
>
> Query tool, Debugger etc are working properly when open in new Browser Tab
> and not in Panel.
>
> I'm also able to fix the issue which I was facing while running Jasmine
> test by correctting the path for *jquery.event.drag* library from
> jquery.event.drag-2.2 to jquery.event.drag-2.3.0.
>
> Let's wait for author's reply on the issue.
>

Great, thanks.


>
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
> On Wed, Apr 4, 2018 at 3:20 PM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> On Wed, Apr 4, 2018 at 3:19 PM, Dave Page <[email protected]> wrote:
>>
>>>
>>>
>>> On Wed, Apr 4, 2018 at 8:24 AM, Murtuza Zabuawala <
>>> [email protected]> wrote:
>>>
>>>> Hi Joao,
>>>>
>>>> Yes it bundles latest version but I doubt that is not using it, If we
>>>> upgrade the jQuery to 3.3.1 then it's breaking the SlickGrid.
>>>> I have tried that and I started getting jQuery related errors when
>>>> trying to run query tool or when running jasmine tests.
>>>>
>>>
>>> Can you spend some time trying to figure it out please? We need to get
>>> on to 3.x as older versions are no longer receiving updates which could
>>> pose a security risk.
>>>
>> ​Sure Dave.​
>>
>>
>>>
>>>
>>>>
>>>> --
>>>> Regards,
>>>> Murtuza Zabuawala
>>>> EnterpriseDB: http://www.enterprisedb.com
>>>> The Enterprise PostgreSQL Company
>>>>
>>>>
>>>> On Wed, Apr 4, 2018 at 1:39 AM, Joao De Almeida Pereira <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Murtuza,
>>>>>
>>>>> The patches look good and they pass all tests in CI.
>>>>> One think that we realized was the SlickGrid as a npm package now:
>>>>> https://www.npmjs.com/package/slickgrid
>>>>> Also Slickgrid comes packaged with jquery 3.1 not sure if it is fully
>>>>> supported or not......
>>>>>
>>>>> Thanks
>>>>> Victoria & Joao
>>>>>
>>>>> On Tue, Apr 3, 2018 at 11:50 AM Murtuza Zabuawala <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> ​Hi Dave,
>>>>>>
>>>>>> Reverted back jQuery version to 1.x because of SlickGrid dependancy.
>>>>>> Please find updated patch.
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Murtuza Zabuawala
>>>>>> EnterpriseDB: http://www.enterprisedb.com
>>>>>> The Enterprise PostgreSQL Company
>>>>>>
>>>>>>
>>>>>> On Tue, Apr 3, 2018 at 8:50 PM, Murtuza Zabuawala <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Please hold on my previous patch.
>>>>>>>
>>>>>>> We can't use latest jQuery version as SlickGrid has dependancy on
>>>>>>> older version.
>>>>>>> I'll send updated patch again.
>>>>>>>
>>>>>>> On Tue, Apr 3, 2018 at 8:20 PM, Murtuza Zabuawala <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> 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 <
>>>>>>>>> [email protected]> 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
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>>
>>> --
>>> Dave Page
>>> Blog: http://pgsnake.blogspot.com
>>> Twitter: @pgsnake
>>>
>>> EnterpriseDB UK: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>
>>
>


-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


^ permalink  raw  reply  [nested|flat] 14+ messages in thread


end of thread, other threads:[~2018-04-06 07:55 UTC | newest]

Thread overview: 14+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2018-03-30 07:01 [pgAdmin4][RM#3154] Update modules to latest version Murtuza Zabuawala <[email protected]>
2018-03-30 14:29 ` Victoria Henry <[email protected]>
2018-03-31 06:53   ` Murtuza Zabuawala <[email protected]>
2018-04-03 12:57 ` Dave Page <[email protected]>
2018-04-03 14:50   ` Murtuza Zabuawala <[email protected]>
2018-04-03 15:20     ` Murtuza Zabuawala <[email protected]>
2018-04-03 15:49       ` Murtuza Zabuawala <[email protected]>
2018-04-03 20:09         ` Joao De Almeida Pereira <[email protected]>
2018-04-04 07:24           ` Murtuza Zabuawala <[email protected]>
2018-04-04 09:49             ` Dave Page <[email protected]>
2018-04-04 09:50               ` Murtuza Zabuawala <[email protected]>
2018-04-06 07:52                 ` Murtuza Zabuawala <[email protected]>
2018-04-06 07:55                   ` Dave Page <[email protected]>
2018-04-04 09:47         ` Dave Page <[email protected]>

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