diff --git a/apps/accounts/api/automations/base.py b/apps/accounts/api/automations/base.py
index 7d5db0ac8..d5e588c04 100644
--- a/apps/accounts/api/automations/base.py
+++ b/apps/accounts/api/automations/base.py
@@ -1,5 +1,5 @@
from django.shortcuts import get_object_or_404
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import status, mixins, viewsets
from rest_framework.response import Response
diff --git a/apps/accounts/const/account.py b/apps/accounts/const/account.py
index 9a3541001..44caa2889 100644
--- a/apps/accounts/const/account.py
+++ b/apps/accounts/const/account.py
@@ -1,5 +1,5 @@
from django.db.models import TextChoices
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class SecretType(TextChoices):
diff --git a/apps/accounts/const/automation.py b/apps/accounts/const/automation.py
index 791527078..cb39703e0 100644
--- a/apps/accounts/const/automation.py
+++ b/apps/accounts/const/automation.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets.const import Connectivity
from common.db.fields import TreeChoices
diff --git a/apps/accounts/models/automations/backup_account.py b/apps/accounts/models/automations/backup_account.py
index fba3b3149..c72e0daef 100644
--- a/apps/accounts/models/automations/backup_account.py
+++ b/apps/accounts/models/automations/backup_account.py
@@ -6,7 +6,7 @@ import uuid
from celery import current_task
from django.db import models
from django.db.models import F
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.const.choices import Trigger
from common.db.encoder import ModelJSONFieldEncoder
diff --git a/apps/accounts/models/automations/change_secret.py b/apps/accounts/models/automations/change_secret.py
index 2226040a2..a2a1d42a2 100644
--- a/apps/accounts/models/automations/change_secret.py
+++ b/apps/accounts/models/automations/change_secret.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from accounts.const import (
AutomationTypes, SecretType, SecretStrategy, SSHKeyStrategy
diff --git a/apps/accounts/models/automations/gather_account.py b/apps/accounts/models/automations/gather_account.py
index dd9b5c862..9ea5dcc3b 100644
--- a/apps/accounts/models/automations/gather_account.py
+++ b/apps/accounts/models/automations/gather_account.py
@@ -1,6 +1,6 @@
from django.db import models
from django.db.models import Q
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from accounts.const import AutomationTypes, Source
from accounts.models import Account
diff --git a/apps/accounts/models/automations/push_account.py b/apps/accounts/models/automations/push_account.py
index d3a14411f..fe628f4cb 100644
--- a/apps/accounts/models/automations/push_account.py
+++ b/apps/accounts/models/automations/push_account.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from accounts.const import AutomationTypes
from accounts.models import Account
diff --git a/apps/accounts/models/automations/verify_account.py b/apps/accounts/models/automations/verify_account.py
index 03ec4f8c9..ae9beb9a6 100644
--- a/apps/accounts/models/automations/verify_account.py
+++ b/apps/accounts/models/automations/verify_account.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from accounts.const import AutomationTypes
from .base import AccountBaseAutomation
diff --git a/apps/accounts/models/base.py b/apps/accounts/models/base.py
index e4bd780ac..3f9f70883 100644
--- a/apps/accounts/models/base.py
+++ b/apps/accounts/models/base.py
@@ -6,7 +6,7 @@ from hashlib import md5
import sshpubkeys
from django.conf import settings
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from accounts.const import SecretType
from common.db import fields
diff --git a/apps/accounts/notifications.py b/apps/accounts/notifications.py
index 3c4897df1..190eb8fb6 100644
--- a/apps/accounts/notifications.py
+++ b/apps/accounts/notifications.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.tasks import send_mail_attachment_async
from users.models import User
diff --git a/apps/accounts/serializers/account/account.py b/apps/accounts/serializers/account/account.py
index cc1952a1c..54035e4be 100644
--- a/apps/accounts/serializers/account/account.py
+++ b/apps/accounts/serializers/account/account.py
@@ -3,7 +3,7 @@ from copy import deepcopy
from django.db import IntegrityError
from django.db.models import Q
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from rest_framework.generics import get_object_or_404
from rest_framework.validators import UniqueTogetherValidator
diff --git a/apps/accounts/serializers/account/backup.py b/apps/accounts/serializers/account/backup.py
index 712bdd095..b6ec22203 100644
--- a/apps/accounts/serializers/account/backup.py
+++ b/apps/accounts/serializers/account/backup.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.models import AccountBackupAutomation, AccountBackupExecution
diff --git a/apps/accounts/serializers/account/base.py b/apps/accounts/serializers/account/base.py
index 2f9660bd5..e2a837b03 100644
--- a/apps/accounts/serializers/account/base.py
+++ b/apps/accounts/serializers/account/base.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.const import SecretType
diff --git a/apps/accounts/serializers/account/gathered_account.py b/apps/accounts/serializers/account/gathered_account.py
index b382fda4c..a36bddc5e 100644
--- a/apps/accounts/serializers/account/gathered_account.py
+++ b/apps/accounts/serializers/account/gathered_account.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from accounts.models import GatheredAccount
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
diff --git a/apps/accounts/serializers/account/template.py b/apps/accounts/serializers/account/template.py
index ffe8c7564..9642c36b0 100644
--- a/apps/accounts/serializers/account/template.py
+++ b/apps/accounts/serializers/account/template.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.models import AccountTemplate, Account
diff --git a/apps/accounts/serializers/automations/base.py b/apps/accounts/serializers/automations/base.py
index 8e7f11f23..c2cd21be3 100644
--- a/apps/accounts/serializers/automations/base.py
+++ b/apps/accounts/serializers/automations/base.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.models import AutomationExecution
diff --git a/apps/accounts/serializers/automations/change_secret.py b/apps/accounts/serializers/automations/change_secret.py
index 3c6e11205..da8a1585c 100644
--- a/apps/accounts/serializers/automations/change_secret.py
+++ b/apps/accounts/serializers/automations/change_secret.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.const import (
diff --git a/apps/accounts/tasks/push_account.py b/apps/accounts/tasks/push_account.py
index 623481be9..0e0608999 100644
--- a/apps/accounts/tasks/push_account.py
+++ b/apps/accounts/tasks/push_account.py
@@ -1,5 +1,5 @@
from celery import shared_task
-from django.utils.translation import gettext_noop, ugettext_lazy as _
+from django.utils.translation import gettext_noop, gettext_lazy as _
from accounts.const import AutomationTypes
from accounts.tasks.common import quickstart_automation_by_snapshot
diff --git a/apps/accounts/utils.py b/apps/accounts/utils.py
index ef0d61fe1..1a24008fc 100644
--- a/apps/accounts/utils.py
+++ b/apps/accounts/utils.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.const import (
diff --git a/apps/acls/apps.py b/apps/acls/apps.py
index 0a93fe495..291ce855e 100644
--- a/apps/acls/apps.py
+++ b/apps/acls/apps.py
@@ -1,5 +1,5 @@
from django.apps import AppConfig
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class AclsConfig(AppConfig):
diff --git a/apps/acls/models/command_acl.py b/apps/acls/models/command_acl.py
index 9029142f2..4fbfd0829 100644
--- a/apps/acls/models/command_acl.py
+++ b/apps/acls/models/command_acl.py
@@ -3,7 +3,7 @@
import re
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.utils import lazyproperty, get_logger
from orgs.mixins.models import JMSOrgBaseModel
diff --git a/apps/acls/models/login_acl.py b/apps/acls/models/login_acl.py
index 7191fe4b6..6f2e21b34 100644
--- a/apps/acls/models/login_acl.py
+++ b/apps/acls/models/login_acl.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.utils import get_request_ip, get_ip_city
from common.utils.timezone import local_now_display
diff --git a/apps/acls/models/login_asset_acl.py b/apps/acls/models/login_asset_acl.py
index 5d2293a18..7669152b4 100644
--- a/apps/acls/models/login_asset_acl.py
+++ b/apps/acls/models/login_asset_acl.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from .base import UserAssetAccountBaseACL
diff --git a/apps/acls/serializers/base.py b/apps/acls/serializers/base.py
index 94c4d9fa1..4c2d80bfc 100644
--- a/apps/acls/serializers/base.py
+++ b/apps/acls/serializers/base.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from acls.models.base import BaseACL
diff --git a/apps/acls/serializers/command_acl.py b/apps/acls/serializers/command_acl.py
index 672164012..dde953277 100644
--- a/apps/acls/serializers/command_acl.py
+++ b/apps/acls/serializers/command_acl.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from acls.models import CommandGroup, CommandFilterACL
diff --git a/apps/acls/serializers/login_acl.py b/apps/acls/serializers/login_acl.py
index c86424986..737e5269d 100644
--- a/apps/acls/serializers/login_acl.py
+++ b/apps/acls/serializers/login_acl.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from common.serializers import MethodSerializer
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
diff --git a/apps/acls/serializers/rules/rules.py b/apps/acls/serializers/rules/rules.py
index 85b865cd6..4c88d0ac7 100644
--- a/apps/acls/serializers/rules/rules.py
+++ b/apps/acls/serializers/rules/rules.py
@@ -1,7 +1,7 @@
# coding: utf-8
#
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
-from django.utils.translation import ugettext_lazy as _
from common.utils import get_logger
from common.utils.ip import is_ip_address, is_ip_network, is_ip_segment
diff --git a/apps/applications/apps.py b/apps/applications/apps.py
index a025a0517..c672bf36e 100644
--- a/apps/applications/apps.py
+++ b/apps/applications/apps.py
@@ -1,7 +1,7 @@
from __future__ import unicode_literals
-from django.utils.translation import ugettext_lazy as _
from django.apps import AppConfig
+from django.utils.translation import gettext_lazy as _
class ApplicationsConfig(AppConfig):
@@ -9,5 +9,4 @@ class ApplicationsConfig(AppConfig):
verbose_name = _('Applications')
def ready(self):
- from . import signal_handlers
super().ready()
diff --git a/apps/applications/migrations/0006_application.py b/apps/applications/migrations/0006_application.py
index fbe629873..0333b860d 100644
--- a/apps/applications/migrations/0006_application.py
+++ b/apps/applications/migrations/0006_application.py
@@ -127,7 +127,7 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=128, verbose_name='Name')),
('category', models.CharField(choices=[('db', 'Database'), ('remote_app', 'Remote app'), ('cloud', 'Cloud')], max_length=16, verbose_name='Category')),
('type', models.CharField(choices=[('mysql', 'MySQL'), ('oracle', 'Oracle'), ('postgresql', 'PostgreSQL'), ('mariadb', 'MariaDB'), ('chrome', 'Chrome'), ('mysql_workbench', 'MySQL Workbench'), ('vmware_client', 'vSphere Client'), ('custom', 'Custom'), ('k8s', 'Kubernetes')], max_length=16, verbose_name='Type')),
- ('attrs', django_mysql.models.JSONField(default=dict)),
+ ('attrs', models.JSONField(default=dict)),
('comment', models.TextField(blank=True, default='', max_length=128, verbose_name='Comment')),
('domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='applications', to='assets.Domain', verbose_name='Domain')),
],
diff --git a/apps/applications/models.py b/apps/applications/models.py
index 60efc8aab..c13ddc092 100644
--- a/apps/applications/models.py
+++ b/apps/applications/models.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.db.models import JMSBaseModel
from orgs.mixins.models import OrgModelMixin
diff --git a/apps/assets/api/domain.py b/apps/assets/api/domain.py
index 40d676d78..86097247c 100644
--- a/apps/assets/api/domain.py
+++ b/apps/assets/api/domain.py
@@ -1,5 +1,5 @@
# ~*~ coding: utf-8 ~*~
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from django.views.generic.detail import SingleObjectMixin
from rest_framework.serializers import ValidationError
from rest_framework.views import APIView, Response
@@ -29,6 +29,7 @@ class DomainViewSet(OrgBulkModelViewSet):
def get_queryset(self):
return super().get_queryset().prefetch_related('assets')
+
class GatewayViewSet(HostViewSet):
perm_model = Gateway
filterset_fields = ("domain__name", "name", "domain")
diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py
index 47ac0b4e6..30c533179 100644
--- a/apps/assets/api/node.py
+++ b/apps/assets/api/node.py
@@ -3,7 +3,7 @@ from collections import namedtuple, defaultdict
from functools import partial
from django.db.models.signals import m2m_changed
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.generics import get_object_or_404
diff --git a/apps/assets/apps.py b/apps/assets/apps.py
index a91b10ffc..2966894d6 100644
--- a/apps/assets/apps.py
+++ b/apps/assets/apps.py
@@ -1,7 +1,7 @@
from __future__ import unicode_literals
-from django.utils.translation import ugettext_lazy as _
from django.apps import AppConfig
+from django.utils.translation import gettext_lazy as _
class AssetsConfig(AppConfig):
@@ -13,6 +13,3 @@ class AssetsConfig(AppConfig):
def ready(self):
super().ready()
- from . import signal_handlers
- from . import tasks
-
diff --git a/apps/assets/automations/ping_gateway/manager.py b/apps/assets/automations/ping_gateway/manager.py
index b3f243fdb..c272570d3 100644
--- a/apps/assets/automations/ping_gateway/manager.py
+++ b/apps/assets/automations/ping_gateway/manager.py
@@ -2,7 +2,7 @@ import socket
import paramiko
from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets.const import AutomationTypes, Connectivity
from assets.models import Gateway
diff --git a/apps/assets/const/automation.py b/apps/assets/const/automation.py
index 831b11b66..4a2054db1 100644
--- a/apps/assets/const/automation.py
+++ b/apps/assets/const/automation.py
@@ -1,5 +1,5 @@
from django.db.models import TextChoices
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class Connectivity(TextChoices):
diff --git a/apps/assets/exceptions.py b/apps/assets/exceptions.py
index ad22b6339..07e4de0a2 100644
--- a/apps/assets/exceptions.py
+++ b/apps/assets/exceptions.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import status
from common.exceptions import JMSException
diff --git a/apps/assets/models/asset/common.py b/apps/assets/models/asset/common.py
index 7a564f787..b7425b870 100644
--- a/apps/assets/models/asset/common.py
+++ b/apps/assets/models/asset/common.py
@@ -8,7 +8,7 @@ from collections import defaultdict
from django.db import models
from django.db.models import Q
from django.forms import model_to_dict
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets import const
from common.db.fields import EncryptMixin
diff --git a/apps/assets/models/asset/host.py b/apps/assets/models/asset/host.py
index 69187c828..a424cfcec 100644
--- a/apps/assets/models/asset/host.py
+++ b/apps/assets/models/asset/host.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from .common import Asset
diff --git a/apps/assets/models/automations/base.py b/apps/assets/models/automations/base.py
index ba9c3ffcb..27e5ed74a 100644
--- a/apps/assets/models/automations/base.py
+++ b/apps/assets/models/automations/base.py
@@ -2,7 +2,7 @@ import uuid
from celery import current_task
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets.models.asset import Asset
from assets.models.node import Node
diff --git a/apps/assets/models/automations/gather_facts.py b/apps/assets/models/automations/gather_facts.py
index cf11ea41b..5e179cd83 100644
--- a/apps/assets/models/automations/gather_facts.py
+++ b/apps/assets/models/automations/gather_facts.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets.const import AutomationTypes
from .base import AssetBaseAutomation
diff --git a/apps/assets/models/automations/ping.py b/apps/assets/models/automations/ping.py
index a8df4e7c8..98aee079e 100644
--- a/apps/assets/models/automations/ping.py
+++ b/apps/assets/models/automations/ping.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets.const import AutomationTypes
from .base import AssetBaseAutomation
diff --git a/apps/assets/models/base.py b/apps/assets/models/base.py
index 8f5ed713f..c4866c22b 100644
--- a/apps/assets/models/base.py
+++ b/apps/assets/models/base.py
@@ -3,7 +3,7 @@
from django.db import models
from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets.const import Connectivity
from common.utils import (
diff --git a/apps/assets/models/cmd_filter.py b/apps/assets/models/cmd_filter.py
index dd0d7b0d1..ec6f1be3e 100644
--- a/apps/assets/models/cmd_filter.py
+++ b/apps/assets/models/cmd_filter.py
@@ -4,7 +4,7 @@ import uuid
from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.utils import get_logger
from orgs.mixins.models import OrgModelMixin
diff --git a/apps/assets/models/domain.py b/apps/assets/models/domain.py
index 6dd5e3c4f..587f41d7c 100644
--- a/apps/assets/models/domain.py
+++ b/apps/assets/models/domain.py
@@ -3,7 +3,7 @@
import random
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.utils import get_logger
from orgs.mixins.models import JMSOrgBaseModel
diff --git a/apps/assets/models/favorite_asset.py b/apps/assets/models/favorite_asset.py
index 92d52fe7f..052551402 100644
--- a/apps/assets/models/favorite_asset.py
+++ b/apps/assets/models/favorite_asset.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
#
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.db.models import JMSBaseModel
diff --git a/apps/assets/models/gateway.py b/apps/assets/models/gateway.py
index 0fc6626df..c474da26d 100644
--- a/apps/assets/models/gateway.py
+++ b/apps/assets/models/gateway.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from assets.const import GATEWAY_NAME
from assets.models.platform import Platform
diff --git a/apps/assets/models/group.py b/apps/assets/models/group.py
index 02db7f41f..ad3545a1e 100644
--- a/apps/assets/models/group.py
+++ b/apps/assets/models/group.py
@@ -7,7 +7,7 @@ from __future__ import unicode_literals
import uuid
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
__all__ = ['AssetGroup']
diff --git a/apps/assets/models/label.py b/apps/assets/models/label.py
index 3aff63385..5dbd50361 100644
--- a/apps/assets/models/label.py
+++ b/apps/assets/models/label.py
@@ -2,7 +2,7 @@
#
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.utils import lazyproperty
from orgs.mixins.models import JMSOrgBaseModel
diff --git a/apps/assets/models/node.py b/apps/assets/models/node.py
index 94ff9aba5..139295f69 100644
--- a/apps/assets/models/node.py
+++ b/apps/assets/models/node.py
@@ -10,8 +10,7 @@ from django.core.cache import cache
from django.db import models, transaction
from django.db.models import Q, Manager
from django.db.transaction import atomic
-from django.utils.translation import ugettext
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _, gettext
from common.db.models import output_as_string
from common.utils import get_logger
@@ -163,7 +162,7 @@ class FamilyMixin:
return key
def get_next_child_preset_name(self):
- name = ugettext("New node")
+ name = gettext("New node")
values = [
child.value[child.value.rfind(' '):]
for child in self.get_children()
diff --git a/apps/assets/models/utils.py b/apps/assets/models/utils.py
index a5e4da1da..ee3de1043 100644
--- a/apps/assets/models/utils.py
+++ b/apps/assets/models/utils.py
@@ -3,7 +3,7 @@
#
from django.core.exceptions import ValidationError
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.utils import validate_ssh_private_key
diff --git a/apps/assets/notifications.py b/apps/assets/notifications.py
index 14e84768e..8f6577b8a 100644
--- a/apps/assets/notifications.py
+++ b/apps/assets/notifications.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from notifications.notifications import UserMessage
@@ -22,4 +22,4 @@ class BulkUpdatePlatformSkipAssetUserMsg(UserMessage):
from assets.models import Asset
user = User.objects.first()
assets = Asset.objects.all()[:10]
- return cls(user, assets)
\ No newline at end of file
+ return cls(user, assets)
diff --git a/apps/assets/serializers/asset/common.py b/apps/assets/serializers/asset/common.py
index 69ccf8e21..718efbb0d 100644
--- a/apps/assets/serializers/asset/common.py
+++ b/apps/assets/serializers/asset/common.py
@@ -3,7 +3,7 @@
from django.db.models import F
from django.db.transaction import atomic
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.models import Account
diff --git a/apps/assets/serializers/asset/database.py b/apps/assets/serializers/asset/database.py
index 386cb87e9..17a122fd6 100644
--- a/apps/assets/serializers/asset/database.py
+++ b/apps/assets/serializers/asset/database.py
@@ -1,6 +1,6 @@
-from django.utils.translation import ugettext_lazy as _
-from rest_framework.serializers import ValidationError
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
+from rest_framework.serializers import ValidationError
from assets.models import Database
from assets.serializers.gateway import GatewayWithAccountSecretSerializer
diff --git a/apps/assets/serializers/automations/base.py b/apps/assets/serializers/automations/base.py
index d930fd1dc..f720ed077 100644
--- a/apps/assets/serializers/automations/base.py
+++ b/apps/assets/serializers/automations/base.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from rest_framework import serializers
from assets.models import Asset, Node, BaseAutomation, AutomationExecution
diff --git a/apps/assets/serializers/domain.py b/apps/assets/serializers/domain.py
index 74eb1117a..a22d1a9ad 100644
--- a/apps/assets/serializers/domain.py
+++ b/apps/assets/serializers/domain.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from common.serializers.fields import ObjectRelatedField
diff --git a/apps/assets/serializers/gateway.py b/apps/assets/serializers/gateway.py
index 259bc13f8..e596ef5a3 100644
--- a/apps/assets/serializers/gateway.py
+++ b/apps/assets/serializers/gateway.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from .asset.common import AccountSecretSerializer
diff --git a/apps/assets/serializers/label.py b/apps/assets/serializers/label.py
index 48bc0885f..3d913aeea 100644
--- a/apps/assets/serializers/label.py
+++ b/apps/assets/serializers/label.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
#
from django.db.models import Count
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
diff --git a/apps/assets/serializers/node.py b/apps/assets/serializers/node.py
index fb4c12d67..ac161318b 100644
--- a/apps/assets/serializers/node.py
+++ b/apps/assets/serializers/node.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
+from django.utils.translation import gettext as _
from rest_framework import serializers
-from django.utils.translation import ugettext as _
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
from ..models import Asset, Node
diff --git a/apps/assets/tasks/ping_gateway.py b/apps/assets/tasks/ping_gateway.py
index 789a81c87..05ab7fb0c 100644
--- a/apps/assets/tasks/ping_gateway.py
+++ b/apps/assets/tasks/ping_gateway.py
@@ -1,6 +1,6 @@
# ~*~ coding: utf-8 ~*~
from celery import shared_task
-from django.utils.translation import gettext_noop, ugettext_lazy as _
+from django.utils.translation import gettext_noop, gettext_lazy as _
from assets.const import AutomationTypes
from common.utils import get_logger
diff --git a/apps/assets/tasks/utils.py b/apps/assets/tasks/utils.py
index a60f1b494..d65351eaa 100644
--- a/apps/assets/tasks/utils.py
+++ b/apps/assets/tasks/utils.py
@@ -1,10 +1,9 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from common.utils import get_logger
-
logger = get_logger(__file__)
__all__ = [
'check_asset_can_run_ansible', 'clean_ansible_task_hosts',
diff --git a/apps/audits/apps.py b/apps/audits/apps.py
index 6e198176b..40de7ddaa 100644
--- a/apps/audits/apps.py
+++ b/apps/audits/apps.py
@@ -1,7 +1,7 @@
from django.apps import AppConfig
from django.conf import settings
-from django.utils.translation import ugettext_lazy as _
from django.db.models.signals import post_save
+from django.utils.translation import gettext_lazy as _
class AuditsConfig(AppConfig):
@@ -10,7 +10,6 @@ class AuditsConfig(AppConfig):
def ready(self):
from . import signal_handlers
- from . import tasks
if settings.SYSLOG_ENABLE:
post_save.connect(signal_handlers.on_audits_log_create)
diff --git a/apps/audits/backends/db.py b/apps/audits/backends/db.py
index 0c0f46a4a..ac589931d 100644
--- a/apps/audits/backends/db.py
+++ b/apps/audits/backends/db.py
@@ -1,5 +1,5 @@
# ~*~ coding: utf-8 ~*~
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from audits.models import OperateLog
diff --git a/apps/audits/const.py b/apps/audits/const.py
index ae8679f01..a2832ef9d 100644
--- a/apps/audits/const.py
+++ b/apps/audits/const.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
from django.db.models import TextChoices, IntegerChoices
+from django.utils.translation import gettext_lazy as _
DEFAULT_CITY = _("Unknown")
diff --git a/apps/audits/handler.py b/apps/audits/handler.py
index 6ac055778..7d9e331cb 100644
--- a/apps/audits/handler.py
+++ b/apps/audits/handler.py
@@ -3,7 +3,7 @@ from datetime import datetime
from django.core.cache import cache
from django.db import transaction
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.local import encrypted_field_set
from common.utils import get_request_ip, get_logger
diff --git a/apps/audits/models.py b/apps/audits/models.py
index a0de58d05..42e712dbd 100644
--- a/apps/audits/models.py
+++ b/apps/audits/models.py
@@ -1,11 +1,11 @@
import os
import uuid
+from django.conf import settings
from django.db import models
from django.db.models import Q
-from django.conf import settings
from django.utils import timezone
-from django.utils.translation import gettext, ugettext_lazy as _
+from django.utils.translation import gettext, gettext_lazy as _
from common.db.encoder import ModelJSONFieldEncoder
from common.utils import lazyproperty
diff --git a/apps/audits/serializers.py b/apps/audits/serializers.py
index 7b7573232..a90651bc9 100644
--- a/apps/audits/serializers.py
+++ b/apps/audits/serializers.py
@@ -1,13 +1,14 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
-from orgs.mixins.serializers import BulkOrgResourceModelSerializer
+
from audits.backends.db import OperateLogStore
from common.serializers.fields import LabeledChoiceField
from common.utils import reverse, i18n_trans
from common.utils.timezone import as_current_tz
from ops.serializers.job import JobExecutionSerializer
+from orgs.mixins.serializers import BulkOrgResourceModelSerializer
from terminal.models import Session
from . import models
from .const import (
diff --git a/apps/audits/signal_handlers/login_log.py b/apps/audits/signal_handlers/login_log.py
index a73482b20..f74d55e8e 100644
--- a/apps/audits/signal_handlers/login_log.py
+++ b/apps/audits/signal_handlers/login_log.py
@@ -5,7 +5,7 @@ from django.contrib.auth import BACKEND_SESSION_KEY
from django.dispatch import receiver
from django.utils import timezone, translation
from django.utils.functional import LazyObject
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework.request import Request
from authentication.signals import post_auth_failed, post_auth_success
diff --git a/apps/authentication/api/confirm.py b/apps/authentication/api/confirm.py
index d3a32a7c8..0923875a0 100644
--- a/apps/authentication/api/confirm.py
+++ b/apps/authentication/api/confirm.py
@@ -2,10 +2,10 @@
#
import time
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
+from rest_framework import status
from rest_framework.generics import RetrieveAPIView, CreateAPIView
from rest_framework.response import Response
-from rest_framework import status
from common.permissions import IsValidUser, UserConfirmation
from ..const import ConfirmType
diff --git a/apps/authentication/api/connection_token.py b/apps/authentication/api/connection_token.py
index a98855f85..5ad3f81db 100644
--- a/apps/authentication/api/connection_token.py
+++ b/apps/authentication/api/connection_token.py
@@ -7,7 +7,7 @@ from django.conf import settings
from django.http import HttpResponse
from django.shortcuts import get_object_or_404
from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import status, serializers
from rest_framework.decorators import action
from rest_framework.exceptions import PermissionDenied, ValidationError
diff --git a/apps/authentication/api/mfa.py b/apps/authentication/api/mfa.py
index fe81149e3..3436c2eeb 100644
--- a/apps/authentication/api/mfa.py
+++ b/apps/authentication/api/mfa.py
@@ -1,20 +1,18 @@
# -*- coding: utf-8 -*-
#
-import time
-from django.utils.translation import ugettext as _
-from django.conf import settings
from django.shortcuts import get_object_or_404
-from rest_framework.permissions import AllowAny
+from django.utils.translation import gettext as _
from rest_framework.generics import CreateAPIView
-from rest_framework.serializers import ValidationError
+from rest_framework.permissions import AllowAny
from rest_framework.response import Response
+from rest_framework.serializers import ValidationError
-from common.utils import get_logger
from common.exceptions import UnexpectError
+from common.utils import get_logger
from users.models.user import User
-from .. import serializers
from .. import errors
+from .. import serializers
from ..mixins import AuthMixin
logger = get_logger(__name__)
diff --git a/apps/authentication/api/password.py b/apps/authentication/api/password.py
index 53f47c03c..f1b245a46 100644
--- a/apps/authentication/api/password.py
+++ b/apps/authentication/api/password.py
@@ -1,24 +1,24 @@
-from django.http import HttpResponseRedirect
-from rest_framework.generics import CreateAPIView
-from rest_framework.response import Response
-from rest_framework.permissions import AllowAny
-from django.utils.translation import ugettext as _
-from django.template.loader import render_to_string
from django.core.cache import cache
+from django.http import HttpResponseRedirect
from django.shortcuts import reverse
+from django.template.loader import render_to_string
+from django.utils.translation import gettext as _
+from rest_framework.generics import CreateAPIView
+from rest_framework.permissions import AllowAny
+from rest_framework.response import Response
-from common.utils.verify_code import SendAndVerifyCodeUtil
-from common.permissions import IsValidUser
-from common.utils.random import random_string
-from common.utils import get_object_or_none
+from authentication.errors import PasswordInvalid
+from authentication.mixins import AuthMixin
+from authentication.mixins import authenticate
from authentication.serializers import (
PasswordVerifySerializer, ResetPasswordCodeSerializer
)
+from common.permissions import IsValidUser
+from common.utils import get_object_or_none
+from common.utils.random import random_string
+from common.utils.verify_code import SendAndVerifyCodeUtil
from settings.utils import get_login_title
from users.models import User
-from authentication.mixins import authenticate
-from authentication.errors import PasswordInvalid
-from authentication.mixins import AuthMixin
class UserResetPasswordSendCodeApi(CreateAPIView):
diff --git a/apps/authentication/apps.py b/apps/authentication/apps.py
index 615bb255e..4ee3ffce0 100644
--- a/apps/authentication/apps.py
+++ b/apps/authentication/apps.py
@@ -1,5 +1,5 @@
from django.apps import AppConfig
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class AuthenticationConfig(AppConfig):
@@ -7,9 +7,4 @@ class AuthenticationConfig(AppConfig):
verbose_name = _('Authentication')
def ready(self):
- from . import signal_handlers
- from . import notifications
- from . import tasks
-
super().ready()
-
diff --git a/apps/authentication/backends/custom.py b/apps/authentication/backends/custom.py
index d05e097d5..3f2b05940 100644
--- a/apps/authentication/backends/custom.py
+++ b/apps/authentication/backends/custom.py
@@ -1,10 +1,10 @@
from django.conf import settings
-from django.utils.module_loading import import_string
-from django.utils.translation import ugettext_lazy as _
-from common.utils import get_logger
from django.contrib.auth import get_user_model
-from authentication.signals import user_auth_failed, user_auth_success
+from django.utils.module_loading import import_string
+from django.utils.translation import gettext_lazy as _
+from authentication.signals import user_auth_failed, user_auth_success
+from common.utils import get_logger
from .base import JMSModelBackend
logger = get_logger(__file__)
diff --git a/apps/authentication/backends/drf.py b/apps/authentication/backends/drf.py
index 10c191b1b..8d7d60e99 100644
--- a/apps/authentication/backends/drf.py
+++ b/apps/authentication/backends/drf.py
@@ -1,22 +1,20 @@
# -*- coding: utf-8 -*-
#
-import uuid
import time
+import uuid
-from django.core.cache import cache
-from django.utils.translation import ugettext as _
-from six import text_type
from django.contrib.auth import get_user_model
-
+from django.core.cache import cache
+from django.utils.translation import gettext as _
from rest_framework import HTTP_HEADER_ENCODING
from rest_framework import authentication, exceptions
+from six import text_type
+
from common.auth import signature
-
from common.utils import get_object_or_none, make_signature, http_to_unixtime
+from .base import JMSBaseAuthBackend
from ..models import AccessKey, PrivateToken
-from .base import JMSBaseAuthBackend, JMSModelBackend
-
UserModel = get_user_model()
@@ -200,4 +198,3 @@ class SignatureAuthentication(signature.SignatureAuthentication):
return user, secret
except (AccessKey.DoesNotExist, exceptions.ValidationError):
return None, None
-
diff --git a/apps/authentication/backends/oauth2/signals.py b/apps/authentication/backends/oauth2/signals.py
index b82ae90d7..4f192a9ad 100644
--- a/apps/authentication/backends/oauth2/signals.py
+++ b/apps/authentication/backends/oauth2/signals.py
@@ -1,7 +1,3 @@
from django.dispatch import Signal
-
-oauth2_create_or_update_user = Signal(
- providing_args=['request', 'user', 'created', 'name', 'username', 'email']
-)
-
+oauth2_create_or_update_user = Signal()
diff --git a/apps/authentication/backends/oidc/signals.py b/apps/authentication/backends/oidc/signals.py
index 2f4c071e4..5346dba03 100644
--- a/apps/authentication/backends/oidc/signals.py
+++ b/apps/authentication/backends/oidc/signals.py
@@ -9,8 +9,4 @@
from django.dispatch import Signal
-
-openid_create_or_update_user = Signal(
- providing_args=['request', 'user', 'created', 'name', 'username', 'email']
-)
-
+openid_create_or_update_user = Signal()
diff --git a/apps/authentication/backends/oidc/views.py b/apps/authentication/backends/oidc/views.py
index 88088245d..c638aeef6 100644
--- a/apps/authentication/backends/oidc/views.py
+++ b/apps/authentication/backends/oidc/views.py
@@ -11,8 +11,8 @@
import base64
import hashlib
-import time
import secrets
+import time
from django.conf import settings
from django.contrib import auth
@@ -20,13 +20,12 @@ from django.core.exceptions import SuspiciousOperation
from django.http import HttpResponseRedirect, QueryDict
from django.urls import reverse
from django.utils.crypto import get_random_string
-from django.utils.http import is_safe_url, urlencode
+from django.utils.http import url_has_allowed_host_and_scheme, urlencode
from django.views.generic import View
from authentication.utils import build_absolute_uri_for_oidc
from .utils import get_logger
-
logger = get_logger(__file__)
@@ -102,7 +101,7 @@ class OIDCAuthRequestView(View):
logger.debug(log_prompt.format('Stores next url in the session'))
next_url = request.GET.get('next')
request.session['oidc_auth_next_url'] = next_url \
- if is_safe_url(url=next_url, allowed_hosts=(request.get_host(), )) else None
+ if url_has_allowed_host_and_scheme(url=next_url, allowed_hosts=(request.get_host(),)) else None
# Redirects the user to authorization endpoint.
logger.debug(log_prompt.format('Construct redirect url'))
@@ -145,15 +144,15 @@ class OIDCAuthCallbackView(View):
# missing or if no state can be retrieved from the current session.
if (
- ((nonce and settings.AUTH_OPENID_USE_NONCE) or not settings.AUTH_OPENID_USE_NONCE)
- and
- (
- (state and settings.AUTH_OPENID_USE_STATE and 'state' in callback_params)
- or
- (not settings.AUTH_OPENID_USE_STATE)
- )
- and
- ('code' in callback_params)
+ ((nonce and settings.AUTH_OPENID_USE_NONCE) or not settings.AUTH_OPENID_USE_NONCE)
+ and
+ (
+ (state and settings.AUTH_OPENID_USE_STATE and 'state' in callback_params)
+ or
+ (not settings.AUTH_OPENID_USE_STATE)
+ )
+ and
+ ('code' in callback_params)
):
# Ensures that the passed state values is the same as the one that was previously
# generated when forging the authorization request. This is necessary to mitigate
diff --git a/apps/authentication/backends/saml2/signals.py b/apps/authentication/backends/saml2/signals.py
index 3dcdd9d35..72feddbbe 100644
--- a/apps/authentication/backends/saml2/signals.py
+++ b/apps/authentication/backends/saml2/signals.py
@@ -1,4 +1,3 @@
from django.dispatch import Signal
-
-saml2_create_or_update_user = Signal(providing_args=('user', 'created', 'request', 'attrs'))
+saml2_create_or_update_user = Signal()
diff --git a/apps/authentication/confirm/password.py b/apps/authentication/confirm/password.py
index 944ab8f24..dc49576a3 100644
--- a/apps/authentication/confirm/password.py
+++ b/apps/authentication/confirm/password.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from authentication.mixins import authenticate
from .base import BaseConfirm
diff --git a/apps/authentication/confirm/relogin.py b/apps/authentication/confirm/relogin.py
index 447a17ab0..2b27ef5fe 100644
--- a/apps/authentication/confirm/relogin.py
+++ b/apps/authentication/confirm/relogin.py
@@ -1,7 +1,7 @@
from datetime import datetime
from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from .base import BaseConfirm
diff --git a/apps/authentication/errors/failed.py b/apps/authentication/errors/failed.py
index 3e0848524..f6d8004c6 100644
--- a/apps/authentication/errors/failed.py
+++ b/apps/authentication/errors/failed.py
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
from django.conf import settings
+from django.utils.translation import gettext_lazy as _
from users.utils import LoginBlockUtil, MFABlockUtils, LoginIpBlockUtil
-from ..signals import post_auth_failed
from . import const
+from ..signals import post_auth_failed
class AuthFailedNeedLogMixin:
diff --git a/apps/authentication/errors/mfa.py b/apps/authentication/errors/mfa.py
index 288c2060e..40b97df92 100644
--- a/apps/authentication/errors/mfa.py
+++ b/apps/authentication/errors/mfa.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.exceptions import JMSException
diff --git a/apps/authentication/errors/redirect.py b/apps/authentication/errors/redirect.py
index 466ec708d..5e7c5412d 100644
--- a/apps/authentication/errors/redirect.py
+++ b/apps/authentication/errors/redirect.py
@@ -1,5 +1,5 @@
-from django.utils.translation import ugettext_lazy as _
from django.urls import reverse
+from django.utils.translation import gettext_lazy as _
from common.exceptions import JMSException
from . import const
diff --git a/apps/authentication/forms.py b/apps/authentication/forms.py
index 747b821ea..90429bc82 100644
--- a/apps/authentication/forms.py
+++ b/apps/authentication/forms.py
@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
#
+from captcha.fields import CaptchaField, CaptchaTextInput
from django import forms
from django.conf import settings
-from django.utils.translation import ugettext_lazy as _
-from captcha.fields import CaptchaField, CaptchaTextInput
+from django.utils.translation import gettext_lazy as _
from common.utils import get_logger, decrypt_password
diff --git a/apps/authentication/mfa/base.py b/apps/authentication/mfa/base.py
index 2158b8fe1..8bcaaf3a0 100644
--- a/apps/authentication/mfa/base.py
+++ b/apps/authentication/mfa/base.py
@@ -1,6 +1,6 @@
import abc
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
class BaseMFA(abc.ABC):
@@ -69,4 +69,3 @@ class BaseMFA(abc.ABC):
@staticmethod
def help_text_of_disable():
return ''
-
diff --git a/apps/authentication/mfa/custom.py b/apps/authentication/mfa/custom.py
index 3b671f709..0819dcfaa 100644
--- a/apps/authentication/mfa/custom.py
+++ b/apps/authentication/mfa/custom.py
@@ -1,6 +1,6 @@
from django.conf import settings
from django.utils.module_loading import import_string
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.utils import get_logger
from .base import BaseMFA
diff --git a/apps/authentication/mfa/radius.py b/apps/authentication/mfa/radius.py
index 9f1250234..2055e9776 100644
--- a/apps/authentication/mfa/radius.py
+++ b/apps/authentication/mfa/radius.py
@@ -1,5 +1,5 @@
-from django.utils.translation import ugettext_lazy as _
from django.conf import settings
+from django.utils.translation import gettext_lazy as _
from .base import BaseMFA
from ..backends.radius import RadiusBackend
diff --git a/apps/authentication/mfa/sms.py b/apps/authentication/mfa/sms.py
index aa426bf57..d114b648e 100644
--- a/apps/authentication/mfa/sms.py
+++ b/apps/authentication/mfa/sms.py
@@ -1,8 +1,8 @@
-from django.utils.translation import ugettext_lazy as _
from django.conf import settings
+from django.utils.translation import gettext_lazy as _
-from .base import BaseMFA
from common.utils.verify_code import SendAndVerifyCodeUtil
+from .base import BaseMFA
sms_failed_msg = _("SMS verify code invalid")
diff --git a/apps/authentication/middleware.py b/apps/authentication/middleware.py
index 43f7bdc14..b4ee86ed4 100644
--- a/apps/authentication/middleware.py
+++ b/apps/authentication/middleware.py
@@ -5,7 +5,7 @@ from django.contrib.auth import logout as auth_logout
from django.http import HttpResponse
from django.shortcuts import redirect, reverse, render
from django.utils.deprecation import MiddlewareMixin
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from apps.authentication import mixins
from authentication.signals import post_auth_failed
diff --git a/apps/authentication/mixins.py b/apps/authentication/mixins.py
index e859fe4de..518e4aeb4 100644
--- a/apps/authentication/mixins.py
+++ b/apps/authentication/mixins.py
@@ -15,7 +15,7 @@ from django.core.cache import cache
from django.core.exceptions import ImproperlyConfigured
from django.shortcuts import reverse, redirect, get_object_or_404
from django.utils.http import urlencode
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from rest_framework.request import Request
from acls.models import LoginACL
diff --git a/apps/authentication/models/access_key.py b/apps/authentication/models/access_key.py
index d0e6fb0ef..77fa67c74 100644
--- a/apps/authentication/models/access_key.py
+++ b/apps/authentication/models/access_key.py
@@ -2,7 +2,7 @@ import uuid
from django.conf import settings
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
import common.db.models
diff --git a/apps/authentication/models/connection_token.py b/apps/authentication/models/connection_token.py
index ce5b4829f..7bc8afcc7 100644
--- a/apps/authentication/models/connection_token.py
+++ b/apps/authentication/models/connection_token.py
@@ -6,7 +6,7 @@ from django.conf import settings
from django.core.cache import cache
from django.db import models
from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework.exceptions import PermissionDenied
from accounts.const import AliasAccount
diff --git a/apps/authentication/models/private_token.py b/apps/authentication/models/private_token.py
index 8d83d1e0a..bb5f1da87 100644
--- a/apps/authentication/models/private_token.py
+++ b/apps/authentication/models/private_token.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework.authtoken.models import Token
diff --git a/apps/authentication/models/sso_token.py b/apps/authentication/models/sso_token.py
index c8ec1e9eb..61002a1a8 100644
--- a/apps/authentication/models/sso_token.py
+++ b/apps/authentication/models/sso_token.py
@@ -1,7 +1,7 @@
import uuid
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from common.db.models import BaseCreateUpdateModel, CASCADE_SIGNAL_SKIP
diff --git a/apps/authentication/models/temp_token.py b/apps/authentication/models/temp_token.py
index d76a30a42..33d86cbc1 100644
--- a/apps/authentication/models/temp_token.py
+++ b/apps/authentication/models/temp_token.py
@@ -1,7 +1,7 @@
-from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
-
from django.db import models
+from django.utils import timezone
+from django.utils.translation import gettext_lazy as _
+
from common.db.models import JMSBaseModel
diff --git a/apps/authentication/notifications.py b/apps/authentication/notifications.py
index 364ac20dd..e52f29a94 100644
--- a/apps/authentication/notifications.py
+++ b/apps/authentication/notifications.py
@@ -1,9 +1,9 @@
-from django.utils.translation import ugettext as _
from django.template.loader import render_to_string
+from django.utils.translation import gettext as _
-from notifications.notifications import UserMessage
from common.utils import get_logger
from common.utils.timezone import local_now_display
+from notifications.notifications import UserMessage
logger = get_logger(__file__)
diff --git a/apps/authentication/serializers/connect_token_secret.py b/apps/authentication/serializers/connect_token_secret.py
index a3d56b90c..33fbe842e 100644
--- a/apps/authentication/serializers/connect_token_secret.py
+++ b/apps/authentication/serializers/connect_token_secret.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from accounts.const import SecretType
diff --git a/apps/authentication/serializers/connection_token.py b/apps/authentication/serializers/connection_token.py
index bc3d051e1..4579e73ee 100644
--- a/apps/authentication/serializers/connection_token.py
+++ b/apps/authentication/serializers/connection_token.py
@@ -1,4 +1,4 @@
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from common.serializers import CommonModelSerializer
diff --git a/apps/authentication/serializers/password_mfa.py b/apps/authentication/serializers/password_mfa.py
index d83260748..3e733b6ec 100644
--- a/apps/authentication/serializers/password_mfa.py
+++ b/apps/authentication/serializers/password_mfa.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from common.serializers.fields import EncryptedField
diff --git a/apps/authentication/signals.py b/apps/authentication/signals.py
index 556bba614..7c8b8e229 100644
--- a/apps/authentication/signals.py
+++ b/apps/authentication/signals.py
@@ -1,9 +1,7 @@
from django.dispatch import Signal
+post_auth_success = Signal()
+post_auth_failed = Signal()
-post_auth_success = Signal(providing_args=('user', 'request'))
-post_auth_failed = Signal(providing_args=('username', 'request', 'reason'))
-
-
-user_auth_success = Signal(providing_args=('user', 'request', 'backend', 'create'))
-user_auth_failed = Signal(providing_args=('username', 'request', 'reason', 'backend'))
+user_auth_success = Signal()
+user_auth_failed = Signal()
diff --git a/apps/authentication/utils.py b/apps/authentication/utils.py
index a0db9061c..b53afa423 100644
--- a/apps/authentication/utils.py
+++ b/apps/authentication/utils.py
@@ -4,12 +4,12 @@ import ipaddress
from urllib.parse import urljoin, urlparse
from django.conf import settings
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
-from common.utils import validate_ip, get_ip_city, get_request_ip
-from common.utils import get_logger
-from audits.models import UserLoginLog
from audits.const import DEFAULT_CITY
+from audits.models import UserLoginLog
+from common.utils import get_logger
+from common.utils import validate_ip, get_ip_city, get_request_ip
from .notifications import DifferentCityLoginMessage
logger = get_logger(__file__)
diff --git a/apps/authentication/views/base.py b/apps/authentication/views/base.py
index e98e41e70..7969502c0 100644
--- a/apps/authentication/views/base.py
+++ b/apps/authentication/views/base.py
@@ -1,26 +1,23 @@
from functools import lru_cache
-from rest_framework.request import Request
-from django.utils.translation import ugettext_lazy as _
-from django.utils.module_loading import import_string
from django.conf import settings
from django.db.utils import IntegrityError
+from django.utils.module_loading import import_string
+from django.utils.translation import gettext_lazy as _
from django.views import View
+from rest_framework.request import Request
from authentication import errors
from authentication.mixins import AuthMixin
-from users.models import User
-from common.utils.django import reverse, get_object_or_none
from common.utils import get_logger
-
+from common.utils.django import reverse, get_object_or_none
+from users.models import User
from .mixins import FlashMessageMixin
-
logger = get_logger(__file__)
class BaseLoginCallbackView(AuthMixin, FlashMessageMixin, View):
-
client_type_path = ''
client_auth_params = {}
user_type = ''
diff --git a/apps/authentication/views/dingtalk.py b/apps/authentication/views/dingtalk.py
index 77cec63fd..819f1d055 100644
--- a/apps/authentication/views/dingtalk.py
+++ b/apps/authentication/views/dingtalk.py
@@ -4,7 +4,7 @@ from django.conf import settings
from django.db.utils import IntegrityError
from django.http.request import HttpRequest
from django.http.response import HttpResponseRedirect
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.views import View
from rest_framework.exceptions import APIException
from rest_framework.permissions import AllowAny, IsAuthenticated
@@ -13,16 +13,15 @@ from authentication import errors
from authentication.const import ConfirmType
from authentication.mixins import AuthMixin
from authentication.notifications import OAuthBindMessage
-from common.views.mixins import PermissionsMixin, UserConfirmRequiredExceptionMixin
from common.permissions import UserConfirmation
from common.sdk.im.dingtalk import URL, DingTalk
from common.utils import get_logger
from common.utils.common import get_request_ip
from common.utils.django import get_object_or_none, reverse
from common.utils.random import random_string
+from common.views.mixins import PermissionsMixin, UserConfirmRequiredExceptionMixin
from users.models import User
from users.views import UserVerifyPasswordView
-
from .base import BaseLoginCallbackView
from .mixins import METAMixin, FlashMessageMixin
diff --git a/apps/authentication/views/feishu.py b/apps/authentication/views/feishu.py
index 62660764a..0f62ef75d 100644
--- a/apps/authentication/views/feishu.py
+++ b/apps/authentication/views/feishu.py
@@ -4,22 +4,21 @@ from django.conf import settings
from django.db.utils import IntegrityError
from django.http.request import HttpRequest
from django.http.response import HttpResponseRedirect
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from django.views import View
from rest_framework.exceptions import APIException
from rest_framework.permissions import AllowAny, IsAuthenticated
from authentication.const import ConfirmType
from authentication.notifications import OAuthBindMessage
-from common.views.mixins import PermissionsMixin, UserConfirmRequiredExceptionMixin
from common.permissions import UserConfirmation
from common.sdk.im.feishu import URL, FeiShu
from common.utils import get_logger
from common.utils.common import get_request_ip
from common.utils.django import reverse
from common.utils.random import random_string
+from common.views.mixins import PermissionsMixin, UserConfirmRequiredExceptionMixin
from users.views import UserVerifyPasswordView
-
from .base import BaseLoginCallbackView
from .mixins import FlashMessageMixin
@@ -166,4 +165,3 @@ class FeiShuQRLoginCallbackView(FeiShuQRMixin, BaseLoginCallbackView):
msg_client_err = _('FeiShu Error')
msg_user_not_bound_err = _('FeiShu is not bound')
msg_not_found_user_from_client_err = _('Failed to get user from FeiShu')
-
diff --git a/apps/authentication/views/login.py b/apps/authentication/views/login.py
index 8b5696dc9..459abb3cf 100644
--- a/apps/authentication/views/login.py
+++ b/apps/authentication/views/login.py
@@ -16,7 +16,7 @@ from django.shortcuts import reverse, redirect
from django.templatetags.static import static
from django.urls import reverse_lazy
from django.utils.decorators import method_decorator
-from django.utils.translation import ugettext as _, get_language
+from django.utils.translation import gettext as _, get_language
from django.views.decorators.cache import never_cache
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.debug import sensitive_post_parameters
diff --git a/apps/authentication/views/wecom.py b/apps/authentication/views/wecom.py
index e127dbeee..238d0b3e6 100644
--- a/apps/authentication/views/wecom.py
+++ b/apps/authentication/views/wecom.py
@@ -1,28 +1,28 @@
-from django.http.response import HttpResponseRedirect
-from django.utils.translation import ugettext_lazy as _
from urllib.parse import urlencode
-from django.views import View
-from django.conf import settings
-from django.http.request import HttpRequest
-from django.db.utils import IntegrityError
-from rest_framework.permissions import IsAuthenticated, AllowAny
-from rest_framework.exceptions import APIException
-from users.models import User
-from users.views import UserVerifyPasswordView
-from common.utils import get_logger
-from common.utils.random import random_string
-from common.utils.django import reverse, get_object_or_none
+from django.conf import settings
+from django.db.utils import IntegrityError
+from django.http.request import HttpRequest
+from django.http.response import HttpResponseRedirect
+from django.utils.translation import gettext_lazy as _
+from django.views import View
+from rest_framework.exceptions import APIException
+from rest_framework.permissions import IsAuthenticated, AllowAny
+
+from authentication import errors
+from authentication.const import ConfirmType
+from authentication.mixins import AuthMixin
+from authentication.notifications import OAuthBindMessage
+from common.permissions import UserConfirmation
from common.sdk.im.wecom import URL
from common.sdk.im.wecom import WeCom
-from common.views.mixins import UserConfirmRequiredExceptionMixin, PermissionsMixin
+from common.utils import get_logger
from common.utils.common import get_request_ip
-from common.permissions import UserConfirmation
-from authentication import errors
-from authentication.mixins import AuthMixin
-from authentication.const import ConfirmType
-from authentication.notifications import OAuthBindMessage
-
+from common.utils.django import reverse, get_object_or_none
+from common.utils.random import random_string
+from common.views.mixins import UserConfirmRequiredExceptionMixin, PermissionsMixin
+from users.models import User
+from users.views import UserVerifyPasswordView
from .base import BaseLoginCallbackView
from .mixins import METAMixin, FlashMessageMixin
diff --git a/apps/common/api/action.py b/apps/common/api/action.py
index 8d7829d9e..738ad3db4 100644
--- a/apps/common/api/action.py
+++ b/apps/common/api/action.py
@@ -2,7 +2,7 @@
#
from typing import Callable
-from django.utils.translation import ugettext as _
+from django.utils.translation import gettext as _
from rest_framework.decorators import action
from rest_framework.request import Request
from rest_framework.response import Response
diff --git a/apps/common/const/choices.py b/apps/common/const/choices.py
index 9b6c817f3..6db9254b3 100644
--- a/apps/common/const/choices.py
+++ b/apps/common/const/choices.py
@@ -1,5 +1,5 @@
from django.db import models
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
ADMIN = 'Admin'
USER = 'User'
diff --git a/apps/common/const/common.py b/apps/common/const/common.py
index 33a889ecb..ab149fef5 100644
--- a/apps/common/const/common.py
+++ b/apps/common/const/common.py
@@ -1,6 +1,6 @@
import re
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
create_success_msg = _("%(name)s was created successfully")
update_success_msg = _("%(name)s was updated successfully")
diff --git a/apps/common/db/encoder.py b/apps/common/db/encoder.py
index d773491a1..2bc9332f3 100644
--- a/apps/common/db/encoder.py
+++ b/apps/common/db/encoder.py
@@ -6,9 +6,9 @@ from datetime import datetime
from django.conf import settings
from django.db import models
from django.utils import timezone as dj_timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
-lazy_type = type(_('ugettext_lazy'))
+lazy_type = type(_('gettext_lazy'))
class ModelJSONFieldEncoder(json.JSONEncoder):
diff --git a/apps/common/db/fields.py b/apps/common/db/fields.py
index dee051da5..f9f2d9f43 100644
--- a/apps/common/db/fields.py
+++ b/apps/common/db/fields.py
@@ -11,8 +11,8 @@ from django.core.exceptions import ValidationError
from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models
from django.db.models import Q, Manager, QuerySet
-from django.utils.encoding import force_text
-from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import force_str
+from django.utils.translation import gettext_lazy as _
from rest_framework.utils.encoders import JSONEncoder
from common.local import add_encrypted_field_set
@@ -146,7 +146,7 @@ class EncryptMixin:
if value is None:
return value
- value = force_text(value)
+ value = force_str(value)
plain_value = crypto.decrypt(value)
# 如果没有解开,使用原来的signer解密
@@ -167,7 +167,7 @@ class EncryptMixin:
sp = super()
if hasattr(sp, "get_prep_value"):
value = sp.get_prep_value(value)
- value = force_text(value)
+ value = force_str(value)
# 替换新的加密方式
return crypto.encrypt(value)
diff --git a/apps/common/db/mixins.py b/apps/common/db/mixins.py
index 43c5f8a65..0d4e1c9bc 100644
--- a/apps/common/db/mixins.py
+++ b/apps/common/db/mixins.py
@@ -3,7 +3,7 @@
from django.db import models
from django.utils import timezone
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
__all__ = [
"NoDeleteManager", "NoDeleteModelMixin", "NoDeleteQuerySet",
diff --git a/apps/common/db/models.py b/apps/common/db/models.py
index d01a37266..a3d51bcb7 100644
--- a/apps/common/db/models.py
+++ b/apps/common/db/models.py
@@ -15,7 +15,7 @@ from django.db import models
from django.db import transaction
from django.db.models import F, ExpressionWrapper, CASCADE
from django.db.models import QuerySet
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from ..const.signals import SKIP_SIGNAL
diff --git a/apps/common/drf/metadata.py b/apps/common/drf/metadata.py
index 731daf878..9caa84c28 100644
--- a/apps/common/drf/metadata.py
+++ b/apps/common/drf/metadata.py
@@ -7,8 +7,8 @@ from collections import OrderedDict
from django.core.exceptions import PermissionDenied
from django.http import Http404
-from django.utils.encoding import force_text
-from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import force_str
+from django.utils.translation import gettext_lazy as _
from rest_framework import exceptions, serializers
from rest_framework.fields import empty
from rest_framework.metadata import SimpleMetadata
@@ -81,7 +81,7 @@ class SimpleMetadataWithFilters(SimpleMetadata):
field_info["choices"] = [
{
"value": choice_value,
- "label": force_text(choice_label, strings_only=True),
+ "label": force_str(choice_label, strings_only=True),
}
for choice_value, choice_label in dict(field.choices).items()
]
@@ -109,7 +109,7 @@ class SimpleMetadataWithFilters(SimpleMetadata):
for attr in self.attrs:
value = getattr(field, attr, None)
if value is not None and value != "":
- field_info[attr] = force_text(value, strings_only=True)
+ field_info[attr] = force_str(value, strings_only=True)
if getattr(field, "child", None):
field_info["child"] = self.get_field_info(field.child)
diff --git a/apps/common/drf/parsers/base.py b/apps/common/drf/parsers/base.py
index 43d736f21..6d4b70788 100644
--- a/apps/common/drf/parsers/base.py
+++ b/apps/common/drf/parsers/base.py
@@ -3,7 +3,7 @@ import codecs
import json
import re
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from rest_framework import status
from rest_framework.exceptions import ParseError, APIException
diff --git a/apps/common/drf/renders/base.py b/apps/common/drf/renders/base.py
index a9b3b5c8a..cdc1626ff 100644
--- a/apps/common/drf/renders/base.py
+++ b/apps/common/drf/renders/base.py
@@ -4,7 +4,7 @@ import re
from datetime import datetime
import pyzipper
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from rest_framework.renderers import BaseRenderer
from rest_framework.utils import encoders, json
diff --git a/apps/common/sdk/im/wecom/__init__.py b/apps/common/sdk/im/wecom/__init__.py
index b58e4ab3b..8262cbeb5 100644
--- a/apps/common/sdk/im/wecom/__init__.py
+++ b/apps/common/sdk/im/wecom/__init__.py
@@ -1,12 +1,12 @@
from typing import Iterable, AnyStr
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from rest_framework.exceptions import APIException
-from users.utils import construct_user_email
-from common.utils.common import get_logger
-from common.sdk.im.utils import digest, update_values
from common.sdk.im.mixin import RequestMixin, BaseRequest
+from common.sdk.im.utils import digest, update_values
+from common.utils.common import get_logger
+from users.utils import construct_user_email
logger = get_logger(__name__)
@@ -112,13 +112,13 @@ class WeCom(RequestMixin):
update_values(extra_params, kwargs)
body = {
- "touser": '|'.join(users),
- "msgtype": "text",
- "agentid": self._agentid,
- "text": {
- "content": msg
- },
- **extra_params
+ "touser": '|'.join(users),
+ "msgtype": "text",
+ "agentid": self._agentid,
+ "text": {
+ "content": msg
+ },
+ **extra_params
}
if markdown:
body['msgtype'] = 'markdown'
@@ -184,4 +184,3 @@ class WeCom(RequestMixin):
return {
'username': username, 'name': name, 'email': email
}
-
diff --git a/apps/common/sdk/sms/cmpp2.py b/apps/common/sdk/sms/cmpp2.py
index 4d81ee1a0..344cf829f 100644
--- a/apps/common/sdk/sms/cmpp2.py
+++ b/apps/common/sdk/sms/cmpp2.py
@@ -4,16 +4,14 @@ import struct
import time
from django.conf import settings
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
-from common.utils import get_logger
from common.exceptions import JMSException
+from common.utils import get_logger
from .base import BaseSMSClient
-
logger = get_logger(__file__)
-
CMPP_CONNECT = 0x00000001 # 请求连接
CMPP_CONNECT_RESP = 0x80000001 # 请求连接应答
CMPP_TERMINATE = 0x00000002 # 终止连接
@@ -99,10 +97,10 @@ class CMPPSubmitRequestInstance(CMPPBaseRequestInstance):
self.length = 126 + 21 * dest_usr_tl + len(_msg_content)
self.command_id = CMPP_SUBMIT
self.body = msg_id + pk_total + pk_number + registered_delivery \
- + msg_level + service_id + fee_user_type + fee_terminal_id \
- + tp_pid + tp_udhi + msg_fmt + _msg_src + fee_type + fee_code \
- + valid_time + at_time + src_id + _dest_usr_tl + _dest_terminal_id \
- + _msg_length + _msg_content + reserve
+ + msg_level + service_id + fee_user_type + fee_terminal_id \
+ + tp_pid + tp_udhi + msg_fmt + _msg_src + fee_type + fee_code \
+ + valid_time + at_time + src_id + _dest_usr_tl + _dest_terminal_id \
+ + _msg_length + _msg_content + reserve
class CMPPTerminateRequestInstance(CMPPBaseRequestInstance):
@@ -161,7 +159,7 @@ class CMPPResponseInstance(object):
src_terminal_id = body[42:63]
registered_delivery = struct.unpack('!B', body[63:64])
msg_length = struct.unpack('!B', body[64:65])
- msg_content = body[65:msg_length[0]+65]
+ msg_content = body[65:msg_length[0] + 65]
return {
'Msg_Id': msg_id, 'Dest_Id': dest_id, 'Service_Id': service_id,
'TP_pid': tp_pid, 'TP_udhi': tp_udhi, 'Msg_Fmt': msg_fmt,
diff --git a/apps/common/tasks.py b/apps/common/tasks.py
index a3130ead6..a7d9aacdd 100644
--- a/apps/common/tasks.py
+++ b/apps/common/tasks.py
@@ -1,9 +1,9 @@
import os
-from django.utils.translation import ugettext_lazy as _
-from django.core.mail import send_mail, EmailMultiAlternatives
-from django.conf import settings
from celery import shared_task
+from django.conf import settings
+from django.core.mail import send_mail, EmailMultiAlternatives
+from django.utils.translation import gettext_lazy as _
from .utils import get_logger
diff --git a/apps/common/utils/encode.py b/apps/common/utils/encode.py
index 767645c88..6f1fc079e 100644
--- a/apps/common/utils/encode.py
+++ b/apps/common/utils/encode.py
@@ -45,7 +45,7 @@ class Signer(metaclass=Singleton):
def sign(self, value):
s = JSONWebSignatureSerializer(self.secret_key, algorithm_name='HS256')
- return s.dumps(value).decode()
+ return self.json_serializer.dumps(value).decode()
def unsign(self, value):
if value is None:
diff --git a/apps/common/utils/ip/geoip/utils.py b/apps/common/utils/ip/geoip/utils.py
index 64752a3a1..693a0305c 100644
--- a/apps/common/utils/ip/geoip/utils.py
+++ b/apps/common/utils/ip/geoip/utils.py
@@ -1,12 +1,12 @@
# -*- coding: utf-8 -*-
#
-import os
import ipaddress
+import os
import geoip2.database
-from geoip2.errors import GeoIP2Error
-from django.utils.translation import ugettext_lazy as _
from django.conf import settings
+from django.utils.translation import gettext_lazy as _
+from geoip2.errors import GeoIP2Error
__all__ = ['get_ip_city_by_geoip']
reader = None
@@ -36,5 +36,3 @@ def get_ip_city_by_geoip(ip):
lang = 'zh-CN'
city = city_names.get(lang, _("Unknown"))
return city
-
-
diff --git a/apps/common/validators.py b/apps/common/validators.py
index 5bb3e4bdb..7e33d7d76 100644
--- a/apps/common/validators.py
+++ b/apps/common/validators.py
@@ -3,14 +3,13 @@
import re
import phonenumbers
-
from django.core.validators import RegexValidator
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
+from phonenumbers.phonenumberutil import NumberParseException
+from rest_framework import serializers
from rest_framework.validators import (
UniqueTogetherValidator, ValidationError
)
-from rest_framework import serializers
-from phonenumbers.phonenumberutil import NumberParseException
from common.utils.strings import no_special_chars
diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py
index 33f0dbaf4..d9b15943f 100644
--- a/apps/jumpserver/conf.py
+++ b/apps/jumpserver/conf.py
@@ -21,7 +21,7 @@ from urllib.parse import urljoin, urlparse
import yaml
from django.urls import reverse_lazy
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@@ -234,7 +234,7 @@ class Config(dict):
'LOGIN_URL': reverse_lazy('authentication:login'),
'CONNECTION_TOKEN_ONETIME_EXPIRATION': 5 * 60, # 默认(new)
- 'CONNECTION_TOKEN_EXPIRATION': 5 * 60, # 默认(old)
+ 'CONNECTION_TOKEN_EXPIRATION': 5 * 60, # 默认(old)
'CONNECTION_TOKEN_REUSABLE_EXPIRATION': 60 * 60 * 24 * 30, # 最大(new)
'CONNECTION_TOKEN_EXPIRATION_MAX': 60 * 60 * 24 * 30, # 最大(old)
diff --git a/apps/jumpserver/context_processor.py b/apps/jumpserver/context_processor.py
index 9966228dc..7b92674bb 100644
--- a/apps/jumpserver/context_processor.py
+++ b/apps/jumpserver/context_processor.py
@@ -2,7 +2,7 @@
#
from django.conf import settings
from django.templatetags.static import static
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
default_interface = dict((
('logo_logout', static('img/logo.png')),
diff --git a/apps/jumpserver/settings/base.py b/apps/jumpserver/settings/base.py
index 2bc547e57..9d60aa9a9 100644
--- a/apps/jumpserver/settings/base.py
+++ b/apps/jumpserver/settings/base.py
@@ -6,7 +6,7 @@ from redis.sentinel import SentinelManagedSSLConnection
if platform.system() == 'Darwin' and platform.machine() == 'arm64':
import pymysql
- pymysql.version_info = (1, 4, 2, "final", 0)
+ # pymysql.version_info = (1, 4, 2, "final", 0)
pymysql.install_as_MySQLdb()
from django.urls import reverse_lazy
diff --git a/apps/jumpserver/views/celery_flower.py b/apps/jumpserver/views/celery_flower.py
index 3d98d3bef..fd6d3fac6 100644
--- a/apps/jumpserver/views/celery_flower.py
+++ b/apps/jumpserver/views/celery_flower.py
@@ -1,10 +1,9 @@
# -*- coding: utf-8 -*-
#
-from django.http import HttpResponse
from django.conf import settings
-from django.utils.translation import ugettext as _
+from django.http import HttpResponse
+from django.utils.translation import gettext as _
from django.views.decorators.csrf import csrf_exempt
-
from proxy.views import proxy_view
flower_url = settings.FLOWER_URL
@@ -24,4 +23,3 @@ def celery_flower_view(request, path):
'