mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-01 19:20:55 +00:00
Add ReportAsset model
- Files which can be embedded into a report
This commit is contained in:
@ -3,7 +3,7 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import ReportTemplate
|
||||
from .models import ReportTemplate, ReportAsset
|
||||
|
||||
|
||||
class ReportTemplateAdmin(admin.ModelAdmin):
|
||||
@ -11,4 +11,10 @@ class ReportTemplateAdmin(admin.ModelAdmin):
|
||||
list_display = ('template', 'description')
|
||||
|
||||
|
||||
class ReportAssetAdmin(admin.ModelAdmin):
|
||||
|
||||
list_display = ('asset', 'description')
|
||||
|
||||
|
||||
admin.site.register(ReportTemplate, ReportTemplateAdmin)
|
||||
admin.site.register(ReportAsset, ReportAssetAdmin)
|
||||
|
22
InvenTree/report/migrations/0003_reportasset.py
Normal file
22
InvenTree/report/migrations/0003_reportasset.py
Normal file
@ -0,0 +1,22 @@
|
||||
# Generated by Django 3.0.5 on 2020-05-21 04:04
|
||||
|
||||
from django.db import migrations, models
|
||||
import report.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('report', '0002_auto_20200521_0350'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ReportAsset',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('asset', models.FileField(help_text='Report asset file', upload_to=report.models.rename_asset)),
|
||||
('description', models.CharField(help_text='Asset file description', max_length=250)),
|
||||
],
|
||||
),
|
||||
]
|
@ -17,7 +17,7 @@ def rename_template(instance, filename):
|
||||
|
||||
filename = os.path.basename(filename)
|
||||
|
||||
return os.path.join('report', 'template', filename)
|
||||
return os.path.join('report', 'report_template', filename)
|
||||
|
||||
|
||||
class ReportTemplate(models.Model):
|
||||
@ -35,3 +35,29 @@ class ReportTemplate(models.Model):
|
||||
)
|
||||
|
||||
description = models.CharField(max_length=250, help_text=_("Report template description"))
|
||||
|
||||
|
||||
def rename_asset(instance, filename):
|
||||
|
||||
filename = os.path.basename(filename)
|
||||
|
||||
return os.path.join('report', 'assets', filename)
|
||||
|
||||
|
||||
class ReportAsset(models.Model):
|
||||
"""
|
||||
Asset file for use in report templates.
|
||||
For example, an image to use in a header file.
|
||||
Uploaded asset files appear in MEDIA_ROOT/report/assets,
|
||||
and can be loaded in a template using the {% report_asset <filename> %} tag.
|
||||
"""
|
||||
|
||||
def __str__(self):
|
||||
return os.path.basename(self.asset.name)
|
||||
|
||||
asset = models.FileField(
|
||||
upload_to=rename_asset,
|
||||
help_text=_("Report asset file"),
|
||||
)
|
||||
|
||||
description = models.CharField(max_length=250, help_text=_("Asset file description"))
|
||||
|
Reference in New Issue
Block a user