Add "exclude not for sale" option to Inventory Worksheet.

This commit is contained in:
Lance Edgar 2014-09-11 20:59:43 -07:00
parent dfb5e83c7e
commit a3cfbd1e09
2 changed files with 15 additions and 8 deletions

View file

@ -19,8 +19,12 @@ ${h.form(request.current_route_url())}
</div> </div>
</div> </div>
<div class="field"> <div class="field-wrapper">
${h.checkbox('weighted-only', label=h.literal("Include items sold by weight <strong>only</strong>."))} ${h.checkbox('weighted-only', label="Only include items which are sold by weight.")}
</div>
<div class="field-wrapper">
${h.checkbox('exclude-not-for-sale', label="Exclude items marked \"not for sale\".", checked=True)}
</div> </div>
<div class="buttons"> <div class="buttons">

View file

@ -1,9 +1,8 @@
#!/usr/bin/env python # -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2012 Lance Edgar # Copyright © 2010-2014 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -26,6 +25,8 @@
Report Views Report Views
""" """
from __future__ import unicode_literals
import re import re
from .core import View from .core import View
@ -147,9 +148,9 @@ class InventoryWorksheet(View):
department = departments.get(self.request.params['department']) department = departments.get(self.request.params['department'])
if department: if department:
body = self.write_report(department) body = self.write_report(department)
response = Response(content_type='text/html') response = Response(content_type=b'text/html')
response.headers['Content-Length'] = len(body) response.headers[b'Content-Length'] = len(body)
response.headers['Content-Disposition'] = 'attachment; filename=inventory.html' response.headers[b'Content-Disposition'] = b'attachment; filename=inventory.html'
response.text = body response.text = body
return response return response
@ -168,6 +169,8 @@ class InventoryWorksheet(View):
q = q.filter(model.Product.subdepartment == subdepartment) q = q.filter(model.Product.subdepartment == subdepartment)
if self.request.params.get('weighted-only'): if self.request.params.get('weighted-only'):
q = q.filter(model.Product.unit_of_measure == enum.UNIT_OF_MEASURE_POUND) 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) q = q.order_by(model.Brand.name, model.Product.description)
return q.all() return q.all()