Commit 75e67410 authored by ibuler's avatar ibuler

[Bugfix] 修复批量更新资产和用户的bug

parent c9d137bc
...@@ -9,6 +9,7 @@ import chardet ...@@ -9,6 +9,7 @@ import chardet
from io import StringIO from io import StringIO
from django.db import transaction from django.db import transaction
from django.contrib import messages
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView, ListView, View from django.views.generic import TemplateView, ListView, View
from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView
...@@ -76,14 +77,6 @@ class AssetCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): ...@@ -76,14 +77,6 @@ class AssetCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView):
template_name = 'assets/asset_create.html' template_name = 'assets/asset_create.html'
success_url = reverse_lazy('assets:asset-list') success_url = reverse_lazy('assets:asset-list')
# def form_valid(self, form):
# print("form valid")
# asset = form.save()
# asset.created_by = self.request.user.username or 'Admin'
# asset.date_created = timezone.now()
# asset.save()
# return super().form_valid(form)
def get_form(self, form_class=None): def get_form(self, form_class=None):
form = super().get_form(form_class=form_class) form = super().get_form(form_class=form_class)
node_id = self.request.GET.get("node_id") node_id = self.request.GET.get("node_id")
...@@ -106,29 +99,12 @@ class AssetCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): ...@@ -106,29 +99,12 @@ class AssetCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView):
return create_success_msg % ({"name": cleaned_data["hostname"]}) return create_success_msg % ({"name": cleaned_data["hostname"]})
# class AssetModalListView(AdminUserRequiredMixin, ListView):
# paginate_by = settings.DISPLAY_PER_PAGE
# model = Asset
# context_object_name = 'asset_modal_list'
# template_name = 'assets/_asset_list_modal.html'
#
# def get_context_data(self, **kwargs):
# assets = Asset.objects.all()
# assets_id = self.request.GET.get('assets_id', '')
# assets_id_list = [i for i in assets_id.split(',') if i.isdigit()]
# context = {
# 'all_assets': assets_id_list,
# 'assets': assets
# }
# kwargs.update(context)
# return super().get_context_data(**kwargs)
class AssetBulkUpdateView(AdminUserRequiredMixin, ListView): class AssetBulkUpdateView(AdminUserRequiredMixin, ListView):
model = Asset model = Asset
form_class = forms.AssetBulkUpdateForm form_class = forms.AssetBulkUpdateForm
template_name = 'assets/asset_bulk_update.html' template_name = 'assets/asset_bulk_update.html'
success_url = reverse_lazy('assets:asset-list') success_url = reverse_lazy('assets:asset-list')
success_message = _("Bulk update asset success")
id_list = None id_list = None
form = None form = None
...@@ -150,6 +126,7 @@ class AssetBulkUpdateView(AdminUserRequiredMixin, ListView): ...@@ -150,6 +126,7 @@ class AssetBulkUpdateView(AdminUserRequiredMixin, ListView):
form = self.form_class(request.POST) form = self.form_class(request.POST)
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, self.success_message)
return redirect(self.success_url) return redirect(self.success_url)
else: else:
return self.get(request, form=form, *args, **kwargs) return self.get(request, form=form, *args, **kwargs)
......
This diff is collapsed.
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
from threading import local
from werkzeug.local import Local
from django.db import models from django.db import models
from django.db.models import Q from django.db.models import Q
from django.shortcuts import redirect from django.shortcuts import redirect
import warnings
from django.forms import ModelForm from django.forms import ModelForm
from django.http.response import HttpResponseForbidden from django.http.response import HttpResponseForbidden
...@@ -14,7 +13,7 @@ from .utils import current_org, set_current_org, set_to_root_org ...@@ -14,7 +13,7 @@ from .utils import current_org, set_current_org, set_to_root_org
from .models import Organization from .models import Organization
logger = get_logger(__file__) logger = get_logger(__file__)
tl = local() tl = Local()
__all__ = [ __all__ = [
'OrgManager', 'OrgViewGenericMixin', 'OrgModelMixin', 'OrgModelForm', 'OrgManager', 'OrgViewGenericMixin', 'OrgModelMixin', 'OrgModelForm',
...@@ -93,8 +92,8 @@ class RootOrgViewMixin: ...@@ -93,8 +92,8 @@ class RootOrgViewMixin:
class OrgModelForm(ModelForm): class OrgModelForm(ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
if 'initial' not in kwargs: # if 'initial' not in kwargs:
return # return
for name, field in self.fields.items(): for name, field in self.fields.items():
if not hasattr(field, 'queryset'): if not hasattr(field, 'queryset'):
continue continue
......
...@@ -2,16 +2,13 @@ ...@@ -2,16 +2,13 @@
# #
from functools import partial from functools import partial
from werkzeug.local import Local
from common.utils import LocalProxy from common.utils import LocalProxy
from .models import Organization from .models import Organization
try:
from threading import local
except ImportError:
from django.utils._threading_local import local
_thread_locals = local() _thread_locals = Local()
def get_org_from_request(request): def get_org_from_request(request):
......
...@@ -258,12 +258,12 @@ class UserPublicKeyForm(forms.Form): ...@@ -258,12 +258,12 @@ class UserPublicKeyForm(forms.Form):
UserPublicKeyForm.verbose_name = _("Public key") UserPublicKeyForm.verbose_name = _("Public key")
class UserBulkUpdateForm(forms.ModelForm): class UserBulkUpdateForm(OrgModelForm):
users = forms.ModelMultipleChoiceField( users = forms.ModelMultipleChoiceField(
required=True, required=True,
help_text='* required', help_text='* required',
label=_('Select users'), label=_('Select users'),
queryset = User.objects.all(), queryset=User.objects.all(),
widget=forms.SelectMultiple( widget=forms.SelectMultiple(
attrs={ attrs={
'class': 'select2', 'class': 'select2',
...@@ -274,12 +274,12 @@ class UserBulkUpdateForm(forms.ModelForm): ...@@ -274,12 +274,12 @@ class UserBulkUpdateForm(forms.ModelForm):
class Meta: class Meta:
model = User model = User
fields = ['users', 'role', 'groups', 'date_expired'] fields = ['users', 'groups', 'date_expired']
widgets = { widgets = {
"groups": forms.SelectMultiple( "groups": forms.SelectMultiple(
attrs={ attrs={
'class': 'select2', 'class': 'select2',
'data-placeholder': _('Select users') 'data-placeholder': _('User group')
} }
) )
} }
......
...@@ -24,9 +24,9 @@ from django.views import View ...@@ -24,9 +24,9 @@ from django.views import View
from django.views.generic.base import TemplateView from django.views.generic.base import TemplateView
from django.db import transaction from django.db import transaction
from django.views.generic.edit import ( from django.views.generic.edit import (
CreateView, UpdateView, FormMixin, FormView CreateView, UpdateView, FormView
) )
from django.views.generic.detail import DetailView, SingleObjectMixin from django.views.generic.detail import DetailView
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django.contrib.auth import logout as auth_logout from django.contrib.auth import logout as auth_logout
...@@ -41,7 +41,6 @@ from ..utils import generate_otp_uri, check_otp_code, \ ...@@ -41,7 +41,6 @@ from ..utils import generate_otp_uri, check_otp_code, \
get_user_or_tmp_user, get_password_check_rules, check_password_rules, \ get_user_or_tmp_user, get_password_check_rules, check_password_rules, \
is_need_unblock is_need_unblock
from ..signals import post_user_create from ..signals import post_user_create
from ..tasks import write_login_log_async
__all__ = [ __all__ = [
'UserListView', 'UserCreateView', 'UserDetailView', 'UserListView', 'UserCreateView', 'UserDetailView',
...@@ -171,7 +170,7 @@ class UserBulkUpdateView(AdminUserRequiredMixin, TemplateView): ...@@ -171,7 +170,7 @@ class UserBulkUpdateView(AdminUserRequiredMixin, TemplateView):
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 user'),
'form': self.form, 'form': self.form,
'users_selected': self.id_list, 'users_selected': self.id_list,
} }
......
...@@ -70,3 +70,4 @@ uritemplate==3.0.0 ...@@ -70,3 +70,4 @@ uritemplate==3.0.0
urllib3==1.22 urllib3==1.22
vine==1.1.4 vine==1.1.4
drf-yasg==1.9.1 drf-yasg==1.9.1
Werkzeug==0.14.1
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