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' label_sheet = AveryLabel(5263, debug=False) labels = [] for equipment in to_print: labels.append({ 'id': equipment.id, 'title': equipment.keg_type.name, # TODO: Update this fo rgeneric equipment 'data': [ '{} gal'.format(equipment.keg_type.size_gal), 'ID: {}'.format(equipment.id)], 'blank': False, 'host': request.get_host(), 'template': 'equipment', 'ns': 'equipment' }) label_sheet.render(labels, response, skip_count) return response