homelog/asset/views.py

57 lines
1.7 KiB
Python
Raw Normal View History

2022-03-10 16:28:39 +00:00
from django.urls import reverse_lazy
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from django.views import generic
from asset.models import Asset
2022-03-16 13:13:20 +00:00
from django.shortcuts import get_object_or_404, reverse
from django.http import HttpResponse, HttpResponseRedirect
2022-03-10 16:28:39 +00:00
2022-03-17 06:21:38 +00:00
2022-03-10 16:28:39 +00:00
class AssetCreateView(CreateView):
model = Asset
2022-03-10 17:19:13 +00:00
fields = ['named_id', 'description', 'quantity']
2022-03-10 16:28:39 +00:00
2022-03-16 16:43:52 +00:00
def form_valid(self, form):
2022-04-11 13:20:47 +00:00
if not form.instance.named_id.startswith('A-'):
form.instance.named_id = 'A-' + form.instance.named_id
2022-03-16 16:43:52 +00:00
form.instance.changed_by = self.request.user
form.instance.created_by = self.request.user
return super().form_valid(form)
2022-03-17 06:21:38 +00:00
2022-03-10 16:28:39 +00:00
class AssetUpdateView(UpdateView):
model = Asset
2022-03-10 17:19:13 +00:00
fields = ['named_id', 'description', 'quantity']
2022-04-11 13:20:47 +00:00
success_url = '/asset/'
2022-03-10 16:28:39 +00:00
2022-03-16 16:43:52 +00:00
def form_valid(self, form):
2022-04-11 13:20:47 +00:00
if not form.instance.named_id.startswith('A-'):
form.instance.named_id = 'A-' + form.instance.named_id
2022-03-16 16:43:52 +00:00
form.instance.changed_by = self.request.user
return super().form_valid(form)
2022-03-17 06:21:38 +00:00
2022-03-10 16:28:39 +00:00
class AssetDeleteView(DeleteView):
model = Asset
success_url = reverse_lazy('asset:list')
2022-03-10 16:28:39 +00:00
2022-03-17 06:21:38 +00:00
class AssetListView(generic.ListView):
template_name = 'asset/asset_list.html'
2022-03-10 16:28:39 +00:00
context_object_name = 'asset_list'
2022-03-17 06:21:38 +00:00
model = Asset
paginate_by = 20
2022-03-10 16:28:39 +00:00
2022-03-17 06:21:38 +00:00
"""
2022-03-10 16:28:39 +00:00
def get_queryset(self):
# Return the last 20 created containers
return Asset.objects.order_by('-created_ts')[:20]
2022-03-17 06:21:38 +00:00
"""
2022-03-10 16:28:39 +00:00
2022-03-16 13:13:20 +00:00
def asset_save(request, asset_id):
asset = get_object_or_404(Asset, pk=asset_id)
asset.description = request.POST['description']
asset.quantity = request.POST['quantity']
asset.save();
return HttpResponseRedirect(reverse('asset:list'))