[Fixture] 完成批量更新

This commit is contained in:
ibuler
2017-04-12 11:50:15 +08:00
parent 2aa9aafdf6
commit 695e4da85e
11 changed files with 386 additions and 252 deletions

View File

@@ -114,15 +114,44 @@ class UserPublicKeyForm(forms.Form):
return self.instance
# class UserBulkImportForm(forms.ModelForm):
# class Meta:
# model = User
# fields = ['username', 'email', 'enable_otp', 'role']
class UserBulkUpdateForm(forms.ModelForm):
role = forms.ChoiceField(
label=_('Role'),
choices=[('Admin', 'Administrator'), ('User', 'User')],
)
users = forms.MultipleChoiceField(
required=True,
help_text='* required',
label=_('Select users'),
choices=[(user.id, user.name ) for user in User.objects.all()],
widget=forms.SelectMultiple(
attrs={
'class': 'select2',
'data-placeholder': _('Select users')
}
)
)
class Meta:
model = User
fields = ['role', 'groups', 'date_expired', 'is_active', 'enable_otp']
fields = ['users', 'role', 'groups', 'date_expired', 'is_active', 'enable_otp']
widgets = {
'groups': forms.SelectMultiple(
attrs={'class': 'select2',
'data-placeholder': _('Select user groups')}),
}
def save(self, commit=True):
cleaned_data = {k: v for k, v in self.cleaned_data.items() if
v is not None}
users_id = cleaned_data.pop('users')
groups = cleaned_data.pop('groups')
users = User.objects.filter(id__in=users_id)
users.update(**cleaned_data)
if groups:
for user in users:
user.groups.set(groups)
return users
class UserGroupForm(forms.ModelForm):