Commit 3b6403b2 authored by ibuler's avatar ibuler

[Update] 修改一些翻译

parent c48531c5
...@@ -171,7 +171,7 @@ class AdminUserForm(forms.ModelForm): ...@@ -171,7 +171,7 @@ class AdminUserForm(forms.ModelForm):
password = forms.CharField( password = forms.CharField(
widget=forms.PasswordInput, max_length=128, widget=forms.PasswordInput, max_length=128,
strip=True, required=False, strip=True, required=False,
help_text=_('If also set private key, use that first'), help_text=_('Password or private key password'),
) )
# Need use upload private key file except paste private key content # Need use upload private key file except paste private key content
private_key_file = forms.FileField(required=False) private_key_file = forms.FileField(required=False)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
{% load i18n %} {% load i18n %}
{% block modal_id %}asset_group_bulk_update_modal{% endblock %} {% block modal_id %}asset_group_bulk_update_modal{% endblock %}
{% block modal_class %}modal-lg{% endblock %} {% block modal_class %}modal-lg{% endblock %}
{% block modal_title%}{% trans "Update asset sroup" %}{% endblock %} {% block modal_title%}{% trans "Update asset group" %}{% endblock %}
{% block modal_body %} {% block modal_body %}
{% load bootstrap3 %} {% load bootstrap3 %}
<p class="text-success text-center">{% trans "Hint: only change the field you want to update." %}</p> <p class="text-success text-center">{% trans "Hint: only change the field you want to update." %}</p>
......
...@@ -9,16 +9,6 @@ ...@@ -9,16 +9,6 @@
{% block content_left_head %}{% endblock %} {% block content_left_head %}{% endblock %}
{% block table_search %} {% block table_search %}
<div class="html5buttons">
<div class="dt-buttons btn-group">
<a class="btn btn-default btn_import" data-toggle="modal" data-target="#asset_import_modal" tabindex="0">
<span>{% trans "Import" %}</span>
</a>
<a class="btn btn-default btn_export" tabindex="0">
<span>{% trans "Export" %}</span>
</a>
</div>
</div>
{% endblock %} {% endblock %}
{% block table_container %} {% block table_container %}
......
...@@ -41,8 +41,8 @@ class AdminUserCreateView(AdminUserRequiredMixin, ...@@ -41,8 +41,8 @@ class AdminUserCreateView(AdminUserRequiredMixin,
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'assets', 'app': _('Assets'),
'action': 'Create admin user' 'action': _('Create admin user')
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
...@@ -64,8 +64,8 @@ class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView): ...@@ -64,8 +64,8 @@ class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'assets', 'app': _('Assets'),
'action': 'Update admin user' 'action': _('Update admin user'),
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
...@@ -85,8 +85,8 @@ class AdminUserDetailView(AdminUserRequiredMixin, DetailView): ...@@ -85,8 +85,8 @@ class AdminUserDetailView(AdminUserRequiredMixin, DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
cluster_remain = Cluster.objects.exclude(admin_user=self.object) cluster_remain = Cluster.objects.exclude(admin_user=self.object)
context = { context = {
'app': 'assets', 'app': _('Assets'),
'action': 'Admin user detail', 'action': _('Admin user detail'),
'cluster_remain': cluster_remain, 'cluster_remain': cluster_remain,
} }
kwargs.update(context) kwargs.update(context)
...@@ -112,8 +112,8 @@ class AdminUserAssetsView(AdminUserRequiredMixin, SingleObjectMixin, ListView): ...@@ -112,8 +112,8 @@ class AdminUserAssetsView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'assets', 'app': _('Assets'),
'action': 'Admin user detail', 'action': _('Admin user detail'),
"total_amount": len(self.queryset), "total_amount": len(self.queryset),
'unreachable_amount': len([asset for asset in self.queryset if asset.is_connective is False]) 'unreachable_amount': len([asset for asset in self.queryset if asset.is_connective is False])
} }
......
...@@ -81,8 +81,8 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView): ...@@ -81,8 +81,8 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Assets', 'app': _('Assets'),
'action': 'Create asset', 'action': _('Create asset'),
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
...@@ -138,8 +138,8 @@ class AssetBulkUpdateView(AdminUserRequiredMixin, ListView): ...@@ -138,8 +138,8 @@ class AssetBulkUpdateView(AdminUserRequiredMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Assets', 'app': _('Assets'),
'action': 'Bulk update asset', 'action': _('Bulk update asset'),
'form': self.form, 'form': self.form,
'assets_selected': self.id_list, 'assets_selected': self.id_list,
} }
...@@ -155,8 +155,8 @@ class AssetUpdateView(AdminUserRequiredMixin, UpdateView): ...@@ -155,8 +155,8 @@ class AssetUpdateView(AdminUserRequiredMixin, UpdateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Assets', 'app': _('Assets'),
'action': 'Update asset', 'action': _('Update asset'),
} }
kwargs.update(context) kwargs.update(context)
return super(AssetUpdateView, self).get_context_data(**kwargs) return super(AssetUpdateView, self).get_context_data(**kwargs)
...@@ -176,8 +176,8 @@ class AssetDetailView(DetailView): ...@@ -176,8 +176,8 @@ class AssetDetailView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
asset_groups = self.object.groups.all() asset_groups = self.object.groups.all()
context = { context = {
'app': 'Assets', 'app': _('Assets'),
'action': 'Asset detail', 'action': _('Asset detail'),
'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all() 'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all()
if asset_group not in asset_groups], if asset_group not in asset_groups],
'asset_groups': asset_groups, 'asset_groups': asset_groups,
......
...@@ -89,6 +89,7 @@ class BulkSerializerMixin(object): ...@@ -89,6 +89,7 @@ class BulkSerializerMixin(object):
class DatetimeSearchMixin: class DatetimeSearchMixin:
date_format = '%Y-%m-%d'
date_from = date_to = None date_from = date_to = None
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
...@@ -96,7 +97,7 @@ class DatetimeSearchMixin: ...@@ -96,7 +97,7 @@ class DatetimeSearchMixin:
date_to_s = self.request.GET.get('date_to') date_to_s = self.request.GET.get('date_to')
if date_from_s: if date_from_s:
date_from = timezone.datetime.strptime(date_from_s, '%m/%d/%Y') date_from = timezone.datetime.strptime(date_from_s, self.date_format)
self.date_from = date_from.replace( self.date_from = date_from.replace(
tzinfo=timezone.get_current_timezone() tzinfo=timezone.get_current_timezone()
) )
...@@ -105,7 +106,7 @@ class DatetimeSearchMixin: ...@@ -105,7 +106,7 @@ class DatetimeSearchMixin:
if date_to_s: if date_to_s:
date_to = timezone.datetime.strptime( date_to = timezone.datetime.strptime(
date_to_s + ' 23:59:59', '%m/%d/%Y %H:%M:%S' date_to_s + ' 23:59:59', self.date_format + ' %H:%M:%S'
) )
self.date_to = date_to.replace( self.date_to = date_to.replace(
tzinfo=timezone.get_current_timezone() tzinfo=timezone.get_current_timezone()
......
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n" "Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-01 00:34+0800\n" "POT-Creation-Date: 2018-01-01 14:59+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n" "Language-Team: Jumpserver team<ibuler@qq.com>\n"
...@@ -55,7 +55,7 @@ msgstr "选择资产" ...@@ -55,7 +55,7 @@ msgstr "选择资产"
#: assets/templates/assets/asset_list.html:32 #: assets/templates/assets/asset_list.html:32
#: assets/templates/assets/cluster_assets.html:53 #: assets/templates/assets/cluster_assets.html:53
#: assets/templates/assets/system_user_asset.html:54 #: assets/templates/assets/system_user_asset.html:54
#: assets/templates/assets/user_asset_list.html:31 #: assets/templates/assets/user_asset_list.html:21
#: perms/templates/perms/asset_permission_asset.html:56 #: perms/templates/perms/asset_permission_asset.html:56
#: users/templates/users/user_group_granted_asset.html:51 #: users/templates/users/user_group_granted_asset.html:51
msgid "Port" msgid "Port"
...@@ -105,8 +105,8 @@ msgid "Name" ...@@ -105,8 +105,8 @@ msgid "Name"
msgstr "名称" msgstr "名称"
#: assets/forms.py:174 #: assets/forms.py:174
msgid "If also set private key, use that first" msgid "Password or private key password"
msgstr "如果设置私钥,则优先使用密钥" msgstr "密码或秘钥不合法"
#: assets/forms.py:202 assets/forms.py:260 assets/forms.py:321 #: assets/forms.py:202 assets/forms.py:260 assets/forms.py:321
msgid "Invalid private key" msgid "Invalid private key"
...@@ -190,7 +190,7 @@ msgstr "测试环境" ...@@ -190,7 +190,7 @@ msgstr "测试环境"
#: assets/templates/assets/asset_list.html:31 #: assets/templates/assets/asset_list.html:31
#: assets/templates/assets/cluster_assets.html:52 #: assets/templates/assets/cluster_assets.html:52
#: assets/templates/assets/system_user_asset.html:53 #: assets/templates/assets/system_user_asset.html:53
#: assets/templates/assets/user_asset_list.html:30 #: assets/templates/assets/user_asset_list.html:20
#: perms/templates/perms/asset_permission_asset.html:55 #: perms/templates/perms/asset_permission_asset.html:55
#: users/templates/users/login_log_list.html:52 #: users/templates/users/login_log_list.html:52
#: users/templates/users/user_granted_asset.html:49 #: users/templates/users/user_granted_asset.html:49
...@@ -204,7 +204,7 @@ msgstr "IP" ...@@ -204,7 +204,7 @@ msgstr "IP"
#: assets/templates/assets/asset_list.html:30 #: assets/templates/assets/asset_list.html:30
#: assets/templates/assets/cluster_assets.html:51 #: assets/templates/assets/cluster_assets.html:51
#: assets/templates/assets/system_user_asset.html:52 #: assets/templates/assets/system_user_asset.html:52
#: assets/templates/assets/user_asset_list.html:29 #: assets/templates/assets/user_asset_list.html:19
#: perms/templates/perms/asset_permission_asset.html:54 #: perms/templates/perms/asset_permission_asset.html:54
#: users/templates/users/user_granted_asset.html:48 #: users/templates/users/user_granted_asset.html:48
#: users/templates/users/user_group_granted_asset.html:49 #: users/templates/users/user_group_granted_asset.html:49
...@@ -496,25 +496,23 @@ msgstr "推送系统用户到资产: {}" ...@@ -496,25 +496,23 @@ msgstr "推送系统用户到资产: {}"
msgid "Push system user to cluster assets period: {}->{}" msgid "Push system user to cluster assets period: {}->{}"
msgstr "定期推送系统用户到资产: {}->{}" msgstr "定期推送系统用户到资产: {}->{}"
#: assets/templates/assets/_asset_group_bulk_update_modal.html:5
#, fuzzy
#| msgid "Update asset group"
msgid "Update asset sroup"
msgstr "编辑资产组"
#: assets/templates/assets/_asset_group_bulk_update_modal.html:8 #: assets/templates/assets/_asset_group_bulk_update_modal.html:8
msgid "Hint: only change the field you want to update." msgid "Hint: only change the field you want to update."
msgstr "仅修改你需要更新的字段" msgstr "仅修改你需要更新的字段"
#: assets/templates/assets/_asset_group_bulk_update_modal.html:12 #: assets/templates/assets/_asset_group_bulk_update_modal.html:12
#: assets/templates/assets/system_user_asset.html:21 #: assets/templates/assets/system_user_asset.html:21
#: assets/views/admin_user.py:27 assets/views/asset.py:47 #: assets/views/admin_user.py:27 assets/views/admin_user.py:44
#: assets/views/asset.py:61 assets/views/cluster.py:22 #: assets/views/admin_user.py:67 assets/views/admin_user.py:88
#: assets/views/cluster.py:80 assets/views/cluster.py:97 #: assets/views/admin_user.py:115 assets/views/asset.py:47
#: assets/views/group.py:30 assets/views/group.py:53 assets/views/group.py:71 #: assets/views/asset.py:61 assets/views/asset.py:84 assets/views/asset.py:141
#: assets/views/group.py:93 assets/views/system_user.py:29 #: assets/views/asset.py:158 assets/views/asset.py:179
#: assets/views/system_user.py:48 assets/views/system_user.py:71 #: assets/views/cluster.py:22 assets/views/cluster.py:80
#: assets/views/system_user.py:91 templates/_nav.html:19 #: assets/views/cluster.py:97 assets/views/group.py:30 assets/views/group.py:53
#: assets/views/group.py:71 assets/views/group.py:93
#: assets/views/system_user.py:29 assets/views/system_user.py:48
#: assets/views/system_user.py:71 assets/views/system_user.py:91
#: templates/_nav.html:19
msgid "Assets" msgid "Assets"
msgstr "资产管理" msgstr "资产管理"
...@@ -647,8 +645,6 @@ msgstr "详情" ...@@ -647,8 +645,6 @@ msgstr "详情"
#: assets/templates/assets/admin_user_assets.html:21 #: assets/templates/assets/admin_user_assets.html:21
#: assets/templates/assets/admin_user_detail.html:21 #: assets/templates/assets/admin_user_detail.html:21
#, fuzzy
#| msgid "Asset list of "
msgid "Assets list" msgid "Assets list"
msgstr "资产列表" msgstr "资产列表"
...@@ -662,7 +658,7 @@ msgstr "资产列表" ...@@ -662,7 +658,7 @@ msgstr "资产列表"
#: assets/templates/assets/asset_group_detail.html:48 #: assets/templates/assets/asset_group_detail.html:48
#: assets/templates/assets/asset_list.html:34 #: assets/templates/assets/asset_list.html:34
#: assets/templates/assets/cluster_assets.html:54 #: assets/templates/assets/cluster_assets.html:54
#: assets/templates/assets/user_asset_list.html:32 #: assets/templates/assets/user_asset_list.html:22
#: users/templates/users/login_log_list.html:50 #: users/templates/users/login_log_list.html:50
msgid "Type" msgid "Type"
msgstr "类型" msgstr "类型"
...@@ -699,6 +695,7 @@ msgstr "任务已下发,查看左侧资产状态" ...@@ -699,6 +695,7 @@ msgstr "任务已下发,查看左侧资产状态"
#: assets/templates/assets/admin_user_create_update.html:16 #: assets/templates/assets/admin_user_create_update.html:16
#: assets/templates/assets/admin_user_list.html:14 #: assets/templates/assets/admin_user_list.html:14
#: assets/views/admin_user.py:45
msgid "Create admin user" msgid "Create admin user"
msgstr "创建管理用户" msgstr "创建管理用户"
...@@ -743,7 +740,7 @@ msgstr "不可达" ...@@ -743,7 +740,7 @@ msgstr "不可达"
#: assets/templates/assets/cluster_assets.html:56 #: assets/templates/assets/cluster_assets.html:56
#: assets/templates/assets/cluster_list.html:23 #: assets/templates/assets/cluster_list.html:23
#: assets/templates/assets/system_user_list.html:31 #: assets/templates/assets/system_user_list.html:31
#: assets/templates/assets/user_asset_list.html:37 #: assets/templates/assets/user_asset_list.html:27
#: ops/templates/ops/adhoc_history.html:59 ops/templates/ops/task_adhoc.html:61 #: ops/templates/ops/adhoc_history.html:59 ops/templates/ops/task_adhoc.html:61
#: ops/templates/ops/task_history.html:62 ops/templates/ops/task_list.html:46 #: ops/templates/ops/task_history.html:62 ops/templates/ops/task_list.html:46
#: perms/templates/perms/asset_permission_list.html:32 #: perms/templates/perms/asset_permission_list.html:32
...@@ -787,7 +784,8 @@ msgstr "删除" ...@@ -787,7 +784,8 @@ msgstr "删除"
msgid "Group" msgid "Group"
msgstr "组" msgstr "组"
#: assets/templates/assets/asset_detail.html:20 assets/views/cluster.py:98 #: assets/templates/assets/asset_detail.html:20 assets/views/asset.py:180
#: assets/views/cluster.py:98
msgid "Asset detail" msgid "Asset detail"
msgstr "资产详情" msgstr "资产详情"
...@@ -818,7 +816,7 @@ msgstr "快速修改" ...@@ -818,7 +816,7 @@ msgstr "快速修改"
#: assets/templates/assets/asset_detail.html:175 #: assets/templates/assets/asset_detail.html:175
#: assets/templates/assets/asset_list.html:37 #: assets/templates/assets/asset_list.html:37
#: assets/templates/assets/user_asset_list.html:35 perms/models.py:20 #: assets/templates/assets/user_asset_list.html:25 perms/models.py:20
#: perms/templates/perms/asset_permission_create_update.html:47 #: perms/templates/perms/asset_permission_create_update.html:47
#: terminal/templates/terminal/terminal_list.html:34 #: terminal/templates/terminal/terminal_list.html:34
#: users/templates/users/_select_user_modal.html:18 #: users/templates/users/_select_user_modal.html:18
...@@ -916,28 +914,26 @@ msgid "AssetGroup Updated" ...@@ -916,28 +914,26 @@ msgid "AssetGroup Updated"
msgstr "资产组更新" msgstr "资产组更新"
#: assets/templates/assets/asset_list.html:15 #: assets/templates/assets/asset_list.html:15
#: assets/templates/assets/user_asset_list.html:15
#: users/templates/users/user_list.html:7 #: users/templates/users/user_list.html:7
msgid "Import" msgid "Import"
msgstr "导入" msgstr "导入"
#: assets/templates/assets/asset_list.html:18 #: assets/templates/assets/asset_list.html:18
#: assets/templates/assets/user_asset_list.html:18
#: users/templates/users/user_list.html:10 #: users/templates/users/user_list.html:10
msgid "Export" msgid "Export"
msgstr "导出" msgstr "导出"
#: assets/templates/assets/asset_list.html:25 #: assets/templates/assets/asset_list.html:25 assets/views/asset.py:85
msgid "Create asset" msgid "Create asset"
msgstr "创建资产" msgstr "创建资产"
#: assets/templates/assets/asset_list.html:35 #: assets/templates/assets/asset_list.html:35
#: assets/templates/assets/user_asset_list.html:33 #: assets/templates/assets/user_asset_list.html:23
msgid "Env" msgid "Env"
msgstr "环境" msgstr "环境"
#: assets/templates/assets/asset_list.html:36 #: assets/templates/assets/asset_list.html:36
#: assets/templates/assets/user_asset_list.html:34 #: assets/templates/assets/user_asset_list.html:24
msgid "Hardware" msgid "Hardware"
msgstr "硬件" msgstr "硬件"
...@@ -1040,7 +1036,6 @@ msgstr "Cluster删除失败" ...@@ -1040,7 +1036,6 @@ msgstr "Cluster删除失败"
#: assets/templates/assets/delete_confirm.html:6 #: assets/templates/assets/delete_confirm.html:6
#: perms/templates/perms/delete_confirm.html:6 templates/delete_confirm.html:6 #: perms/templates/perms/delete_confirm.html:6 templates/delete_confirm.html:6
#: users/templates/users/user_delete_confirm.html:6
msgid "Confirm delete" msgid "Confirm delete"
msgstr "确认删除" msgstr "确认删除"
...@@ -1112,11 +1107,11 @@ msgstr "删除系统用户" ...@@ -1112,11 +1107,11 @@ msgstr "删除系统用户"
msgid "System Users Deleting failed." msgid "System Users Deleting failed."
msgstr "系统用户删除失败" msgstr "系统用户删除失败"
#: assets/templates/assets/user_asset_list.html:36 #: assets/templates/assets/user_asset_list.html:26
msgid "Connective" msgid "Connective"
msgstr "连接性" msgstr "连接性"
#: assets/templates/assets/user_asset_list.html:76 #: assets/templates/assets/user_asset_list.html:66
msgid "Connect" msgid "Connect"
msgstr "连接" msgstr "连接"
...@@ -1129,10 +1124,26 @@ msgstr "管理用户列表" ...@@ -1129,10 +1124,26 @@ msgstr "管理用户列表"
msgid "Create admin user <a href=\"{url}\">{name}</a> successfully." msgid "Create admin user <a href=\"{url}\">{name}</a> successfully."
msgstr "创建管理用户 <a href=\"{url}\">{name}</a> 成功" msgstr "创建管理用户 <a href=\"{url}\">{name}</a> 成功"
#: assets/views/admin_user.py:68
msgid "Update admin user"
msgstr "更新管理用户"
#: assets/views/admin_user.py:89 assets/views/admin_user.py:116
msgid "Admin user detail"
msgstr "管理用户详情"
#: assets/views/asset.py:48 assets/views/asset.py:62 #: assets/views/asset.py:48 assets/views/asset.py:62
msgid "Asset list" msgid "Asset list"
msgstr "资产列表" msgstr "资产列表"
#: assets/views/asset.py:142
msgid "Bulk update asset"
msgstr "批量更新资产"
#: assets/views/asset.py:159
msgid "Update asset"
msgstr "编辑资产"
#: assets/views/asset.py:292 #: assets/views/asset.py:292
msgid "already exists" msgid "already exists"
msgstr "已经存在" msgstr "已经存在"
...@@ -1281,7 +1292,7 @@ msgid "Version detail" ...@@ -1281,7 +1292,7 @@ msgid "Version detail"
msgstr "版本详情" msgstr "版本详情"
#: ops/templates/ops/adhoc_detail.html:22 #: ops/templates/ops/adhoc_detail.html:22
#: ops/templates/ops/adhoc_history.html:22 #: ops/templates/ops/adhoc_history.html:22 ops/views.py:121
msgid "Version run history" msgid "Version run history"
msgstr "执行历史" msgstr "执行历史"
...@@ -1353,7 +1364,7 @@ msgstr "失败/成功/总" ...@@ -1353,7 +1364,7 @@ msgstr "失败/成功/总"
msgid "Version" msgid "Version"
msgstr "版本" msgstr "版本"
#: ops/templates/ops/adhoc_history_detail.html:19 #: ops/templates/ops/adhoc_history_detail.html:19 ops/views.py:134
msgid "Run history detail" msgid "Run history detail"
msgstr "执行历史详情" msgstr "执行历史详情"
...@@ -1379,12 +1390,12 @@ msgid "Success assets" ...@@ -1379,12 +1390,12 @@ msgid "Success assets"
msgstr "成功资产" msgstr "成功资产"
#: ops/templates/ops/task_adhoc.html:19 ops/templates/ops/task_detail.html:19 #: ops/templates/ops/task_adhoc.html:19 ops/templates/ops/task_detail.html:19
#: ops/templates/ops/task_history.html:19 #: ops/templates/ops/task_history.html:19 ops/views.py:59
msgid "Task detail" msgid "Task detail"
msgstr "任务详情" msgstr "任务详情"
#: ops/templates/ops/task_adhoc.html:22 ops/templates/ops/task_detail.html:22 #: ops/templates/ops/task_adhoc.html:22 ops/templates/ops/task_detail.html:22
#: ops/templates/ops/task_history.html:22 #: ops/templates/ops/task_history.html:22 ops/views.py:72
msgid "Task versions" msgid "Task versions"
msgstr "任务各版本" msgstr "任务各版本"
...@@ -1435,10 +1446,19 @@ msgstr "成功" ...@@ -1435,10 +1446,19 @@ msgstr "成功"
msgid "Date" msgid "Date"
msgstr "日期" msgstr "日期"
#: ops/views.py:42 ops/views.py:58 ops/views.py:71 ops/views.py:84
#: ops/views.py:107 ops/views.py:120 ops/views.py:133
msgid "Ops"
msgstr "作业中心"
#: ops/views.py:43 #: ops/views.py:43
msgid "Task list" msgid "Task list"
msgstr "任务列表" msgstr "任务列表"
#: ops/views.py:85
msgid "Task run history"
msgstr "执行历史"
#: perms/forms.py:16 users/forms.py:144 users/forms.py:149 users/forms.py:161 #: perms/forms.py:16 users/forms.py:144 users/forms.py:149 users/forms.py:161
#: users/forms.py:190 #: users/forms.py:190
msgid "Select users" msgid "Select users"
...@@ -1451,7 +1471,7 @@ msgstr "选择用户" ...@@ -1451,7 +1471,7 @@ msgstr "选择用户"
#: terminal/models.py:92 terminal/templates/terminal/command_list.html:32 #: terminal/models.py:92 terminal/templates/terminal/command_list.html:32
#: terminal/templates/terminal/command_list.html:72 #: terminal/templates/terminal/command_list.html:72
#: terminal/templates/terminal/session_list.html:33 #: terminal/templates/terminal/session_list.html:33
#: terminal/templates/terminal/session_list.html:71 #: terminal/templates/terminal/session_list.html:71 users/models/user.py:31
#: users/templates/users/user_group_detail.html:78 users/views/user.py:348 #: users/templates/users/user_group_detail.html:78 users/views/user.py:348
msgid "User" msgid "User"
msgstr "用户" msgstr "用户"
...@@ -1623,7 +1643,7 @@ msgid "Update asset permission" ...@@ -1623,7 +1643,7 @@ msgid "Update asset permission"
msgstr "更新资产授权" msgstr "更新资产授权"
#: perms/views.py:115 #: perms/views.py:115
#, fuzzy, python-brace-format #, python-brace-format
msgid "Update asset permission <a href=\"{url}\"> {name} </a> success." msgid "Update asset permission <a href=\"{url}\"> {name} </a> success."
msgstr "更新授权 <a href=\"{url}\"> {name} </a> 成功" msgstr "更新授权 <a href=\"{url}\"> {name} </a> 成功"
...@@ -1674,10 +1694,17 @@ msgstr "" ...@@ -1674,10 +1694,17 @@ msgstr ""
" " " "
#: templates/_message.html:16 #: templates/_message.html:16
#, python-format
msgid "" msgid ""
"Your ssh public key not set or expired. Please click <a href=" "\n"
"\"{{ user_pubkey_update }}\"> this link </a>to update your" " Your ssh public key not set or expired. Please click <a href="
msgstr "您的ssh秘钥没有设置或已失效,请点击 <a href={{ user_pubkey_update}} > 链接 </a> 更新" "\"%(user_pubkey_update)s\"> this link </a>to update\n"
" "
msgstr ""
"\n"
" 您的ssh秘钥没有设置或已失效,请点击 <a href="
"\"%(user_pubkey_update)s\"> 链接 </a> 更新\n"
" "
#: templates/_modal.html:15 #: templates/_modal.html:15
msgid "Close" msgid "Close"
...@@ -1685,7 +1712,7 @@ msgstr "关闭" ...@@ -1685,7 +1712,7 @@ msgstr "关闭"
#: templates/_nav.html:9 users/views/group.py:30 users/views/group.py:46 #: templates/_nav.html:9 users/views/group.py:30 users/views/group.py:46
#: users/views/group.py:72 users/views/group.py:89 users/views/login.py:192 #: users/views/group.py:72 users/views/group.py:89 users/views/login.py:192
#: users/views/login.py:242 users/views/user.py:55 users/views/user.py:70 #: users/views/login.py:241 users/views/user.py:55 users/views/user.py:70
#: users/views/user.py:95 users/views/user.py:151 users/views/user.py:308 #: users/views/user.py:95 users/views/user.py:151 users/views/user.py:308
#: users/views/user.py:322 users/views/user.py:366 users/views/user.py:388 #: users/views/user.py:322 users/views/user.py:366 users/views/user.py:388
msgid "Users" msgid "Users"
...@@ -1704,15 +1731,13 @@ msgid "Job Center" ...@@ -1704,15 +1731,13 @@ msgid "Job Center"
msgstr "作业中心" msgstr "作业中心"
#: templates/_nav.html:42 #: templates/_nav.html:42
#, fuzzy
#| msgid "Tasks"
msgid "Task" msgid "Task"
msgstr "任务" msgstr "任务"
#: templates/_nav.html:47 templates/_nav.html:50 templates/_nav_user.html:14 #: templates/_nav.html:47 templates/_nav.html:50
#: terminal/templates/terminal/session_list.html:74 #: terminal/templates/terminal/session_list.html:74
#: terminal/views/command.py:48 terminal/views/session.py:78 #: terminal/views/command.py:47 terminal/views/session.py:77
#: terminal/views/session.py:95 terminal/views/session.py:117 #: terminal/views/session.py:94 terminal/views/session.py:116
#: terminal/views/terminal.py:31 terminal/views/terminal.py:46 #: terminal/views/terminal.py:31 terminal/views/terminal.py:46
#: terminal/views/terminal.py:58 #: terminal/views/terminal.py:58
msgid "Terminal" msgid "Terminal"
...@@ -1756,16 +1781,12 @@ msgid "Profile settings" ...@@ -1756,16 +1781,12 @@ msgid "Profile settings"
msgstr "个人信息设置" msgstr "个人信息设置"
#: templates/_user_profile.html:24 #: templates/_user_profile.html:24
#, fuzzy
#| msgid "Admin user"
msgid "Admin page" msgid "Admin page"
msgstr "管理用户" msgstr "管理页面"
#: templates/_user_profile.html:26 #: templates/_user_profile.html:26
#, fuzzy
#| msgid "User agent"
msgid "User page" msgid "User page"
msgstr "Agent" msgstr "用户页面"
#: templates/captcha/image.html:3 #: templates/captcha/image.html:3
msgid "Play CAPTCHA as audio file" msgid "Play CAPTCHA as audio file"
...@@ -1845,10 +1866,8 @@ msgid "Replay" ...@@ -1845,10 +1866,8 @@ msgid "Replay"
msgstr "回放" msgstr "回放"
#: terminal/models.py:101 #: terminal/models.py:101
#, fuzzy
#| msgid "Date joined"
msgid "Date end" msgid "Date end"
msgstr "创建日期" msgstr "结束日期"
#: terminal/models.py:118 #: terminal/models.py:118
msgid "Args" msgid "Args"
...@@ -1859,12 +1878,12 @@ msgid "Goto" ...@@ -1859,12 +1878,12 @@ msgid "Goto"
msgstr "" msgstr ""
#: terminal/templates/terminal/session_detail.html:17 #: terminal/templates/terminal/session_detail.html:17
#: terminal/views/session.py:118 #: terminal/views/session.py:117
msgid "Session detail" msgid "Session detail"
msgstr "会话详情" msgstr "会话详情"
#: terminal/templates/terminal/session_detail.html:28 #: terminal/templates/terminal/session_detail.html:28
#: terminal/views/command.py:49 #: terminal/views/command.py:48
msgid "Command list" msgid "Command list"
msgstr "命令记录列表" msgstr "命令记录列表"
...@@ -1948,19 +1967,19 @@ msgstr "接受终端注册" ...@@ -1948,19 +1967,19 @@ msgstr "接受终端注册"
msgid "Info" msgid "Info"
msgstr "信息" msgstr "信息"
#: terminal/views/session.py:55 #: terminal/views/session.py:54
msgid "Audits" msgid "Audits"
msgstr "审计中心" msgstr "审计中心"
#: terminal/views/session.py:56 #: terminal/views/session.py:55
msgid "Proxy log list" msgid "Proxy log list"
msgstr "Session列表" msgstr "Session列表"
#: terminal/views/session.py:79 #: terminal/views/session.py:78
msgid "Session online list" msgid "Session online list"
msgstr "在线会话" msgstr "在线会话"
#: terminal/views/session.py:96 #: terminal/views/session.py:95
msgid "Session offline list" msgid "Session offline list"
msgstr "离线会话" msgstr "离线会话"
...@@ -2104,6 +2123,14 @@ msgstr "Agent" ...@@ -2104,6 +2123,14 @@ msgstr "Agent"
msgid "Date login" msgid "Date login"
msgstr "登录日期" msgstr "登录日期"
#: users/models/user.py:30 users/models/user.py:255
msgid "Administrator"
msgstr "管理员"
#: users/models/user.py:32
msgid "Application"
msgstr "应用程序"
#: users/models/user.py:39 users/templates/users/_select_user_modal.html:15 #: users/models/user.py:39 users/templates/users/_select_user_modal.html:15
#: users/templates/users/user_detail.html:86 #: users/templates/users/user_detail.html:86
#: users/templates/users/user_list.html:25 #: users/templates/users/user_list.html:25
...@@ -2134,10 +2161,6 @@ msgstr "ssh私钥" ...@@ -2134,10 +2161,6 @@ msgstr "ssh私钥"
msgid "Public key" msgid "Public key"
msgstr "ssh公钥" msgstr "ssh公钥"
#: users/models/user.py:255
msgid "Administrator"
msgstr "管理员"
#: users/models/user.py:258 #: users/models/user.py:258
msgid "Administrator is the super user of system" msgid "Administrator is the super user of system"
msgstr "Administrator是初始的超级管理员" msgstr "Administrator是初始的超级管理员"
...@@ -2592,7 +2615,7 @@ msgstr "密码不一致" ...@@ -2592,7 +2615,7 @@ msgstr "密码不一致"
msgid "First login" msgid "First login"
msgstr "首次登陆" msgstr "首次登陆"
#: users/views/login.py:243 #: users/views/login.py:242
msgid "Login log list" msgid "Login log list"
msgstr "登录日志" msgstr "登录日志"
...@@ -2628,3 +2651,6 @@ msgstr "密码更新" ...@@ -2628,3 +2651,6 @@ msgstr "密码更新"
#: users/views/user.py:389 #: users/views/user.py:389
msgid "Public key update" msgid "Public key update"
msgstr "秘钥更新" msgstr "秘钥更新"
#~ msgid "If also set private key, use that first"
#~ msgstr "如果设置私钥,则优先使用密钥"
...@@ -16,13 +16,13 @@ ...@@ -16,13 +16,13 @@
<div class="form-group" id="date"> <div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker"> <div class="input-daterange input-group" id="datepicker">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y" }}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d' }}">
<span class="input-group-addon">to</span> <span class="input-group-addon">to</span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y" }}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d' }}">
</div> </div>
</div> </div>
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans "Search" %}" value="{{ keyword }}"> <input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans 'Search' %}" value="{{ keyword }}">
</div> </div>
<div class="input-group"> <div class="input-group">
<div class="input-group-btn"> <div class="input-group-btn">
...@@ -94,9 +94,11 @@ $(document).ready(function() { ...@@ -94,9 +94,11 @@ $(document).ready(function() {
width: 'auto' width: 'auto'
}); });
$('#date .input-daterange').datepicker({ $('#date .input-daterange').datepicker({
dateFormat: 'mm/dd/yy', format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false, keyboardNavigation: false,
forceParse: false, forceParse: false,
calendarWeeks: true,
autoclose: true autoclose: true
}); });
......
...@@ -20,7 +20,6 @@ class TaskListView(DatetimeSearchMixin, ListView): ...@@ -20,7 +20,6 @@ class TaskListView(DatetimeSearchMixin, ListView):
ordering = ('-date_created',) ordering = ('-date_created',)
context_object_name = 'task_list' context_object_name = 'task_list'
template_name = 'ops/task_list.html' template_name = 'ops/task_list.html'
date_format = '%m/%d/%Y'
keyword = '' keyword = ''
def get_queryset(self): def get_queryset(self):
...@@ -39,7 +38,7 @@ class TaskListView(DatetimeSearchMixin, ListView): ...@@ -39,7 +38,7 @@ class TaskListView(DatetimeSearchMixin, ListView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Ops', 'app': _('Ops'),
'action': _('Task list'), 'action': _('Task list'),
'date_from': self.date_from, 'date_from': self.date_from,
'date_to': self.date_to, 'date_to': self.date_to,
...@@ -55,8 +54,8 @@ class TaskDetailView(DetailView): ...@@ -55,8 +54,8 @@ class TaskDetailView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Ops', 'app': _('Ops'),
'action': 'Task detail', 'action': _('Task detail'),
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
...@@ -68,8 +67,8 @@ class TaskAdhocView(DetailView): ...@@ -68,8 +67,8 @@ class TaskAdhocView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Ops', 'app': _('Ops'),
'action': 'Task versions', 'action': _('Task versions'),
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
...@@ -81,8 +80,8 @@ class TaskHistoryView(DetailView): ...@@ -81,8 +80,8 @@ class TaskHistoryView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Ops', 'app': _('Ops'),
'action': 'Task run history', 'action': _('Task run history'),
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
...@@ -104,7 +103,7 @@ class AdHocDetailView(DetailView): ...@@ -104,7 +103,7 @@ class AdHocDetailView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Ops', 'app': _('Ops'),
'action': 'Task version detail', 'action': 'Task version detail',
} }
kwargs.update(context) kwargs.update(context)
...@@ -117,8 +116,8 @@ class AdHocHistoryView(DetailView): ...@@ -117,8 +116,8 @@ class AdHocHistoryView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Ops', 'app': _('Ops'),
'action': 'Version run history', 'action': _('Version run history'),
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
...@@ -130,8 +129,8 @@ class AdHocHistoryDetailView(DetailView): ...@@ -130,8 +129,8 @@ class AdHocHistoryDetailView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = { context = {
'app': 'Ops', 'app': _('Ops'),
'action': 'Run history detail', 'action': _('Run history detail'),
} }
kwargs.update(context) kwargs.update(context)
return super().get_context_data(**kwargs) return super().get_context_data(**kwargs)
\ No newline at end of file
...@@ -280,16 +280,16 @@ jumpserver.initDataTable = function (options) { ...@@ -280,16 +280,16 @@ jumpserver.initDataTable = function (options) {
language: { language: {
search: "搜索", search: "搜索",
lengthMenu: "每页 _MENU_", lengthMenu: "每页 _MENU_",
info: "显示第 _START_ 到 _END_; 总共 _TOTAL_ ", info: "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项",
infoFiltered: "", infoFiltered: "",
infoEmpty: "", infoEmpty: "",
zeroRecords: "没有匹配记录", zeroRecords: "没有匹配",
emptyTable: "没有记录", emptyTable: "没有记录",
paginate: { paginate: {
first: "第一页", first: "«",
previous: "上一页", previous: "",
next: "下一页", next: "",
last: "最后" last: "»"
} }
}, },
lengthMenu: [[15, 25, 50, -1], [15, 25, 50, "All"]] lengthMenu: [[15, 25, 50, -1], [15, 25, 50, "All"]]
......
...@@ -13,7 +13,9 @@ ...@@ -13,7 +13,9 @@
{% if user.is_authenticated and not user.is_public_key_valid %} {% if user.is_authenticated and not user.is_public_key_valid %}
<div class="alert alert-danger help-message"> <div class="alert alert-danger help-message">
{% url 'users:user-pubkey-update' as user_pubkey_update %} {% url 'users:user-pubkey-update' as user_pubkey_update %}
{% trans 'Your ssh public key not set or expired. Please click <a href="{{ user_pubkey_update }}"> this link </a>to update' %} {% blocktrans %}
Your ssh public key not set or expired. Please click <a href="{{ user_pubkey_update }}"> this link </a>to update
{% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
......
...@@ -9,11 +9,6 @@ ...@@ -9,11 +9,6 @@
<i class="fa fa-user" ></i> <span class="nav-label">{% trans 'Profile' %}</span><span class="label label-info pull-right"></span> <i class="fa fa-user" ></i> <span class="nav-label">{% trans 'Profile' %}</span><span class="label label-info pull-right"></span>
</a> </a>
</li> </li>
<li id="terminal">
<a href="{% url 'terminal:terminal-list' %}">
<i class="fa fa-terminal" ></i> <span class="nav-label">{% trans 'Terminal' %}</span><span class="label label-info pull-right"></span>
</a>
</li>
<li class="special_link"> <li class="special_link">
<a href="http://www.jumpserver.org" target="_blank"><i class="fa fa-database"></i> <a href="http://www.jumpserver.org" target="_blank"><i class="fa fa-database"></i>
<span class="nav-label">访问官网</span> <span class="nav-label">访问官网</span>
......
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
<div class="form-group" id="date"> <div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker"> <div class="input-daterange input-group" id="datepicker">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y" }}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d' }}">
<span class="input-group-addon">to</span> <span class="input-group-addon">to</span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y" }}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d' }}">
</div> </div>
</div> </div>
<div class="input-group"> <div class="input-group">
...@@ -105,9 +105,11 @@ ...@@ -105,9 +105,11 @@
width: 'auto' width: 'auto'
}); });
$('#date .input-daterange').datepicker({ $('#date .input-daterange').datepicker({
dateFormat: 'mm/dd/yy', format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false, keyboardNavigation: false,
forceParse: false, forceParse: false,
calendarWeeks: true,
autoclose: true autoclose: true
}); });
}); });
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
{% load common_tags %} {% load common_tags %}
{% block custom_head_css_js %} {% block custom_head_css_js %}
<link href="{% static 'css/plugins/datepicker/datepicker3.css' %}" rel="stylesheet"> <link href="{% static 'css/plugins/datepicker/datepicker3.css' %}" rel="stylesheet">
<link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet"> <link href="{% static 'css/plugins/select2/select2.min.css' %}" rel="stylesheet">
<script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script> <script src="{% static 'js/plugins/select2/select2.full.min.js' %}"></script>
<style> <style>
#search_btn { #search_btn {
margin-bottom: 0; margin-bottom: 0;
...@@ -23,9 +23,9 @@ ...@@ -23,9 +23,9 @@
<div class="form-group" id="date"> <div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker"> <div class="input-daterange input-group" id="datepicker">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y" }}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d' }}">
<span class="input-group-addon">to</span> <span class="input-group-addon">to</span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y" }}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d' }}">
</div> </div>
</div> </div>
<div class="input-group"> <div class="input-group">
...@@ -135,10 +135,12 @@ ...@@ -135,10 +135,12 @@
dropdownAutoWidth: true, dropdownAutoWidth: true,
width: "auto" width: "auto"
}); });
$('#date .input-daterange').datepicker({ $('.input-daterange.input-group').datepicker({
dateFormat: 'mm/dd/yy', format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false, keyboardNavigation: false,
forceParse: false, forceParse: false,
calendarWeeks: true,
autoclose: true autoclose: true
}); });
}).on('click', '.btn-term', function () { }).on('click', '.btn-term', function () {
......
...@@ -22,7 +22,6 @@ class CommandListView(DatetimeSearchMixin, ListView): ...@@ -22,7 +22,6 @@ class CommandListView(DatetimeSearchMixin, ListView):
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
command = user = asset = system_user = "" command = user = asset = system_user = ""
date_from = date_to = None date_from = date_to = None
date_format = '%m/%d/%Y'
def get_queryset(self): def get_queryset(self):
self.command = self.request.GET.get('command', '') self.command = self.request.GET.get('command', '')
......
...@@ -29,7 +29,6 @@ class SessionListView(AdminUserRequiredMixin, DatetimeSearchMixin, ListView): ...@@ -29,7 +29,6 @@ class SessionListView(AdminUserRequiredMixin, DatetimeSearchMixin, ListView):
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
user = asset = system_user = '' user = asset = system_user = ''
date_from = date_to = None date_from = date_to = None
date_format = '%m/%d/%Y'
def get_queryset(self): def get_queryset(self):
self.queryset = super().get_queryset() self.queryset = super().get_queryset()
......
...@@ -20,7 +20,7 @@ __all__ = [ ...@@ -20,7 +20,7 @@ __all__ = [
] ]
class TerminalListView(LoginRequiredMixin, ListView): class TerminalListView(AdminUserRequiredMixin, ListView):
model = Terminal model = Terminal
template_name = 'terminal/terminal_list.html' template_name = 'terminal/terminal_list.html'
form_class = TerminalForm form_class = TerminalForm
......
...@@ -20,7 +20,7 @@ from common.utils import get_logger ...@@ -20,7 +20,7 @@ from common.utils import get_logger
logger = get_logger(__name__) logger = get_logger(__name__)
class UserViewSet(BulkModelViewSet): class UserViewSet(IDInFilterMixin, BulkModelViewSet):
queryset = User.objects.exclude(role="App") queryset = User.objects.exclude(role="App")
# queryset = User.objects.all().exclude(role="App").order_by("date_joined") # queryset = User.objects.all().exclude(role="App").order_by("date_joined")
serializer_class = UserSerializer serializer_class = UserSerializer
......
...@@ -27,9 +27,9 @@ class User(AbstractUser): ...@@ -27,9 +27,9 @@ class User(AbstractUser):
ROLE_APP = 'App' ROLE_APP = 'App'
ROLE_CHOICES = ( ROLE_CHOICES = (
(ROLE_ADMIN, 'Administrator'), (ROLE_ADMIN, _('Administrator')),
(ROLE_USER, 'User'), (ROLE_USER, _('User')),
(ROLE_APP, 'Application') (ROLE_APP, _('Application'))
) )
id = models.UUIDField(default=uuid.uuid4, primary_key=True) id = models.UUIDField(default=uuid.uuid4, primary_key=True)
username = models.CharField(max_length=128, unique=True, verbose_name=_('Username')) username = models.CharField(max_length=128, unique=True, verbose_name=_('Username'))
......
...@@ -17,10 +17,10 @@ ...@@ -17,10 +17,10 @@
<div class="form-group" id="date"> <div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker"> <div class="input-daterange input-group" id="datepicker">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:"m/d/Y"}}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" value="{{ date_from|date:'Y-m-d'}}">
{# <input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" >#} {# <input type="text" class="input-sm form-control" style="width: 100px;" name="date_from" >#}
<span class="input-group-addon">to</span> <span class="input-group-addon">to</span>
<input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:"m/d/Y"}}"> <input type="text" class="input-sm form-control" style="width: 100px;" name="date_to" value="{{ date_to|date:'Y-m-d'}}">
</div> </div>
</div> </div>
<div class="input-group"> <div class="input-group">
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</select> </select>
</div> </div>
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans "Search" %}" value="{{ keyword }}"> <input type="text" class="form-control input-sm" name="keyword" placeholder="{% trans 'Search' %}" value="{{ keyword }}">
</div> </div>
<div class="input-group"> <div class="input-group">
<div class="input-group-btn"> <div class="input-group-btn">
...@@ -81,9 +81,11 @@ ...@@ -81,9 +81,11 @@
"order": [] "order": []
}); });
$('#date .input-daterange').datepicker({ $('#date .input-daterange').datepicker({
dateFormat: "mm/dd/yyy", format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false, keyboardNavigation: false,
forceParse: false, forceParse: false,
calendarWeeks: true,
autoclose: true autoclose: true
}); });
......
{% load i18n %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% trans 'Confirm delete' %}</title>
</head>
<body>
<form action="" method="post">
{% csrf_token %}
<p>Are you sure you want to delete "{{ object.name }}"?</p>
<input type="submit" value="Confirm" />
</form>
</body>
</html>
\ No newline at end of file
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
{% load i18n %} {% load i18n %}
{% block custom_head_css_js %} {% block custom_head_css_js %}
<link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet"> <link href="{% static 'css/plugins/select2/select2.min.css' %}" rel="stylesheet">
<script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script> <script src="{% static 'js/plugins/select2/select2.full.min.js' %}"></script>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="wrapper wrapper-content animated fadeInRight"> <div class="wrapper wrapper-content animated fadeInRight">
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</ul> </ul>
</div> </div>
<div class="tab-content"> <div class="tab-content">
<div class="col-sm-7" style="padding-left: 0;"> <div class="col-sm-6" style="padding-left: 0;">
<div class="ibox float-e-margins"> <div class="ibox float-e-margins">
<div class="ibox-title"> <div class="ibox-title">
<span style="float: left">{% trans 'Assets granted of ' %} <b>{{ user.name }}</b></span> <span style="float: left">{% trans 'Assets granted of ' %} <b>{{ user.name }}</b></span>
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-sm-5" style="padding-left: 0;padding-right: 0"> <div class="col-sm-6" style="padding-left: 0;padding-right: 0">
<div class="ibox float-e-margins"> <div class="ibox float-e-margins">
<div class="ibox-title"> <div class="ibox-title">
<span style="float: left">{% trans 'Asset groups granted of ' %} <b>{{ user.name }}</b></span> <span style="float: left">{% trans 'Asset groups granted of ' %} <b>{{ user.name }}</b></span>
......
...@@ -217,7 +217,6 @@ class LoginLogListView(DatetimeSearchMixin, ListView): ...@@ -217,7 +217,6 @@ class LoginLogListView(DatetimeSearchMixin, ListView):
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
user = keyword = "" user = keyword = ""
date_to = date_from = None date_to = date_from = None
date_format = '%m/%d/%Y'
def get_queryset(self): def get_queryset(self):
self.user = self.request.GET.get('user', '') self.user = self.request.GET.get('user', '')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment