mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-30 20:46:47 +00:00
Add URL endpoint for downloading PDF labels
This commit is contained in:
parent
2b1d6c268c
commit
cdde0f8c43
@ -59,6 +59,7 @@ stock_urls = [
|
|||||||
url(r'^item/new/?', views.StockItemCreate.as_view(), name='stock-item-create'),
|
url(r'^item/new/?', views.StockItemCreate.as_view(), name='stock-item-create'),
|
||||||
|
|
||||||
url(r'^item/test-report-download/', views.StockItemTestReportDownload.as_view(), name='stock-item-test-report-download'),
|
url(r'^item/test-report-download/', views.StockItemTestReportDownload.as_view(), name='stock-item-test-report-download'),
|
||||||
|
url(r'^item/print-stock-labels/', views.StockItemPrintLabels.as_view(), name='stock-item-print-labels'),
|
||||||
|
|
||||||
# URLs for StockItem attachments
|
# URLs for StockItem attachments
|
||||||
url(r'^item/attachment/', include([
|
url(r'^item/attachment/', include([
|
||||||
|
@ -28,6 +28,7 @@ from datetime import datetime
|
|||||||
from company.models import Company, SupplierPart
|
from company.models import Company, SupplierPart
|
||||||
from part.models import Part
|
from part.models import Part
|
||||||
from report.models import TestReport
|
from report.models import TestReport
|
||||||
|
from label.models import StockItemLabel
|
||||||
from .models import StockItem, StockLocation, StockItemTracking, StockItemAttachment, StockItemTestResult
|
from .models import StockItem, StockLocation, StockItemTracking, StockItemAttachment, StockItemTestResult
|
||||||
|
|
||||||
from .admin import StockItemResource
|
from .admin import StockItemResource
|
||||||
@ -295,6 +296,44 @@ class StockItemReturnToStock(AjaxUpdateView):
|
|||||||
return self.renderJsonResponse(request, self.get_form(), data)
|
return self.renderJsonResponse(request, self.get_form(), data)
|
||||||
|
|
||||||
|
|
||||||
|
class StockItemPrintLabels(AjaxView):
|
||||||
|
"""
|
||||||
|
View for printing labels and returning a PDF
|
||||||
|
|
||||||
|
Requires the following arguments to be passed as URL params:
|
||||||
|
|
||||||
|
items: List of valid StockItem pk values
|
||||||
|
label: Valid pk of a StockItemLabel template
|
||||||
|
"""
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
|
||||||
|
label = request.GET.get('label', None)
|
||||||
|
|
||||||
|
try:
|
||||||
|
label = StockItemLabel.objects.get(pk=label)
|
||||||
|
except (ValueError, StockItemLabel.DoesNotExist):
|
||||||
|
raise ValidationError({'label': 'Invalid label ID'})
|
||||||
|
|
||||||
|
item_pks = request.GET.getlist('items[]')
|
||||||
|
|
||||||
|
items = []
|
||||||
|
|
||||||
|
for pk in item_pks:
|
||||||
|
try:
|
||||||
|
item = StockItem.objects.get(pk=pk)
|
||||||
|
items.append(item)
|
||||||
|
except (ValueError, StockItem.DoesNotExist):
|
||||||
|
pass
|
||||||
|
|
||||||
|
if len(items) == 0:
|
||||||
|
raise ValidationError({'items': 'Must provide valid stockitems'})
|
||||||
|
|
||||||
|
pdf = label.render(items).getbuffer()
|
||||||
|
|
||||||
|
return DownloadFile(pdf, 'stock_labels.pdf', content_type='application/pdf')
|
||||||
|
|
||||||
|
|
||||||
class StockItemDeleteTestData(AjaxUpdateView):
|
class StockItemDeleteTestData(AjaxUpdateView):
|
||||||
"""
|
"""
|
||||||
View for deleting all test data
|
View for deleting all test data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user