diff --git a/tailbone/templates/reports/inventory.mako b/tailbone/templates/reports/inventory.mako index 3d3b5bd3..b8148bb1 100644 --- a/tailbone/templates/reports/inventory.mako +++ b/tailbone/templates/reports/inventory.mako @@ -19,8 +19,12 @@ ${h.form(request.current_route_url())} -
- ${h.checkbox('weighted-only', label=h.literal("Include items sold by weight only."))} +
+ ${h.checkbox('weighted-only', label="Only include items which are sold by weight.")} +
+ +
+ ${h.checkbox('exclude-not-for-sale', label="Exclude items marked \"not for sale\".", checked=True)}
diff --git a/tailbone/views/reports.py b/tailbone/views/reports.py index ccad2e39..a65a8753 100644 --- a/tailbone/views/reports.py +++ b/tailbone/views/reports.py @@ -1,9 +1,8 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- ################################################################################ # # Rattail -- Retail Software Framework -# Copyright © 2010-2012 Lance Edgar +# Copyright © 2010-2014 Lance Edgar # # This file is part of Rattail. # @@ -26,6 +25,8 @@ Report Views """ +from __future__ import unicode_literals + import re from .core import View @@ -147,9 +148,9 @@ class InventoryWorksheet(View): department = departments.get(self.request.params['department']) if department: body = self.write_report(department) - response = Response(content_type='text/html') - response.headers['Content-Length'] = len(body) - response.headers['Content-Disposition'] = 'attachment; filename=inventory.html' + response = Response(content_type=b'text/html') + response.headers[b'Content-Length'] = len(body) + response.headers[b'Content-Disposition'] = b'attachment; filename=inventory.html' response.text = body return response @@ -168,6 +169,8 @@ class InventoryWorksheet(View): q = q.filter(model.Product.subdepartment == subdepartment) if self.request.params.get('weighted-only'): q = q.filter(model.Product.unit_of_measure == enum.UNIT_OF_MEASURE_POUND) + if self.request.params.get('exclude-not-for-sale'): + q = q.filter(model.Product.not_for_sale == False) q = q.order_by(model.Brand.name, model.Product.description) return q.all()