diff --git a/computers/forms.py b/computers/forms.py
index 86a490c..802b89c 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 ComputerDiskRelation
from computers.models import ComputerGpuRelation
from computers.models import ComputerRamRelation
@@ -63,3 +64,10 @@ class ComputerGpuRelationCreateForm(forms.ModelForm):
fields = '__all__'
+class ComputerDiskRelationCreateForm(forms.ModelForm):
+ """
+ Basic form class to use crispies HTML5 forms.
+ """
+ class Meta:
+ model = ComputerDiskRelation
+ fields = '__all__'
diff --git a/computers/templates/computers/computer_details.html b/computers/templates/computers/computer_details.html
index 9443519..87db934 100644
--- a/computers/templates/computers/computer_details.html
+++ b/computers/templates/computers/computer_details.html
@@ -91,9 +91,9 @@
Disks:
{% for disk in disks_relations %}
- {{ disk.amount }}x {{ disk.disk }}
+ {{ disk.amount }}x {{ disk.disk }} clear
{% endfor %}
- add
+ add
RAID
{% for raid, disks in raid_disk_pairs.items %}
diff --git a/computers/templates/computers/disk_relation_create.html b/computers/templates/computers/disk_relation_create.html
new file mode 100644
index 0000000..9d3a336
--- /dev/null
+++ b/computers/templates/computers/disk_relation_create.html
@@ -0,0 +1,14 @@
+{% extends "core/base.html" %}
+{% load crispy_forms_tags %}
+
+{% block section_title %}Add RAM{% endblock %}
+{% block content %}
+
+{% endblock %}
diff --git a/computers/urls.py b/computers/urls.py
index cb43720..60a1af4 100644
--- a/computers/urls.py
+++ b/computers/urls.py
@@ -38,4 +38,10 @@ urlpatterns = [
path('delete/gpu-relation//',
views.ComputerGpuRelationDeleteView.as_view(),
name='gpu_relation_delete'),
+ path('create/disk-relation//',
+ views.ComputerDiskRelationCreateView.as_view(),
+ name='disk_relation_create'),
+ path('delete/disk-relation//',
+ views.ComputerDiskRelationDeleteView.as_view(),
+ name='disk_relation_delete'),
]
diff --git a/computers/views.py b/computers/views.py
index ca13ded..d48b51d 100644
--- a/computers/views.py
+++ b/computers/views.py
@@ -24,6 +24,7 @@ from .filters import ComputerFilter
from .forms import ComputerCreateForm
from .forms import ComputerUpdateForm
from .forms import ComputerCpuRelationCreateForm
+from .forms import ComputerDiskRelationCreateForm
from .forms import ComputerGpuRelationCreateForm
from .forms import ComputerRamRelationCreateForm
from .models import Computer
@@ -219,6 +220,28 @@ class ComputerGpuRelationDeleteView(LoginRequiredMixin, DeleteView):
return reverse('computer', args=(self.object.computer.pk,))
+class ComputerDiskRelationCreateView(LoginRequiredMixin, CreateView):
+ model = ComputerDiskRelation
+ form_class = ComputerDiskRelationCreateForm
+ template_name = 'computers/disk_relation_create.html'
+
+ def get_success_url(self):
+ return reverse('computer', args=(self.computer.pk,))
+
+ def get_initial(self):
+ """
+ Set the device and customer dropdown to the device from the previous
+ view and the customer related to the device.
+ """
+ self.computer = get_object_or_404(Computer, id=self.kwargs.get('pk'))
+ return {
+ 'computer': self.computer,
+ }
+
+
+class ComputerDiskRelationDeleteView(LoginRequiredMixin, DeleteView):
+ model = ComputerDiskRelation
+ template_name = 'computers/relation_confirm_delete.html'
def get_success_url(self):
return reverse('computer', args=(self.object.computer.pk,))