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