add forms and views for the ComputerDiskRelation

This commit is contained in:
Andreas Zweili 2020-06-15 21:39:58 +02:00
parent 1ddf0a23e6
commit 49fc10a4dd
5 changed files with 53 additions and 2 deletions

View File

@ -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__'

View File

@ -91,9 +91,9 @@
<p><b>Disks:</b></p>
{% for disk in disks_relations %}
{{ disk.amount }}x {{ disk.disk }}<br>
{{ disk.amount }}x {{ disk.disk }} <a href="{% url 'disk_relation_delete' disk.pk %}" class="delete" title="Delete" data-toggle="tooltip"><i class="material-icons">clear</i></a><br>
{% endfor %}
<p><a href="{% url 'warranty_create' pk %}" class="add" title="Add" data-toggle="tooltip"><i class="material-icons">add</i></a></p>
<p><a href="{% url 'disk_relation_create' pk %}" class="add" title="Add" data-toggle="tooltip"><i class="material-icons">add</i></a></p>
<h3>RAID</h3>
{% for raid, disks in raid_disk_pairs.items %}

View File

@ -0,0 +1,14 @@
{% extends "core/base.html" %}
{% load crispy_forms_tags %}
{% block section_title %}Add RAM{% endblock %}
{% block content %}
<div class="row">
<form method="post">
{% csrf_token %}
{{ form|crispy }}
<input type="submit" value="Save" class="btn btn-primary">
<a href="{% url 'computer' view.kwargs.pk %}" class="btn btn-secondary">Cancel</a>
</form>
</div>
{% endblock %}

View File

@ -38,4 +38,10 @@ urlpatterns = [
path('delete/gpu-relation/<int:pk>/',
views.ComputerGpuRelationDeleteView.as_view(),
name='gpu_relation_delete'),
path('create/disk-relation/<int:pk>/',
views.ComputerDiskRelationCreateView.as_view(),
name='disk_relation_create'),
path('delete/disk-relation/<int:pk>/',
views.ComputerDiskRelationDeleteView.as_view(),
name='disk_relation_delete'),
]

View File

@ -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,))