From 0848893f1ea9040428edc50a60ab1d79ff3ca590 Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 27 Dec 2017 01:29:23 +0800 Subject: [PATCH] =?UTF-8?q?[Bugfix]=20=E4=BF=AE=E5=A4=8D=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E6=90=9C=E7=B4=A2=E7=9A=84bug=EF=BC=8Cselect?= =?UTF-8?q?2=E6=A8=A1=E5=9D=97=E8=87=AA=E9=80=82=E5=BA=94=E9=95=BF?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/templates/assets/_system_user.html | 2 +- .../assets/admin_user_create_update.html | 2 +- .../templates/assets/admin_user_detail.html | 2 +- .../templates/assets/asset_bulk_update.html | 2 +- .../assets/templates/assets/asset_create.html | 2 +- .../templates/assets/asset_group_create.html | 2 +- .../templates/assets/asset_group_detail.html | 2 +- .../templates/assets/cluster_assets.html | 2 +- .../assets/cluster_create_update.html | 5 ++- .../templates/assets/cluster_detail.html | 2 +- .../templates/assets/system_user_asset.html | 2 +- .../templates/assets/system_user_detail.html | 2 +- .../templates/assets/system_user_update.html | 2 +- apps/common/mixins.py | 32 ++++++++++++-- apps/ops/templates/ops/task_list.html | 9 ++-- apps/ops/views.py | 34 +++++---------- .../perms/asset_permission_create_update.html | 2 +- .../perms/asset_permission_detail.html | 2 +- .../templates/terminal/command_list.html | 35 +++++++++------- .../templates/terminal/session_list.html | 9 ++-- .../templates/terminal/terminal_update.html | 2 +- apps/terminal/views/command.py | 38 ++++------------- apps/terminal/views/session.py | 37 ++++------------ apps/users/templates/users/_user.html | 2 +- .../users/templates/users/login_log_list.html | 8 ++-- .../templates/users/user_bulk_update.html | 2 +- apps/users/templates/users/user_detail.html | 2 +- .../templates/users/user_granted_asset.html | 2 +- .../users/user_group_create_update.html | 2 +- .../templates/users/user_group_detail.html | 2 +- .../users/user_group_granted_asset.html | 2 +- apps/users/views/login.py | 42 ++++++------------- 32 files changed, 134 insertions(+), 159 deletions(-) diff --git a/apps/assets/templates/assets/_system_user.html b/apps/assets/templates/assets/_system_user.html index 99b64af30..07299ea08 100644 --- a/apps/assets/templates/assets/_system_user.html +++ b/apps/assets/templates/assets/_system_user.html @@ -90,7 +90,7 @@ } } $(document).ready(function () { - $('.select2').select2(); + $('.select2').select2({ dropdownAutoWidth : true, width: 'auto' }); authFieldsDisplay(); $(auto_generate_key).change(function () { authFieldsDisplay(); diff --git a/apps/assets/templates/assets/admin_user_create_update.html b/apps/assets/templates/assets/admin_user_create_update.html index d7d5094ff..30ef3e93a 100644 --- a/apps/assets/templates/assets/admin_user_create_update.html +++ b/apps/assets/templates/assets/admin_user_create_update.html @@ -56,7 +56,7 @@ {% block custom_foot_js %} {% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/admin_user_detail.html b/apps/assets/templates/assets/admin_user_detail.html index b5eb5da05..2614efda2 100644 --- a/apps/assets/templates/assets/admin_user_detail.html +++ b/apps/assets/templates/assets/admin_user_detail.html @@ -157,7 +157,7 @@ function bindToCluster(clusters) { jumpserver.cluster_selected = {}; $(document).ready(function () { - $('.select2').select2().on('select2:select', function(evt) { + $('.select2').select2({ dropdownAutoWidth : true, width: 'auto' });.on('select2:select', function(evt) { var data = evt.params.data; jumpserver.cluster_selected[data.id] = data.text; }).on('select2:unselect', function(evt) { diff --git a/apps/assets/templates/assets/asset_bulk_update.html b/apps/assets/templates/assets/asset_bulk_update.html index e72b44302..cc33d7faf 100644 --- a/apps/assets/templates/assets/asset_bulk_update.html +++ b/apps/assets/templates/assets/asset_bulk_update.html @@ -30,7 +30,7 @@ {% block custom_foot_js %} {% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/cluster_detail.html b/apps/assets/templates/assets/cluster_detail.html index cd2ecd25e..ae57df263 100644 --- a/apps/assets/templates/assets/cluster_detail.html +++ b/apps/assets/templates/assets/cluster_detail.html @@ -151,7 +151,7 @@ {% endblock %} \ No newline at end of file diff --git a/apps/common/mixins.py b/apps/common/mixins.py index 8f6076e4a..534a9a013 100644 --- a/apps/common/mixins.py +++ b/apps/common/mixins.py @@ -3,14 +3,14 @@ import inspect from django.db import models from django.http import JsonResponse -from django.utils.timezone import now +from django.utils import timezone from django.utils.translation import ugettext_lazy as _ class NoDeleteQuerySet(models.query.QuerySet): def delete(self): - return self.update(is_discard=True, discard_time=now()) + return self.update(is_discard=True, discard_time=timezone.now()) class NoDeleteManager(models.Manager): @@ -36,7 +36,7 @@ class NoDeleteModelMixin(models.Model): def delete(self): self.is_discard = True - self.discard_time = now() + self.discard_time = timezone.now() return self.save() @@ -87,3 +87,29 @@ class BulkSerializerMixin(object): return ret + +class DatetimeSearchMixin: + date_from = date_to = None + + def get(self, request, *args, **kwargs): + date_from_s = self.request.GET.get('date_from') + date_to_s = self.request.GET.get('date_to') + + if date_from_s: + date_from = timezone.datetime.strptime(date_from_s, '%m/%d/%Y') + self.date_from = date_from.replace( + tzinfo=timezone.get_current_timezone() + ) + else: + self.date_from = timezone.now() - timezone.timedelta(7) + + if date_to_s: + date_to = timezone.datetime.strptime( + date_to_s + ' 23:59:59', '%m/%d/%Y %H:%M:%S' + ) + self.date_to = date_to.replace( + tzinfo=timezone.get_current_timezone() + ) + else: + self.date_to = timezone.now() + return super().get(request, *args, **kwargs) \ No newline at end of file diff --git a/apps/ops/templates/ops/task_list.html b/apps/ops/templates/ops/task_list.html index 161a48ace..b2963e3b1 100644 --- a/apps/ops/templates/ops/task_list.html +++ b/apps/ops/templates/ops/task_list.html @@ -16,9 +16,9 @@
- + to - +
@@ -89,7 +89,10 @@ $(document).ready(function() { "bInfo" : false, "order": [] }); - $('.select2').select2(); + $('.select2').select2({ + dropdownAutoWidth : true, + width: 'auto' + }); $('#date .input-daterange').datepicker({ dateFormat: 'mm/dd/yy', keyboardNavigation: false, diff --git a/apps/ops/views.py b/apps/ops/views.py index 8154edca6..732195f8e 100644 --- a/apps/ops/views.py +++ b/apps/ops/views.py @@ -9,40 +9,27 @@ from django.views.generic import ListView, DetailView, View from django.utils import timezone from django.shortcuts import redirect, reverse +from common.mixins import DatetimeSearchMixin from .models import Task, AdHoc, AdHocRunHistory from ops.tasks import rerun_task -class TaskListView(ListView): +class TaskListView(DatetimeSearchMixin, ListView): paginate_by = settings.CONFIG.DISPLAY_PER_PAGE model = Task ordering = ('-date_created',) context_object_name = 'task_list' template_name = 'ops/task_list.html' date_format = '%m/%d/%Y' - keyword = date_from_s = date_to_s = '' + keyword = '' def get_queryset(self): - date_to_default = timezone.now() - date_from_default = timezone.now() - timezone.timedelta(7) - date_from_default_s = date_from_default.strftime(self.date_format) - date_to_default_s = date_to_default.strftime(self.date_format) - self.queryset = super().get_queryset() self.keyword = self.request.GET.get('keyword', '') - self.date_from_s = self.request.GET.get('date_from', date_from_default_s) - self.date_to_s = self.request.GET.get('date_to', date_to_default_s) - - if self.date_from_s: - date_from = datetime.strptime(self.date_from_s, self.date_format) - date_from = date_from.replace(tzinfo=timezone.get_current_timezone()) - self.queryset = self.queryset.filter(date_created__gt=date_from) - - if self.date_to_s: - date_to = timezone.datetime.strptime( - self.date_to_s + ' 23:59:59', '%m/%d/%Y %H:%M:%S') - date_to = date_to.replace(tzinfo=timezone.get_current_timezone()) - self.queryset = self.queryset.filter(date_created__lt=date_to) + self.queryset = self.queryset.filter( + date_created__gt=self.date_from, + date_created__lt=self.date_to + ) if self.keyword: self.queryset = self.queryset.filter( @@ -51,15 +38,16 @@ class TaskListView(ListView): return self.queryset def get_context_data(self, **kwargs): + print(self.date_from) context = { 'app': 'Ops', 'action': _('Task list'), - 'date_from': self.date_from_s, - 'date_to': self.date_to_s, + 'date_from': self.date_from, + 'date_to': self.date_to, 'keyword': self.keyword, } kwargs.update(context) - return super(TaskListView, self).get_context_data(**kwargs) + return super().get_context_data(**kwargs) class TaskDetailView(DetailView): diff --git a/apps/perms/templates/perms/asset_permission_create_update.html b/apps/perms/templates/perms/asset_permission_create_update.html index 86a11ba62..7cf6a799a 100644 --- a/apps/perms/templates/perms/asset_permission_create_update.html +++ b/apps/perms/templates/perms/asset_permission_create_update.html @@ -79,7 +79,7 @@