From a5ddbe4c3f6afeb5a103a3f8027d9847bb1c274c Mon Sep 17 00:00:00 2001 From: shahraiz Date: Mon, 11 Dec 2023 20:00:33 +0100 Subject: [PATCH 1/7] base module --- .../django_basic_blog/basic_blog/README.md | 119 ++++++++++++++++++ .../django_basic_blog/basic_blog/__init__.py | 0 .../django_basic_blog/basic_blog/admin.py | 3 + .../django_basic_blog/basic_blog/apps.py | 0 .../basic_blog/migrations/__init__.py | 0 .../django_basic_blog/basic_blog/models.py | 4 + .../django_basic_blog/basic_blog/options.py | 3 + .../basic_blog/serializers.py | 3 + .../django_basic_blog/basic_blog/urls.py | 7 ++ .../django_basic_blog/basic_blog/viewsets.py | 6 + .../django_basic_blog/pyproject.toml | 3 + .../django_basic_blog/setup.py | 20 +++ modules/django-basic-blog/meta.json | 5 + modules/django-basic-blog/preview.png | Bin 0 -> 74538 bytes 14 files changed, 173 insertions(+) create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/README.md create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/__init__.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/admin.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/apps.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/migrations/__init__.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/models.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/options.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/serializers.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/urls.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/viewsets.py create mode 100644 modules/django-basic-blog/django_basic_blog/pyproject.toml create mode 100644 modules/django-basic-blog/django_basic_blog/setup.py create mode 100644 modules/django-basic-blog/meta.json create mode 100644 modules/django-basic-blog/preview.png diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/README.md b/modules/django-basic-blog/django_basic_blog/basic_blog/README.md new file mode 100644 index 000000000..b2f042e45 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/README.md @@ -0,0 +1,119 @@ +# basic blog backend configuration and Info + + +# Integrating Wagtail into a Django project + + +Wagtail is currently compatible with Django 3.2, 4.1, 4.2, and 5.0. First, install the `wagtail` package from PyPI: + + +Add the package to your existing requirements file. This will also install the **Pillow** library as a dependency, which requires libjpeg and zlib - see Pillow's [platform-specific installation instructions](https://pillow.readthedocs.io/en/stable/installation.html#external-libraries). + +## Settings + +In your settings.py file, add the following apps to `INSTALLED_APPS`: + +```python +'wagtail.contrib.forms', +'wagtail.contrib.redirects', +'wagtail.embeds', +'wagtail.sites', +'wagtail.users', +'wagtail.snippets', +'wagtail.documents', +'wagtail.images', +'wagtail.search', +'wagtail.admin', +'wagtail', + +'modelcluster', +'taggit', +``` + +Add the following entry to `MIDDLEWARE`: + +```python +'wagtail.contrib.redirects.middleware.RedirectMiddleware', +``` + +Add a `STATIC_ROOT` setting, if your project doesn't have one already: + +```python +STATIC_ROOT = os.path.join(BASE_DIR, 'static') +``` + +Add `MEDIA_ROOT` and `MEDIA_URL` settings, if your project doesn't have these already: + +```python +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') +MEDIA_URL = '/media/' +``` + +Add a `WAGTAIL_SITE_NAME` - this will be displayed on the main dashboard of the Wagtail admin backend: + +```python +WAGTAIL_SITE_NAME = 'My Example Site' +``` + +Add a `WAGTAILADMIN_BASE_URL` - this is the base URL used by the Wagtail admin site. It is typically used for generating URLs to include in notification emails: + +```python +WAGTAILADMIN_BASE_URL = 'http://example.com' +``` + +If this setting is not present, Wagtail will fall back to `request.site.root_url` or to the hostname of the request. Although this setting is not strictly required, it is highly recommended because leaving it out may produce unusable URLs in notification emails. + +Various other settings are available to configure Wagtail's behaviour - see [Settings](/reference/settings). + +## URL configuration + +Now make the following additions to your `{ProjectName}/urls.py` file: + +```python +from django.urls import path, include + +from wagtail.admin import urls as wagtailadmin_urls +from wagtail import urls as wagtail_urls +from wagtail.documents import urls as wagtaildocs_urls + +urlpatterns = [ + ... + path('cms/', include(wagtailadmin_urls)), + path('documents/', include(wagtaildocs_urls)), + path('pages/', include(wagtail_urls)), + ... +] +``` + +You can alter URL paths here to fit your project's URL scheme. + +`wagtailadmin_urls` provides the [admin interface](https://guide.wagtail.org/en-latest/concepts/wagtail-interfaces/#admin-interface) for Wagtail. This is separate from the Django admin interface, `django.contrib.admin`. Wagtail-only projects host the Wagtail admin at `/admin/`, but if this clashes with your project's existing admin backend then you can use an alternative path, such as `/cms/`. + +Wagtail serves your document files from the location, `wagtaildocs_urls`. You can omit this if you do not intend to use Wagtail's document management features. + +Wagtail serves your pages from the `wagtail_urls` location. In the above example, Wagtail handles URLs under `/pages/`, leaving your Django project to handle the root URL and other paths as normal. If you want Wagtail to handle the entire URL space including the root URL, then place `path('', include(wagtail_urls))` at the end of the `urlpatterns` list. Placing `path('', include(wagtail_urls))` at the end of the `urlpatterns` ensures that it doesn't override more specific URL patterns. + +Finally, you need to set up your project to serve user-uploaded files from `MEDIA_ROOT`. Your Django project may already have this in place, but if not, add the following snippet to `urls.py`: + +```python +from django.conf import settings +from django.conf.urls.static import static + +urlpatterns = [ + # ... the rest of your URLconf goes here ... +] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +``` + +Note that this only works in development mode (`DEBUG = True`); in production, you have to configure your web server to serve files from `MEDIA_ROOT`. For further details, see the Django documentation: [Serving files uploaded by a user during development](https://docs.djangoproject.com/en/stable/howto/static-files/#serving-files-uploaded-by-a-user-during-development) and [Deploying static files](django:howto/static-files/deployment). + +With this configuration in place, you are ready to run `python manage.py migrate` to create the database tables used by Wagtail. + +## User accounts + +Wagtail uses Django’s default user model by default. Superuser accounts receive automatic access to the Wagtail [admin interface](https://guide.wagtail.org/en-latest/concepts/wagtail-interfaces/#admin-interface); use `python manage.py createsuperuser` if you don't already have one. Wagtail supports custom user models with some restrictions. Wagtail uses an extension of Django's permissions framework, so your user model must at minimum inherit from `AbstractBaseUser` and `PermissionsMixin`. + +## Start developing + +You're now ready to add a new app to your Django project through `python manage.py startapp`. Remember to add the new app to `INSTALLED_APPS` in your settings.py file and set up page models, as described in [Your first Wagtail site](/getting_started/tutorial). + +Note that there's one small difference when you're not using the Wagtail project template: Wagtail creates an initial homepage of the basic type `Page`, which doesn't include any content fields beyond the title. You probably want to replace this with your own `HomePage` class. If you do so, ensure that you set up a site record (under Settings / Sites in the Wagtail admin) to point to the new homepage. \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/__init__.py b/modules/django-basic-blog/django_basic_blog/basic_blog/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/admin.py b/modules/django-basic-blog/django_basic_blog/basic_blog/admin.py new file mode 100644 index 000000000..e2a53a897 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# your admin configuration here \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/apps.py b/modules/django-basic-blog/django_basic_blog/basic_blog/apps.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/__init__.py b/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/models.py b/modules/django-basic-blog/django_basic_blog/basic_blog/models.py new file mode 100644 index 000000000..8c4ef689e --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/models.py @@ -0,0 +1,4 @@ +from django.db import models +from django.conf import settings + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/options.py b/modules/django-basic-blog/django_basic_blog/basic_blog/options.py new file mode 100644 index 000000000..c37a93888 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/options.py @@ -0,0 +1,3 @@ +# Define variables here +# VARIABLE = 'value' +# or get from environment \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/serializers.py b/modules/django-basic-blog/django_basic_blog/basic_blog/serializers.py new file mode 100644 index 000000000..2a9e6bdd5 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/serializers.py @@ -0,0 +1,3 @@ +from rest_framework import serializers + +# your serializer here diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py b/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py new file mode 100644 index 000000000..1b9df0b1c --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py @@ -0,0 +1,7 @@ +from django.urls import path, include +from rest_framework import routers + +router = routers.DefaultRouter() +urlpatterns = [ + path('', include(router.urls)), +] \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/viewsets.py b/modules/django-basic-blog/django_basic_blog/basic_blog/viewsets.py new file mode 100644 index 000000000..39a0c23c5 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/viewsets.py @@ -0,0 +1,6 @@ +from rest_framework import viewsets +from rest_framework.views import APIView +from rest_framework import permissions, status +from rest_framework.response import Response + +# Create your views here. \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/pyproject.toml b/modules/django-basic-blog/django_basic_blog/pyproject.toml new file mode 100644 index 000000000..7fd26b970 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/setup.py b/modules/django-basic-blog/django_basic_blog/setup.py new file mode 100644 index 000000000..689ef94ad --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/setup.py @@ -0,0 +1,20 @@ +from setuptools import setup +from setuptools.command.build import build + + +# Override build command +class BuildCommand(build): + def initialize_options(self): + build.initialize_options(self) + self.build_base = "/tmp" + + +setup( + name="cb_django_basic-blog", + version="0.1", + packages=["basic-blog"], + install_requires=[ + "wagtail", + ], + cmdclass={"build": BuildCommand}, +) \ No newline at end of file diff --git a/modules/django-basic-blog/meta.json b/modules/django-basic-blog/meta.json new file mode 100644 index 000000000..90d133165 --- /dev/null +++ b/modules/django-basic-blog/meta.json @@ -0,0 +1,5 @@ +{ + "title": "Basic Blog", + "description": "This is a basic module backend which can be used to create, view blog.", + "root": "/backend/modules" +} diff --git a/modules/django-basic-blog/preview.png b/modules/django-basic-blog/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..e26736d5389709d8f6306af36aa55d05f562194f GIT binary patch literal 74538 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 bm)p>3aWqvr77~IG3{EJ@sy)n;HhcL`=#*lW literal 0 HcmV?d00001 From ed41e2f018134a390efdaeacba7d0bf212a45653 Mon Sep 17 00:00:00 2001 From: shahraiz Date: Tue, 12 Dec 2023 02:24:02 +0100 Subject: [PATCH 2/7] blog base --- .../django_basic_blog/basic_blog/README.md | 62 +- .../django_basic_blog/basic_blog/api.py | 15 + .../django_basic_blog/basic_blog/blocks.py | 79 + .../basic_blog/migrations/0001_initial.py | 46 + .../migrations/0002_auto_20231208_1925.py | 129 + .../django_basic_blog/basic_blog/models.py | 358 ++- .../basic_blog/static/css/blog-main.css | 2105 +++++++++++++++++ .../basic_blog/static/css/bootstrap.min.css | 5 + .../basic_blog/static/css/font-marcellus.css | 7 + .../static/fonts/Marcellus-Regular.woff2 | Bin 0 -> 14552 bytes .../basic_blog/static/img/bread-favicon.ico | Bin 0 -> 318 bytes .../basic_blog/static/js/blog-main.js | 24 + .../basic_blog/templates/404.html | 13 + .../basic_blog/templates/500.html | 13 + .../basic_blog/templates/base.html | 57 + .../basic_blog/templates/base/basic_auth.html | 27 + .../basic_blog/templates/base/form_page.html | 57 + .../templates/base/form_page_landing.html | 16 + .../templates/base/gallery_page.html | 19 + .../basic_blog/templates/base/home_page.html | 104 + .../templates/base/include/footer_text.html | 5 + .../templates/base/include/header-blog.html | 27 + .../templates/base/include/header-hero.html | 18 + .../templates/base/include/header-index.html | 14 + .../templates/base/include/header.html | 16 + .../templates/base/preview/person.html | 16 + .../templates/base/standard_page.html | 23 + .../templates/basic_blog/blog_index_page.html | 50 + .../templates/basic_blog/blog_page.html | 36 + .../templates/blocks/blockquote.html | 5 + .../templates/blocks/embed_block.html | 3 + .../templates/blocks/heading_block.html | 15 + .../templates/blocks/image_block.html | 6 + .../templates/blocks/paragraph_block.html | 1 + .../templates/blocks/recipe_step_block.html | 1 + .../templates/blog/blog_index_page.html | 50 + .../basic_blog/templates/blog/blog_page.html | 36 + .../templates/breads/bread_page.html | 68 + .../templates/breads/breads_index_page.html | 26 + .../includes/card/blog-listing-card.html | 28 + .../templates/includes/card/listing-card.html | 30 + .../includes/card/location-card.html | 15 + .../templates/includes/card/picture-card.html | 16 + .../templates/includes/chevron-icon.html | 4 + .../basic_blog/templates/includes/footer.html | 10 + .../basic_blog/templates/includes/header.html | 57 + .../templates/includes/messages.html | 10 + .../templates/includes/pagination.html | 33 + .../templates/locations/location_page.html | 69 + .../locations/locations_index_page.html | 16 + .../templates/recipes/recipe_index_page.html | 18 + .../templates/recipes/recipe_page.html | 39 + .../templates/search/search_results.html | 86 + .../templates/tags/breadcrumbs.html | 22 + .../basic_blog/templates/tags/gallery.html | 12 + .../basic_blog/templates/tags/top_menu.html | 14 + .../templates/tags/top_menu_children.html | 7 + .../basic_blog/templatetags/__init__.py | 0 .../templatetags/navigation_tags.py | 109 + .../django_basic_blog/basic_blog/urls.py | 5 +- 60 files changed, 4127 insertions(+), 25 deletions(-) create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/api.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/blocks.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0001_initial.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0002_auto_20231208_1925.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/static/css/blog-main.css create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/static/css/bootstrap.min.css create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/static/css/font-marcellus.css create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/static/fonts/Marcellus-Regular.woff2 create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/static/img/bread-favicon.ico create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/static/js/blog-main.js create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/404.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/500.html create mode 100755 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/basic_auth.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page_landing.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/gallery_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/home_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/footer_text.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-blog.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-hero.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-index.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/preview/person.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/standard_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_index_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/blockquote.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/embed_block.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/heading_block.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/image_block.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/paragraph_block.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/recipe_step_block.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_index_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/bread_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/breads_index_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/blog-listing-card.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/listing-card.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/location-card.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/picture-card.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/chevron-icon.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/footer.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/header.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/messages.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/pagination.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/location_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/locations_index_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_index_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_page.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/search/search_results.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/breadcrumbs.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/gallery.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu_children.html create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/__init__.py create mode 100644 modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/navigation_tags.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/README.md b/modules/django-basic-blog/django_basic_blog/basic_blog/README.md index b2f042e45..0aceeff20 100644 --- a/modules/django-basic-blog/django_basic_blog/basic_blog/README.md +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/README.md @@ -1,7 +1,6 @@ -# basic blog backend configuration and Info +# Blog Module using Wagtail - -# Integrating Wagtail into a Django project +This module has a CMS integrated using Wagtail also provide a complete management dashboard as well as APIs for supporting mobile usercases. Wagtail is currently compatible with Django 3.2, 4.1, 4.2, and 5.0. First, install the `wagtail` package from PyPI: @@ -36,18 +35,6 @@ Add the following entry to `MIDDLEWARE`: 'wagtail.contrib.redirects.middleware.RedirectMiddleware', ``` -Add a `STATIC_ROOT` setting, if your project doesn't have one already: - -```python -STATIC_ROOT = os.path.join(BASE_DIR, 'static') -``` - -Add `MEDIA_ROOT` and `MEDIA_URL` settings, if your project doesn't have these already: - -```python -MEDIA_ROOT = os.path.join(BASE_DIR, 'media') -MEDIA_URL = '/media/' -``` Add a `WAGTAIL_SITE_NAME` - this will be displayed on the main dashboard of the Wagtail admin backend: @@ -85,6 +72,44 @@ urlpatterns = [ ] ``` + +```py +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [ + os.path.join(BASE_DIR, "web_build"), + os.path.join(BASE_DIR, "modules", "django_basic_blog", "basic_blog", "templates",), + ], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + "wagtail.contrib.settings.context_processors.settings", + ], + }, + }, +] +``` + +and + +```python +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, "static"), + os.path.join(BASE_DIR, "web_build"), + os.path.join(BASE_DIR, "modules", "django_basic_blog", "basic_blog", "static"), +] +``` + +## Your APIS are also configured + +### [http://localhost:8000/modules/basic-blog/api/v1/pages/](http://localhost:8000/modules/basic-blog/api/v1/pages/) + + You can alter URL paths here to fit your project's URL scheme. `wagtailadmin_urls` provides the [admin interface](https://guide.wagtail.org/en-latest/concepts/wagtail-interfaces/#admin-interface) for Wagtail. This is separate from the Django admin interface, `django.contrib.admin`. Wagtail-only projects host the Wagtail admin at `/admin/`, but if this clashes with your project's existing admin backend then you can use an alternative path, such as `/cms/`. @@ -95,14 +120,7 @@ Wagtail serves your pages from the `wagtail_urls` location. In the above example Finally, you need to set up your project to serve user-uploaded files from `MEDIA_ROOT`. Your Django project may already have this in place, but if not, add the following snippet to `urls.py`: -```python -from django.conf import settings -from django.conf.urls.static import static -urlpatterns = [ - # ... the rest of your URLconf goes here ... -] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) -``` Note that this only works in development mode (`DEBUG = True`); in production, you have to configure your web server to serve files from `MEDIA_ROOT`. For further details, see the Django documentation: [Serving files uploaded by a user during development](https://docs.djangoproject.com/en/stable/howto/static-files/#serving-files-uploaded-by-a-user-during-development) and [Deploying static files](django:howto/static-files/deployment). diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/api.py b/modules/django-basic-blog/django_basic_blog/basic_blog/api.py new file mode 100644 index 000000000..3ac195dd0 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/api.py @@ -0,0 +1,15 @@ +from wagtail.api.v2.router import WagtailAPIRouter +from wagtail.api.v2.views import PagesAPIViewSet +from wagtail.documents.api.v2.views import DocumentsAPIViewSet +from wagtail.images.api.v2.views import ImagesAPIViewSet + +# Create the router. "wagtailapi" is the URL namespace +api_router = WagtailAPIRouter("wagtailapi") + +# Add the three endpoints using the "register_endpoint" method. +# The first parameter is the name of the endpoint (eg. pages, images). This +# is used in the URL of the endpoint +# The second parameter is the endpoint class that handles the requests +api_router.register_endpoint("pages", PagesAPIViewSet) +api_router.register_endpoint("images", ImagesAPIViewSet) +api_router.register_endpoint("documents", DocumentsAPIViewSet) \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/blocks.py b/modules/django-basic-blog/django_basic_blog/basic_blog/blocks.py new file mode 100644 index 000000000..cb09c75fb --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/blocks.py @@ -0,0 +1,79 @@ +from wagtail.blocks import ( + CharBlock, + ChoiceBlock, + RichTextBlock, + StreamBlock, + StructBlock, + TextBlock, +) +from wagtail.embeds.blocks import EmbedBlock +from wagtail.images.blocks import ImageChooserBlock + + +class ImageBlock(StructBlock): + """ + Custom `StructBlock` for utilizing images with associated caption and + attribution data + """ + + image = ImageChooserBlock(required=True) + caption = CharBlock(required=False) + attribution = CharBlock(required=False) + + class Meta: + icon = "image" + template = "blocks/image_block.html" + + +class HeadingBlock(StructBlock): + """ + Custom `StructBlock` that allows the user to select h2 - h4 sizes for headers + """ + + heading_text = CharBlock(classname="title", required=True) + size = ChoiceBlock( + choices=[ + ("", "Select a header size"), + ("h2", "H2"), + ("h3", "H3"), + ("h4", "H4"), + ], + blank=True, + required=False, + ) + + class Meta: + icon = "title" + template = "blocks/heading_block.html" + + +class BlockQuote(StructBlock): + """ + Custom `StructBlock` that allows the user to attribute a quote to the author + """ + + text = TextBlock() + attribute_name = CharBlock(blank=True, required=False, label="e.g. Mary Berry") + + class Meta: + icon = "openquote" + template = "blocks/blockquote.html" + + +# StreamBlocks +class BaseStreamBlock(StreamBlock): + """ + Define the custom blocks that `StreamField` will utilize + """ + + heading_block = HeadingBlock() + paragraph_block = RichTextBlock( + icon="pilcrow", template="blocks/paragraph_block.html" + ) + image_block = ImageBlock() + block_quote = BlockQuote() + embed_block = EmbedBlock( + help_text="Insert an embed URL e.g https://www.youtube.com/watch?v=SGJFWirQ3ks", + icon="media", + template="blocks/embed_block.html", + ) \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0001_initial.py b/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0001_initial.py new file mode 100644 index 000000000..a7dfd2394 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0001_initial.py @@ -0,0 +1,46 @@ +# Generated by Django 3.2.23 on 2023-12-08 18:27 + +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.fields +import wagtail.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('wagtailcore', '0089_log_entry_data_json_null_to_object'), + ('wagtailimages', '0025_alter_image_file_alter_rendition_file'), + ] + + operations = [ + migrations.CreateModel( + name='BlogPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('body', wagtail.fields.RichTextField()), + ('date', models.DateField(verbose_name='Post date')), + ('feed_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='BlogPageRelatedLink', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), + ('name', models.CharField(max_length=255)), + ('url', models.URLField()), + ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='related_links', to='basic_blog.blogpage')), + ], + options={ + 'ordering': ['sort_order'], + 'abstract': False, + }, + ), + ] diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0002_auto_20231208_1925.py b/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0002_auto_20231208_1925.py new file mode 100644 index 000000000..e1cc2707a --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0002_auto_20231208_1925.py @@ -0,0 +1,129 @@ +# Generated by Django 3.2.23 on 2023-12-08 19:25 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.contrib.taggit +import modelcluster.fields +import wagtail.blocks +import wagtail.contrib.routable_page.models +import wagtail.embeds.blocks +import wagtail.fields +import wagtail.images.blocks +import wagtail.models +import wagtail.search.index + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0025_alter_image_file_alter_rendition_file'), + ('wagtailcore', '0089_log_entry_data_json_null_to_object'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('taggit', '0005_auto_20220424_2025'), + ('basic_blog', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='blogpage', + name='date', + ), + migrations.RemoveField( + model_name='blogpage', + name='feed_image', + ), + migrations.AddField( + model_name='blogpage', + name='date_published', + field=models.DateField(blank=True, null=True, verbose_name='Date article published'), + ), + migrations.AddField( + model_name='blogpage', + name='image', + field=models.ForeignKey(blank=True, help_text='Landscape mode only; horizontal width between 1000px and 3000px.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'), + ), + migrations.AddField( + model_name='blogpage', + name='introduction', + field=models.TextField(blank=True, help_text='Text to describe the page'), + ), + migrations.AddField( + model_name='blogpage', + name='subtitle', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AlterField( + model_name='blogpage', + name='body', + field=wagtail.fields.StreamField([('heading_block', wagtail.blocks.StructBlock([('heading_text', wagtail.blocks.CharBlock(form_classname='title', required=True)), ('size', wagtail.blocks.ChoiceBlock(blank=True, choices=[('', 'Select a header size'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4')], required=False))])), ('paragraph_block', wagtail.blocks.RichTextBlock(icon='pilcrow', template='blocks/paragraph_block.html')), ('image_block', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('caption', wagtail.blocks.CharBlock(required=False)), ('attribution', wagtail.blocks.CharBlock(required=False))])), ('block_quote', wagtail.blocks.StructBlock([('text', wagtail.blocks.TextBlock()), ('attribute_name', wagtail.blocks.CharBlock(blank=True, label='e.g. Mary Berry', required=False))])), ('embed_block', wagtail.embeds.blocks.EmbedBlock(help_text='Insert an embed URL e.g https://www.youtube.com/watch?v=SGJFWirQ3ks', icon='media', template='blocks/embed_block.html'))], blank=True, use_json_field=True, verbose_name='Page body'), + ), + migrations.CreateModel( + name='Person', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('live', models.BooleanField(default=True, editable=False, verbose_name='live')), + ('has_unpublished_changes', models.BooleanField(default=False, editable=False, verbose_name='has unpublished changes')), + ('first_published_at', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='first published at')), + ('last_published_at', models.DateTimeField(editable=False, null=True, verbose_name='last published at')), + ('go_live_at', models.DateTimeField(blank=True, null=True, verbose_name='go live date/time')), + ('expire_at', models.DateTimeField(blank=True, null=True, verbose_name='expiry date/time')), + ('expired', models.BooleanField(default=False, editable=False, verbose_name='expired')), + ('locked', models.BooleanField(default=False, editable=False, verbose_name='locked')), + ('locked_at', models.DateTimeField(editable=False, null=True, verbose_name='locked at')), + ('first_name', models.CharField(max_length=254, verbose_name='First name')), + ('last_name', models.CharField(max_length=254, verbose_name='Last name')), + ('job_title', models.CharField(max_length=254, verbose_name='Job title')), + ('image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), + ('latest_revision', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.revision', verbose_name='latest revision')), + ('live_revision', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.revision', verbose_name='live revision')), + ('locked_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='locked_persons', to=settings.AUTH_USER_MODEL, verbose_name='locked by')), + ], + options={ + 'verbose_name': 'Person', + 'verbose_name_plural': 'People', + }, + bases=(wagtail.models.WorkflowMixin, wagtail.models.PreviewableMixin, wagtail.search.index.Indexed, models.Model), + ), + migrations.CreateModel( + name='BlogPersonRelationship', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), + ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='blog_person_relationship', to='basic_blog.blogpage')), + ('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='person_blog_relationship', to='basic_blog.person')), + ], + options={ + 'ordering': ['sort_order'], + 'abstract': False, + }, + ), + migrations.CreateModel( + name='BlogPageTag', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='basic_blog.blogpage')), + ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='basic_blog_blogpagetag_items', to='taggit.tag')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='BlogIndexPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('introduction', models.TextField(blank=True, help_text='Text to describe the page')), + ('image', models.ForeignKey(blank=True, help_text='Landscape mode only; horizontal width between 1000px and 3000px.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')), + ], + options={ + 'abstract': False, + }, + bases=(wagtail.contrib.routable_page.models.RoutablePageMixin, 'wagtailcore.page'), + ), + migrations.AddField( + model_name='blogpage', + name='tags', + field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='basic_blog.BlogPageTag', to='taggit.Tag', verbose_name='Tags'), + ), + ] diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/models.py b/modules/django-basic-blog/django_basic_blog/basic_blog/models.py index 8c4ef689e..71664cc64 100644 --- a/modules/django-basic-blog/django_basic_blog/basic_blog/models.py +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/models.py @@ -1,4 +1,360 @@ from django.db import models -from django.conf import settings +from modelcluster.fields import ParentalKey +from django.utils.translation import gettext as _ +from wagtail.models import Page, Orderable +from wagtail.admin.panels import FieldPanel, MultiFieldPanel +from wagtail.search import index +from django.contrib import messages +from django.db import models +from django.shortcuts import redirect, render +from modelcluster.contrib.taggit import ClusterTaggableManager +from modelcluster.fields import ParentalKey +from taggit.models import Tag, TaggedItemBase +from wagtail.admin.panels import FieldPanel, MultipleChooserPanel +from wagtail.contrib.routable_page.models import RoutablePageMixin, route +from wagtail.fields import StreamField +from wagtail.models import Orderable, Page +from wagtail.search import index +from modelcluster.models import ClusterableModel + +from wagtail.models import ( + DraftStateMixin, + LockableMixin, + Page, + PreviewableMixin, + RevisionMixin, + WorkflowMixin, +) + +from wagtail.admin.panels import ( + FieldPanel, + FieldRowPanel, + MultiFieldPanel, + PublishingPanel, +) +from wagtail.search import index + +from .blocks import BaseStreamBlock + +from .blocks import BaseStreamBlock + + +from wagtail.snippets.models import register_snippet + +@register_snippet +class Person( + WorkflowMixin, + DraftStateMixin, + LockableMixin, + RevisionMixin, + PreviewableMixin, + index.Indexed, + ClusterableModel, +): + """ + A Django model to store Person objects. + It is registered using `register_snippet` as a function in wagtail_hooks.py + to allow it to have a menu item within a custom menu item group. + + `Person` uses the `ClusterableModel`, which allows the relationship with + another model to be stored locally to the 'parent' model (e.g. a PageModel) + until the parent is explicitly saved. This allows the editor to use the + 'Preview' button, to preview the content, without saving the relationships + to the database. + https://github.com/wagtail/django-modelcluster + """ + + first_name = models.CharField("First name", max_length=254) + last_name = models.CharField("Last name", max_length=254) + job_title = models.CharField("Job title", max_length=254) + + image = models.ForeignKey( + "wagtailimages.Image", + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name="+", + ) + + panels = [ + MultiFieldPanel( + [ + FieldRowPanel( + [ + FieldPanel("first_name"), + FieldPanel("last_name"), + ] + ) + ], + "Name", + ), + FieldPanel("job_title"), + FieldPanel("image"), + PublishingPanel(), + ] + + search_fields = [ + index.SearchField("first_name"), + index.SearchField("last_name"), + index.FilterField("job_title"), + index.AutocompleteField("first_name"), + index.AutocompleteField("last_name"), + ] + + @property + def thumb_image(self): + # Returns an empty string if there is no profile pic or the rendition + # file can't be found. + try: + return self.image.get_rendition("fill-50x50").img_tag() + except: # noqa: E722 FIXME: remove bare 'except:' + return "" + + @property + def preview_modes(self): + return PreviewableMixin.DEFAULT_PREVIEW_MODES + [("blog_post", _("Blog post"))] + + def __str__(self): + return "{} {}".format(self.first_name, self.last_name) + + def get_preview_template(self, request, mode_name): + + if mode_name == "blog_post": + return BlogPage.template + return "base/preview/person.html" + + def get_preview_context(self, request, mode_name): + + context = super().get_preview_context(request, mode_name) + if mode_name == self.default_preview_mode: + return context + + page = BlogPage.objects.filter(blog_person_relationship__person=self).first() + if page: + # Use the page authored by this person if available, + # and replace the instance from the database with the edited instance + page.authors = [ + self if author.pk == self.pk else author for author in page.authors() + ] + # The authors() method only shows live authors, so make sure the instance + # is included even if it's not live as this is just a preview + if not self.live: + page.authors.append(self) + else: + # Otherwise, get the first page and simulate the person as the author + page = BlogPage.objects.first() + page.authors = [self] + + context["page"] = page + return context + + class Meta: + verbose_name = "Person" + verbose_name_plural = "People" + + +@register_snippet +class BlogPersonRelationship(Orderable, models.Model): + """ + This defines the relationship between the `Person` within the `base` + app and the BlogPage below. This allows people to be added to a BlogPage. + + We have created a two way relationship between BlogPage and Person using + the ParentalKey and ForeignKey + """ + + page = ParentalKey( + "BlogPage", related_name="blog_person_relationship", on_delete=models.CASCADE + ) + person = models.ForeignKey( + "Person", related_name="person_blog_relationship", on_delete=models.CASCADE + ) + panels = [FieldPanel("person")] + +class BlogPageTag(TaggedItemBase): + """ + This model allows us to create a many-to-many relationship between + the BlogPage object and tags. There's a longer guide on using it at + https://docs.wagtail.org/en/stable/reference/pages/model_recipes.html#tagging + """ + + content_object = ParentalKey( + "BlogPage", related_name="tagged_items", on_delete=models.CASCADE + ) + + +class BlogPage(Page): + + # Database fields + + introduction = models.TextField(help_text="Text to describe the page", blank=True) + image = models.ForeignKey( + "wagtailimages.Image", + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name="+", + help_text="Landscape mode only; horizontal width between 1000px and 3000px.", + ) + body = StreamField( + BaseStreamBlock(), verbose_name="Page body", blank=True, use_json_field=True + ) + subtitle = models.CharField(blank=True, max_length=255) + tags = ClusterTaggableManager(through=BlogPageTag, blank=True) + date_published = models.DateField("Date article published", blank=True, null=True) + + content_panels = Page.content_panels + [ + FieldPanel("subtitle"), + FieldPanel("introduction"), + FieldPanel("image"), + FieldPanel("body"), + FieldPanel("date_published"), + MultipleChooserPanel( + "blog_person_relationship", + chooser_field_name="person", + heading="Authors", + label="Author", + panels=None, + min_num=1, + ), + FieldPanel("tags"), + ] + + search_fields = Page.search_fields + [ + index.SearchField("body"), + ] + + def authors(self): + """ + Returns the BlogPage's related people. Again note that we are using + the ParentalKey's related_name from the BlogPersonRelationship model + to access these objects. This allows us to access the Person objects + with a loop on the template. If we tried to access the blog_person_ + relationship directly we'd print `blog.BlogPersonRelationship.None` + """ + # Only return authors that are not in draft + return [ + n.person + for n in self.blog_person_relationship.filter( + person__live=True + ).select_related("person") + ] + + @property + def get_tags(self): + """ + Similar to the authors function above we're returning all the tags that + are related to the blog post into a list we can access on the template. + We're additionally adding a URL to access BlogPage objects with that tag + """ + tags = self.tags.all() + base_url = self.get_parent().url + for tag in tags: + tag.url = f"{base_url}tags/{tag.slug}/" + return tags + + # Specifies parent to BlogPage as being BlogIndexPages + parent_page_types = ["BlogIndexPage"] + + # Specifies what content types can exist as children of BlogPage. + # Empty list means that no child content types are allowed. + subpage_types = [] + + + +class BlogPageRelatedLink(Orderable): + page = ParentalKey(BlogPage, on_delete=models.CASCADE, related_name='related_links') + name = models.CharField(max_length=255) + url = models.URLField() + + panels = [ + FieldPanel('name'), + FieldPanel('url'), + ] + + +class BlogIndexPage(RoutablePageMixin, Page): + """ + Index page for blogs. + We need to alter the page model's context to return the child page objects, + the BlogPage objects, so that it works as an index page + + RoutablePageMixin is used to allow for a custom sub-URL for the tag views + defined above. + """ + + introduction = models.TextField(help_text="Text to describe the page", blank=True) + image = models.ForeignKey( + "wagtailimages.Image", + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name="+", + help_text="Landscape mode only; horizontal width between 1000px and 3000px.", + ) + + content_panels = Page.content_panels + [ + FieldPanel("introduction"), + FieldPanel("image"), + ] + + # Specifies that only BlogPage objects can live under this index page + subpage_types = ["BlogPage"] + + # Defines a method to access the children of the page (e.g. BlogPage + # objects). On the demo site we use this on the HomePage + def children(self): + return self.get_children().specific().live() + + # Overrides the context to list all child items, that are live, by the + # date that they were published + # https://docs.wagtail.org/en/stable/getting_started/tutorial.html#overriding-context + def get_context(self, request): + context = super(BlogIndexPage, self).get_context(request) + context["posts"] = ( + BlogPage.objects.descendant_of(self).live().order_by("-date_published") + ) + return context + + # This defines a Custom view that utilizes Tags. This view will return all + # related BlogPages for a given Tag or redirect back to the BlogIndexPage. + # More information on RoutablePages is at + # https://docs.wagtail.org/en/stable/reference/contrib/routablepage.html + @route(r"^tags/$", name="tag_archive") + @route(r"^tags/([\w-]+)/$", name="tag_archive") + def tag_archive(self, request, tag=None): + + try: + tag = Tag.objects.get(slug=tag) + except Tag.DoesNotExist: + if tag: + msg = 'There are no blog posts tagged with "{}"'.format(tag) + messages.add_message(request, messages.INFO, msg) + return redirect(self.url) + + posts = self.get_posts(tag=tag) + context = {"self": self, "tag": tag, "posts": posts} + return render(request, "blog/blog_index_page.html", context) + + def serve_preview(self, request, mode_name): + # Needed for previews to work + return self.serve(request) + + # Returns the child BlogPage objects for this BlogPageIndex. + # If a tag is used then it will filter the posts by tag. + def get_posts(self, tag=None): + posts = BlogPage.objects.live().descendant_of(self) + if tag: + posts = posts.filter(tags=tag) + return posts + + # Returns the list of Tags for all child posts of this BlogPage. + def get_child_tags(self): + tags = [] + for post in self.get_posts(): + # Not tags.append() because we don't want a list of lists + tags += post.get_tags + tags = sorted(set(tags)) + return tags \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/blog-main.css b/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/blog-main.css new file mode 100644 index 000000000..129d78c68 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/blog-main.css @@ -0,0 +1,2105 @@ +/* + +The bakery demo avoids using tooling so doesn't use SASS. This is a static +CSS file that extends Bootstrap. It's deliberately verbose to aid +readability with global themes, themes for each list view and themes for +each detail view +1. Global styles --------------------------------------------------------- +2. Page header ----------------------------------------------------------- +3. Main menu ------------------------------------------------------------- +4. Breadcrumb ------------------------------------------------------------ +5. Location styles ------------------------------------------------------- +6. Blog styles ----------------------------------------------------------- +7. Bread styles ---------------------------------------------------------- +8. Form styles ----------------------------------------------------------- +9. Homepage styles ------------------------------------------------------- +9. Miscellaneous/ Helper styles ------------------------------------------ + +*/ + +/* Global styles */ + +/* CSS Variables */ +:root { + --dark: #333; + --grey: #6e6e6e; + --border-grey: #e1dcd3; + --transparent-border: rgb(135 116 79 / 25%); + --white: #fff; + --cream: #f5f3e9; + --light-brown: #87744f; + --mid-brown: #825600; + --dark-brown: #553801; + --orange: #c55302; + --dark-orange: #833701; + --font--primary: 'Marcellus', serif; + /* stylelint-disable */ + --font--secondary: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, + Roboto, 'Helvetica Neue', Arial, sans-serif, Apple Color Emoji, + 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + /* stylelint-enable */ + --font-sm: 1rem; + --font-md: 1.125rem; +} + +html { + font-size: 16px; +} + +[hidden] { + display: none !important; +} + +/* Body */ + +body { + font-family: var(--font--secondary); + font-size: 1rem; + line-height: 1.5; + padding-top: 0; + padding-bottom: 0; + background: var(--white); + color: var(--dark); + min-height: 100vh; +} + +body.no-scroll { + overflow-y: hidden; +} + +@media (min-width: 768px) { + body { + font-size: var(--font-md); + line-height: 1.55; + } +} + +/* Headings and Paragraphs */ + +h1, +h2, +h3 { + font-family: var(--font--primary); + font-weight: 400; + color: var(--dark); +} + +h1 { + font-size: 2.375rem; + line-height: 1.16; +} + +h2 { + font-size: 2rem; + line-height: 1.25; +} + +h3 { + font-size: 1.625rem; + line-height: 1.15; +} + +h4 { + font-family: var(--font--secondary); + font-style: normal; + font-weight: 600; + font-size: 1.25rem; + line-height: 1.35; + color: var(--dark); +} + +p { + font-family: var(--font--secondary); + font-style: normal; + font-weight: 400; + font-size: var(--font-sm); + line-height: 1.5; + color: var(--dark); +} + +@media (min-width: 768px) { + body { + font-size: var(--font-md); + line-height: 1.55; + } + + h1 { + font-size: 3.75rem; + line-height: 1.07; + } + + h2 { + font-size: 2.875rem; + line-height: 1.09; + } + + h3 { + font-size: 2rem; + line-height: 1.31; + } + + h4 { + font-size: 1.5rem; + line-height: 1.38; + } + + p { + font-size: var(--font-md); + line-height: 1.55; + margin: 0 0 30px; + } +} + +ol, +ul { + margin-bottom: 30px; +} + +.hero h1 { + color: var(--white); + position: relative; +} + +@media (min-width: 768px) { + .intro { + font-size: 1.875rem; + margin: 0 0 60px; + } +} + +/* Links, Lists, Figures */ + +a, +a:focus, +a:visited { + color: var(--orange); + text-decoration: none; +} + +a:hover { + color: var(--dark-orange); + text-decoration: none; +} + +a.btn { + background-color: var(--orange); + color: var(--white); + display: inline-block; + font-family: var(--font--secondary); + font-size: var(--font-md); + line-height: 1.55; + font-weight: 700; + padding: 15px 20px; +} + +a.btn:hover { + background-color: var(--grey); + color: var(--white); +} + +a.btn-sm { + border-radius: 4px; + font-size: 1rem; + line-height: normal; + padding: 6px 8px; +} + +ul { + margin: 0 0 30px; +} + +@media (min-width: 768px) { + ul { + margin: 0 0 50px; + } +} + +figure { + margin: 30px 0; + position: relative; +} + +@media (min-width: 768px) { + figure { + margin: 40px 0; + } +} + +figcaption { + color: var(--grey); + font-family: var(--font--secondary); + font-size: 0.875rem; + line-height: 1.57; + padding-top: 10px; +} + +@media (min-width: 768px) { + figcaption { + font-size: var(--font-sm); + line-height: 1.5; + } +} + +img { + display: block; + width: 100%; + height: auto; +} + +figure img { + display: block; + width: 100%; + height: auto; +} + +/* Generic detail page styles */ +.intro { + font-family: var(--font--secondary); + font-weight: 300; + margin: 0 0 40px; + font-size: 1.375rem; +} + +.alert { + margin: 40px auto 0; + max-width: 1400px; + border-radius: 0; + background-color: var(--orange); + color: var(--white); + padding: 40px; +} + +.alert > .alert__title { + color: var(--white); + font-family: var(--font--primary); + font-size: 1.625rem; + margin-bottom: 5px; +} + +.alert__messages { + list-style-type: none; + margin: 0; + padding-left: 0; +} + +/* Hero image area */ +.hero { + padding: 300px 0 0; + position: relative; + margin: 0 0 10px; +} + +.hero-image { + position: absolute; + top: 0; + width: 100%; + height: 100%; + object-fit: cover; +} + +@media screen and (min-width: 768px) { + .hero { + padding: 250px 0 0; + margin: 0; + } + + .hero.hero--blog { + padding: 400px 0 0; + } +} + +.hero-gradient-mask { + position: absolute; + width: 100%; + height: 100%; + bottom: 0; + background: linear-gradient(0deg, #000 11.33%, rgb(0 0 0 / 0%) 100%); +} + +@media (min-width: 768px) { + .hero-gradient-mask { + background: linear-gradient(90deg, #000 11.33%, rgb(0 0 0 / 0%) 100%); + } +} + +.hero__container { + width: 100%; + padding: 30px 20px 100px; + background-color: var(--orange); + margin: 0 auto; +} + +@media (min-width: 768px) { + .hero__container { + background-color: transparent; + max-width: 1400px; + padding: 0 40px; + } +} + +.hero__title { + color: var(--white); + font-weight: 400; + font-size: 2.875rem; + line-height: 1.09; + margin: 0; + width: 100%; +} + +@media (min-width: 768px) { + .hero__title { + background-color: var(--orange); + width: max-content; + max-width: 100%; + font-size: 6.25rem; + line-height: 0.64; + padding: 75px 65px; + position: absolute; + bottom: 0; + left: 0; + transform: translateY(50%); + } +} + +blockquote { + border-left: 3px solid var(--orange); + margin: 40px 0 30px; + padding: 0 0 0 20px; +} + +blockquote .text { + color: var(--orange); + margin: 0 0 30px; + font-family: var(--font--primary); + font-size: 1.625rem; + line-height: 1.15; +} + +blockquote .attribute-name { + color: var(--dark); + font-size: var(--font-md); + line-height: 1.56; + margin: 0; + padding: 0; +} + +@media (min-width: 768px) { + blockquote { + border-left: 3px solid var(--orange); + margin: 50px 0; + padding: 0 40px; + } + + blockquote .text { + font-size: 2rem; + line-height: 1.31; + } +} + +/* Richtext Styles */ +/* stylelint-disable-next-line selector-class-pattern */ +.block-paragraph_block p { + color: var(--dark); +} + +/* stylelint-disable-next-line selector-class-pattern */ +.block-paragraph_block a { + text-decoration: underline; +} + +/* stylelint-disable-next-line selector-class-pattern */ +.block-embed_block iframe { + aspect-ratio: 16 / 9; + width: 100%; + height: 100%; +} + +/* stylelint-disable-next-line selector-class-pattern */ +.block-paragraph_block iframe { + aspect-ratio: 16 / 9; + width: 100%; + height: 100%; +} + +/* stylelint-disable-next-line selector-class-pattern */ +:is(.block-table_block, .block-typed_table_block) :is(table, tr, td, th) { + border: 1px solid var(--dark); + padding: 0.25em; +} + +/* stylelint-disable-next-line selector-class-pattern */ +:is(.block-table_block, .block-typed_table_block) table { + margin-bottom: 30px; +} + +@media screen and (min-width: 768px) { + .header, + .footer { + padding-right: 0; + padding-left: 0; + } +} + +/* Page header */ +.header { + padding: 0; + width: 100%; + background: var(--white); + z-index: 10; +} + +.index-header__title { + color: var(--dark); + font-weight: 400; + font-size: 2.875rem; + line-height: 1.09; + margin-top: 30px; +} + +.index-header__introduction { + color: var(--dark); + font-family: var(--font--primary); + font-weight: 400; + font-size: 1.625rem; + line-height: 1.15; + margin-top: 20px; + margin-bottom: 60px; +} + +.index-header__introduction.index-header__introduction--blog { + margin-bottom: 20px; +} + +.index-header__body-introduction p:first-child { + color: var(--dark); + font-family: var(--font--primary); + font-weight: 400; + font-size: 1.625rem; + line-height: 30px; + margin-top: 20px; + margin-bottom: 30px; +} + +.index-header__body-introduction { + margin-bottom: 30px; +} + +@media (min-width: 768px) { + .index-header__title { + font-size: 6.25rem; + line-height: 0.64; + margin-top: 70px; + } + + .index-header__introduction { + font-size: 2rem; + line-height: 1.31; + margin-top: 40px; + margin-bottom: 40px; + } + + .index-header__body-introduction p:first-child { + font-size: 2rem; + line-height: 42px; + margin-top: 40px; + margin-bottom: 40px; + } + + .index-header__body-introduction { + margin-bottom: 30px; + } + + .index-header__title.index-header__title--blog { + line-height: 1.1; + } +} + +/* Main menu */ +.navigation { + display: flex; + flex-direction: row; + align-items: center; + padding: 25px 0; +} + +.navigation__mobile { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--white); + z-index: 10; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding-top: 80px; +} + +.navigation__mobile-toggle { + background-color: transparent; + border: none; + margin: 0 0 0 auto; +} + +.navigation__mobile-toggle[aria-expanded='true'] { + position: absolute; + z-index: 15; + top: 30px; + right: 20px; +} + +@media (min-width: 1150px) { + .navigation__mobile { + display: none; + } +} + +.navigation__mobile-toggle[aria-expanded='true'] .navigation__toggle-icon-bar { + opacity: 0; +} + +.navigation__mobile-toggle[aria-expanded='true'] + .navigation__toggle-icon-bar:first-of-type { + transform: translateY(10px) rotate(45deg); + opacity: 1; +} + +.navigation__mobile-toggle[aria-expanded='true'] + .navigation__toggle-icon-bar:last-child { + transform: translateY(-10px) rotate(-45deg); + opacity: 1; +} + +.navigation__mobile-search { + margin-top: 20px; + position: relative; +} + +.navigation__search { + display: none; + margin: 15px 0 0; + position: relative; +} + +.navigation__search-icon { + display: block; + position: absolute; + right: 13px; + top: 13px; +} + +@media (min-width: 768px) { + .navigation__search-icon { + top: 11px; + } +} + +.navigation__search-input { + color: var(--dark); + font-size: var(--font-sm); + line-height: 1.5; + border: 1px solid var(--dark); + padding: 10px; +} + +.navigation__items { + list-style: none; + margin: 0; + padding: 20px 0 0; +} + +.navigation__desktop { + display: none; +} + +@media (min-width: 1150px) { + .navigation__desktop { + display: block; + } + + .navigation__search { + display: block; + margin: 0 0 0 auto; + } + + .navigation__items { + padding: 0 0 0 20px; + } +} + +.navigation__items > li { + padding: 10px 0; +} + +.navigation__items > li > a { + color: var(--dark); + font-family: var(--font--secondary); + font-size: var(--font-md); + line-height: 1.55; + padding: 10px 0; +} + +@media (min-width: 1150px) { + .navigation__items { + display: block; + } + + .navigation__items > li { + padding: 0 0 0 20px; + } + + .navigation__items > li > a { + padding: 10px; + } + + .navigation__items > li:first-child { + padding: 0 0 0 20px; + } +} + +/* N.B. We're overriding Bootstrap's default nav styles here, + these rules set what the currently active nav tab looks like. */ +.navigation__items > li.active > a, +.navigation__items > li.active > a:focus, +.navigation__items > li.active > a:hover { + color: var(--dark); + border-radius: 0; + border: none; + background-color: transparent; +} + +.navigation__items > li:hover, +.navigation__items > li > a:focus, +.navigation__items > li > a:hover { + text-decoration: underline; +} + +/* Required as bootstrap nav automatically hides this otherwise */ +@media (min-width: 768px) { + .navigation__mobile-toggle { + display: block; + } +} + +@media (min-width: 1150px) { + .navigation__mobile-toggle { + display: none; + } +} + +.navigation__toggle-icon-bar { + background-color: var(--dark); + width: 30px; + height: 2px; + margin-bottom: 8px; + display: block; +} + +.navigation__toggle-icon-bar:last-child { + margin-bottom: 0; +} + +.collapse.in { + padding: 0; +} + +@media (max-width: 1150px) { + .collapse.in { + flex-basis: 100%; + overflow-y: hidden; + } + + .collapse.in .navigation__items { + display: block; + } +} + +.navigation__logo, +.navigation__logo:visited, +.navigation__logo:focus { + display: inline-block; + color: var(--dark); + font-family: var(--font--primary); + font-weight: 400; + font-size: 1.5rem; + line-height: 1.25; + margin: 0; + position: relative; +} + +@media (min-width: 1150px) { + .navigation__logo::after { + content: ''; + position: absolute; + right: -20px; + top: -5px; + bottom: 0; + width: 1px; + height: 42px; + background-color: var(--border-grey); + } +} + +.dropdown-menu { + background-color: var(--cream); + border-radius: 0; + border: transparent; +} + +.dropdown-menu > li > a { + border-bottom: 1px solid var(--border-grey); + color: var(--dark); + font-family: var(--font--secondary); + padding: 10px 20px; +} + +.dropdown-menu > li > a:hover { + text-decoration: underline; +} + +/* Menu dropdown hack to allow toggling */ +li.has-submenu a.allow-toggle { + float: left; + padding-right: 0; +} + +.caret-custom { + float: right; + padding: 10px 10px 15px 5px !important; +} + +.caret-custom::after { + content: '▼' !important; +} + +/* Mobile menu styling */ +@media (max-width: 1150px) { + .nav-pills > .presentation { + float: none; + width: 100%; + } +} + +/* Custom page footer */ +hr { + margin: 0; + border-top: 1px solid var(--light-brown); + opacity: 0.25; +} + +footer { + padding: 55px 0 30px; + background-color: var(--white); +} + +.footer__icon a { + display: inline-grid; + background-color: var(--cream); + color: var(--orange); + padding: 0.5rem; + border-radius: 50%; +} + +.copyright p { + color: var(--dark); + font-family: var(--font--secondary); + font-size: var(--font-sm); + line-height: 1.5; +} + +@media (min-width: 768px) { + .copyright p { + font-size: var(--font-md); + line-height: 1.55; + } +} + +.container { + width: auto; + padding-left: 20px; + padding-right: 20px; +} + +@media (min-width: 768px) { + .container { + max-width: 1400px; + padding-left: 40px; + padding-right: 40px; + } +} + +.container-narrow > hr { + margin: 30px 0; +} + +/* Breadcrumbs */ +.breadcrumb-container { + position: relative; + z-index: 3; + margin-bottom: 15px; +} + +.breadcrumb { + color: var(--dark); + font-family: var(--font--secondary); + font-size: var(--font-sm); + line-height: 1.5; + margin-bottom: 0; + padding-left: 0; + background-color: transparent; +} + +.breadcrumb > li + li::before { + display: none; +} + +.breadcrumb__chevron-icon { + width: 8px; + height: 16px; + margin: 0 10px; +} + +.breadcrumb__chevron-icon path { + fill: var(--dark); +} + +.breadcrumb a, +.breadcrumb .active { + color: var(--dark); + text-decoration: underline; +} + +.breadcrumb a:hover { + color: var(--dark-orange); +} + +/* Pagination navigation */ +.pagination { + display: block; + margin: 0 auto 40px; +} + +.pagination__list { + display: flex; + width: 100%; + justify-content: center; + gap: 20px; + list-style-type: none; + padding-left: 0; +} + +.pagination .page-item a { + text-transform: capitalize; + text-decoration: underline; +} + +.pagination .page-item.active span { + color: var(--grey); +} + +.pagination .page-item.disabled a { + color: var(--grey); + text-decoration: none; + cursor: default; +} + +/* Search page */ +.search__introduction { + color: var(--dark); + font-family: var(--font--primary); + font-weight: 400; + font-size: 1.625rem; + line-height: 1.15; + margin-top: 20px; + margin-bottom: 40px; +} + +.search__results { + list-style-type: none; + padding-left: 0; + margin-bottom: 90px; +} + +@media (min-width: 768px) { + .search__introduction { + margin-bottom: 60px; + } + + .search__results { + margin-bottom: 120px; + } +} + +/* Location list page */ +.location-list-page { + padding: 0 0 70px; + display: grid; + grid-template-columns: 1fr; + gap: 10px; +} + +@media (min-width: 768px) { + .location-list-page { + padding: 50px 0 110px; + grid-template-columns: 1fr 1fr; + gap: 30px; + } +} + +/* Location detail page */ +.location__meta-title { + font-family: var(--font--primary); + margin-top: 30px; + margin-bottom: 10px; + font-size: 1.625rem; + line-height: 1.23; +} + +.location__meta-title:first-child { + margin-top: 0; +} + +.location__day { + font-weight: bold; + font-family: var(--font--secondary); +} + +.location__time { + display: block; +} + +/* ---- Blog Index Page ---- */ +.blog-tags { + list-style: none; + display: flex; + flex-wrap: wrap; + padding-left: 0; + row-gap: 25px; + column-gap: 15px; + margin-bottom: 70px; +} + +.blog-tags.blog-tags--condensed { + column-gap: 0; +} + +.blog-tags__pill { + padding: 10px 18px; + font-size: var(--font-md); + line-height: 1.55; + border: 1px solid var(--orange); + border-radius: 60px; + margin-left: 20px; + text-transform: capitalize; +} + +.blog-tags__pill--selected { + background-color: var(--dark-orange); + border: 1px solid var(--dark-orange); + color: var(--white); +} + +.blog-tags__pill:hover.blog-tags__pill--selected { + background-color: var(--dark-orange); +} + +.blog-tags__pill:first-child { + margin-left: 0; +} + +.blog-tags__pill:hover { + background-color: var(--orange); + color: var(--white); +} + +.blog-tags__tag { + color: var(--orange); + text-transform: capitalize; +} + +.blog-list { + padding: 0; +} + +.blog-list-item { + display: flex; + flex-direction: column; + margin-bottom: 20px; +} + +.blog-list-item a { + display: flex; + flex-grow: 1; + flex-direction: column; +} + +.blog-list-item:hover img { + opacity: 0.3; +} + +.blog-list-item .image { + overflow: hidden; + background-color: #eb7400; + flex: 1 0 auto; +} + +.blog-list-item .image img { + min-height: 510px; + width: auto; + min-width: 100%; +} + +.blog-list-item .text { + background: linear-gradient( + to bottom, + rgb(0 0 0 / 0%) 0%, + rgb(0 0 0 / 60%) 23%, + rgb(0 0 0 / 100%) 50% + ); + margin-top: -150px; + padding: 20px; + position: relative; + z-index: 1; +} + +.blog-list-item .text h2 { + color: #fff; + font-weight: 200; + margin-top: 0; +} + +.blog-list-item .text p { + color: #e3e3e3; + font-size: 0.875rem; + margin-bottom: 0; +} + +.blog-list-item .footer { + background-color: #333; + color: #fff; + margin-top: 0; + padding: 20px; + position: relative; + z-index: 1; +} + +/* ---- Blog Page ---- */ + +.blog__meta { + margin-bottom: 20px; +} + +.blog__avatar { + border-radius: 100%; + display: inline; + width: unset; + margin-right: 10px; +} + +.blog__avatars { + margin-bottom: 20px; +} + +.blog__author { + font-family: var(--font--primary); + font-size: 1.375rem; + line-height: 1.18; + display: inline-block; + margin-right: 40px; + margin-bottom: 10px; +} + +.blog__published { + color: var(--grey); + margin-bottom: 30px; +} + +.blog__tag-introduction { + font-size: var(--font-md); + color: var(--grey); + margin-bottom: 20px; + margin-top: 60px; +} + +@media (min-width: 768px) { + .blog__published { + margin-bottom: 40px; + } + + .blog__avatars { + margin-bottom: 40px; + } + + .blog__tag-introduction { + margin-top: 100px; + } +} + +/* ---- Gallery Page ---- */ + +.gallery__container { + padding-top: 40px; + padding-bottom: 60px; +} + +.gallery__introduction { + color: var(--dark); + font-family: var(--font--primary); + font-size: 1.625rem; + line-height: 1.15; + margin: 0 0 60px; +} + +.gallery__grid { + display: grid; + grid-template-columns: 1fr; + gap: 10px; +} + +@media (min-width: 768px) { + .gallery__container { + padding-top: 180px; + padding-bottom: 80px; + } + + .gallery__introduction { + font-size: 2rem; + line-height: 1.31; + margin: 0 0 85px; + } + + .gallery__grid { + grid-template-columns: 1fr 1fr; + gap: 30px; + } +} + +/* ---- Bread Index Page ---- */ +.bread-list { + list-style-type: none; + padding-left: 0; + padding-bottom: 40px; +} + +@media (min-width: 992px) { + .bread-list { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 30px; + padding-top: 30px; + padding-bottom: 80px; + } +} + +/* ---- Bread Detail Page ---- */ +.bread-detail { + padding-bottom: 60px; +} + +.bread-detail__introduction { + color: var(--dark); + font-family: var(--font--primary); + font-size: 1.625rem; + line-height: 1.15; + margin-top: 50px; + margin-bottom: 65px; +} + +@media (min-width: 768px) { + .bread-detail__introduction { + font-size: 2rem; + line-height: 1.31; + margin-top: 160px; + } +} + +.bread-detail figure { + margin: 35px auto 20px; + overflow: hidden; +} + +.bread-detail figure img { + height: auto; +} + +.bread-detail__meta { + background-color: var(--cream); + padding: 40px; + margin-right: -15px; + margin-bottom: 60px; +} + +.bread-detail__meta ul li { + border-bottom: 1px solid var(--border-grey); + list-style: none; + color: var(--grey); + max-width: 450px; + margin-bottom: 15px; +} + +.bread-detail__meta-title { + font-family: var(--font--secondary); + font-weight: 700; + font-size: var(--font-md); + line-height: 1.55; + margin: 0 0 5px; +} + +.bread-detail__meta-content { + font-family: var(--font--secondary); + font-size: var(--font-md); + line-height: 1.55; + margin: 0 0 20px; +} + +.bread-detail__meta-ingredient--draft { + color: transparent; + user-select: none; + cursor: help; + text-shadow: 0 0 7px rgb(0 0 0 / 50%); +} + +@media (min-width: 992px) { + .bread-detail__meta { + background-color: var(--cream); + padding: 240px 60px 60px; + margin-right: -40px; + margin-bottom: 0; + } +} + +/* Forms */ +.form-page { + padding-bottom: 60px; +} + +.form-page input, +textarea, +select { + display: block; + width: 100%; + padding: 8px; + border: 1px solid var(--dark); +} + +.form-page input[type='submit'] { + border: none; + color: var(--white); + background-color: var(--orange); + font-weight: 700; + padding: 15px 25px; + display: inline-block; + vertical-align: middle; + transition-duration: 0.1s; + width: max-content; +} + +.form-page input[type='submit']:hover { + background-color: var(--dark); +} + +.form-page li input[type='checkbox'], +input[type='radio'] { + display: inline-block; + margin-right: 10px; +} + +.form-page__field ul, +.form-page__field li { + list-style: none; + padding: 0; + margin: 0; +} + +.form-page .required { + color: var(--orange); +} + +.form-page .help { + color: var(--dark); + font-family: var(--font--secondary); + font-size: var(--font-sm); + margin-top: 10px; + max-width: 350px; +} + +.form-page__field { + color: var(--dark); + margin-bottom: 30px; +} + +.form-page__field label { + margin-bottom: 10px; +} + +.form-page__help-text { + color: var(--grey); + font-family: var(--font--secondary); + font-size: var(--font-md); + line-height: 28px; + margin: -10px 0 10px; +} + +@media (min-width: 766px) { + .form-page input, + textarea, + select { + width: 100%; + } + + .form-page { + padding-bottom: 140px; + } + + .form-page__field { + margin-bottom: 50px; + } +} + +/* Generic title image header include */ +.base-header img { + height: auto; + margin-top: 20px; + max-width: 100%; + width: auto; +} + +@media (max-width: 970px) { + .base-header img { + width: 100%; + } +} + +/* Homepage */ + +/* #region -- Hero -- */ +.homepage .hero { + margin: 0; + padding: 200px 0 30px; +} + +.homepage .home-hero { + margin-bottom: 0; + padding-bottom: 20px; +} + +@media (min-width: 768px) { + .homepage .home-hero { + padding-bottom: 140px; + } +} + +.homepage .home-hero .lead { + font-family: var(--font--primary); + font-weight: 400; + color: var(--white); + margin: 40px auto; + font-size: 1.625rem; + line-height: 1.15; +} + +@media (min-width: 768px) { + .homepage .home-hero .lead { + font-size: 2rem; + line-height: 1.31; + } +} + +.homepage .home-hero .hero-cta-link { + color: var(--white); + background-color: var(--orange); + font-weight: 700; + padding: 15px 25px; + display: inline-block; + vertical-align: middle; + transition: color ease 0.1s, background-color ease 0.1s; +} + +.homepage .home-hero .hero-cta-link:hover { + background-color: var(--white); + color: var(--dark-orange); +} + +/* #endregion */ + +/* #region -- Body -- */ +.homepage .streamfield { + background-color: var(--cream); +} + +.homepage .streamfield a { + color: var(--dark-orange); +} + +.homepage .streamfield-column { + padding: 80px 20px; +} + +.homepage .streamfield-column p:first-child { + color: var(--dark-brown); + font-family: var(--font--primary); + font-size: 1.5rem; + line-height: 1.31; + margin-bottom: 30px; +} + +.homepage .streamfield-column p:first-child a { + text-decoration-skip-ink: none; + text-decoration-thickness: 3px; + text-underline-offset: 4px; +} + +.homepage .streamfield-column p { + font-size: 0.875rem; + line-height: 1.57; +} + +.homepage .streamfield-column p:last-child { + margin-bottom: 0; +} + +@media (min-width: 768px) { + .homepage .streamfield-column p { + font-size: var(--font-md); + line-height: 1.55; + } +} + +@media (min-width: 992px) { + .homepage .streamfield-column { + padding: 140px 0; + } + + .homepage .streamfield-column p:first-child { + font-size: 3.75rem; + line-height: 1.07; + margin-bottom: 60px; + } +} + +/* #endregion */ + +/* #region -- Promo Section */ +.homepage .promo-row { + padding: 40px 0 80px; +} + +@media (min-width: 768px) { + .homepage .promo-row { + padding-top: 80px; + margin-right: -45px; + } +} + +.homepage .promo h2 { + margin-top: 0; + margin-bottom: 20px; + color: var(--white); +} + +.homepage .promo p, +.homepage .promo li { + color: var(--white); +} + +.homepage .promo a { + color: var(--white); + text-decoration: underline; +} + +.homepage .promo { + background: var(--light-brown); + height: 100%; + padding: 60px 40px; + margin-top: 40px; + margin-bottom: 100px; +} + +.homepage .promo-text { + padding: 0; +} + +.homepage .promo figure img { + margin: 40px 0 -200px; + width: 100%; + height: auto; +} + +@media (min-width: 768px) { + .homepage .promo { + margin-top: -180px; + margin-right: -120px; + padding: 180px 60px 40px; + } + + .homepage .promo figure img { + width: calc(100% + 60px); + height: auto; + margin-right: -60px; + margin-bottom: -280px; + padding-top: 20px; + } + + .homepage .promo p { + font-size: 1.25rem; + line-height: 1.35; + } +} + +/* #endregion */ + +/* #region -- Featured Cards Section -- */ +.homepage .featured-cards__list { + list-style: none; + padding-left: 0; +} + +.homepage .featured-cards__title { + margin-top: 0; + margin-bottom: 40px; +} + +.homepage .featured-cards__link { + display: flex; + flex-direction: row; + justify-content: baseline; + font-family: var(--font--primary); + margin: 0 auto; + width: max-content; + font-size: var(--font-md); + line-height: 1.28; +} + +.homepage .featured-cards__chevron-icon { + margin-left: 8px; + width: 8px; + height: 22px; + transition: transform ease 0.1s; +} + +.homepage .featured-cards__link:hover { + text-decoration: underline; +} + +.homepage .featured-cards__link:hover .featured-cards__chevron-icon { + transform: translateX(5px); +} + +.homepage .featured-cards__link:hover .featured-cards__chevron-icon path { + fill: var(--dark-orange); +} + +@media (min-width: 768px) { + .homepage .featured-cards { + padding-right: 50px; + } + + .homepage .featured-cards__link { + font-size: 1.5rem; + line-height: 30px; + margin: unset; + } + + .homepage .featured-cards__chevron-icon { + width: 12px; + height: 28px; + align-self: center; + } +} + +/* #endregion */ + +/* #region -- Location Section -- */ +.homepage .locations-section { + padding: 40px 0 20px; + text-align: center; +} + +.homepage .locations-section__title { + color: var(--dark); + font-style: normal; + font-weight: 400; + font-size: 2.375rem; + line-height: 1.16; + margin-bottom: 40px; +} + +@media (min-width: 768px) { + .homepage .locations-section { + text-align: left; + padding: 120px 0 160px; + } + + .homepage .locations-section__title { + font-size: 3.75rem; + line-height: 1.07; + + /* Aligns title with below cards */ + padding-left: 10px; + } +} + +/* #endregion */ + +/* #region -- Blog Section -- */ +.homepage .blog-section { + padding: 80px 20px 100px; + text-align: center; +} + +.homepage .blog-section__background { + background-color: var(--cream); +} + +.homepage .blog-section__title { + color: var(--dark-brown); + font-weight: 400; + font-size: 2.375rem; + line-height: 1.16; + margin-bottom: 60px; + margin-top: 0; +} + +.homepage .blog-section__grid { + display: grid; + gap: 10px; + grid-template-columns: 1fr; +} + +@media (min-width: 566px) { + .homepage .blog-section__grid { + grid-template-columns: 1fr 1fr; + } +} + +@media (min-width: 768px) { + .homepage .blog-section { + padding: 90px 0 110px; + } +} + +@media (min-width: 966px) { + .homepage .blog-section__grid { + grid-template-columns: 1fr 1fr 1fr; + } + + .homepage .blog-section__title { + margin-bottom: 90px; + font-size: 7.5rem; + line-height: 1.21; + } +} + +/* #endregion */ + +/* Miscellaneous helper styles */ + +/* No gutters */ +.row.no-gutters { + margin-right: 0; + margin-left: 0; +} + +@media (max-width: 970px) { + .row.no-gutters { + display: block; + } +} + +.row.no-gutters > [class^='col-'], +.row.no-gutters > [class*=' col-'] { + padding-right: 0; + padding-left: 0; +} + +/* Bootstrap Equal height rows */ +.row-eq-height { + display: box; + display: flex; + display: flexbox; + display: flex; + flex-wrap: wrap; +} + +@media (min-width: 992px) { + .hidden-md-up { + display: none; + } +} + +@media (max-width: 991px) { + .hidden-md-down { + display: none; + } +} + +/* From Wagtail core */ +.richtext-image.left { + float: left; + width: 50%; +} + +.richtext-image.right { + float: right; + width: 50%; +} + +/* ---- Component Styles ---- */ + +/* #region ---- Picture Card ---- */ +.picture-card { + position: relative; +} + +.picture-card__link:hover .picture-card__image img { + transform: scale(1.05); +} + +.picture-card__link:hover .picture-card__title { + text-decoration: underline; +} + +.picture-card__title { + color: var(--white); + font-family: var(--font--primary); + font-size: 1.625rem; + line-height: 1.15; + margin: 0; +} + +.picture-card__image { + overflow: hidden; + margin-bottom: 0; +} + +.picture-card__image img { + transition: transform 0.2s ease; +} + +.picture-card__image::before { + content: ''; + position: absolute; + height: 200px; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(180deg, rgb(0 0 0 / 0%) 0%, #000 67.69%); + z-index: 2; +} + +.picture-card__contents { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + text-align: left; + display: flex; + align-items: end; + padding: 20px; + z-index: 2; +} + +@media (min-width: 768px) { + .picture-card__title { + font-size: 2rem; + line-height: 1.31; + } + + .picture-card__contents { + padding: 30px 40px; + } +} + +/* #endregion */ + +/* #region ---- Listing Card ---- */ +.listing-card { + margin-bottom: 40px; +} + +.listing-card__meta { + border-collapse: separate; + border-spacing: 5px; +} + +.listing-card__link { + display: flex; + flex-direction: row; + padding-bottom: 30px; + border-bottom: 1px solid var(--border-grey); +} + +.listing-card__contents { + padding-top: 10px; + padding-left: 25px; +} + +.listing-card__title { + color: var(--orange); + margin-top: 0; +} + +.listing-card__meta-category { + color: var(--grey); + font-size: 0.875rem; + line-height: 1.57; + padding-right: 10px; + vertical-align: top; +} + +.listing-card__meta-content { + color: var(--dark); + font-size: 0.875rem; + line-height: 1.57; + vertical-align: top; +} + +.listing-card__meta-row:last-child { + margin-bottom: 0; +} + +.listing-card__image { + width: 100%; + overflow: hidden; + margin: 0; + max-width: 100px; + max-height: 110px; +} + +.listing-card__image img { + transition: transform ease 0.2s; +} + +.listing-card:hover .listing-card__image img { + transform: scale(1.05); +} + +.listing-card:hover .listing-card__title { + color: var(--dark-orange); + text-decoration: underline; +} + +@media (min-width: 768px) { + .listing-card__contents { + padding-left: 45px; + padding-top: 30px; + } + + .listing-card__image { + width: 100%; + overflow: hidden; + margin: 0; + max-width: 180px; + max-height: 180px; + } + + .listing-card__meta-category, + .listing-card__meta-content { + font-size: var(--font-sm); + line-height: 1.5; + } +} + +/* #endregion */ + +/* #region ---- Blog Listing Card ---- */ +.blog-listing-card { + padding-bottom: 40px; + width: 100%; +} + +.blog-listing-card:last-child { + padding-bottom: 100px; +} + +.blog-listing-card__link { + display: flex; + flex-direction: column; + padding-bottom: 30px; + border-bottom: 1px solid var(--transparent-border); +} + +.blog-listing-card__contents { + padding-top: 10px; +} + +.blog-listing-card__title { + font-size: 1.625rem; + line-height: 1.15; + color: var(--orange); + margin-top: 0; + margin-bottom: 8px; +} + +.blog-listing-card__introduction { + font-size: var(--font-sm); + line-height: 1.5; + color: var(--dark); + margin-bottom: 8px; + max-width: 530px; +} + +.blog-listing-card__metadata { + font-size: 0.875rem; + line-height: 1.43; + color: var(--grey); + margin-bottom: 0; +} + +.blog-listing-card__image { + width: 100%; + overflow: hidden; + margin: 0; +} + +.blog-listing-card__image img { + transition: transform ease 0.2s; +} + +.blog-listing-card:hover .blog-listing-card__image img { + transform: scale(1.05); +} + +.blog-listing-card:hover .blog-listing-card__title { + color: var(--dark-orange); + text-decoration: underline; +} + +@media (min-width: 768px) { + .blog-listing-card:last-child { + padding-bottom: 200px; + } + + .blog-listing-card__link { + flex-direction: row; + } + + .blog-listing-card__contents { + padding-top: 30px; + padding-left: 45px; + } + + .blog-listing-card__title { + font-size: 2rem; + line-height: 1.31; + } + + .blog-listing-card__introduction { + font-size: var(--font-md); + line-height: 1.55; + } + + .blog-listing-card__image { + flex-shrink: 0; + overflow: hidden; + margin: 0; + width: 325px; + height: 250px; + } +} + +/* #endregion */ + +/* #region ---- Location Card ---- */ + +.location-card { + display: flex; + flex-direction: column; + margin: 0 auto 50px; + text-align: left; +} + +.location-card:hover .location-card__image img { + transform: scale(1.05); +} + +.location-card:hover .location-card__title { + color: var(--dark-orange); +} + +.location-card__image { + margin-bottom: 0; + overflow: hidden; +} + +.location-card__image img { + object-fit: cover; + min-height: 210px; + transition: transform 0.2s ease; +} + +.location-card__title { + color: var(--orange); + font-size: 1.625rem; + line-height: 1.15; + margin-bottom: 10px; + font-weight: 400; + width: max-content; + position: relative; +} + +.location-card__title::before { + content: ''; + bottom: 3px; + position: absolute; + left: 0; + right: 0; + height: 2px; + background-color: var(--dark-orange); + opacity: 0; + transition: opacity 0.3s ease; +} + +.location-card:hover .location-card__title::before { + opacity: 1; +} + +.location-card__text { + color: var(--dark); + font-size: var(--font-sm); + line-height: 1.5; +} + +@media (min-width: 768px) { + .location-card { + margin-bottom: 0; + } + + .location-card__image { + margin-bottom: 30px; + } + + .location-card__image img { + min-height: 320px; + } + + .location-card__title { + font-size: 2rem; + line-height: 1.31; + margin-bottom: 20px; + } + + .location-card__text { + font-size: var(--font-md); + line-height: 1.55; + } +} + +/* #endregion */ + +/* Utilities */ + +.u-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/bootstrap.min.css b/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/bootstrap.min.css new file mode 100644 index 000000000..cb43362f8 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/bootstrap.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/font-marcellus.css b/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/font-marcellus.css new file mode 100644 index 000000000..42195ac72 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/font-marcellus.css @@ -0,0 +1,7 @@ +@font-face { + font-family: Marcellus; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('../fonts/Marcellus-Regular.woff2') format('woff2'); +} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/fonts/Marcellus-Regular.woff2 b/modules/django-basic-blog/django_basic_blog/basic_blog/static/fonts/Marcellus-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e765ed63a10068cc371d138d4c5a76b3ee4b20c4 GIT binary patch literal 14552 zcmV;}I48$HU?k-gL()834&n}2nvC^1c9M#3xhTQ0X7081BPe>AO(at2ZM182OHsP zMMbc206@Wc!bMR!IkRW~*9n{q5vmW=T}+AMC~B+KrbDZzvc)T+&2IEE^)1*c`3&a< zVtx~2&i7~QasG_?RIdhE9A{_cGf!JtIAGX>USHS0g>+5!K>)AZGID!wtXEIa)V;J^R>-%m|! zV}VqM!T|aDoxL=|Z9)UuL?gn5jeq9%t?j@=6q|jQ=h4Z#huRKmp%aRx{I6lTGE|#3 zllV^P3+vH35s|u&)TxL7^C92xji><;ptc*+m7e(g+q7)|*GRsx5C8ct@orGN2igD@ zjin=nwE^y~O`Z4kXFPvKUn7lWluWX`>;pw!_K_@EZ$Rdty$8s$kF|qsHv4O@CJ~~4Y}{j&BBY3(cia7bT5m|(l>$v7&DBVxHyzxpy< z=DocuXB4kO3nAF{084<5Krx^r_HC>M_F#bJAa?kH4aFeH`E`K6^k8&8hJk2)3kKRh zwmAHR0Wr7>cH@-#84SSLd;<`K|3OhNavrywpmIyD%tW{lTJdZTK;oEnBVwFs9<2Q0 zQ?$9P?XqAK0^>*l0Z5SWbnA~*E{&L2i8X^;_I$EsB+7ddJTzfMXZ%cDQ74gud^|}U z@7!0=!Y*)!sKBuh4d%&j?h-6VlbVLxxQu5=tVR94YAVO_yt9dUk&XtOIf(^mIi1OO z>T|B6>-J+0B)KGnL;88yw8$)eYLxd(Gy#70#mzOIl63ZqG2MfHr7w&$<$Aw}+_U45 zKetW6FTYJZLE=D=V0O?PIdSI7jXNw4p1k4s@I@3R1{qZxx+E#mWME?B5y)4lSScg3 zCe2#xw#NmR+;ZC;5Xc>lfJuk|CIT1$U@~CHedkCBz!$~49szx$qW}`smB(;5a|9Qc zJeHqOUQp}+P4>32yPWT#Q)e(dBG#-wxMO3QkUcp&Au8ig_!SI6LxVfB1B1lv-U$K= zti9^df#EVILO3LXzzD$(A)yh>5urFCJI)Br71?t`4&0GFEW+?Wjy#bQZ{|!Jb>RcZ zl`nEbMDD^6Rt)k$MxLn1OC0h>M>sqL5g>$oWUmm}D@OK8kv$`_XGZp#m|M~@oK$=m z6T-U`#k&PjUl2ifs$F0B*hj9~XPrKE3P>=lf7xXAFgcu|doPK4CY|kE86v>!!6=~PyKWJg7 z^R@gee>P!A)QpCs@n|~Qk1mM^t|!HLT>1YG6HujKF(_uUz22dkJvgdIg{R(U{YD@z z0r4R~kl^0$|NZ~Z_s`1!-`CPkXmy@jM!_pefB$I#%Z^lvh0ixY_Z9E&RKN8E(h)Ok$Vo==CCCnJFDM-VS~0iYRz#Q zU9;J3Cp<7^!8+^R_laX}cxc?T>o%A$>HJ4#g~RVk5eXRu6%Czi0)~&)${hcitYJ~l zs!5eZ$x@}u#FB-JPfSWqNli;HhftmZMM{)0nOCk>od%7XRcmpjF>!YcNT%w(dE^qB6RN9^+nMLdv@eF>2*0VqO}B}iULUQ4cY*EX(X z{VAsuisUNlbQaR{ZbcD}*5{sL)6N-zYNDQn)6_VFayb*v_8Q}@Fq?^5RtL-E(3OVy zdL&iN#OqQH`J$R+ot8Ql+~iI1Hw5x}4z+e;9LW?5;lp`xbS@=!IF^f9L&SYP!H>5U z+F)gr6kUkMH1?B^X>t}wC@r@;>)m}G2m=Jjl>~`WU&Ma6nu@L5OSEE8DttuL$e6># zoK8~L^BaIm5b^1+IaAeQb~52xw9KRqRHbBzt6UOLQbqs(&Vt-V$$Z zlh3(fFJ)byF<*_Dk7m~csGSCYf%=$n)OHZR4X8l-IBQz|vnRZi)K)!QRxDf4I9nNU zBTz%>QN;z+Qp^}lLBPPeu%(rL8GqP_&c&fOJNNphkjSe-A@j{C%TY`Q4Fwuw|hY@#m= z)$#y;|B`s@ed5K$t>cfvNItQ}v3fhR#$h)zXvCGZu&){Kl@sPvp}7Z@79FSv!ZZnT zNG-^XJMtwN>1L z+H5Q@-V1nB?VPK^u-9dD+No0(GAG9+xV1(l*xGL1-xkIRcZSXu@pP_(j=^U5nGJoe z3_x}-ZPEwxNEFcTVI9LGsN$qtSySb%jXB(gZ|9SlXT?yvmnLk= zkouSuuI01WUqsMkEF`9hqu^I+- zbXNH--J5O*zE4l`!WXUnurz(^*}aldBu-^Eqvm<3sA^JCzV37DB=+e1gB-WBOZ#f! zF``c`544LT>6|{F#Hqf|Dz{~h!1Up*$FiE-#IU9T>=?-!u(Dlb5OZ+*UC-2pFA94s zd~D$d;5uuwrkT#{_z2t)L(7ONJg=$bQ4zgs6kNSspjF5t+Ta+=i8QTZanv-Wv(BQvY!h>7XvZ@W!wvm%io+*!c zV(Kh2dX@H??rj>=SW*7=W5#1%Ep2w13IBS^O9}M=%H`$!lxXDb6W7CdNO-WYyz(BF zDS#ek$3l`1Uu^59Wvd+>1{~+(!*g}Jr>nHmkGk*|=2UJ4u1i~KJ7Mf=_j+|R*&xar zV!5g*pnuZ0)p!;!!GvdSyhOu#Ffe`W`V{AY)O~}{kZj|<{<*-2v`Y)@jlX5HeLt28 zTV1}XNp4tKF5%+OA78B=lxpl+bxwc$XmB@QrXC`!DnC@0rFKdlJPaHS+u;u1N18ls zH0^W6PsW&TobzX2;>wviBe+108H1zZBUUk0B;*Qgy|gE0&L9$@BGspMDHL$6#?*Z3 zaq!men0npo8Ho~)jPy_4ZdFMnzp*gFWXZA8tzC!hLWj5cQ?`wnkCs(u`s=X+Plek{C&CTR_kVbu~(?Lj|1h9x1mRSjMye>qgU+g&bFdbz?hq1^3SCm6z zc)`jE0Hz#6kO>>Q%LfHzwK%5Wf7w6oF`kF*xR)mBCIB}3D5?y%mhcp`1$OEbR5!Y6 zJ**h{NHd|s_&%kErQrkXfP3I`$IV95V(g%99BD6wfE#4Heyx22q?GvV>w|KnUZdbF zo`5=NQ;wBW%truoil{PTjcwtDt>NX`9uaCAXZ39Swd!57kzp2X54=w+m!+S0SUfdB zx(b6&*uF{W@Dd5_%KDkTNYN@lsAHnuMRsMoQGW?@LTE42!>e%~UuLSj*QDcDN*ZKJDUS+H?DRd|&#bs^?_&@`r~uIy zghF)X2w*hfQB)mc`&T2W_;{h-P9xNV8Bep!V#@>T>Uo#07F-Equ;f=pc>OGYx#Wn< zea?~W0`c9v`or)ip>fWyy~L(Fu)h3YY0m1w<^5cHbceWDDL4baYh12`@>Sd4HRBu} z8tJ$z$7({c>^7-8W1!D@p=DE+H9NUv_Hr2Z{;izNiMl>GN4xcu1TW=HI>DO;*48L_ zLuIaFU_Onlzm%_H3rOETR5j1Y+J-I)Z&83zk&L>%yfG(o{bRA*kFTfGCY#9)tnNm@ z)XyQ9&={z5ig7?8*a>Z*RmYudzJxE=huSb^M_Aw{?<*S>lR3E{yx19z z&K;BFpYfmlOYVbRlBINk;xDnYN~?m5`Ni;j3l(}$^cESD-f;K&OHm~!$jrBN%#@Ot zo9e($#>*XPToemWT%fVQ$Us=!y(}S-x`&_$!_G)!kJM44*xBlxFlKcJmRRz^%@l@v4$*8%toQXsX_1-40MT+YmYG7kc?o$NcffNJ|y}k`|9zy^NF`2;HbH^#=A_| ztQNzi)1ss6*hG|NQD3E7m2eqy#7C?ntbU`k6jbxzX?9*okJ%{TQdko0ye`L+KoD}_ zvV#0)V0G>)29#WI0?J$3?G$(!uWG!yY-;&l+IUUKg)6E+n66|_Fuf)ic2`CjxsI}B zo*Q&Fu*$lH)}#B6K?er&oSqf2c0A!T;9N#8ivJl zZcCGKi`q0O$M90OdMJ`KbkEH`eq9#T&|HG_4CyeAt?e}pl4 z4)@GrH=g{ghd?!)=_dcg+?DB`INbz$&vdb?kAEbvPz9^T(0*qk$Qm5WSF@m>Tkm2_ z)u8joOL#g1UsB#2haVQCnOUIPI_TJUNsa3Y7tc;7S38h6fL)#=zf+In+-S^uGhFWL zT?X@eM38A^Xdt)h{#MxHkMwPDH^l^bQP%uIZE9Ks-Ks4){aDq@@L6yB(3;% zP1ge|hCJ^d&y#b@_l}z0IzwOY6Z39BuHefw+#w+j5FW6$^;gSCQd-zPMZM*+7_a1Y zO=G^W`IJVM+RxYSoFf~fv5I8aog%adUBA$hRENyd)6f8bw0+%-Gy z-iZl6ymIj@-ka}H!YTmyA=`dJcYr^-f(K1*5{UkBVSzn8>x_xt3`I9^A2iY zsyC718`|z%oI4j=tIz0Bal@)PiXz4~jnjBqnSs$Re(3eUD^L!rP;xks4Qmdf4ahES zZ92!`FhFTS&sj8LH16zyT?aXlbqZyB3`TV9h%d(yE|W$#%2`U_At zUg($dpK1HM)?}Mz)t`)SmfLT={I2%>#_jHMUv! z?S`EXG^2i52sUEro9rSgpgMYFBkPgvNX8V3zq-@vaAiF0^P0W$t!JcbA$5^;a6PIF z_8-~{(YO}bgU&mw0rtNvbp8t6MNFY)r~~$=wAC2C4;%3!jumVI%MLSHsKmfYjy)g! zWD1jIZC>>dI%%DGSpUT%KP)oA|H@E zwJ&zd#cjwsV=XbJTBEysSQ9@z)Ygmds^90;c!`N7w+J56h!)M740>O=2Q5XGa{=$i zLv<}+9W)Q7KtBYLOeVxec6soHfVh4z0cM~vL@V;>Z&#P(mE@HeY=(W#AvIe$fvqLq zg~p{#`#X^H(J*7RWPYecp6tWPPz*;cI3BCadXp}C&A!O2Q1bSWe3a=7i727kGB#m+n`OTTaUcW`&=OZ|2&MUtX&P z#qGuJJNz39n2SxypaFKCk;aMsRXu}xAdOQ7J@<_mz?zG8B(_ws7fJ^!E+1|ADyj>+ z%RbV~`m}C+`je(J`!-ZXK4ms4>dfY0?O|4(8^XgQ$*T|fMbd}an=S2)`3;1hFN!&N%-L9FJKcQdI^5tJAw4hZuVk_C#sw(j-aZKH}!dR9zd zzImEyN;Y}w0y!ZC-kxyuX3E0Bu0G|2>uKOFHFoYgpvUmKdw?hF;)Jqv))6Z@*< z*n6=5g!1N8&+U}9w)=?-9r|k%;X9^4Tnlf(nmZjLm5SDo8+K{|F0%{plHzy#EBwlr z&{D{W>H*({gAU6x!rlK_#c%b3Qoj@RnWQM$zhU5dAxXCD6Cy+ z{$miP;KIvkJpLu-BYTgFXqOdOB@`V5k@^Eo*EaV$)S|<_X>Ula&DT7Ij#?M4J0}~3 z7Qb(wAxu9Y43{&lRmxG?wEqO=2%Q~N_=PSoK9uVy@>5ZMp3Pe4@*~TU1BX}4&oB?c>(+!mh=5sgMz?pY{H@QJ2suk1-r35sgl~f<|bP?RffMYxyvg*6?pdFeK8R% zwwx1%m-3d**LXdS;P zQC$%`S5zHwMm^Lk&Xx41KLhELkA+9~b3H`PV!PnBJG_};^=fy$?$W~gHMuRR8ym>m zdujuRrV255P-Wc=gPFFesG9mg(a1(gX>6{yA}TA@2*N|LB&D;|mm79^De#28nrGe3 zasDqoA|sr#nQm&iEF2jXUbWTBFHNjpm2dZoD4!|Km-RF9&GDOxswp4jjf_fiDN3)b zpd=(7s$qj1cgtn&#E|M*Prdlk;QC|oa`Rzc&yeUEqN@&i0k!LwAQpr&$M4Q-9>~4c~wAH`O2efd37pC0LLi zuEUxUO_@OsqoMi{J^+Ht1MANy>Zo#84*trDgAo3FTAmqu@~DRzhc7B8Xhy67FC-WO zFaBgz$%^C4@f-dVG*Y^MOoDR58sGB5g`T03wnR;N%-pJUvqsh17ez?ame9a7B0QykkF)_4{+q z4s2n1Z*d<^SvAd#waSwsI2rokxCQL7N=S44FowgDLgq&YFH|d{y@luAzKD7jikW)m z_1>%v2?yhMN16BUFnRn)eR6Y6lx%7|Rcg2^8XFk+OtXf-q`$x*x@SL^Rv; zxZQ^IB1&-pHCZ3PqQ`Jg_Z4wW36(+gSp)||Z$T~Kw=%DBf(R!k$r-VJK8_mAq~&`Z zC(7~a7eJzMw$)xD?JdYM##a#OZ@)Tlp?dYDjq9(=t@YPL)1#VIo0)%peCn2N zpl($-J*vIRkn@`pwH1`PqH6M)+@Vo%9>0m9GgCGdRmXl{7#Wd(&Fd7Nv#cp%aYL-$ za!S-U&JQ}T;gPB9x;|MqPPI|;eeXBG4(7RW0>54F1r;VcW%$09IZ|bviMqFM$&fR$ zp-wSiFtNMOzkTEvXeLZ(c6R*#QlBFkFc0a+Jd^nV^vmbj*zMz&l`b>vDY} zz_3DO@>Dfh=NIGG`1`^M>ILLkR(vuc%ZnS%r8)X@!V%NgJ$6!%#} z;?lAWx=OvFFs(Y19#SL{H^wTdDt8XPNak?f?fnSpE^#1Pq*JmJQnGWDCS^`uN-aMn zsz}1A2+LI02Hyk7l)z;pF?WW!{Up(ag&_~kOfGEkBC7x%Ty3YAW3O@5oSpn*b-;h# ziYS3OZ~(gK`X6i%3mnP7OZHm;D}SKeM$TwWj3zbCpB47w{#=ypB#rGGuV6|j-_Vju zukHY@0|364cNdwzP5Oaa8iErA8AX8toQE{ktJL4G;pHEmH=sXU!fg8@rr7_B1$T-9 zG+nUDn=Va;>bKTp&;IKehU23XE7E@v@3am4lKn3B(oWW0%pUlk;onm>#4k<}PQqAs z9|3#sSC@ae*dKg8|8PFrjQ1{)uljGk4!gViiiqHuqc;)}9j&lDmJ?0*D_CMx^ql+v= zk0Tum;*Pah?B^9bg8UZ@D=)YvO{qxE3CVXQ)3oR;N5_@$y{D481>pu$bp1FZ95YT>Bl)~Mj*2-WG%iF@GN`x9YbIjdX_rp{T^t}l; zuGg?zs>q)0_%?LN*~ggQ^g18Gzz@lm1m+dcjBfcvX-JWF#TUQLnW)TSYxNuyB&9YR z6oVvfQfpADl-X&BB^cPc3aKDaY`-C`rkpiz(xtrD-g=hb_obvUQD%yqGU#I_)fKHN z58#iEKT?0fKWXzwJi>~KEamsn%ZS{<(YCkHCBz7-F;i7pnK8Fi zDc~kFU6V}w7{)0Pm;RMMK%fC(xHPTKBp;$p2h2FJ5eYc!4N(8GG=|A!9TSz|gikUn z`tKRC3Y!F(C8-@G>7nyGcB)hI!g;AQK2(kyRYey=dptW+`8B!CO}2YjO!09nt3Dv2 zkR4;dC8Ss5zap>xTZJaDRhjY0(u8D(wR*;;ozBipmoHZ$->Y8S6SB^7I@drmXbrXj)CUzplR{`8au;ek zxMuTX1R#`4`ny~_L+DHH%Kl>V?fsE_!SWH?UEZ5c3;W98##PNg-706gTYI{pLVbK= z|8{L4&SPPzVIhZrl3mOcI_llmT`xQN{i@KzUQ)jgYt@t4Ny@*izH zs*GWdM&j%>S2D4@$cs4dcxb0<#=FQNi9O|T-XtqU?|WpF<*h5cv;7)`9Z6!O&KD{ zkxR%n;7b(r2G%9#X~SMAHD#$*0&9ogrJ*hh^b%^@Gih!@^fNl`rSHZr7ZgT))&Sfu zo7mH6Azb9jE^^2$+Cgh6Vvpz4WN)9ZxJj?~T2vyU;c~k|jL-mo4<~jM!V;t$k_9(} z?l=P0vSPCj{S(7xevxRpeFto2x3) zoM@o3rcXK>rBZE*^6`oq@jzNYWix#I{*K25Hk)89p8N5ZW>ft6qNU;CrK0okCKG7O zMFGb+O){C|&lN4Bx_rvEBroG2@IhVeG~-H95g)*`hML}gy}SimJYHrp)!BtLh27bc zSz9Cb<`l+^Nps7i(gO#Vsk{ub8up z*0dh&4dWqB-97_9uJr`&KXG)8ktM=Ri=6B$tI`CgaH_+!$(cOX6Xsou+&|m1%rT81 z#>jkyQHO(dNxZ~zrNlr@KhY6kR4{uBs$>@jmk*C$sktG~^$MN{`K|xdx$>W8)D(+^ zUEog*@Cs3fNkH=IF__Z{8xURE@?59^je{p(uLg%)2ndihXvMq={vKA%+bQ50AUH&3 zaLA6O-!=YW1%U@ALcXs$ys`MKwZX9Med7~K8`LAdsOiCN0IQjON#yhJBrV!iSQNS`NB<%);h`F zhMbfG%|jh6RD#s(t zlGJ*%$7E`1MPX5U-nUs%dJSFgS(wNpTa+?O6caEDiNdTXV*q`T9Hrn(3Ps!zR&p%Y zM?>dC<+2iFUZGJk-<41)Fm9y6L8&HDjukK#^W5zFM4jolmk=ho-7Ly2_30HCko4G7nVVGD-Zc(e_ zHW*Std&6*C5<7`S zcqnm_R{{@XF=~m^(!$^XtKQe@)e6|v(6oaFYjW!iDuT9Sgu;WO zs*A)c;o=eacCDvOP|=^!>|0H@^Rpwez;^8Sz_A~$-vJdP^nb~wc{c}PDvnrA<^`Vg zx%u|h#8)m?U>ZxbUhoGSSfO0R!!>{PrMmA2AUV*_i9sJ^M(~g?{MGk+z!0PWy1+$S zlM`n9Fe*VIkRy(ug)$PX!8DkF(6a=9vbuwEp#**kGR%%zd{^Gwxd);y&NimG|+2k6i3d`T2>GX$O;rKr*Q34N&sDlnmwC~uWg=q zpcqQ2!SId|)p-nwC<-s0u+ zQ*uMjw74VsU@7_hom)B0xRnWTUAj6UZ`{F=8@~;#4ylaV1IIV`Y3=!i9a<{dzGR1Cnf{^;_s3rFQAh z6;t-!wC9rHjI;AOWVnAbas+x`9Q?1munN_9m z|Fd9mY=eGVL43Aa44(sa1Lt=M#L^VtDmM>YiPJjXL!Y>-xH5Q4CKfnybg$SREiy8Fb7oYQTUzOZlM#(SR{M$x8W&Nh zoEjOOy2Z?rd;dccGScbQx&o`bE2BT=+)rAMO#(|fb5uh;xHBJ*{psj~W65BoIki+% zr`%wLzh0*llzypro(t~4(d-bwr)DSf>^N{4%;v$pB)rfdhA+X<24R%_mJnL;9E0Q@ z=@GwA8K1KJo-#pXOWJfM-G}Tm_|vCSnW~i27~Rc@#c|dR22n);*}vsnkLwG_N}HXC zIXFFK&2{CkYS7gPBm5o{==w7?gBrUERM{@06#MtUrpnlu-RsQR<1!H2O)^(x^=AO5U$pUS8-q_&D0yR;xcKDtc}Re!4vp;G1Q--f8E zR2;!jE%aNhpprsp8qpI7`qn1G+t%`;INSu_kel&QB7TB_Sd1;OtMk(9G+atmNZed( z=@qpzom)ZVCx=MLkCPB8u{jOi1Cu1!uiN2+!Pd^I(>|BVG18D2ZkklgOZ5kpch@%o zBQdeo-aJ)=97+0E`+^ghJI|>R%lX4`3)UtR|Jso$+f)F~}zaS+G-@wqQs7WzR zMLf$t|9t(eiCQHU+!_1Y{PpKWV8fW%tG|9smdy0EDdXs1GI)M|Xo$zNZ1@%%40t7k zNLQrV*X!lJ46mq`D6d!hV!bx9`oe2d?7mn3-**}NUIO+MWo5wxNZ`)#E9NUt%}>7- zW2q)gUM9c|Z41qz)fbao$$|nDN;1rTtF!KNV03?198@ z%~k%&Wp=;*pVgM5tb{^6tAW&tYj%K0iGDHp(RO& zsJ|qztYY0D?R53H>Ft?a|K@EzL27&QtSRRB-d2yNS0gKrO6R<0sT<||WQSP`x9;et z#od2CABsQK#QLo5^8Urg*55P74hNY(I#-Y0UY~xacFX3xd|hp3o?8<)P~}OUd~YzQ zN(4q-E2$Xxj|#_`pZq7x@a}FSrxM6B5Tb*$L+5hHG03@^vZqGdt>zCECpF>AY;#NM+4v4xi*N zBCKc0X1wA-zm7M>fn-88Dp@xc!&Ws*(tv5-YgdlD?<{ZPY8Vd@&6GN zvU-pL83p^#cYMkHb7+MBZ};=V7tMl&0%7kt#j}u~db)$ZlYQKI)*t{L|CcN1IxGA5 zq;>a9n3DU>2k;+veD(Dfnx`-|#u3Q%DRO3?PR04c#x?mWx zjcOoa8wJAZqWIU9KXgWNzZ$c5R-s+LT6eU6*ZE!7Y4$p_tIGaz7@!^fF*Cm1MvgS4 z#Rr->$~w9#TJFmAtqDLq@x2qNNo6S`7%?pWV_uxd#E9HXxk{iDs$`kD5!GyQV&#wj zhF5a9G_!_V6`Y)r=X>Xr_rNc%Y+_6l)BmV9E0h|kV=J}NY`Ip=Hbk1uh4f%;vP8_0 zbLBjrb?%BNa+?JbXZe^G=MJcxDIq84K*6r27BAFP-f(i_*%=g zBZ}ttQ3*PA*%D}!V#-S!%~Oy&w7Rw!Nkr*@5ZMEE?k=9HYS9$-E@S?M`;IpNr&k8!#3sFO|+FIFA^k$7ZdI533gh^9( z>bQi@tGH*gbH{VR-lAJf04Z?76$J3103Cl$z+jN`?ry# zb;8Z4$p;pH6#Sn3t@Tq65P(WmP(Vad zoDjgBFqZ0!!rR4`f3Z0A#ZIRj2XQ8vsZYkZAned^E->o7?d}wLzf`DrdrCe8C6^q1 zBZ3V{g}gk$E_|vL<{aG*2F`n<&px}j!ELmK{Q1V(0sS5A5BTMqFlpv9-RNM0{&wnm zJM4435c{?BynR7kI{Yo1UguEYH1F|sCiyw==CW~itBW_T?zSDSf#OY#zv2rahdX=^ z-wk5#ES~fKT8B;uVB`d`XnRc_!KZ#jvAk5SG|pg9rI^*G7bf*-J4)KMeMysQN?zz( z;sC2Tu_@HXXNKgQk@$izRI0b#**b4r(QP|#%IC4(b?4CNgn-2CU>0q@*(3PmuXdt5 zWzU*V>}R#ucn_@<58OFrkxfyNos{4}B~8s#A(yYFR;e3i0c_M9MX@0Skjd{_Su;(; z40Sb3ASr8_y_!-9@6Givi0KHF_00s3s2jDVq;`=f^}VlfYDhs6s06ODgvc`MC4eET z@{ebwPt(94mm`!26~Bp|B^&5D(JBavR?>2k4POg?6)J^dE@yC{89aAww$7HSBt$A& z_Ds=lLd9M)+tfrh#9;rXa*}(}K>+9v-0H=c1FW>5o~0l+n_4m_0f8JSU{?bwX$n7 zG7!)A7UQ$Ly+Y_?_j0@T{zUK<^fo^b|2hrQs%b_3;xuwT%j2gCZ*eV#n-HSxFUhBh zeV50%)qmOF>ou1lr|QI-Qpn24AppcQ5TNNESu8}*4>WX-7=7=j0I&O}`aW{X>(NyA zCtgpcyRYfj+_hy3ceL-ILSNJ}P-@G2pc3i=N4>w@*Bon{OZk(82u3nwThF~;ST z_eWlj4sw5@f8y@G#;vJdslYw9Q*3J;UV0$B?(gmU$UCn`>)qG5HPttIU>C41{jXuE zbIaOr>NLmq6JLIt@$1arU{vSaLZbb)4$Nxa5#Z=|;2fRy+XYXYiT(ZOf?J5!-0}9E zRqG*}1LxWa0@6Ek#Q%Www5$d`kLRWGxmg<9!MUX|0uO`#IHz9RzPbPVR%aUCcT>^~ z&$_XfD7JAYtt|LXDwxBAhMzu3d7lvg0tg#9g4uF7f3T@_$i_A(Q(F z@BKNMD|Ai!Z*^N#$6F89I#&0~!{Nx@pW$OI@$D;U=*aOm&5vb7nB(UKZe6Z)Ld;KRSft6EXqR(n2hUT& z1M$&iPVKk7LiiZkx|Lxlze*B7>G${_05va_-|eL_0{;oT35D=QfN({^$%*ElP5fO; zG}#0Pgj*7JRx84FqP~qU?+N}fl6fr67T5M%${U5$hX~ywxBkb}GOD)3LfoqBZg})o zvW*kZ`7-{cFO;00GrdGioz4`y@bYt%+zzhpmV0nC6^e)yNzdP7SBcD_vk9DlOYnB( z33zJOxzO}7GfM!ywf5%c2D>KF8-N>!Zn}toOVm*1_G>y3Oj+*4DC1d` zYEYq0BcWJUrP?bN<>57>kmHe%D%PNsQMGDKtjJWq_MTOnp^h~m&&i?|QJh%Ry~0wI zMkb$xvf^X3R3yFjey%|xGys_BDzyyj>Vnwkau2y0=+M)uQ$`ONO zR{pv-Gb-bZ=Mf1)k%3a9j71b2c1JJ-wY_1=g#Xh0J4Kjq5h9U9i57z_7KN9;Pw3($ zU`UiCS&CF?(s6L{@CgWsh)GDv$SEkPsA*{F=w-{1%OFp_OD-FAP^FtHTvz3g8YQZg zsx@i5G8X^y|8A>iROf~Uw^-fNynHTy`5r%YNs)b74EYithdWY%HIq9cy_#wMBh7O z$uxo>=K`tFTOo$A6vN7df#SfClMGA+iZ~lGV%(T@+_?%62)0wO9Zoszgp;mXb-_h@ z?XzM(w}2gU99x$4HhAU>AN$-VkPZZ@Tz6uF1>JO11&vl~=}szj#zFmtG~w4tN8t6= CN`veG literal 0 HcmV?d00001 diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/img/bread-favicon.ico b/modules/django-basic-blog/django_basic_blog/basic_blog/static/img/bread-favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c537d88d48b0dec5888f99bbdfd47b7cc40409a2 GIT binary patch literal 318 zcmaKoF$%&!5Jmr@ipH=K}`8w# { + mobileNavigationToggle.addEventListener('click', () => { + toggleMobileNavigation(); + }); +}); diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/404.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/404.html new file mode 100644 index 000000000..d069c0c4e --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/404.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} + +{% block title %}404 - Page not found{% endblock %} + +{% block search_description %}Sorry, this page could not be found{% endblock %} + +{% block body_class %}template-404{% endblock %} + +{% block content %} +

Page not found

+ +

Sorry, this page could not be found.

+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/500.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/500.html new file mode 100644 index 000000000..43bfd0adf --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/500.html @@ -0,0 +1,13 @@ + + + + + Internal server error + + + +

Internal server error

+ +

Sorry, there seems to be an error. Please try again soon.

+ + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base.html new file mode 100755 index 000000000..08b445d4e --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base.html @@ -0,0 +1,57 @@ +{% load navigation_tags static wagtailuserbar %} + + + + + + {% block title %} + {% if page.seo_title %} + {{ page.seo_title }} + {% else %} + {{ page.title }} + {% endif %} + {% endblock %} + {% block title_suffix %} + {% endblock %} + + + + + {# Force all links in the live preview panel to be opened in a new tab #} + {% if request.in_preview_panel %} + + {% endif %} + + + + + + + + {% wagtailuserbar %} + + {% block header %} + {% include "includes/header.html" %} + {% endblock header %} + + {% block breadcrumbs %} + {# breadcrumbs is defined in base/templatetags/navigation_tags.py #} + {% breadcrumbs %} + {% endblock breadcrumbs %} + + {% block messages %} + {% include "includes/messages.html" %} + {% endblock messages %} + +
+ {% block content %} + {% endblock content %} +
+ +
+ + {% include "includes/footer.html" %} + + + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/basic_auth.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/basic_auth.html new file mode 100644 index 000000000..339f1a241 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/basic_auth.html @@ -0,0 +1,27 @@ + + + + + Authentication Required + + + {# Prevent the demo site from being indexed #} + + + + + + +
+ + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page.html new file mode 100644 index 000000000..022623508 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page.html @@ -0,0 +1,57 @@ +{% extends "base.html" %} +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + +{% block content %} + +
+
+
+

{{ page.title }}

+
+
+ {% if page.intro %} +

{{ page.intro|richtext }}

+ {% endif %} + {% if page.body %} + {{ page.body }} + {% endif %} +
+
+
+ +
+
+
+ {% comment %} + You could render your form using a Django rendering shortcut such as `{{ form.as_p }}` but that will tend towards unsemantic code, and make it difficult to style. You can read more on Django form at: + https://docs.djangoproject.com/en/3.2/topics/forms/#form-rendering-options + {% endcomment %} +
+ {% csrf_token %} + {% if form.subject.errors %} +
    + {% for error in form.subject.errors %} +
  1. {{ error|escape }}
  2. + {% endfor %} +
+ {% endif %} + + {% for field in form %} +
+ + {{ field.label_tag }}{% if field.field.required %}*{% endif %} + + {% if field.help_text %} +

{{ field.help_text }}

+ {% endif %} + + {{ field }} +
+ {% endfor %} + + +
+
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page_landing.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page_landing.html new file mode 100644 index 000000000..fb0b02974 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page_landing.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} +{% load wagtailcore_tags %} + +{% block content %} + +
+
+
+

{{ page.title }}

+
+
+ {{ page.thank_you_text|richtext }} +
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/gallery_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/gallery_page.html new file mode 100644 index 000000000..423f62e55 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/gallery_page.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} +{% load wagtailimages_tags gallery_tags %} + +{% block content %} + {% include "base/include/header-hero.html" %} + + +{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/home_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/home_page.html new file mode 100644 index 000000000..46c6bca9b --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/home_page.html @@ -0,0 +1,104 @@ +{% extends "base.html" %} +{% load wagtailimages_tags wagtailcore_tags %} + +{% block content %} +
+ +
+ {% image page.image fill-1920x600 class="hero-image" alt="" %} +
+
+
+
+

{{ page.title }}

+

{{ page.hero_text }}

+ {% if page.hero_cta_link %} + + {{ page.hero_cta }} + + {% else %} + {{ page.hero_cta }} + {% endif %} +
+
+
+
+ +
+
+ + +
+ {% if page.promo_image or page.promo_title or page.promo_text %} +
+ {% if page.promo_title %} +

{{ page.promo_title }}

+ {% endif %} + {% if page.promo_text %} + {{ page.promo_text|richtext }} + {% endif %} +
+ {% endif %} + {% if page.promo_image %} +
{% image page.promo_image fill-590x413-c100 %}
+ {% endif %} +
+
+
+ + {% if page.body %} +
+
+
+ {{ page.body }} +
+
+
+ {% endif %} + +
+
+
+ {% if page.featured_section_2 %} +

{{ page.featured_section_2_title }}

+ {% for childpage in page.featured_section_2.specific.children|slice:"3" %} + {% include "includes/card/location-card.html" with page=childpage %} + {% endfor %} + {% endif %} +
+
+
+ + {% if page.featured_section_3 %} +
+
+
+
+

{{ page.featured_section_3_title }}

+
+ {% for childpage in page.featured_section_3.specific.children|slice:"6" %} + {% include "includes/card/picture-card.html" with page=childpage portrait=True %} + {% endfor %} +
+
+
+
+
+ {% endif %} +
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/footer_text.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/footer_text.html new file mode 100644 index 000000000..2ffb49ecc --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/footer_text.html @@ -0,0 +1,5 @@ +{% load wagtailcore_tags %} + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-blog.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-blog.html new file mode 100644 index 000000000..7fee63e46 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-blog.html @@ -0,0 +1,27 @@ +{% load wagtailcore_tags wagtailimages_tags %} + +{% if page.image %} +
+ {% image page.image fill-1920x600 class="hero-image" alt="" %} +
+{% endif %} +
+
+
+

{{ page.title }}

+ {% if page.subtitle %} +

{{ page.subtitle }}

+ {% endif %} +
+
+ {% if page.introduction %} +

{{ page.introduction }}

+ {% endif %} + {% if page.date_published %} +
+ {{ page.date_published }} +
+ {% endif %} +
+
+
diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-hero.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-hero.html new file mode 100644 index 000000000..6608931e4 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-hero.html @@ -0,0 +1,18 @@ +{% load wagtailcore_tags wagtailimages_tags %} + +{% if page.image %} +
+ {% image page.image fill-1920x600 class="hero-image" alt="" %} +
+

{{ page.title }}

+
+
+{% else %} +
+
+
+

{{ page.title }}

+
+
+
+{% endif %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-index.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-index.html new file mode 100644 index 000000000..1a07b5771 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-index.html @@ -0,0 +1,14 @@ +{% load wagtailcore_tags wagtailimages_tags %} + +
+
+
+

{{ page.title }}

+
+
+ {% if page.introduction %} +

{{ page.introduction }}

+ {% endif %} +
+
+
diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header.html new file mode 100644 index 000000000..380c1c72e --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header.html @@ -0,0 +1,16 @@ +{% load wagtailcore_tags wagtailimages_tags %} + +
+
+
+ {% if page.image %} +
+ {% image page.image width-500 as photo %} + {{ photo.alt }} +
+ {% endif %} + +

{{ page.title }}

+
+
+
diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/preview/person.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/preview/person.html new file mode 100644 index 000000000..158512c28 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/preview/person.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} +{% load wagtailimages_tags %} + +{% block title %}{{ object.first_name }} {{ object.last_name }} Preview{% endblock %} + +{% block search_description %}{{ object.job_title }}{% endblock %} + +{% block body_class %}template-preview-person{% endblock %} + +{% block content %} +
+ {% image object.image fill-200x200-c100 class="blog__avatar" %} +

{{ object.first_name }} {{ object.last_name }}

+

{{ object.job_title }}

+
+{% endblock %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/standard_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/standard_page.html new file mode 100644 index 000000000..bd8f0b3a5 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/standard_page.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} +{% load wagtailimages_tags %} + +{% block content %} + {% include "base/include/header-hero.html" %} + +
+
+
+
+
+ {% if page.introduction %} +

+ {{ page.introduction }} +

+ {% endif %} + {{ page.body }} +
+
+
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_index_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_index_page.html new file mode 100644 index 000000000..8b69a05d9 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_index_page.html @@ -0,0 +1,50 @@ +{% extends "base.html" %} +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + +{% if tag %} + {% block title %} + {% if self.seo_title %}{{ self.seo_title }}{% else %}{{ self.title }}{% endif %}: {{ tag }} + {% endblock %} + + {% block search_description %}Viewing all blog posts sorted by the tag {{ tag }}{% endblock %} +{% endif %} + +{% block content %} + {% if not tag %} + {% include "base/include/header-index.html" %} + {% endif %} + +
+ {% if tag %} +
+
+

Blog

+
+
+

Viewing all blog posts sorted by the tag {{ tag }}.

+
+
+ {% endif %} + + {% if page.get_child_tags %} +
    +
  • All
  • + {% for tag in page.get_child_tags %} +
  • {{ tag }}
  • + {% endfor %} +
+ {% endif %} + +
+ {% if posts %} + {% for blog in posts %} + {% include "includes/card/blog-listing-card.html" %} + {% endfor %} + {% else %} +
+

Oh, snap. Looks like we were too busy baking to write any blog posts. Sorry.

+
+ {% endif %} +
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_page.html new file mode 100644 index 000000000..cd9524d51 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_page.html @@ -0,0 +1,36 @@ +{% extends "base.html" %} +{% load navigation_tags wagtailimages_tags %} + +{% block content %} + + {% include "base/include/header-blog.html" %} + +
+
+
+
+ {% if page.authors %} +
+ {% for author in page.authors %} +
{% image author.image fill-50x50-c100 class="blog__avatar" %} + {{ author.first_name }} {{ author.last_name }}
+ {% endfor %} +
+ {% endif %} +
+ + {{ page.body }} + + {% if page.get_tags %} +

Find more blog posts with similar tags

+
+ Filter blog posts by tag + {% for tag in page.get_tags %} + {{ tag }} + {% endfor %} +
+ {% endif %} +
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/blockquote.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/blockquote.html new file mode 100644 index 000000000..1e204017a --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/blockquote.html @@ -0,0 +1,5 @@ +{% load wagtailimages_tags %} + +

{{ self.text }}

+

{{ self.attribute_name}}

+
diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/embed_block.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/embed_block.html new file mode 100644 index 000000000..257ea988e --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/embed_block.html @@ -0,0 +1,3 @@ +{% load wagtailimages_tags %} + +{{ self }} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/heading_block.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/heading_block.html new file mode 100644 index 000000000..a5ed6e65a --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/heading_block.html @@ -0,0 +1,15 @@ +{% comment %} + Content is coming from the StandardBlock StreamField + class within `blocks.py` +{% endcomment %} + +{% if self.size == 'h2' %} +

{{ self.heading_text }}

+ +{% elif self.size == 'h3' %} +

{{ self.heading_text }}

+ +{% elif self.size == 'h4' %} +

{{ self.heading_text }}

+ +{% endif %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/image_block.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/image_block.html new file mode 100644 index 000000000..a4b1badc4 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/image_block.html @@ -0,0 +1,6 @@ +{% load wagtailimages_tags %} + +
+ {% image self.image fill-600x338 loading="lazy" %} +
{{ self.caption }} - {{ self.attribution }}
+
diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/paragraph_block.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/paragraph_block.html new file mode 100644 index 000000000..e3125de36 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/paragraph_block.html @@ -0,0 +1 @@ +{{ self }} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/recipe_step_block.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/recipe_step_block.html new file mode 100644 index 000000000..36d9a1cc9 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/recipe_step_block.html @@ -0,0 +1 @@ +{{ self.text }} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_index_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_index_page.html new file mode 100644 index 000000000..8b69a05d9 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_index_page.html @@ -0,0 +1,50 @@ +{% extends "base.html" %} +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + +{% if tag %} + {% block title %} + {% if self.seo_title %}{{ self.seo_title }}{% else %}{{ self.title }}{% endif %}: {{ tag }} + {% endblock %} + + {% block search_description %}Viewing all blog posts sorted by the tag {{ tag }}{% endblock %} +{% endif %} + +{% block content %} + {% if not tag %} + {% include "base/include/header-index.html" %} + {% endif %} + +
+ {% if tag %} +
+
+

Blog

+
+
+

Viewing all blog posts sorted by the tag {{ tag }}.

+
+
+ {% endif %} + + {% if page.get_child_tags %} +
    +
  • All
  • + {% for tag in page.get_child_tags %} +
  • {{ tag }}
  • + {% endfor %} +
+ {% endif %} + +
+ {% if posts %} + {% for blog in posts %} + {% include "includes/card/blog-listing-card.html" %} + {% endfor %} + {% else %} +
+

Oh, snap. Looks like we were too busy baking to write any blog posts. Sorry.

+
+ {% endif %} +
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_page.html new file mode 100644 index 000000000..cd9524d51 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_page.html @@ -0,0 +1,36 @@ +{% extends "base.html" %} +{% load navigation_tags wagtailimages_tags %} + +{% block content %} + + {% include "base/include/header-blog.html" %} + +
+
+
+
+ {% if page.authors %} +
+ {% for author in page.authors %} +
{% image author.image fill-50x50-c100 class="blog__avatar" %} + {{ author.first_name }} {{ author.last_name }}
+ {% endfor %} +
+ {% endif %} +
+ + {{ page.body }} + + {% if page.get_tags %} +

Find more blog posts with similar tags

+
+ Filter blog posts by tag + {% for tag in page.get_tags %} + {{ tag }} + {% endfor %} +
+ {% endif %} +
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/bread_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/bread_page.html new file mode 100644 index 000000000..7933498e4 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/bread_page.html @@ -0,0 +1,68 @@ +{% extends "base.html" %} +{% load wagtailimages_tags %} + +{% block content %} + {% include "base/include/header-hero.html" %} + +
+
+
+
+
+ {% if page.introduction %} +

+ {{ page.introduction }} +

+ {% endif %} + +
+ {{ page.body }} +
+
+
+ +
+
+
+ {% if page.origin %} +

Origin

+

{{ page.origin }}

+ {% endif %} + {% if page.bread_type %} +

Type

+

{{ page.bread_type }}

+ {% endif %} + {% with ingredients=page.ingredients.all %} + {% if ingredients %} +

Ingredients

+
    + {% for ingredient in ingredients %} +
  • + {% if ingredient.live %} + {# If it's live, show as-is #} + {{ ingredient.name }} + {% else %} + {# EXAMPLE: we can show a placeholder element for instances that are not live #} + + Draft ingredient + + (draft) + {% endif %} +
  • + {% endfor %} +
+ {% endif %} + {% endwith %} +
+
+
+ +
+
+ {{ page.body }} +
+
+
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/breads_index_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/breads_index_page.html new file mode 100644 index 000000000..b9c2ead29 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/breads_index_page.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + +{% block content %} + {% include "base/include/header-index.html" %} + +
+
    + {% for bread in breads %} +
  • + {% include "includes/card/listing-card.html" with page=bread %} +
  • + {% endfor %} +
+
+ + {% if breads.paginator.count > 12 %} +
+
+
+ {% include "includes/pagination.html" with subpages=breads %} +
+
+
+ {% endif %} +{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/blog-listing-card.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/blog-listing-card.html new file mode 100644 index 000000000..e621478ef --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/blog-listing-card.html @@ -0,0 +1,28 @@ +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + + + + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/listing-card.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/listing-card.html new file mode 100644 index 000000000..8aa58d6ca --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/listing-card.html @@ -0,0 +1,30 @@ +{% load wagtailimages_tags %} + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/location-card.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/location-card.html new file mode 100644 index 000000000..809051c3f --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/location-card.html @@ -0,0 +1,15 @@ +{% load wagtailimages_tags %} + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/picture-card.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/picture-card.html new file mode 100644 index 000000000..7e23332db --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/picture-card.html @@ -0,0 +1,16 @@ +{% load wagtailimages_tags %} + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/chevron-icon.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/chevron-icon.html new file mode 100644 index 000000000..893cdcc0c --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/chevron-icon.html @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/footer.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/footer.html new file mode 100644 index 000000000..b2a8dd797 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/footer.html @@ -0,0 +1,10 @@ +{% load navigation_tags static %} + +
+
+
+ + {% get_footer_text %} +
+
+
diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/header.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/header.html new file mode 100644 index 000000000..cd9328c9b --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/header.html @@ -0,0 +1,57 @@ +{% load navigation_tags %} + +
+
+ +
+
diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/messages.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/messages.html new file mode 100644 index 000000000..b1b8e25c4 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/messages.html @@ -0,0 +1,10 @@ +{% if messages %} +
+

Error

+
    + {% for message in messages %} + {{ message }} + {% endfor %} +
+
+{% endif %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/pagination.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/pagination.html new file mode 100644 index 000000000..239795e51 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/pagination.html @@ -0,0 +1,33 @@ +{% load navigation_tags %} + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/location_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/location_page.html new file mode 100644 index 000000000..40832f968 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/location_page.html @@ -0,0 +1,69 @@ +{% extends "base.html" %} +{% load wagtailimages_tags navigation_tags %} + +{% block content %} + {% include "base/include/header-hero.html" %} + +
+
+
+
+
+ {% if page.introduction %} +

+ {{ page.introduction }} +

+ {% endif %} + +
+ {{ page.body }} +
+
+
+ +
+
+
+

Operating Status

+ {% if page.is_open %} + This location is currently open. + {% else %} + Sorry, this location is currently closed. + {% endif %} + +

Address

+
{{ page.address|linebreaks }}
+ + {% if page.operating_hours %} +

Opening hours

+ {% for hours in page.operating_hours %} + + {% endfor %} + {% endif %} +
+
+
+ +
+
+ {{ page.body }} +
+
+
+
+
+ +{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/locations_index_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/locations_index_page.html new file mode 100644 index 000000000..ea6a58fde --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/locations_index_page.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + +{% block content %} + + {% include "base/include/header-index.html" %} + +
+
+ {% for location in locations %} + {% include "includes/card/picture-card.html" with page=location portrait=False %} + {% endfor %} +
+
+{% endblock content %} + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_index_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_index_page.html new file mode 100644 index 000000000..f8af11af4 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_index_page.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + +{% block content %} +
+
+ {% if recipes %} + {% for recipe in recipes %} + {% include "includes/card/blog-listing-card.html" with blog=recipe %} + {% endfor %} + {% else %} +
+

Oh, snap. Looks like we were too busy baking to write any recipes. Sorry.

+
+ {% endif %} +
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_page.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_page.html new file mode 100644 index 000000000..5b57a356c --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_page.html @@ -0,0 +1,39 @@ +{% extends "base.html" %} +{% load navigation_tags wagtailimages_tags wagtailcore_tags %} + +{% block content %} + + {% include "base/include/header-blog.html" %} + +
+
+
+
+ {% if page.authors %} +
+ {% for author in page.authors %} +
{% image author.image fill-50x50-c100 class="blog__avatar" %} + {{ author.first_name }} {{ author.last_name }}
+ {% endfor %} +
+ {% endif %} +
+ + {% if page.backstory %} + {{ page.backstory }} + +
+ {% endif %} + + {# Give a label to the recipe section for screen reader users. #} +
+ Recipe{% if page.recipe_headline %}: {{ page.recipe_headline|richtext }}{% endif %} +
+ +
+ {{ page.body }} +
+
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/search/search_results.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/search/search_results.html new file mode 100644 index 000000000..029664126 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/search/search_results.html @@ -0,0 +1,86 @@ +{% extends "base.html" %} +{% load wagtailcore_tags wagtailimages_tags wagtailsearchpromotions_tags %} + +{% block title %}Search{% if search_results %} results{% endif %}{% if search_query %} for “{{ search_query }}”{% endif %}{% endblock %} + +{% block search_description %}Search{% if search_results %} results{% endif %}{% if search_query %} for “{{ search_query }}”{% endif %}{% endblock %} + +{% block body_class %}template-search-results{% endblock %} + +{% block content %} +
+
+
+

Search results

+ {% if search_results %} +

You searched{% if search_query %} for “{{ search_query }}”{% endif %}, {{ search_results|length }} result{{ search_results|length|pluralize }} found.

+ + {% elif search_query %} + {% get_search_promotions search_query as search_promotions %} + {% if search_promotions %} +

You searched for “{{ search_query }}”, {{ search_promotions|length }} result{{ search_promotions|length|pluralize }} found.

+ + {% else %} +

No results found for “{{ search_query }}”.

+ {% endif %} + {% else %} +

You didn't search for anything!

+ {% endif %} +
+
+
+{% endblock content %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/breadcrumbs.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/breadcrumbs.html new file mode 100644 index 000000000..3831d0c1b --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/breadcrumbs.html @@ -0,0 +1,22 @@ +{% load wagtailcore_tags %} + +{% if ancestors %} + +{% endif %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/gallery.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/gallery.html new file mode 100644 index 000000000..069bfdbae --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/gallery.html @@ -0,0 +1,12 @@ +{% load wagtailimages_tags %} + +{% for img in images %} +
+
+ {% image img fill-645x480-c100 loading="lazy" %} +
+

{{ img.title }}

+
+
+
+{% endfor %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu.html new file mode 100644 index 000000000..40020ba3e --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu.html @@ -0,0 +1,14 @@ +{% load navigation_tags wagtailcore_tags %} +{% get_site_root as site_root %} + +{% for menuitem in menuitems %} + +{% endfor %} diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu_children.html b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu_children.html new file mode 100644 index 000000000..c3eb39ebb --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu_children.html @@ -0,0 +1,7 @@ +{% load navigation_tags wagtailcore_tags %} + + diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/__init__.py b/modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/navigation_tags.py b/modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/navigation_tags.py new file mode 100644 index 000000000..785ac96a5 --- /dev/null +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/navigation_tags.py @@ -0,0 +1,109 @@ +from django import template +from wagtail.models import Page, Site + + +register = template.Library() + +# https://docs.djangoproject.com/en/3.2/howto/custom-template-tags/ + + + +@register.simple_tag(takes_context=True) +def get_site_root(context): + # This returns a core.Page. The main menu needs to have the site.root_page + # defined else will return an object attribute error ('str' object has no + # attribute 'get_children') + return Site.find_for_request(context["request"]).root_page + + +def has_menu_children(page): + # This is used by the top_menu property + # get_children is a Treebeard API thing + # https://tabo.pe/projects/django-treebeard/docs/4.0.1/api.html + return page.get_children().live().in_menu().exists() + + +def has_children(page): + # Generically allow index pages to list their children + return page.get_children().live().exists() + + +def is_active(page, current_page): + # To give us active state on main navigation + return current_page.url_path.startswith(page.url_path) if current_page else False + + +# Retrieves the top menu items - the immediate children of the parent page +# The has_menu_children method is necessary because the Foundation menu requires +# a dropdown class to be applied to a parent +@register.inclusion_tag("tags/top_menu.html", takes_context=True) +def top_menu(context, parent, calling_page=None): + menuitems = parent.get_children().live().in_menu() + for menuitem in menuitems: + menuitem.show_dropdown = has_menu_children(menuitem) + # We don't directly check if calling_page is None since the template + # engine can pass an empty string to calling_page + # if the variable passed as calling_page does not exist. + menuitem.active = ( + calling_page.url_path.startswith(menuitem.url_path) + if calling_page + else False + ) + return { + "calling_page": calling_page, + "menuitems": menuitems, + # required by the pageurl tag that we want to use within this template + "request": context["request"], + } + + +# Retrieves the children of the top menu items for the drop downs +@register.inclusion_tag("tags/top_menu_children.html", takes_context=True) +def top_menu_children(context, parent, calling_page=None): + menuitems_children = parent.get_children() + menuitems_children = menuitems_children.live().in_menu() + for menuitem in menuitems_children: + menuitem.has_dropdown = has_menu_children(menuitem) + # We don't directly check if calling_page is None since the template + # engine can pass an empty string to calling_page + # if the variable passed as calling_page does not exist. + menuitem.active = ( + calling_page.url_path.startswith(menuitem.url_path) + if calling_page + else False + ) + menuitem.children = menuitem.get_children().live().in_menu() + return { + "parent": parent, + "menuitems_children": menuitems_children, + # required by the pageurl tag that we want to use within this template + "request": context["request"], + } + + +@register.inclusion_tag("tags/breadcrumbs.html", takes_context=True) +def breadcrumbs(context): + self = context.get("self") + if self is None or self.depth <= 2: + # When on the home page, displaying breadcrumbs is irrelevant. + ancestors = () + else: + ancestors = Page.objects.ancestor_of(self, inclusive=True).filter(depth__gt=1) + return { + "ancestors": ancestors, + "request": context["request"], + } + + +@register.inclusion_tag("base/include/footer_text.html", takes_context=True) +def get_footer_text(context): + # Get the footer text from the context if exists, + # so that it's possible to pass a custom instance e.g. for previews + # or page types that need a custom footer + footer_text = context.get("footer_text", "") + + # If the context doesn't have footer_text defined, get one that's live + + return { + "footer_text": footer_text, + } \ No newline at end of file diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py b/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py index 1b9df0b1c..78a4cc159 100644 --- a/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py @@ -1,7 +1,8 @@ from django.urls import path, include from rest_framework import routers -router = routers.DefaultRouter() +from .api import api_router + urlpatterns = [ - path('', include(router.urls)), + path("api/v1/", api_router.urls), ] \ No newline at end of file From b59bae9d304cf5ab32ca050929a2deb1ab309ffd Mon Sep 17 00:00:00 2001 From: shahraiz Date: Tue, 12 Dec 2023 02:29:30 +0100 Subject: [PATCH 3/7] added preview --- modules/django-basic-blog/preview.png | Bin 74538 -> 139606 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modules/django-basic-blog/preview.png b/modules/django-basic-blog/preview.png index e26736d5389709d8f6306af36aa55d05f562194f..f572348015a4e793aa019f666167cf8b78dcea04 100644 GIT binary patch literal 139606 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�z33bhOKsj;svI8Cx$;lv)D~spPpoGZi+4|0h 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%0DT6f_ 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

Y@XZ+0-=RwQyN%qJP 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%0AZY*&4SYDoA?q((WMzcAqago* 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 literal 74538 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 bm)p>3aWqvr77~IG3{EJ@sy)n;HhcL`=#*lW From d2f5837c302b71b27d334c75333102795be01420 Mon Sep 17 00:00:00 2001 From: shahraiz Date: Tue, 12 Dec 2023 02:30:51 +0100 Subject: [PATCH 4/7] eslint --- .../basic_blog/static/js/blog-main.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/js/blog-main.js b/modules/django-basic-blog/django_basic_blog/basic_blog/static/js/blog-main.js index e8393d0bb..ae836a26b 100644 --- a/modules/django-basic-blog/django_basic_blog/basic_blog/static/js/blog-main.js +++ b/modules/django-basic-blog/django_basic_blog/basic_blog/static/js/blog-main.js @@ -1,24 +1,24 @@ -const navigation = document.querySelector('[data-navigation]'); -const mobileNavigation = navigation.querySelector('[data-mobile-navigation]'); -const body = document.querySelector('body'); +const navigation = document.querySelector("[data-navigation]"); +const mobileNavigation = navigation.querySelector("[data-mobile-navigation]"); +const body = document.querySelector("body"); const mobileNavigationToggle = navigation.querySelector( - '[data-mobile-navigation-toggle]', + "[data-mobile-navigation-toggle]" ); function toggleMobileNavigation() { if (mobileNavigation.hidden) { - body.classList.add('no-scroll'); + body.classList.add("no-scroll"); mobileNavigation.hidden = false; - mobileNavigationToggle.setAttribute('aria-expanded', 'true'); + mobileNavigationToggle.setAttribute("aria-expanded", "true"); } else { - body.classList.remove('no-scroll'); + body.classList.remove("no-scroll"); mobileNavigation.hidden = true; - mobileNavigationToggle.setAttribute('aria-expanded', 'false'); + mobileNavigationToggle.setAttribute("aria-expanded", "false"); } } -document.addEventListener('DOMContentLoaded', () => { - mobileNavigationToggle.addEventListener('click', () => { +document.addEventListener("DOMContentLoaded", () => { + mobileNavigationToggle.addEventListener("click", () => { toggleMobileNavigation(); }); }); From 9b1088b78d807f419fda5d25bb3b91088350a73d Mon Sep 17 00:00:00 2001 From: shahraiz Date: Tue, 12 Dec 2023 17:35:03 +0100 Subject: [PATCH 5/7] module rename --- .../django_advanced_blog/advanced_blog}/README.md | 4 ++-- .../django_advanced_blog/advanced_blog}/__init__.py | 0 .../django_advanced_blog/advanced_blog}/admin.py | 0 .../django_advanced_blog/advanced_blog}/api.py | 0 .../django_advanced_blog/advanced_blog}/apps.py | 0 .../django_advanced_blog/advanced_blog}/blocks.py | 0 .../advanced_blog}/migrations/0001_initial.py | 2 +- .../migrations/0002_auto_20231208_1925.py | 12 ++++++------ .../advanced_blog}/migrations/__init__.py | 0 .../django_advanced_blog/advanced_blog}/models.py | 0 .../django_advanced_blog/advanced_blog}/options.py | 0 .../advanced_blog}/serializers.py | 0 .../advanced_blog}/static/css/blog-main.css | 0 .../advanced_blog}/static/css/bootstrap.min.css | 0 .../advanced_blog}/static/css/font-marcellus.css | 0 .../static/fonts/Marcellus-Regular.woff2 | Bin .../advanced_blog}/static/img/bread-favicon.ico | Bin .../advanced_blog}/static/js/blog-main.js | 0 .../advanced_blog}/templates/404.html | 0 .../advanced_blog}/templates/500.html | 0 .../advanced_blog}/templates/base.html | 0 .../advanced_blog}/templates/base/basic_auth.html | 0 .../advanced_blog}/templates/base/form_page.html | 0 .../templates/base/form_page_landing.html | 0 .../advanced_blog}/templates/base/gallery_page.html | 0 .../advanced_blog}/templates/base/home_page.html | 0 .../templates/base/include/footer_text.html | 0 .../templates/base/include/header-blog.html | 0 .../templates/base/include/header-hero.html | 0 .../templates/base/include/header-index.html | 0 .../templates/base/include/header.html | 0 .../templates/base/preview/person.html | 0 .../templates/base/standard_page.html | 0 .../templates/basic_blog/blog_index_page.html | 0 .../templates/basic_blog/blog_page.html | 0 .../advanced_blog}/templates/blocks/blockquote.html | 0 .../templates/blocks/embed_block.html | 0 .../templates/blocks/heading_block.html | 0 .../templates/blocks/image_block.html | 0 .../templates/blocks/paragraph_block.html | 0 .../templates/blocks/recipe_step_block.html | 0 .../templates/blog/blog_index_page.html | 0 .../advanced_blog}/templates/blog/blog_page.html | 0 .../advanced_blog}/templates/breads/bread_page.html | 0 .../templates/breads/breads_index_page.html | 0 .../templates/includes/card/blog-listing-card.html | 0 .../templates/includes/card/listing-card.html | 0 .../templates/includes/card/location-card.html | 0 .../templates/includes/card/picture-card.html | 0 .../templates/includes/chevron-icon.html | 0 .../advanced_blog}/templates/includes/footer.html | 0 .../advanced_blog}/templates/includes/header.html | 0 .../advanced_blog}/templates/includes/messages.html | 0 .../templates/includes/pagination.html | 0 .../templates/locations/location_page.html | 0 .../templates/locations/locations_index_page.html | 0 .../templates/recipes/recipe_index_page.html | 0 .../templates/recipes/recipe_page.html | 0 .../templates/search/search_results.html | 0 .../advanced_blog}/templates/tags/breadcrumbs.html | 0 .../advanced_blog}/templates/tags/gallery.html | 0 .../advanced_blog}/templates/tags/top_menu.html | 0 .../templates/tags/top_menu_children.html | 0 .../advanced_blog}/templatetags/__init__.py | 0 .../advanced_blog}/templatetags/navigation_tags.py | 0 .../django_advanced_blog/advanced_blog}/urls.py | 0 .../django_advanced_blog/advanced_blog}/viewsets.py | 0 .../django_advanced_blog}/pyproject.toml | 0 .../django_advanced_blog}/setup.py | 0 .../meta.json | 0 .../preview.png | Bin 71 files changed, 9 insertions(+), 9 deletions(-) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/README.md (97%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/__init__.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/admin.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/api.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/apps.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/blocks.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/migrations/0001_initial.py (98%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/migrations/0002_auto_20231208_1925.py (95%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/migrations/__init__.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/models.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/options.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/serializers.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/static/css/blog-main.css (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/static/css/bootstrap.min.css (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/static/css/font-marcellus.css (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/static/fonts/Marcellus-Regular.woff2 (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/static/img/bread-favicon.ico (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/static/js/blog-main.js (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/404.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/500.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/basic_auth.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/form_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/form_page_landing.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/gallery_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/home_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/include/footer_text.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/include/header-blog.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/include/header-hero.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/include/header-index.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/include/header.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/preview/person.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/base/standard_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/basic_blog/blog_index_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/basic_blog/blog_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blocks/blockquote.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blocks/embed_block.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blocks/heading_block.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blocks/image_block.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blocks/paragraph_block.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blocks/recipe_step_block.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blog/blog_index_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/blog/blog_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/breads/bread_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/breads/breads_index_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/card/blog-listing-card.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/card/listing-card.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/card/location-card.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/card/picture-card.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/chevron-icon.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/footer.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/header.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/messages.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/includes/pagination.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/locations/location_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/locations/locations_index_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/recipes/recipe_index_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/recipes/recipe_page.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/search/search_results.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/tags/breadcrumbs.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/tags/gallery.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/tags/top_menu.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templates/tags/top_menu_children.html (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templatetags/__init__.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/templatetags/navigation_tags.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/urls.py (100%) rename modules/{django-basic-blog/django_basic_blog/basic_blog => django-advanced-blog/django_advanced_blog/advanced_blog}/viewsets.py (100%) rename modules/{django-basic-blog/django_basic_blog => django-advanced-blog/django_advanced_blog}/pyproject.toml (100%) rename modules/{django-basic-blog/django_basic_blog => django-advanced-blog/django_advanced_blog}/setup.py (100%) rename modules/{django-basic-blog => django-advanced-blog}/meta.json (100%) rename modules/{django-basic-blog => django-advanced-blog}/preview.png (100%) diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/README.md b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/README.md similarity index 97% rename from modules/django-basic-blog/django_basic_blog/basic_blog/README.md rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/README.md index 0aceeff20..4659d3b46 100644 --- a/modules/django-basic-blog/django_basic_blog/basic_blog/README.md +++ b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/README.md @@ -79,7 +79,7 @@ TEMPLATES = [ "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [ os.path.join(BASE_DIR, "web_build"), - os.path.join(BASE_DIR, "modules", "django_basic_blog", "basic_blog", "templates",), + os.path.join(BASE_DIR, "modules", "django_advanced_blog", "advanced_blog", "templates",), ], "APP_DIRS": True, "OPTIONS": { @@ -101,7 +101,7 @@ and STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), os.path.join(BASE_DIR, "web_build"), - os.path.join(BASE_DIR, "modules", "django_basic_blog", "basic_blog", "static"), + os.path.join(BASE_DIR, "modules", "django_advanced_blog", "advanced_blog", "static"), ] ``` diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/__init__.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/__init__.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/__init__.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/__init__.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/admin.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/admin.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/admin.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/admin.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/api.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/api.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/api.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/api.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/apps.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/apps.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/apps.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/apps.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/blocks.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/blocks.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/blocks.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/blocks.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0001_initial.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/0001_initial.py similarity index 98% rename from modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0001_initial.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/0001_initial.py index a7dfd2394..470007345 100644 --- a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0001_initial.py +++ b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/0001_initial.py @@ -36,7 +36,7 @@ class Migration(migrations.Migration): ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), ('name', models.CharField(max_length=255)), ('url', models.URLField()), - ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='related_links', to='basic_blog.blogpage')), + ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='related_links', to='advanced_blog.blogpage')), ], options={ 'ordering': ['sort_order'], diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0002_auto_20231208_1925.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/0002_auto_20231208_1925.py similarity index 95% rename from modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0002_auto_20231208_1925.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/0002_auto_20231208_1925.py index e1cc2707a..d23a9c308 100644 --- a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/0002_auto_20231208_1925.py +++ b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/0002_auto_20231208_1925.py @@ -21,7 +21,7 @@ class Migration(migrations.Migration): ('wagtailcore', '0089_log_entry_data_json_null_to_object'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('taggit', '0005_auto_20220424_2025'), - ('basic_blog', '0001_initial'), + ('advanced_blog', '0001_initial'), ] operations = [ @@ -90,8 +90,8 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), - ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='blog_person_relationship', to='basic_blog.blogpage')), - ('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='person_blog_relationship', to='basic_blog.person')), + ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='blog_person_relationship', to='advanced_blog.blogpage')), + ('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='person_blog_relationship', to='advanced_blog.person')), ], options={ 'ordering': ['sort_order'], @@ -102,8 +102,8 @@ class Migration(migrations.Migration): name='BlogPageTag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='basic_blog.blogpage')), - ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='basic_blog_blogpagetag_items', to='taggit.tag')), + ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='advanced_blog.blogpage')), + ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='advanced_blog_blogpagetag_items', to='taggit.tag')), ], options={ 'abstract': False, @@ -124,6 +124,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='blogpage', name='tags', - field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='basic_blog.BlogPageTag', to='taggit.Tag', verbose_name='Tags'), + field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='advanced_blog.BlogPageTag', to='taggit.Tag', verbose_name='Tags'), ), ] diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/migrations/__init__.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/__init__.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/migrations/__init__.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/migrations/__init__.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/models.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/models.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/models.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/models.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/options.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/options.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/options.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/options.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/serializers.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/serializers.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/serializers.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/serializers.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/blog-main.css b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/css/blog-main.css similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/static/css/blog-main.css rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/css/blog-main.css diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/bootstrap.min.css b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/css/bootstrap.min.css similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/static/css/bootstrap.min.css rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/css/bootstrap.min.css diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/css/font-marcellus.css b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/css/font-marcellus.css similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/static/css/font-marcellus.css rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/css/font-marcellus.css diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/fonts/Marcellus-Regular.woff2 b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/fonts/Marcellus-Regular.woff2 similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/static/fonts/Marcellus-Regular.woff2 rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/fonts/Marcellus-Regular.woff2 diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/img/bread-favicon.ico b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/img/bread-favicon.ico similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/static/img/bread-favicon.ico rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/img/bread-favicon.ico diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/static/js/blog-main.js b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/js/blog-main.js similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/static/js/blog-main.js rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/static/js/blog-main.js diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/404.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/404.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/404.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/404.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/500.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/500.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/500.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/500.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/basic_auth.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/basic_auth.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/basic_auth.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/basic_auth.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/form_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/form_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page_landing.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/form_page_landing.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/form_page_landing.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/form_page_landing.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/gallery_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/gallery_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/gallery_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/gallery_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/home_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/home_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/home_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/home_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/footer_text.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/footer_text.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/footer_text.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/footer_text.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-blog.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header-blog.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-blog.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header-blog.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-hero.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header-hero.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-hero.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header-hero.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-index.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header-index.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header-index.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header-index.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/include/header.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/include/header.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/preview/person.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/preview/person.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/preview/person.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/preview/person.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/standard_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/standard_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/base/standard_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/base/standard_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_index_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/basic_blog/blog_index_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_index_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/basic_blog/blog_index_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/basic_blog/blog_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/basic_blog/blog_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/basic_blog/blog_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/blockquote.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/blockquote.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/blockquote.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/blockquote.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/embed_block.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/embed_block.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/embed_block.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/embed_block.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/heading_block.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/heading_block.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/heading_block.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/heading_block.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/image_block.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/image_block.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/image_block.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/image_block.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/paragraph_block.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/paragraph_block.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/paragraph_block.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/paragraph_block.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/recipe_step_block.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/recipe_step_block.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blocks/recipe_step_block.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blocks/recipe_step_block.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_index_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blog/blog_index_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_index_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blog/blog_index_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blog/blog_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/blog/blog_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/blog/blog_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/bread_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/breads/bread_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/bread_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/breads/bread_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/breads_index_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/breads/breads_index_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/breads/breads_index_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/breads/breads_index_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/blog-listing-card.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/blog-listing-card.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/blog-listing-card.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/blog-listing-card.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/listing-card.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/listing-card.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/listing-card.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/listing-card.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/location-card.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/location-card.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/location-card.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/location-card.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/picture-card.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/picture-card.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/card/picture-card.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/card/picture-card.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/chevron-icon.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/chevron-icon.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/chevron-icon.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/chevron-icon.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/footer.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/footer.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/footer.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/footer.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/header.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/header.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/header.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/header.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/messages.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/messages.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/messages.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/messages.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/pagination.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/pagination.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/includes/pagination.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/includes/pagination.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/location_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/locations/location_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/location_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/locations/location_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/locations_index_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/locations/locations_index_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/locations/locations_index_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/locations/locations_index_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_index_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/recipes/recipe_index_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_index_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/recipes/recipe_index_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/recipes/recipe_page.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/recipes/recipe_page.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/recipes/recipe_page.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/search/search_results.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/search/search_results.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/search/search_results.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/search/search_results.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/breadcrumbs.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/breadcrumbs.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/breadcrumbs.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/breadcrumbs.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/gallery.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/gallery.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/gallery.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/gallery.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/top_menu.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/top_menu.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu_children.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/top_menu_children.html similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templates/tags/top_menu_children.html rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/tags/top_menu_children.html diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/__init__.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templatetags/__init__.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/__init__.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templatetags/__init__.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/navigation_tags.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templatetags/navigation_tags.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/templatetags/navigation_tags.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/templatetags/navigation_tags.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/urls.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/urls.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/urls.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/urls.py diff --git a/modules/django-basic-blog/django_basic_blog/basic_blog/viewsets.py b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/viewsets.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/basic_blog/viewsets.py rename to modules/django-advanced-blog/django_advanced_blog/advanced_blog/viewsets.py diff --git a/modules/django-basic-blog/django_basic_blog/pyproject.toml b/modules/django-advanced-blog/django_advanced_blog/pyproject.toml similarity index 100% rename from modules/django-basic-blog/django_basic_blog/pyproject.toml rename to modules/django-advanced-blog/django_advanced_blog/pyproject.toml diff --git a/modules/django-basic-blog/django_basic_blog/setup.py b/modules/django-advanced-blog/django_advanced_blog/setup.py similarity index 100% rename from modules/django-basic-blog/django_basic_blog/setup.py rename to modules/django-advanced-blog/django_advanced_blog/setup.py diff --git a/modules/django-basic-blog/meta.json b/modules/django-advanced-blog/meta.json similarity index 100% rename from modules/django-basic-blog/meta.json rename to modules/django-advanced-blog/meta.json diff --git a/modules/django-basic-blog/preview.png b/modules/django-advanced-blog/preview.png similarity index 100% rename from modules/django-basic-blog/preview.png rename to modules/django-advanced-blog/preview.png From 13371480773e073665eb0eefefe9c2c50c7ac0ff Mon Sep 17 00:00:00 2001 From: shahraiz Date: Tue, 12 Dec 2023 18:01:35 +0100 Subject: [PATCH 6/7] updated name --- .../advanced_blog/blog_index_page.html | 50 +++++++++++++++++++ .../templates/advanced_blog/blog_page.html | 36 +++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_index_page.html create mode 100644 modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_page.html diff --git a/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_index_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_index_page.html new file mode 100644 index 000000000..8b69a05d9 --- /dev/null +++ b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_index_page.html @@ -0,0 +1,50 @@ +{% extends "base.html" %} +{% load wagtailcore_tags navigation_tags wagtailimages_tags %} + +{% if tag %} + {% block title %} + {% if self.seo_title %}{{ self.seo_title }}{% else %}{{ self.title }}{% endif %}: {{ tag }} + {% endblock %} + + {% block search_description %}Viewing all blog posts sorted by the tag {{ tag }}{% endblock %} +{% endif %} + +{% block content %} + {% if not tag %} + {% include "base/include/header-index.html" %} + {% endif %} + +

+ {% if tag %} +
+
+

Blog

+
+
+

Viewing all blog posts sorted by the tag {{ tag }}.

+
+
+ {% endif %} + + {% if page.get_child_tags %} +
+ {% endif %} + +
+ {% if posts %} + {% for blog in posts %} + {% include "includes/card/blog-listing-card.html" %} + {% endfor %} + {% else %} +
+

Oh, snap. Looks like we were too busy baking to write any blog posts. Sorry.

+
+ {% endif %} +
+
+{% endblock content %} diff --git a/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_page.html b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_page.html new file mode 100644 index 000000000..cd9524d51 --- /dev/null +++ b/modules/django-advanced-blog/django_advanced_blog/advanced_blog/templates/advanced_blog/blog_page.html @@ -0,0 +1,36 @@ +{% extends "base.html" %} +{% load navigation_tags wagtailimages_tags %} + +{% block content %} + + {% include "base/include/header-blog.html" %} + +
+
+
+
+ {% if page.authors %} +
+ {% for author in page.authors %} +
{% image author.image fill-50x50-c100 class="blog__avatar" %} + {{ author.first_name }} {{ author.last_name }}
+ {% endfor %} +
+ {% endif %} +
+ + {{ page.body }} + + {% if page.get_tags %} +

Find more blog posts with similar tags

+
+ Filter blog posts by tag + {% for tag in page.get_tags %} + {{ tag }} + {% endfor %} +
+ {% endif %} +
+
+
+{% endblock content %} From 4bf9585f9636a45eef544bacd56165384e452fbb Mon Sep 17 00:00:00 2001 From: shahraiz Date: Tue, 12 Dec 2023 18:03:49 +0100 Subject: [PATCH 7/7] updated meta --- modules/django-advanced-blog/meta.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/django-advanced-blog/meta.json b/modules/django-advanced-blog/meta.json index 90d133165..44dcb0596 100644 --- a/modules/django-advanced-blog/meta.json +++ b/modules/django-advanced-blog/meta.json @@ -1,5 +1,5 @@ { - "title": "Basic Blog", - "description": "This is a basic module backend which can be used to create, view blog.", + "title": "Advanced Blog", + "description": "This is an advanced module backend which can be used as a CMS for many use cases like blogging and other type of content management.", "root": "/backend/modules" }