Merge pull request #16 from daniviga/cdn

Add cover to consist page and cdn option
This commit is contained in:
2023-01-04 15:21:20 +01:00
committed by GitHub
11 changed files with 73 additions and 28 deletions

View File

@@ -26,6 +26,7 @@ class SiteConfigurationAdmin(SingletonModelAdmin):
"classes": ("collapse",), "classes": ("collapse",),
"fields": ( "fields": (
"show_version", "show_version",
"use_cdn",
"extra_head", "extra_head",
), ),
}, },

View File

@@ -0,0 +1,18 @@
# Generated by Django 4.1.5 on 2023-01-03 15:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("portal", "0014_siteconfiguration_extra_head"),
]
operations = [
migrations.AddField(
model_name="siteconfiguration",
name="use_cdn",
field=models.BooleanField(default=True),
),
]

View File

@@ -35,6 +35,7 @@ class SiteConfiguration(SingletonModel):
footer = RichTextField(blank=True) footer = RichTextField(blank=True)
footer_extended = RichTextField(blank=True) footer_extended = RichTextField(blank=True)
show_version = models.BooleanField(default=True) show_version = models.BooleanField(default=True)
use_cdn = models.BooleanField(default=True)
extra_head = models.TextField(blank=True) extra_head = models.TextField(blank=True)
class Meta: class Meta:

View File

@@ -11,10 +11,6 @@ a.badge, a.badge:hover {
color: #fff; color: #fff;
} }
.tab-pane {
min-height: 300px;
}
.img-thumbnail { .img-thumbnail {
padding: 0; padding: 0;
} }

File diff suppressed because one or more lines are too long

View File

@@ -13,9 +13,14 @@
<meta name="author" content="{{ site_conf.site_author }}"> <meta name="author" content="{{ site_conf.site_author }}">
<meta name="generator" content="Django Framework"> <meta name="generator" content="Django Framework">
<title>{% block title %}{{ title }}{% endblock %} - {{ site_conf.site_name }}</title> <title>{% block title %}{{ title }}{% endblock %} - {{ site_conf.site_name }}</title>
{% if site_conf.use_cdn %}
<link href="https://cdn.jsdelivr.net/npm/bootstrap-dark-5@1.1.3/dist/css/bootstrap-nightshade.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/bootstrap-dark-5@1.1.3/dist/css/bootstrap-nightshade.min.css" rel="stylesheet">
<link href="{% static "css/main.css" %}" rel="stylesheet">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
{% else %}
<link href="{% static "bootstrap-dark-5@1.1.3/dist/css/bootstrap-nightshade.min.css" %}" rel="stylesheet">
<link href="{% static "font-awesome/4.7.0/css/font-awesome.min.css" %}" rel="stylesheet">
{% endif %}
<link href="{% static "css/main.css" %}" rel="stylesheet">
<style> <style>
.bd-placeholder-img { .bd-placeholder-img {
font-size: 1.125rem; font-size: 1.125rem;
@@ -93,9 +98,9 @@
</section> </section>
<div class="album py-4 bg-light"> <div class="album py-4 bg-light">
<div class="container"> <div class="container">
<a id="rolling-stock"></a>
{% block carousel %} {% block carousel %}
{% endblock %} {% endblock %}
<a id="rolling-stock"></a>
{% block cards_layout %} {% block cards_layout %}
{% endblock %} {% endblock %}
</div> </div>
@@ -104,8 +109,13 @@
{% block extra_content %}{% endblock %} {% block extra_content %}{% endblock %}
</main> </main>
{% include 'includes/footer.html' %} {% include 'includes/footer.html' %}
{% if site_conf.use_cdn %}
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap-dark-5@1.1.3/dist/js/darkmode.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap-dark-5@1.1.3/dist/js/darkmode.min.js"></script>
{% else %}
<script src="{% static "bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" %}"></script>
<script src="{% static "bootstrap-dark-5@1.1.3/dist/js/darkmode.min.js" %}"></script>
{% endif %}
<!-- script src="https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js" integrity="sha384-GNFwBvfVxBkLMJpYMOABq3c+d3KnQxudP/mGPkzpZSTYykLBNsZEnG2D9G/X/+7D" crossorigin="anonymous" async></script --> <!-- script src="https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js" integrity="sha384-GNFwBvfVxBkLMJpYMOABq3c+d3KnQxudP/mGPkzpZSTYykLBNsZEnG2D9G/X/+7D" crossorigin="anonymous" async></script -->
<script> <script>
document.querySelector("#darkmode-button").onclick = function(e){ document.querySelector("#darkmode-button").onclick = function(e){

View File

@@ -10,6 +10,19 @@
<small class="text-muted">Updated {{ consist.updated_time | date:"M d, Y H:i" }}</small> <small class="text-muted">Updated {{ consist.updated_time | date:"M d, Y H:i" }}</small>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block carousel %}
{% if consist.image %}
<div class="row pb-4">
<div id="carouselControls" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="{{ consist.image.url }}" class="d-block w-100 rounded img-thumbnail" alt="...">
</div>
</div>
</div>
</div>
{% endif %}
{% endblock %}
{% block cards %} {% block cards %}
{% for r in rolling_stock %} {% for r in rolling_stock %}
<div class="col"> <div class="col">

View File

@@ -11,28 +11,30 @@
<small class="text-muted">Updated {{ rolling_stock.updated_time | date:"M d, Y H:i" }}</small> <small class="text-muted">Updated {{ rolling_stock.updated_time | date:"M d, Y H:i" }}</small>
{% endblock %} {% endblock %}
{% block carousel %} {% block carousel %}
<div id="carouselControls" class="carousel carousel-dark slide" data-bs-ride="carousel"> <div class="row">
<div class="carousel-inner"> <div id="carouselControls" class="carousel carousel-dark slide" data-bs-ride="carousel" data-bs-interval="10000">
{% for t in rolling_stock.image.all %} <div class="carousel-inner">
{% if forloop.first %} {% for t in rolling_stock.image.all %}
<div class="carousel-item active"> {% if forloop.first %}
{% else %} <div class="carousel-item active">
<div class="carousel-item"> {% else %}
{% endif %} <div class="carousel-item">
<img src="{{ t.image.url }}" class="d-block w-100 rounded img-thumbnail" alt="..."> {% endif %}
<img src="{{ t.image.url }}" class="d-block w-100 rounded img-thumbnail" alt="...">
</div>
{% endfor %}
</div> </div>
{% endfor %} {% if rolling_stock.image.count > 1 %}
<button class="carousel-control-prev" type="button" data-bs-target="#carouselControls" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselControls" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
{% endif %}
</div> </div>
{% if rolling_stock.image.count > 1 %}
<button class="carousel-control-prev" type="button" data-bs-target="#carouselControls" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselControls" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
{% endif %}
</div> </div>
{% endblock %} {% endblock %}
{% block cards %} {% block cards %}

View File

@@ -170,7 +170,7 @@ class GetRollingStock(View):
return render( return render(
request, request,
"page.html", "rollingstock.html",
{ {
"title": rolling_stock, "title": rolling_stock,
"rolling_stock": rolling_stock, "rolling_stock": rolling_stock,

View File

@@ -1,4 +1,4 @@
from ram.utils import git_suffix from ram.utils import git_suffix
__version__ = "0.0.25" __version__ = "0.0.26"
__version__ += git_suffix(__file__) __version__ += git_suffix(__file__)