[Update] 修改一些翻译

pull/828/merge
ibuler 2018-01-01 15:08:33 +08:00
parent c48531c586
commit 3b6403b2f2
24 changed files with 170 additions and 167 deletions

View File

@ -171,7 +171,7 @@ class AdminUserForm(forms.ModelForm):
password = forms.CharField(
widget=forms.PasswordInput, max_length=128,
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
private_key_file = forms.FileField(required=False)

View File

@ -2,7 +2,7 @@
{% load i18n %}
{% block modal_id %}asset_group_bulk_update_modal{% 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 %}
{% load bootstrap3 %}
<p class="text-success text-center">{% trans "Hint: only change the field you want to update." %}</p>

View File

@ -9,16 +9,6 @@
{% block content_left_head %}{% endblock %}
{% 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 %}
{% block table_container %}

View File

@ -41,8 +41,8 @@ class AdminUserCreateView(AdminUserRequiredMixin,
def get_context_data(self, **kwargs):
context = {
'app': 'assets',
'action': 'Create admin user'
'app': _('Assets'),
'action': _('Create admin user')
}
kwargs.update(context)
return super().get_context_data(**kwargs)
@ -64,8 +64,8 @@ class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView):
def get_context_data(self, **kwargs):
context = {
'app': 'assets',
'action': 'Update admin user'
'app': _('Assets'),
'action': _('Update admin user'),
}
kwargs.update(context)
return super().get_context_data(**kwargs)
@ -85,8 +85,8 @@ class AdminUserDetailView(AdminUserRequiredMixin, DetailView):
def get_context_data(self, **kwargs):
cluster_remain = Cluster.objects.exclude(admin_user=self.object)
context = {
'app': 'assets',
'action': 'Admin user detail',
'app': _('Assets'),
'action': _('Admin user detail'),
'cluster_remain': cluster_remain,
}
kwargs.update(context)
@ -112,8 +112,8 @@ class AdminUserAssetsView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
def get_context_data(self, **kwargs):
context = {
'app': 'assets',
'action': 'Admin user detail',
'app': _('Assets'),
'action': _('Admin user detail'),
"total_amount": len(self.queryset),
'unreachable_amount': len([asset for asset in self.queryset if asset.is_connective is False])
}

View File

@ -81,8 +81,8 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView):
def get_context_data(self, **kwargs):
context = {
'app': 'Assets',
'action': 'Create asset',
'app': _('Assets'),
'action': _('Create asset'),
}
kwargs.update(context)
return super().get_context_data(**kwargs)
@ -138,8 +138,8 @@ class AssetBulkUpdateView(AdminUserRequiredMixin, ListView):
def get_context_data(self, **kwargs):
context = {
'app': 'Assets',
'action': 'Bulk update asset',
'app': _('Assets'),
'action': _('Bulk update asset'),
'form': self.form,
'assets_selected': self.id_list,
}
@ -155,8 +155,8 @@ class AssetUpdateView(AdminUserRequiredMixin, UpdateView):
def get_context_data(self, **kwargs):
context = {
'app': 'Assets',
'action': 'Update asset',
'app': _('Assets'),
'action': _('Update asset'),
}
kwargs.update(context)
return super(AssetUpdateView, self).get_context_data(**kwargs)
@ -176,8 +176,8 @@ class AssetDetailView(DetailView):
def get_context_data(self, **kwargs):
asset_groups = self.object.groups.all()
context = {
'app': 'Assets',
'action': 'Asset detail',
'app': _('Assets'),
'action': _('Asset detail'),
'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all()
if asset_group not in asset_groups],
'asset_groups': asset_groups,

View File

@ -89,6 +89,7 @@ class BulkSerializerMixin(object):
class DatetimeSearchMixin:
date_format = '%Y-%m-%d'
date_from = date_to = None
def get(self, request, *args, **kwargs):
@ -96,7 +97,7 @@ class DatetimeSearchMixin:
date_to_s = self.request.GET.get('date_to')
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(
tzinfo=timezone.get_current_timezone()
)
@ -105,7 +106,7 @@ class DatetimeSearchMixin:
if date_to_s:
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(
tzinfo=timezone.get_current_timezone()

Binary file not shown.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\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"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
@ -55,7 +55,7 @@ msgstr "选择资产"
#: assets/templates/assets/asset_list.html:32
#: assets/templates/assets/cluster_assets.html:53
#: 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
#: users/templates/users/user_group_granted_asset.html:51
msgid "Port"
@ -105,8 +105,8 @@ msgid "Name"
msgstr "名称"
#: assets/forms.py:174
msgid "If also set private key, use that first"
msgstr "如果设置私钥,则优先使用密钥"
msgid "Password or private key password"
msgstr "密码或秘不合法"
#: assets/forms.py:202 assets/forms.py:260 assets/forms.py:321
msgid "Invalid private key"
@ -190,7 +190,7 @@ msgstr "测试环境"
#: assets/templates/assets/asset_list.html:31
#: assets/templates/assets/cluster_assets.html:52
#: 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
#: users/templates/users/login_log_list.html:52
#: users/templates/users/user_granted_asset.html:49
@ -204,7 +204,7 @@ msgstr "IP"
#: assets/templates/assets/asset_list.html:30
#: assets/templates/assets/cluster_assets.html:51
#: 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
#: users/templates/users/user_granted_asset.html:48
#: users/templates/users/user_group_granted_asset.html:49
@ -496,25 +496,23 @@ msgstr "推送系统用户到资产: {}"
msgid "Push system user to cluster assets period: {}->{}"
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
msgid "Hint: only change the field you want to update."
msgstr "仅修改你需要更新的字段"
#: assets/templates/assets/_asset_group_bulk_update_modal.html:12
#: assets/templates/assets/system_user_asset.html:21
#: assets/views/admin_user.py:27 assets/views/asset.py:47
#: assets/views/asset.py:61 assets/views/cluster.py:22
#: assets/views/cluster.py:80 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
#: assets/views/admin_user.py:27 assets/views/admin_user.py:44
#: assets/views/admin_user.py:67 assets/views/admin_user.py:88
#: assets/views/admin_user.py:115 assets/views/asset.py:47
#: assets/views/asset.py:61 assets/views/asset.py:84 assets/views/asset.py:141
#: assets/views/asset.py:158 assets/views/asset.py:179
#: assets/views/cluster.py:22 assets/views/cluster.py:80
#: 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"
msgstr "资产管理"
@ -647,8 +645,6 @@ msgstr "详情"
#: assets/templates/assets/admin_user_assets.html:21
#: assets/templates/assets/admin_user_detail.html:21
#, fuzzy
#| msgid "Asset list of "
msgid "Assets list"
msgstr "资产列表"
@ -662,7 +658,7 @@ msgstr "资产列表"
#: assets/templates/assets/asset_group_detail.html:48
#: assets/templates/assets/asset_list.html:34
#: 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
msgid "Type"
msgstr "类型"
@ -699,6 +695,7 @@ msgstr "任务已下发,查看左侧资产状态"
#: assets/templates/assets/admin_user_create_update.html:16
#: assets/templates/assets/admin_user_list.html:14
#: assets/views/admin_user.py:45
msgid "Create admin user"
msgstr "创建管理用户"
@ -743,7 +740,7 @@ msgstr "不可达"
#: assets/templates/assets/cluster_assets.html:56
#: assets/templates/assets/cluster_list.html:23
#: 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/task_history.html:62 ops/templates/ops/task_list.html:46
#: perms/templates/perms/asset_permission_list.html:32
@ -787,7 +784,8 @@ msgstr "删除"
msgid "Group"
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"
msgstr "资产详情"
@ -818,7 +816,7 @@ msgstr "快速修改"
#: assets/templates/assets/asset_detail.html:175
#: 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
#: terminal/templates/terminal/terminal_list.html:34
#: users/templates/users/_select_user_modal.html:18
@ -916,28 +914,26 @@ msgid "AssetGroup Updated"
msgstr "资产组更新"
#: assets/templates/assets/asset_list.html:15
#: assets/templates/assets/user_asset_list.html:15
#: users/templates/users/user_list.html:7
msgid "Import"
msgstr "导入"
#: assets/templates/assets/asset_list.html:18
#: assets/templates/assets/user_asset_list.html:18
#: users/templates/users/user_list.html:10
msgid "Export"
msgstr "导出"
#: assets/templates/assets/asset_list.html:25
#: assets/templates/assets/asset_list.html:25 assets/views/asset.py:85
msgid "Create asset"
msgstr "创建资产"
#: 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"
msgstr "环境"
#: 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"
msgstr "硬件"
@ -1040,7 +1036,6 @@ msgstr "Cluster删除失败"
#: assets/templates/assets/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"
msgstr "确认删除"
@ -1112,11 +1107,11 @@ msgstr "删除系统用户"
msgid "System Users Deleting failed."
msgstr "系统用户删除失败"
#: assets/templates/assets/user_asset_list.html:36
#: assets/templates/assets/user_asset_list.html:26
msgid "Connective"
msgstr "连接性"
#: assets/templates/assets/user_asset_list.html:76
#: assets/templates/assets/user_asset_list.html:66
msgid "Connect"
msgstr "连接"
@ -1129,10 +1124,26 @@ msgstr "管理用户列表"
msgid "Create admin user <a href=\"{url}\">{name}</a> successfully."
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
msgid "Asset list"
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
msgid "already exists"
msgstr "已经存在"
@ -1281,7 +1292,7 @@ msgid "Version detail"
msgstr "版本详情"
#: 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"
msgstr "执行历史"
@ -1353,7 +1364,7 @@ msgstr "失败/成功/总"
msgid "Version"
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"
msgstr "执行历史详情"
@ -1379,12 +1390,12 @@ msgid "Success assets"
msgstr "成功资产"
#: 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"
msgstr "任务详情"
#: 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"
msgstr "任务各版本"
@ -1435,10 +1446,19 @@ msgstr "成功"
msgid "Date"
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
msgid "Task list"
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
#: users/forms.py:190
msgid "Select users"
@ -1451,7 +1471,7 @@ msgstr "选择用户"
#: terminal/models.py:92 terminal/templates/terminal/command_list.html:32
#: terminal/templates/terminal/command_list.html:72
#: 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
msgid "User"
msgstr "用户"
@ -1623,7 +1643,7 @@ msgid "Update asset permission"
msgstr "更新资产授权"
#: perms/views.py:115
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Update asset permission <a href=\"{url}\"> {name} </a> success."
msgstr "更新授权 <a href=\"{url}\"> {name} </a> 成功"
@ -1674,10 +1694,17 @@ msgstr ""
" "
#: templates/_message.html:16
#, python-format
msgid ""
"Your ssh public key not set or expired. Please click <a href="
"\"{{ user_pubkey_update }}\"> this link </a>to update your"
msgstr "您的ssh秘钥没有设置或已失效请点击 <a href={{ user_pubkey_update}} > 链接 </a> 更新"
"\n"
" Your ssh public key not set or expired. Please click <a href="
"\"%(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
msgid "Close"
@ -1685,7 +1712,7 @@ msgstr "关闭"
#: 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/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:322 users/views/user.py:366 users/views/user.py:388
msgid "Users"
@ -1704,15 +1731,13 @@ msgid "Job Center"
msgstr "作业中心"
#: templates/_nav.html:42
#, fuzzy
#| msgid "Tasks"
msgid "Task"
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/views/command.py:48 terminal/views/session.py:78
#: terminal/views/session.py:95 terminal/views/session.py:117
#: terminal/views/command.py:47 terminal/views/session.py:77
#: terminal/views/session.py:94 terminal/views/session.py:116
#: terminal/views/terminal.py:31 terminal/views/terminal.py:46
#: terminal/views/terminal.py:58
msgid "Terminal"
@ -1756,16 +1781,12 @@ msgid "Profile settings"
msgstr "个人信息设置"
#: templates/_user_profile.html:24
#, fuzzy
#| msgid "Admin user"
msgid "Admin page"
msgstr "管理用户"
msgstr "管理页面"
#: templates/_user_profile.html:26
#, fuzzy
#| msgid "User agent"
msgid "User page"
msgstr "Agent"
msgstr "用户页面"
#: templates/captcha/image.html:3
msgid "Play CAPTCHA as audio file"
@ -1845,10 +1866,8 @@ msgid "Replay"
msgstr "回放"
#: terminal/models.py:101
#, fuzzy
#| msgid "Date joined"
msgid "Date end"
msgstr "创建日期"
msgstr "结束日期"
#: terminal/models.py:118
msgid "Args"
@ -1859,12 +1878,12 @@ msgid "Goto"
msgstr ""
#: terminal/templates/terminal/session_detail.html:17
#: terminal/views/session.py:118
#: terminal/views/session.py:117
msgid "Session detail"
msgstr "会话详情"
#: terminal/templates/terminal/session_detail.html:28
#: terminal/views/command.py:49
#: terminal/views/command.py:48
msgid "Command list"
msgstr "命令记录列表"
@ -1948,19 +1967,19 @@ msgstr "接受终端注册"
msgid "Info"
msgstr "信息"
#: terminal/views/session.py:55
#: terminal/views/session.py:54
msgid "Audits"
msgstr "审计中心"
#: terminal/views/session.py:56
#: terminal/views/session.py:55
msgid "Proxy log list"
msgstr "Session列表"
#: terminal/views/session.py:79
#: terminal/views/session.py:78
msgid "Session online list"
msgstr "在线会话"
#: terminal/views/session.py:96
#: terminal/views/session.py:95
msgid "Session offline list"
msgstr "离线会话"
@ -2104,6 +2123,14 @@ msgstr "Agent"
msgid "Date login"
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/templates/users/user_detail.html:86
#: users/templates/users/user_list.html:25
@ -2134,10 +2161,6 @@ msgstr "ssh私钥"
msgid "Public key"
msgstr "ssh公钥"
#: users/models/user.py:255
msgid "Administrator"
msgstr "管理员"
#: users/models/user.py:258
msgid "Administrator is the super user of system"
msgstr "Administrator是初始的超级管理员"
@ -2592,7 +2615,7 @@ msgstr "密码不一致"
msgid "First login"
msgstr "首次登陆"
#: users/views/login.py:243
#: users/views/login.py:242
msgid "Login log list"
msgstr "登录日志"
@ -2628,3 +2651,6 @@ msgstr "密码更新"
#: users/views/user.py:389
msgid "Public key update"
msgstr "秘钥更新"
#~ msgid "If also set private key, use that first"
#~ msgstr "如果设置私钥,则优先使用密钥"

View File

@ -16,13 +16,13 @@
<div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker">
<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>
<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 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 class="input-group">
<div class="input-group-btn">
@ -94,9 +94,11 @@ $(document).ready(function() {
width: 'auto'
});
$('#date .input-daterange').datepicker({
dateFormat: 'mm/dd/yy',
format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false,
forceParse: false,
calendarWeeks: true,
autoclose: true
});

View File

@ -20,7 +20,6 @@ class TaskListView(DatetimeSearchMixin, ListView):
ordering = ('-date_created',)
context_object_name = 'task_list'
template_name = 'ops/task_list.html'
date_format = '%m/%d/%Y'
keyword = ''
def get_queryset(self):
@ -39,7 +38,7 @@ class TaskListView(DatetimeSearchMixin, ListView):
def get_context_data(self, **kwargs):
context = {
'app': 'Ops',
'app': _('Ops'),
'action': _('Task list'),
'date_from': self.date_from,
'date_to': self.date_to,
@ -55,8 +54,8 @@ class TaskDetailView(DetailView):
def get_context_data(self, **kwargs):
context = {
'app': 'Ops',
'action': 'Task detail',
'app': _('Ops'),
'action': _('Task detail'),
}
kwargs.update(context)
return super().get_context_data(**kwargs)
@ -68,8 +67,8 @@ class TaskAdhocView(DetailView):
def get_context_data(self, **kwargs):
context = {
'app': 'Ops',
'action': 'Task versions',
'app': _('Ops'),
'action': _('Task versions'),
}
kwargs.update(context)
return super().get_context_data(**kwargs)
@ -81,8 +80,8 @@ class TaskHistoryView(DetailView):
def get_context_data(self, **kwargs):
context = {
'app': 'Ops',
'action': 'Task run history',
'app': _('Ops'),
'action': _('Task run history'),
}
kwargs.update(context)
return super().get_context_data(**kwargs)
@ -104,7 +103,7 @@ class AdHocDetailView(DetailView):
def get_context_data(self, **kwargs):
context = {
'app': 'Ops',
'app': _('Ops'),
'action': 'Task version detail',
}
kwargs.update(context)
@ -117,8 +116,8 @@ class AdHocHistoryView(DetailView):
def get_context_data(self, **kwargs):
context = {
'app': 'Ops',
'action': 'Version run history',
'app': _('Ops'),
'action': _('Version run history'),
}
kwargs.update(context)
return super().get_context_data(**kwargs)
@ -130,8 +129,8 @@ class AdHocHistoryDetailView(DetailView):
def get_context_data(self, **kwargs):
context = {
'app': 'Ops',
'action': 'Run history detail',
'app': _('Ops'),
'action': _('Run history detail'),
}
kwargs.update(context)
return super().get_context_data(**kwargs)

View File

@ -280,16 +280,16 @@ jumpserver.initDataTable = function (options) {
language: {
search: "搜索",
lengthMenu: "每页 _MENU_",
info: "显示第 _START_ 到 _END_; 总共 _TOTAL_ ",
info: "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项",
infoFiltered: "",
infoEmpty: "",
zeroRecords: "没有匹配记录",
zeroRecords: "没有匹配",
emptyTable: "没有记录",
paginate: {
first: "第一页",
previous: "上一页",
next: "下一页",
last: "最后"
first: "«",
previous: "",
next: "",
last: "»"
}
},
lengthMenu: [[15, 25, 50, -1], [15, 25, 50, "All"]]

View File

@ -13,7 +13,9 @@
{% if user.is_authenticated and not user.is_public_key_valid %}
<div class="alert alert-danger help-message">
{% 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>
{% endif %}
{% endblock %}

View File

@ -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>
</a>
</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">
<a href="http://www.jumpserver.org" target="_blank"><i class="fa fa-database"></i>
<span class="nav-label">访问官网</span>

View File

@ -22,9 +22,9 @@
<div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker">
<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>
<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 class="input-group">
@ -105,9 +105,11 @@
width: 'auto'
});
$('#date .input-daterange').datepicker({
dateFormat: 'mm/dd/yy',
format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false,
forceParse: false,
calendarWeeks: true,
autoclose: true
});
});

View File

@ -5,8 +5,8 @@
{% load common_tags %}
{% block custom_head_css_js %}
<link href="{% static 'css/plugins/datepicker/datepicker3.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>
<link href="{% static 'css/plugins/select2/select2.min.css' %}" rel="stylesheet">
<script src="{% static 'js/plugins/select2/select2.full.min.js' %}"></script>
<style>
#search_btn {
margin-bottom: 0;
@ -23,9 +23,9 @@
<div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker">
<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>
<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 class="input-group">
@ -135,10 +135,12 @@
dropdownAutoWidth: true,
width: "auto"
});
$('#date .input-daterange').datepicker({
dateFormat: 'mm/dd/yy',
$('.input-daterange.input-group').datepicker({
format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false,
forceParse: false,
calendarWeeks: true,
autoclose: true
});
}).on('click', '.btn-term', function () {

View File

@ -22,7 +22,6 @@ class CommandListView(DatetimeSearchMixin, ListView):
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
command = user = asset = system_user = ""
date_from = date_to = None
date_format = '%m/%d/%Y'
def get_queryset(self):
self.command = self.request.GET.get('command', '')

View File

@ -29,7 +29,6 @@ class SessionListView(AdminUserRequiredMixin, DatetimeSearchMixin, ListView):
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
user = asset = system_user = ''
date_from = date_to = None
date_format = '%m/%d/%Y'
def get_queryset(self):
self.queryset = super().get_queryset()

View File

@ -20,7 +20,7 @@ __all__ = [
]
class TerminalListView(LoginRequiredMixin, ListView):
class TerminalListView(AdminUserRequiredMixin, ListView):
model = Terminal
template_name = 'terminal/terminal_list.html'
form_class = TerminalForm

View File

@ -20,7 +20,7 @@ from common.utils import get_logger
logger = get_logger(__name__)
class UserViewSet(BulkModelViewSet):
class UserViewSet(IDInFilterMixin, BulkModelViewSet):
queryset = User.objects.exclude(role="App")
# queryset = User.objects.all().exclude(role="App").order_by("date_joined")
serializer_class = UserSerializer

View File

@ -27,9 +27,9 @@ class User(AbstractUser):
ROLE_APP = 'App'
ROLE_CHOICES = (
(ROLE_ADMIN, 'Administrator'),
(ROLE_USER, 'User'),
(ROLE_APP, 'Application')
(ROLE_ADMIN, _('Administrator')),
(ROLE_USER, _('User')),
(ROLE_APP, _('Application'))
)
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
username = models.CharField(max_length=128, unique=True, verbose_name=_('Username'))

View File

@ -17,10 +17,10 @@
<div class="form-group" id="date">
<div class="input-daterange input-group" id="datepicker">
<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" >#}
<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 class="input-group">
@ -32,7 +32,7 @@
</select>
</div>
<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 class="input-group">
<div class="input-group-btn">
@ -81,9 +81,11 @@
"order": []
});
$('#date .input-daterange').datepicker({
dateFormat: "mm/dd/yyy",
format: "yyyy-mm-dd",
todayBtn: "linked",
keyboardNavigation: false,
forceParse: false,
calendarWeeks: true,
autoclose: true
});

View File

@ -1,15 +0,0 @@
{% 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>

View File

@ -4,8 +4,8 @@
{% load i18n %}
{% block custom_head_css_js %}
<link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet">
<script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script>
<link href="{% static 'css/plugins/select2/select2.min.css' %}" rel="stylesheet">
<script src="{% static 'js/plugins/select2/select2.full.min.js' %}"></script>
{% endblock %}
{% block content %}
<div class="wrapper wrapper-content animated fadeInRight">
@ -23,7 +23,7 @@
</ul>
</div>
<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-title">
<span style="float: left">{% trans 'Assets granted of ' %} <b>{{ user.name }}</b></span>
@ -56,7 +56,7 @@
</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-title">
<span style="float: left">{% trans 'Asset groups granted of ' %} <b>{{ user.name }}</b></span>

View File

@ -217,7 +217,6 @@ class LoginLogListView(DatetimeSearchMixin, ListView):
paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
user = keyword = ""
date_to = date_from = None
date_format = '%m/%d/%Y'
def get_queryset(self):
self.user = self.request.GET.get('user', '')