diff --git a/app/itam/templates/itam/software.html.j2 b/app/itam/templates/itam/software.html.j2 index 356b636d..cd7d42fd 100644 --- a/app/itam/templates/itam/software.html.j2 +++ b/app/itam/templates/itam/software.html.j2 @@ -56,7 +56,7 @@

Versions

- Not Yet Implemented + @@ -65,9 +65,12 @@ - - - + {% for version in software_versions %} + + + + + {% endfor %}
Version 
1.0.05{{ version.name }}   
diff --git a/app/itam/urls.py b/app/itam/urls.py index c705da53..9138a83c 100644 --- a/app/itam/urls.py +++ b/app/itam/urls.py @@ -1,7 +1,7 @@ from django.urls import path from . import views -from .views import device, device_type, software, software_category +from .views import device, device_type, software, software_category, software_version app_name = "ITAM" urlpatterns = [ @@ -20,6 +20,7 @@ urlpatterns = [ path("software/", software.IndexView.as_view(), name="Software"), path("software//", software.View.as_view(), name="_software_view"), path("software//delete", software.Delete.as_view(), name="_software_delete"), + path("software//version/add", software_version.Add.as_view(), name="_software_version_add"), path("software/add/", software.Add.as_view(), name="_software_add"), path("software_category/add/", software_category.Add.as_view(), name="_software_category_add"), diff --git a/app/itam/views/software.py b/app/itam/views/software.py index fdbbe5db..70073c6f 100644 --- a/app/itam/views/software.py +++ b/app/itam/views/software.py @@ -5,7 +5,7 @@ from django.views import generic from access.mixin import OrganizationPermission from itam.models.device import DeviceSoftware -from itam.models.software import Software +from itam.models.software import Software, SoftwareVersion from itam.forms.software.update import Update as SoftwareUpdate_Form class IndexView(PermissionRequiredMixin, OrganizationPermission, generic.ListView): @@ -43,6 +43,10 @@ class View(OrganizationPermission, generic.UpdateView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) + software_versions = SoftwareVersion.objects.filter(software=self.kwargs['pk']) + + context['software_versions'] = software_versions + context['content_title'] = self.object.name if self.request.user.is_superuser: diff --git a/app/itam/views/software_version.py b/app/itam/views/software_version.py new file mode 100644 index 00000000..4e797f3c --- /dev/null +++ b/app/itam/views/software_version.py @@ -0,0 +1,38 @@ +from django.contrib.auth.mixins import PermissionRequiredMixin +from django.views import generic + +from access.mixin import OrganizationPermission + +from ..models.software import Software, SoftwareVersion + + + +class Add(PermissionRequiredMixin, OrganizationPermission, generic.CreateView): + model = SoftwareVersion + permission_required = [ + 'access.add_softwareversion', + ] + template_name = 'form.html.j2' + fields = [ + 'name' + ] + + def form_valid(self, form): + software = Software.objects.get(pk=self.kwargs['pk']) + + form.instance.organization_id = software.organization.id + form.instance.software_id = self.kwargs['pk'] + return super().form_valid(form) + + + def get_success_url(self, **kwargs): + + return f"/itam/software/{self.kwargs['pk']}/" + + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + + context['content_title'] = 'Add Software Version' + + return context