brewery-website/equipment/views.py
2024-06-06 11:42:28 -04:00

47 lines
1.6 KiB
Python

from django.shortcuts import render, get_object_or_404
from django.views.generic import ListView
from django.http import HttpResponse
from equipment.models import Equipment
from config.extras import AveryLabel
import logging
logger = logging.getLogger('django')
def home(request):
return render(request, 'equipment/home.html',{'equipment':Equipment.objects.all()})
class EquipmentListView(ListView):
model = Equipment
def equipment(request, equipment_id):
equipment = get_object_or_404(Equipment, pk=equipment_id)
return render(request, 'equipment/equipment.html', {'equipment': equipment})
def equipment_labels(request):
""" Create label PDF for selected equipment
"""
skip_count = request.POST.get("skip_count", "")
equipment_list = request.POST.getlist("equipment_list", "")
to_print = list(filter(lambda d: str(d.id) in equipment_list, Equipment.objects.all()))
# Create the HttpResponse object with the appropriate PDF headers.
response = HttpResponse(content_type ='application/pdf')
response['Content-Disposition'] = 'attachment; filename=keglabels.pdf'
labelSheet = AveryLabel(5263, debug=False)
labels = []
for equipment in to_print:
labels.append({
'id': equipment.id,
'title': equipment.keg_type.name,
'data': ['{} gal'.format(equipment.keg_type.size_gal), 'ID: {}'.format(equipment.id)], # TODO: Update this fo rgeneric equipment
'blank': False,
'host': request.get_host(),
'template': 'equipment',
'ns': 'equipment'
})
labelSheet.render(labels, response, skip_count)
return response