Browse Source

carousel

master
Jméno Příjmení 3 years ago
parent
commit
38031bbdac
  1. 2
      bannery/models.py
  2. 36
      bannery/templates/bannery/banner.html
  3. 0
      bannery/templatetags/__init__.py
  4. 13
      bannery/templatetags/banner_tags.py
  5. 3
      databaze/settings.py
  6. 4
      databaze/urls.py
  7. 3
      novinky/templates/novinky/base.html
  8. 3
      novinky/templates/novinky/index.html

2
bannery/models.py

@ -3,7 +3,7 @@ from django.db import models
# Create your models here. # Create your models here.
class Banner(models.Model): class Banner(models.Model):
popisek = models.CharField(max_length=100, verbose_name="Popisek") popisek = models.CharField(max_length=100, verbose_name="Popisek")
obrazek = models.ImageField(upload_to='media/bannery', verbose_name="Obrázek")
obrazek = models.ImageField(upload_to='bannery', verbose_name="Obrázek")
aktivni = models.BooleanField(default=True, verbose_name="Aktivní") aktivni = models.BooleanField(default=True, verbose_name="Aktivní")
def __str__(self) -> str: def __str__(self) -> str:

36
bannery/templates/bannery/banner.html

@ -0,0 +1,36 @@
{% for banner in bannery %}
{{ banner.popisek }}
<img src="/media/{{ banner.obrazek }}" alt="">
{% endfor %}
<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
{% for banner in bannery %}
<button
type="button"
data-bs-target="#carouselExampleCaptions"
data-bs-slide-to="{{ forloop.counter0 }}"
{% if forloop.first %}class="active"{% endif %}>
</button>
{% endfor %}
</div>
<div class="carousel-inner">
{% for banner in bannery %}
<div class="carousel-item {% if forloop.first %}active{% endif %}">
<img src="/media/{{ banner.obrazek }}" class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>{{ banner.popisek }}</h5>
</div>
</div>
{% endfor %}
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" 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="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>

0
bannery/templatetags/__init__.py

13
bannery/templatetags/banner_tags.py

@ -0,0 +1,13 @@
from django import template
from bannery.models import Banner
register = template.Library()
@register.inclusion_tag('bannery/banner.html')
def banner():
return {
"bannery": Banner.objects.filter(aktivni=True),
}

3
databaze/settings.py

@ -117,6 +117,9 @@ USE_TZ = True
STATIC_URL = '/static/' STATIC_URL = '/static/'
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / MEDIA_URL
# Default primary key field type # Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

4
databaze/urls.py

@ -16,9 +16,11 @@ Including another URLconf
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path
from novinky.views import index, newitem from novinky.views import index, newitem
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('novinka/<int:new_id>/', newitem, name="newitem"), path('novinka/<int:new_id>/', newitem, name="newitem"),
path('', index, name="index"), path('', index, name="index"),
]
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

3
novinky/templates/novinky/base.html

@ -6,11 +6,14 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Novinky</title> <title>Novinky</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'novinky/css/novinky.css' %}"> <link rel="stylesheet" href="{% static 'novinky/css/novinky.css' %}">
</head> </head>
<body> <body>
{% block content %} {% block content %}
(nic tu není) (nic tu není)
{% endblock %} {% endblock %}
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
</body> </body>
</html> </html>

3
novinky/templates/novinky/index.html

@ -1,8 +1,11 @@
{% extends "novinky/base.html" %} {% extends "novinky/base.html" %}
{% load banner_tags %}
{% block content %} {% block content %}
<h1>Novinky</h1> <h1>Novinky</h1>
{% banner %}
{% for novinka in novinky %} {% for novinka in novinky %}
{{ novinka.datum|date:"j. E Y G:i" }} <br> {{ novinka.datum|date:"j. E Y G:i" }} <br>
{{ novinka.autor }} {{ novinka.autor }}

Loading…
Cancel
Save