diff --git a/computers/forms.py b/computers/forms.py
index cd9a57f..b8fce80 100644
--- a/computers/forms.py
+++ b/computers/forms.py
@@ -4,6 +4,7 @@ from core import utils
from computers.models import Computer
from computers.models import ComputerCpuRelation
+from computers.models import ComputerRamRelation
from devices.models import Warranty
@@ -69,3 +70,16 @@ CpuFormSet = forms.inlineformset_factory(Computer,
can_delete=False,
form=ComputerUpdateForm,
max_num=1)
+
+
+RamFormSet = forms.inlineformset_factory(Computer,
+ ComputerRamRelation,
+ fields=(
+ 'ram',
+ 'computer',
+ 'amount',
+ ),
+ exclude=[],
+ can_delete=False,
+ form=ComputerUpdateForm,
+ max_num=1)
diff --git a/computers/templates/computers/computer_update.html b/computers/templates/computers/computer_update.html
index 4f0bfba..c8528a5 100644
--- a/computers/templates/computers/computer_update.html
+++ b/computers/templates/computers/computer_update.html
@@ -19,6 +19,16 @@
{{ computer_formset|crispy }}
+
+
+ {{ cpu_formset|crispy }}
+
+
+
+
+ {{ ram_formset|crispy }}
+
+
diff --git a/computers/views.py b/computers/views.py
index 9c5159f..b5b615c 100644
--- a/computers/views.py
+++ b/computers/views.py
@@ -22,6 +22,7 @@ from .filters import ComputerFilter
from .forms import ComputerCreateForm
from .forms import ComputerFormSet
from .forms import CpuFormSet
+from .forms import RamFormSet
from .models import Computer
from .models import ComputerCpuRelation
from .models import ComputerDiskRelation
@@ -149,21 +150,31 @@ class ComputerUpdateView(LoginRequiredMixin, UpdateView):
self.request.POST,
instance=self.object)
context['cpu_formset'].full_clean()
+ context['ram_formset'] = RamFormSet(
+ self.request.POST,
+ instance=self.object)
+ context['ram_formset'].full_clean()
else:
context['computer_formset'] = ComputerFormSet(instance=self.object)
context['cpu_formset'] = CpuFormSet(instance=self.object)
+ context['ram_formset'] = RamFormSet(instance=self.object)
return context
def form_valid(self, form):
context = self.get_context_data(form=form)
computer_formset = context['computer_formset']
cpu_formset = context['cpu_formset']
- if computer_formset.is_valid() and cpu_formset.is_valid():
+ ram_formset = context['ram_formset']
+ if (computer_formset.is_valid()
+ and cpu_formset.is_valid()
+ and ram_formset.is_valid()):
response = super().form_valid(form)
computer_formset.instance = self.object
computer_formset.save()
cpu_formset.instance = self.object
cpu_formset.save()
+ ram_formset.instance = self.object
+ ram_formset.save()
return response
else:
return super().form_invalid(form)