feat(core): Add manufacturers

!10 #12
This commit is contained in:
2024-05-23 20:31:53 +09:30
parent a6a0da72b2
commit ef463b845d
11 changed files with 395 additions and 3 deletions

View File

@ -0,0 +1,132 @@
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.db.models import Q
from django.views import generic
from access.mixin import OrganizationPermission
from core.models.manufacturer import Manufacturer
class Index(PermissionRequiredMixin, OrganizationPermission, generic.ListView):
context_object_name = "list"
model = Manufacturer
paginate_by = 10
permission_required = 'itam.view_devicetype'
template_name = 'settings/manufacturers.html.j2'
def get_queryset(self):
if self.request.user.is_superuser:
return self.model.objects.filter().order_by('name')
else:
return self.model.objects.filter(Q(organization__in=self.user_organizations()) | Q(is_global = True)).order_by('name')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['content_title'] = 'Manufacturers'
return context
class View(OrganizationPermission, generic.UpdateView):
context_object_name = "manufacturer"
fields = [
"name",
'slug',
'id',
'organization',
'is_global',
]
model = Manufacturer
permission_required = [
'itam.view_manufacturer'
]
template_name = 'form.html.j2'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['model_pk'] = self.kwargs['pk']
context['model_name'] = self.model._meta.verbose_name.replace(' ', '')
context['content_title'] = self.object.name
return context
def get_success_url(self, **kwargs):
return f"/settings/manufacturer/{self.kwargs['pk']}"
class Add(PermissionRequiredMixin, OrganizationPermission, generic.CreateView):
fields = [
'name',
'organization',
'is_global'
]
model = Manufacturer
permission_required = [
'access.add_manufacturere',
]
template_name = 'form.html.j2'
def get_success_url(self, **kwargs):
return f"/settings/manufacturers"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['content_title'] = 'Add Manufacturer'
return context
class Delete(PermissionRequiredMixin, OrganizationPermission, generic.DeleteView):
model = Manufacturer
permission_required = [
'access.delete_manufacturer',
]
def get_success_url(self, **kwargs):
return f"/settings/manufacturers"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['content_title'] = 'Delete ' + self.object.name
return context