diff --git a/apps/assets/models.py b/apps/assets/models.py index 1b13b8621..5d6d18096 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -233,6 +233,10 @@ class SystemUser(models.Model): def assets_amount(self): return self.assets.count() + @property + def asset_group_amount(self): + return self.asset_groups.count() + class Meta: db_table = 'system_user' diff --git a/apps/assets/serializers.py b/apps/assets/serializers.py index 9613da621..e035d58e4 100644 --- a/apps/assets/serializers.py +++ b/apps/assets/serializers.py @@ -35,7 +35,7 @@ class SystemUserSerializer(serializers.ModelSerializer): def get_field_names(self, declared_fields, info): fields = super(SystemUserSerializer, self).get_field_names(declared_fields, info) - fields.append('assets_amount') + fields.extend(['assets_amount']) return fields diff --git a/apps/assets/templates/assets/admin_user_list.html b/apps/assets/templates/assets/admin_user_list.html index ea35972a0..35d6b6789 100644 --- a/apps/assets/templates/assets/admin_user_list.html +++ b/apps/assets/templates/assets/admin_user_list.html @@ -39,13 +39,6 @@ $(document).ready(function(){ var innerHtml = cellData.length > 8 ? cellData.substring(0, 24) + '...': cellData; $(td).html('' + innerHtml + ''); }}, -{# {targets: 6, createdCell: function (td, cellData) {#} -{# if (!cellData) {#} -{# $(td).html('')#} -{# } else {#} -{# $(td).html('')#} -{# }#} -{# }},#} {targets: 6, createdCell: function (td, cellData, rowData) { var script_btn = '{% trans "Script" %}'.replace('99991937', cellData); var update_btn = '{% trans "Update" %}'.replace('99991937', cellData); @@ -55,7 +48,6 @@ $(document).ready(function(){ ajax_url: '{% url "api-assets:admin-user-list" %}', columns: [{data: function(){return ""}}, {data: "name" }, {data: "username" }, {data: "assets_amount" }, {data: function () {return 'lost'} }, {data: "comment" }, {data: "id" }], - op_html: $('#actions').html() }; jumpserver.initDataTable(options); }); diff --git a/apps/assets/templates/assets/system_user_list.html b/apps/assets/templates/assets/system_user_list.html index fb1e41323..77526ff37 100644 --- a/apps/assets/templates/assets/system_user_list.html +++ b/apps/assets/templates/assets/system_user_list.html @@ -1,43 +1,60 @@ {% extends '_base_list.html' %} {% load i18n %} {% load common_tags %} -{% block content_left_head %} + +{% block table_search %} +{% endblock %} + +{% block table_container %} +
{% trans "Create system user" %} +
+ + + + + + + + + + + + + + +
+ + {% trans 'Name' %}{% trans 'Username' %}{% trans 'Asset' %}{% trans 'Unreachable' %}{% trans 'Comment' %}{% trans 'Action' %}
+{% endblock %} +{% block custom_foot_js %} + {% endblock %} -{% block table_head %} - {% trans 'ID' %} - {% trans 'Name' %} - {% trans 'Username' %} - {% trans 'Asset num' %} - {% trans 'Asset group num' %} - {% trans 'Unreachable' %} - {% trans 'Comment' %} - -{% endblock %} -{% block table_body %} - {% for system_user in system_user_list %} - - {{ system_user.id }} - - - {{ system_user.name }} - - - {{ system_user.username }} - {{ system_user.get_assets|length }} - {{ system_user.asset_groups.count }} - {{ system_user.assets.count }} - {{ system_user.comment|truncatewords:4 }} - - - {% trans 'Script' %} - - {% trans 'Refresh' %} - {% trans 'Update' %} - {% trans 'Delete' %} - - - {% endfor %} -{% endblock %} + diff --git a/apps/assets/views.py b/apps/assets/views.py index 31619621d..c8bbc3911 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -478,35 +478,17 @@ class AdminUserDeleteView(AdminUserRequiredMixin, DeleteView): success_url = reverse_lazy('assets:admin-user-list') -class SystemUserListView(AdminUserRequiredMixin, ListView): - model = SystemUser - paginate_by = settings.CONFIG.DISPLAY_PER_PAGE - context_object_name = 'system_user_list' +class SystemUserListView(AdminUserRequiredMixin, TemplateView): template_name = 'assets/system_user_list.html' def get_context_data(self, **kwargs): context = { 'app': _('Assets'), 'action': _('System user list'), - 'keyword': self.request.GET.get('keyword', '') } kwargs.update(context) return super(SystemUserListView, self).get_context_data(**kwargs) - def get_queryset(self): - # Todo: Default order by lose asset connection num - self.queryset = super(SystemUserListView, self).get_queryset() - self.keyword = keyword = self.request.GET.get('keyword', '') - self.sort = sort = self.request.GET.get('sort', '-date_created') - - if keyword: - self.queryset = self.queryset.filter(Q(name__icontains=keyword) | - Q(comment__icontains=keyword)) - - if sort: - self.queryset = self.queryset.order_by(sort) - return self.queryset - class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): model = SystemUser diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index e107832f4..5593fec2a 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -292,7 +292,7 @@ jumpserver.initDataTable = function (options) { columnDefs = options.columnDefs ? options.columnDefs.concat(columnDefs) : columnDefs; var table = ele.DataTable({ pageLength: options.pageLength || 15, - dom: options.dom || '<"#uc.pull-left"><"html5buttons"B>flti<"row m-t"<"#op.col-md-6"><"col-md-6"p>>', + dom: options.dom || '<"#uc.pull-left">flt<"row m-t"<"col-md-8"<"#op.col-md-6"><"col-md-6 text-center"i>><"col-md-4"p>>', language: { url: options.i18n_url || "/static/js/plugins/dataTables/i18n/zh-hans.json" },