diff --git a/ram/portal/views.py b/ram/portal/views.py index 398a79f..422ad9c 100644 --- a/ram/portal/views.py +++ b/ram/portal/views.py @@ -62,6 +62,7 @@ class GetHomeFiltered(View): | Q(rolling_class__description__icontains=s) | Q(rolling_class__type__type__icontains=s) | Q(road_number__icontains=s) + | Q(sku=s) | Q(rolling_class__company__name__icontains=s) | Q(rolling_class__company__country__icontains=s) | Q(manufacturer__name__icontains=s) diff --git a/ram/ram/__init__.py b/ram/ram/__init__.py index 16357c1..b034ba3 100644 --- a/ram/ram/__init__.py +++ b/ram/ram/__init__.py @@ -1,4 +1,4 @@ from ram.utils import git_suffix -__version__ = "0.0.12" +__version__ = "0.0.14" __version__ += git_suffix(__file__) diff --git a/ram/roster/admin.py b/ram/roster/admin.py index 970e593..2dde810 100644 --- a/ram/roster/admin.py +++ b/ram/roster/admin.py @@ -46,6 +46,22 @@ class RollingStockPropertyInline(admin.TabularInline): extra = 0 +@admin.register(RollingStockDocument) +class RollingStockDocumentAdmin(admin.ModelAdmin): + list_display = ( + "__str__", + "rolling_stock", + "description", + "download", + ) + search_fields = ( + "rolling_stock__rolling_class__identifier", + "rolling_stock__sku", + "description", + "file", + ) + + @admin.register(RollingStock) class RollingStockAdmin(admin.ModelAdmin): inlines = ( diff --git a/ram/roster/models.py b/ram/roster/models.py index 52b4e8a..51fa700 100644 --- a/ram/roster/models.py +++ b/ram/roster/models.py @@ -4,6 +4,7 @@ from uuid import uuid4 from django.db import models from django.urls import reverse from django.dispatch import receiver +from django.utils.safestring import mark_safe # from django.core.files.storage import FileSystemStorage @@ -141,7 +142,12 @@ class RollingStockDocument(models.Model): return "{0}".format(os.path.basename(self.file.name)) def filename(self): - return os.path.basename(self.file.name) + return self.__str__ + + def download(self): + return mark_safe( + 'Link'.format(self.file.url) + ) class RollingStockImage(models.Model):