add create and delete views for RAIDs
This commit is contained in:
parent
72b8c86a98
commit
9f948fe396
|
@ -8,6 +8,7 @@ from computers.models import ComputerDiskRelation
|
||||||
from computers.models import ComputerGpuRelation
|
from computers.models import ComputerGpuRelation
|
||||||
from computers.models import ComputerRamRelation
|
from computers.models import ComputerRamRelation
|
||||||
from computers.models import ComputerSoftwareRelation
|
from computers.models import ComputerSoftwareRelation
|
||||||
|
from computers.models import Raid
|
||||||
|
|
||||||
|
|
||||||
class ComputerCreateForm(forms.ModelForm):
|
class ComputerCreateForm(forms.ModelForm):
|
||||||
|
@ -81,3 +82,12 @@ class ComputerSoftwareRelationCreateForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ComputerSoftwareRelation
|
model = ComputerSoftwareRelation
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
|
||||||
|
class RaidCreateForm(forms.ModelForm):
|
||||||
|
"""
|
||||||
|
Basic form class to use crispies HTML5 forms.
|
||||||
|
"""
|
||||||
|
class Meta:
|
||||||
|
model = Raid
|
||||||
|
fields = '__all__'
|
||||||
|
|
|
@ -107,10 +107,9 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Type:</b></td>
|
<td><b>Type:</b></td>
|
||||||
<td>{{ raid.raid_type }}</td>
|
<td>{{ raid.raid_type }}</td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><b>Usable Space</b></td>
|
<td><b>Usable Space</b></td>
|
||||||
<td>{{ raid.usable_space }}</td>
|
<td>{{ raid.usable_space }}</td>
|
||||||
|
<td><a href="{% url 'raid_delete' raid.pk %}" class="delete" title="Delete" data-toggle="tooltip"><i class="material-icons">delete</i></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% if disks %}
|
{% if disks %}
|
||||||
{% for disk in disks %}
|
{% for disk in disks %}
|
||||||
|
@ -126,7 +125,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</table>
|
</table>
|
||||||
{% endfor %}
|
{% 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 'raid_create' pk %}" class="add" title="Add" data-toggle="tooltip"><i class="material-icons">add</i></a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
{% extends "core/base.html" %}
|
||||||
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
|
{% block section_title %}Add RAID{% 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 %}
|
|
@ -128,6 +128,19 @@ def test_software_relation_create_view(create_admin_user):
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
|
|
||||||
|
|
||||||
|
def test_raid_create_view(create_admin_user):
|
||||||
|
create_admin_user()
|
||||||
|
client = Client()
|
||||||
|
client.login(username="pharma-admin", password="password")
|
||||||
|
computer = mixer.blend('computers.Computer', customer=mixer.SELECT)
|
||||||
|
data = {
|
||||||
|
'computer': computer.id,
|
||||||
|
}
|
||||||
|
url = '/computer/{}/create/raid/'.format(computer.id)
|
||||||
|
response = client.post(url, data)
|
||||||
|
assert response.status_code == 302
|
||||||
|
|
||||||
|
|
||||||
def test_ram_relation_delete_view(create_admin_user):
|
def test_ram_relation_delete_view(create_admin_user):
|
||||||
create_admin_user()
|
create_admin_user()
|
||||||
client = Client()
|
client = Client()
|
||||||
|
@ -191,3 +204,14 @@ def test_software_relation_delete_view(create_admin_user):
|
||||||
url = '/delete/software-relation/{}/'.format(software_relation.id)
|
url = '/delete/software-relation/{}/'.format(software_relation.id)
|
||||||
response = client.post(url)
|
response = client.post(url)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
|
|
||||||
|
|
||||||
|
def test_raid_delete_view(create_admin_user):
|
||||||
|
create_admin_user()
|
||||||
|
client = Client()
|
||||||
|
client.login(username="pharma-admin", password="password")
|
||||||
|
computer = mixer.blend('computers.Computer', customer=mixer.SELECT)
|
||||||
|
raid = mixer.blend('computers.Raid', computer=computer)
|
||||||
|
url = '/delete/raid/{}/'.format(raid.id)
|
||||||
|
response = client.post(url)
|
||||||
|
assert response.status_code == 302
|
||||||
|
|
|
@ -50,4 +50,8 @@ urlpatterns = [
|
||||||
path('delete/software-relation/<int:pk>/',
|
path('delete/software-relation/<int:pk>/',
|
||||||
views.ComputerSoftwareRelationDeleteView.as_view(),
|
views.ComputerSoftwareRelationDeleteView.as_view(),
|
||||||
name='software_relation_delete'),
|
name='software_relation_delete'),
|
||||||
|
path('computer/<int:pk>/create/raid/', views.RaidCreateView.as_view(),
|
||||||
|
name='raid_create'),
|
||||||
|
path('delete/raid/<int:pk>/', views.RaidDeleteView.as_view(),
|
||||||
|
name='raid_delete'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -28,6 +28,7 @@ from .forms import ComputerDiskRelationCreateForm
|
||||||
from .forms import ComputerGpuRelationCreateForm
|
from .forms import ComputerGpuRelationCreateForm
|
||||||
from .forms import ComputerRamRelationCreateForm
|
from .forms import ComputerRamRelationCreateForm
|
||||||
from .forms import ComputerSoftwareRelationCreateForm
|
from .forms import ComputerSoftwareRelationCreateForm
|
||||||
|
from .forms import RaidCreateForm
|
||||||
from .models import Computer
|
from .models import Computer
|
||||||
from .models import ComputerCpuRelation
|
from .models import ComputerCpuRelation
|
||||||
from .models import ComputerDiskRelation
|
from .models import ComputerDiskRelation
|
||||||
|
@ -274,3 +275,31 @@ class ComputerSoftwareRelationDeleteView(LoginRequiredMixin, DeleteView):
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse('computer', args=(self.object.computer.pk,))
|
return reverse('computer', args=(self.object.computer.pk,))
|
||||||
|
|
||||||
|
|
||||||
|
class RaidCreateView(LoginRequiredMixin, CreateView):
|
||||||
|
model = Raid
|
||||||
|
form_class = RaidCreateForm
|
||||||
|
template_name = 'computers/raid_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 RaidDeleteView(LoginRequiredMixin, DeleteView):
|
||||||
|
model = Raid
|
||||||
|
template_name = 'computers/relation_confirm_delete.html'
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return reverse('computer', args=(self.object.computer.pk,))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue