Add battery inline editing for UPS host
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
from django.shortcuts import render, redirect
|
||||
from django.views.generic import ListView, CreateView, UpdateView, DeleteView
|
||||
from django.urls import reverse_lazy
|
||||
from django.contrib import messages
|
||||
from .models import UPSHost, Battery, Contact, Supplier, MaintenanceRecord
|
||||
from .forms import BatteryFormSet
|
||||
|
||||
|
||||
class DashboardView(ListView):
|
||||
@@ -106,6 +108,27 @@ class UPSHostUpdateView(UpdateView):
|
||||
template_name = 'ups_manager/ups_form.html'
|
||||
fields = ['brand', 'model', 'ip_address', 'quantity', 'location', 'last_maintenance_date', 'contact']
|
||||
success_url = reverse_lazy('ups_list')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
if self.request.POST:
|
||||
context['battery_formset'] = BatteryFormSet(self.request.POST, instance=self.object)
|
||||
else:
|
||||
context['battery_formset'] = BatteryFormSet(instance=self.object)
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
context = self.get_context_data()
|
||||
battery_formset = context['battery_formset']
|
||||
|
||||
if battery_formset.is_valid():
|
||||
self.object = form.save()
|
||||
battery_formset.instance = self.object
|
||||
battery_formset.save()
|
||||
messages.success(self.request, 'UPS主机和电池信息已更新')
|
||||
return redirect(self.success_url)
|
||||
else:
|
||||
return self.form_invalid(form)
|
||||
|
||||
|
||||
class UPSHostDeleteView(DeleteView):
|
||||
|
||||
Reference in New Issue
Block a user