diff --git a/ram/metadata/migrations/0014_alter_decoder_options_alter_tag_options.py b/ram/metadata/migrations/0014_alter_decoder_options_alter_tag_options.py new file mode 100644 index 0000000..f593439 --- /dev/null +++ b/ram/metadata/migrations/0014_alter_decoder_options_alter_tag_options.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.6 on 2023-10-10 12:44 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("metadata", "0013_decoderdocument_private"), + ] + + operations = [ + migrations.AlterModelOptions( + name="decoder", + options={"ordering": ["manufacturer", "name"]}, + ), + migrations.AlterModelOptions( + name="tag", + options={"ordering": ["name"]}, + ), + ] diff --git a/ram/metadata/models.py b/ram/metadata/models.py index acccf61..5112c31 100644 --- a/ram/metadata/models.py +++ b/ram/metadata/models.py @@ -95,6 +95,9 @@ class Decoder(models.Model): upload_to="images/", storage=DeduplicatedStorage, null=True, blank=True ) + class Meta(object): + ordering = ["manufacturer", "name"] + def __str__(self): return "{0} - {1}".format(self.manufacturer, self.name) @@ -163,6 +166,9 @@ class Tag(models.Model): name = models.CharField(max_length=128, unique=True) slug = models.CharField(max_length=128, unique=True) + class Meta(object): + ordering = ["name"] + def __str__(self): return self.name diff --git a/ram/portal/templates/cards/book.html b/ram/portal/templates/cards/book.html index b2f77f8..d34fd0c 100644 --- a/ram/portal/templates/cards/book.html +++ b/ram/portal/templates/cards/book.html @@ -1,11 +1,7 @@
- {% if d.item.image.all %} - - {% for r in d.item.image.all %} - {% if forloop.first %}Card image cap{% endif %} - {% endfor %} - + {% if d.item.image.exists %} + {{ d }} {% endif %}

diff --git a/ram/portal/templates/cards/consist.html b/ram/portal/templates/cards/consist.html index c0f4b67..b8cfc31 100644 --- a/ram/portal/templates/cards/consist.html +++ b/ram/portal/templates/cards/consist.html @@ -2,12 +2,10 @@

{% if d.item.image %} - Card image cap + {{ d }} {% else %} {% with d.item.consist_item.first.rolling_stock as r %} - {% for i in r.image.all %} - {% if forloop.first %}Card image cap{% endif %} - {% endfor %} + {{ d }} {% endwith %} {% endif %} diff --git a/ram/portal/templates/includes/login.html b/ram/portal/templates/includes/login.html index 06b2a42..9522553 100644 --- a/ram/portal/templates/includes/login.html +++ b/ram/portal/templates/includes/login.html @@ -14,7 +14,6 @@
  • Admin
  • Site configuration
  • -
  • DCC configuration
  • Logout
  • diff --git a/ram/portal/views.py b/ram/portal/views.py index babd064..9233161 100644 --- a/ram/portal/views.py +++ b/ram/portal/views.py @@ -444,14 +444,15 @@ class GetBook(View): class GetFlatpage(View): def get(self, request, flatpage): + _filter = Q(published=True) # Show only published pages + if request.user.is_authenticated: + _filter = Q() # Reset the filter if user is authenticated + try: - flatpage = Flatpage.objects.get(path=flatpage) + flatpage = Flatpage.objects.filter(_filter).get(path=flatpage) except ObjectDoesNotExist: raise Http404 - if not request.user.is_authenticated: - flatpage = flatpage.filter(published=False) - return render( request, "flatpages/flatpage.html", diff --git a/ram/ram/__init__.py b/ram/ram/__init__.py index 55b01db..20bf34d 100644 --- a/ram/ram/__init__.py +++ b/ram/ram/__init__.py @@ -1,4 +1,4 @@ from ram.utils import git_suffix -__version__ = "0.6.5" +__version__ = "0.7.0" __version__ += git_suffix(__file__) diff --git a/ram/ram/settings.py b/ram/ram/settings.py index 8d2c340..b1449ec 100644 --- a/ram/ram/settings.py +++ b/ram/ram/settings.py @@ -51,7 +51,7 @@ INSTALLED_APPS = [ "rest_framework", "ram", "portal", - "driver", + # "driver", "metadata", "roster", "consist", diff --git a/ram/ram/urls.py b/ram/ram/urls.py index 7760faf..e58db03 100644 --- a/ram/ram/urls.py +++ b/ram/ram/urls.py @@ -13,6 +13,7 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ +from django.apps import apps from django.conf import settings from django.shortcuts import redirect from django.conf.urls.static import static @@ -27,10 +28,15 @@ urlpatterns = [ path("admin/", admin.site.urls), path("api/v1/consist/", include("consist.urls")), path("api/v1/roster/", include("roster.urls")), - path("api/v1/dcc/", include("driver.urls")), path("api/v1/bookshelf/", include("bookshelf.urls")), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +# Enable the "/dcc" routing only if the "driver" app is active +if apps.is_installed("driver"): + urlpatterns += [ + path("api/v1/dcc/", include("driver.urls")), + ] + if settings.DEBUG: from django.views.generic import TemplateView from rest_framework.schemas import get_schema_view