add forms and views for the ComputerGpuRelation

This commit is contained in:
Andreas Zweili 2020-06-15 21:39:31 +02:00
parent 3311619ef7
commit 1ddf0a23e6
5 changed files with 60 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 ComputerGpuRelation
from computers.models import ComputerRamRelation
@ -53,3 +54,12 @@ class ComputerCpuRelationCreateForm(forms.ModelForm):
fields = '__all__'
class ComputerGpuRelationCreateForm(forms.ModelForm):
"""
Basic form class to use crispies HTML5 forms.
"""
class Meta:
model = ComputerGpuRelation
fields = '__all__'

View File

@ -79,9 +79,9 @@
<p><b>GPUs:</b></p>
{% for gpu in gpu_relations %}
{{ gpu.amount }}x {{ gpu.gpu }}<br>
{{ gpu.amount }}x {{ gpu.gpu }} <a href="{% url 'gpu_relation_delete' gpu.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 'gpu_relation_create' pk %}" class="add" title="Add" data-toggle="tooltip"><i class="material-icons">add</i></a></p>
<p><b>RAM Modules:</b></p>
{% for module in ram_relations %}

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

@ -32,4 +32,10 @@ urlpatterns = [
path('delete/cpu-relation/<int:pk>/',
views.ComputerCpuRelationDeleteView.as_view(),
name='cpu_relation_delete'),
path('create/gpu-relation/<int:pk>/',
views.ComputerGpuRelationCreateView.as_view(),
name='gpu_relation_create'),
path('delete/gpu-relation/<int:pk>/',
views.ComputerGpuRelationDeleteView.as_view(),
name='gpu_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 ComputerGpuRelationCreateForm
from .forms import ComputerRamRelationCreateForm
from .models import Computer
from .models import ComputerCpuRelation
@ -191,6 +192,33 @@ class ComputerCpuRelationDeleteView(LoginRequiredMixin, DeleteView):
return reverse('computer', args=(self.object.computer.pk,))
class ComputerGpuRelationCreateView(LoginRequiredMixin, CreateView):
model = ComputerGpuRelation
form_class = ComputerGpuRelationCreateForm
template_name = 'computers/gpu_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 ComputerGpuRelationDeleteView(LoginRequiredMixin, DeleteView):
model = ComputerGpuRelation
template_name = 'computers/relation_confirm_delete.html'
def get_success_url(self):
return reverse('computer', args=(self.object.computer.pk,))
def get_success_url(self):
return reverse('computer', args=(self.object.computer.pk,))