mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Adds ReturnOrderReport model
This commit is contained in:
parent
bcd439ed90
commit
6675f88476
31
InvenTree/report/migrations/0017_returnorderreport.py
Normal file
31
InvenTree/report/migrations/0017_returnorderreport.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Generated by Django 3.2.18 on 2023-03-15 11:17
|
||||||
|
|
||||||
|
import django.core.validators
|
||||||
|
from django.db import migrations, models
|
||||||
|
import report.models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('report', '0016_auto_20210513_1303'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='ReturnOrderReport',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(help_text='Template name', max_length=100, verbose_name='Name')),
|
||||||
|
('template', models.FileField(help_text='Report template file', upload_to=report.models.rename_template, validators=[django.core.validators.FileExtensionValidator(allowed_extensions=['html', 'htm'])], verbose_name='Template')),
|
||||||
|
('description', models.CharField(help_text='Report template description', max_length=250, verbose_name='Description')),
|
||||||
|
('revision', models.PositiveIntegerField(default=1, editable=False, help_text='Report revision number (auto-increments)', verbose_name='Revision')),
|
||||||
|
('filename_pattern', models.CharField(default='report.pdf', help_text='Pattern for generating report filenames', max_length=100, verbose_name='Filename Pattern')),
|
||||||
|
('enabled', models.BooleanField(default=True, help_text='Report template is enabled', verbose_name='Enabled')),
|
||||||
|
('filters', models.CharField(blank=True, help_text='Return order query filters', max_length=250, validators=[report.models.validate_return_order_filters], verbose_name='Filters')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
@ -67,6 +67,11 @@ def validate_sales_order_filters(filters):
|
|||||||
return validateFilterString(filters, model=order.models.SalesOrder)
|
return validateFilterString(filters, model=order.models.SalesOrder)
|
||||||
|
|
||||||
|
|
||||||
|
def validate_return_order_filters(filters):
|
||||||
|
"""Validate filter string against ReturnOrder model"""
|
||||||
|
return validateFilterString(filters, model=order.models.ReturnOrder)
|
||||||
|
|
||||||
|
|
||||||
class WeasyprintReportMixin(WeasyTemplateResponseMixin):
|
class WeasyprintReportMixin(WeasyTemplateResponseMixin):
|
||||||
"""Class for rendering a HTML template to a PDF."""
|
"""Class for rendering a HTML template to a PDF."""
|
||||||
|
|
||||||
@ -467,6 +472,42 @@ class SalesOrderReport(ReportTemplateBase):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ReturnOrderReport(ReportTemplateBase):
|
||||||
|
"""Render a custom report against a ReturnOrder object"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_api_url():
|
||||||
|
"""Return the API URL associated with the ReturnOrderReport model"""
|
||||||
|
return reverse('api-return-order-report-list')
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def getSubdir(cls):
|
||||||
|
"""Return the directory where the ReturnOrderReport templates are stored"""
|
||||||
|
return 'returnorder'
|
||||||
|
|
||||||
|
filters = models.CharField(
|
||||||
|
blank=True,
|
||||||
|
max_length=250,
|
||||||
|
verbose_name=_('Filters'),
|
||||||
|
help_text=_('Return order query filters'),
|
||||||
|
validators=[
|
||||||
|
validate_return_order_filters,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_context_data(self, request):
|
||||||
|
"""Return custom context data for the ReturnOrderReport template"""
|
||||||
|
|
||||||
|
order = self.object_to_print
|
||||||
|
|
||||||
|
return {
|
||||||
|
'order': order,
|
||||||
|
'description': order.description,
|
||||||
|
'reference': order.reference,
|
||||||
|
'customer': order.customer,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def rename_snippet(instance, filename):
|
def rename_snippet(instance, filename):
|
||||||
"""Function to rename a report snippet once uploaded"""
|
"""Function to rename a report snippet once uploaded"""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user