47 lines
1.6 KiB
Python
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 |