mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-23 04:22:01 -06:00
Fixes #2368: Record change in device changelog when altering cluster assignment
This commit is contained in:
parent
fd32a71131
commit
2804d89c5e
@ -2,6 +2,7 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.mixins import PermissionRequiredMixin
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||||
|
from django.db import transaction
|
||||||
from django.db.models import Count
|
from django.db.models import Count
|
||||||
from django.shortcuts import get_object_or_404, redirect, render
|
from django.shortcuts import get_object_or_404, redirect, render
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
@ -183,17 +184,21 @@ class ClusterAddDevicesView(PermissionRequiredMixin, View):
|
|||||||
|
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
|
|
||||||
# Assign the selected Devices to the Cluster
|
device_pks = form.cleaned_data['devices']
|
||||||
devices = form.cleaned_data['devices']
|
with transaction.atomic():
|
||||||
Device.objects.filter(pk__in=devices).update(cluster=cluster)
|
|
||||||
|
# Assign the selected Devices to the Cluster
|
||||||
|
for device in Device.objects.filter(pk__in=device_pks):
|
||||||
|
device.cluster = cluster
|
||||||
|
device.save()
|
||||||
|
|
||||||
messages.success(request, "Added {} devices to cluster {}".format(
|
messages.success(request, "Added {} devices to cluster {}".format(
|
||||||
len(devices), cluster
|
len(device_pks), cluster
|
||||||
))
|
))
|
||||||
return redirect(cluster.get_absolute_url())
|
return redirect(cluster.get_absolute_url())
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'cluser': cluster,
|
'cluster': cluster,
|
||||||
'form': form,
|
'form': form,
|
||||||
'return_url': cluster.get_absolute_url(),
|
'return_url': cluster.get_absolute_url(),
|
||||||
})
|
})
|
||||||
@ -212,12 +217,16 @@ class ClusterRemoveDevicesView(PermissionRequiredMixin, View):
|
|||||||
form = self.form(request.POST)
|
form = self.form(request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
|
|
||||||
# Remove the selected Devices from the Cluster
|
device_pks = form.cleaned_data['pk']
|
||||||
devices = form.cleaned_data['pk']
|
with transaction.atomic():
|
||||||
Device.objects.filter(pk__in=devices).update(cluster=None)
|
|
||||||
|
# Remove the selected Devices from the Cluster
|
||||||
|
for device in Device.objects.filter(pk__in=device_pks):
|
||||||
|
device.cluster = None
|
||||||
|
device.save()
|
||||||
|
|
||||||
messages.success(request, "Removed {} devices from cluster {}".format(
|
messages.success(request, "Removed {} devices from cluster {}".format(
|
||||||
len(devices), cluster
|
len(device_pks), cluster
|
||||||
))
|
))
|
||||||
return redirect(cluster.get_absolute_url())
|
return redirect(cluster.get_absolute_url())
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user