286 lines
16 KiB
HTML
286 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-GB">
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta charset="utf-8"/>
|
|
<title>{{ model.title }} - DOG</title>
|
|
<meta name="description" content="Explore our dog training management web app." />
|
|
<meta name="keywords" content="dog training, dog, training" />
|
|
<link rel="canonical" href="{{ model.get_url_host() }}" />
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "ProfessionalService",
|
|
"name": "Dog Training",
|
|
"url": "{{ model.get_url_host() }}",
|
|
"logo": "{{ model.get_url_host() }}{{ url_for('static', filename='images/Wisp_LQ.webp') }}",
|
|
"description": "Dog training management web app.",
|
|
"address": {
|
|
"@type": "PostalAddress",
|
|
"streetAddress": "53 Alfred Green Close",
|
|
"addressLocality": "Rugby",
|
|
"addressRegion": "Warwickshire",
|
|
"postalCode": "CV22 6DN",
|
|
"addressCountry": "United Kingdom"
|
|
},
|
|
"geo": {
|
|
"@type": "GeoCoordinates",
|
|
"latitude": "52.22",
|
|
"longitude": "1.16"
|
|
},
|
|
"openingHours": "Mo,Tu,We,Th,Fr 09:00-17:00",
|
|
"priceRange": "$$",
|
|
}
|
|
</script>
|
|
<meta name="yandex-verification" content="4693a824cfda082a" />
|
|
<meta id="{{ model.ID_CSRF_TOKEN }}" name="{{ model.FLAG_CSRF_TOKEN }}" content="{{ csrf_token() }}" />
|
|
|
|
<script>
|
|
var attrIdAccessLevel = "{{ model.ATTR_ID_ACCESS_LEVEL }}";
|
|
var attrIdCurrency = "{{ model.ATTR_ID_CURRENCY }}";
|
|
var attrIdCommand = "{{ model.ATTR_ID_COMMAND }}";
|
|
var attrIdCommandCategory = "{{ model.ATTR_ID_COMMAND_CATEGORY }}";
|
|
var attrIdDog = "{{ model.ATTR_ID_DOG }}";
|
|
var attrIdDogCommandLink = "{{ model.ATTR_ID_DOG_COMMAND_LINK }}";
|
|
var attrIdLocation = "{{ model.ATTR_ID_LOCATION }}";
|
|
var attrTextCollapsed = "{{ model.ATTR_TEXT_COLLAPSED }}";
|
|
var attrTextExpanded = "{{ model.ATTR_TEXT_EXPANDED }}";
|
|
var attrValueCurrent = "{{ model.ATTR_VALUE_CURRENT }}";
|
|
var attrValuePrevious = "{{ model.ATTR_VALUE_PREVIOUS }}";
|
|
var attrValueNew = "{{ model.ATTR_VALUE_NEW }}";
|
|
var colourAccent = "{{ model.COLOUR_ACCENT }}";
|
|
var colourError = "{{ model.COLOUR_ERROR }}";
|
|
var colourPageBackground = "{{ model.COLOUR_PAGE_BACKGROUND }}";
|
|
var colourPageBackground1 = "{{ model.COLOUR_PAGE_BACKGROUND_1 }}";
|
|
var colourPageBackground2 = "{{ model.COLOUR_PAGE_BACKGROUND_2 }}";
|
|
var colourPrimary = "{{ model.COLOUR_PRIMARY }}";
|
|
var colourSecondary = "{{ model.COLOUR_SECONDARY }}";
|
|
var colourText = "{{ model.COLOUR_TEXT }}";
|
|
var colourTextBackground = "{{ model.COLOUR_TEXT_BACKGROUND }}";
|
|
var colourTextLinkUnvisited = "{{ model.COLOUR_TEXT_LINK_UNVISITED }}";
|
|
var colourTextLinkVisited = "{{ model.COLOUR_TEXT_LINK_VISITED }}";
|
|
var environment = {
|
|
"name": "{{ model.app.app_config.FLASK_ENV }}",
|
|
"is_production": "{{ model.app.app_config.is_production | lower }}",
|
|
"is_development": "{{ model.app.app_config.is_development | lower }}",
|
|
};
|
|
var flagAccessLevel = "{{ model.FLAG_ACCESS_LEVEL }}";
|
|
var flagAccessLevelRequired = "{{ model.FLAG_ACCESS_LEVEL_REQUIRED }}";
|
|
var flagActive = "{{ model.FLAG_ACTIVE }}";
|
|
var flagActiveOnly = "{{ model.FLAG_ACTIVE_ONLY }}";
|
|
var flagAdd = "{{ model.FLAG_ADD }}";
|
|
var flagAddress = "{{ model.FLAG_ADDRESS }}";
|
|
var flagAddressLine1 = "{{ model.FLAG_ADDRESS_LINE_1 }}";
|
|
var flagAddressLine2 = "{{ model.FLAG_ADDRESS_LINE_2 }}";
|
|
var flagButton = "{{ model.FLAG_BUTTON }}";
|
|
var flagButtonPrimary = "{{ model.FLAG_BUTTON_PRIMARY }}";
|
|
var flagCallback = "{{ model.FLAG_CALLBACK }}";
|
|
var flagCancel = "{{ model.FLAG_CANCEL }}";
|
|
var flagCard = "{{ model.FLAG_CARD }}";
|
|
var flagCheckbox = "{{ model.FLAG_CHECKBOX }}";
|
|
var flagCity = "{{ model.FLAG_CITY }}";
|
|
var flagCloseTemporaryElement = "{{ model.FLAG_CLOSE_TEMPORARY_ELEMENT }}";
|
|
var flagCode = "{{ model.FLAG_CODE }}";
|
|
var flagCollapsible = "{{ model.FLAG_COLLAPSIBLE }}";
|
|
var flagColumn = "{{ model.FLAG_COLUMN }}";
|
|
var flagCommand = "{{ model.FLAG_COMMAND }}";
|
|
var flagCommandCategory = "{{ model.FLAG_COMMAND_CATEGORY }}";
|
|
var flagComment = "{{ model.FLAG_COMMENT }}";
|
|
var flagContainer = "{{ model.FLAG_CONTAINER }}";
|
|
var flagContainerInput = "{{ model.FLAG_CONTAINER_INPUT }}";
|
|
var flagCounty = "{{ model.FLAG_COUNTY }}";
|
|
var flagCsrfToken = "{{ model.FLAG_CSRF_TOKEN }}";
|
|
var flagCurrency = "{{ model.FLAG_CURRENCY }}";
|
|
var flagDelete = "{{ model.FLAG_DELETE }}";
|
|
var flagDescription = "{{ model.FLAG_DESCRIPTION }}";
|
|
var flagDetail = "{{ model.FLAG_DETAIL }}";
|
|
var flagDialog = "{{ model.FLAG_DIALOG }}";
|
|
var flagDirty = "{{ model.FLAG_DIRTY }}";
|
|
var flagDisplayOrder = "{{ model.FLAG_DISPLAY_ORDER }}";
|
|
var flagDog = "{{ model.FLAG_DOG }}";
|
|
var flagDogDogCommandLink = "{{ model.FLAG_DOG_DOG_COMMAND_LINK }}";
|
|
var flagDragging = "dragging";
|
|
var flagDragOver = "drag-over";
|
|
var flagEdit = "{{ model.FLAG_EDIT }}";
|
|
var flagEmail = "{{ model.FLAG_EMAIL }}";
|
|
var flagError = "{{ model.FLAG_ERROR }}";
|
|
var flagExpanded = "{{ model.FLAG_EXPANDED }}";
|
|
var flagFailure = "{{ model.FLAG_FAILURE }}";
|
|
var flagFax = "{{ model.FLAG_FAX }}";
|
|
var flagFilter = "{{ model.FLAG_FILTER }}";
|
|
var flagForm = "{{ model.FLAG_FORM }}";
|
|
var flagFormFilters = "{{ model.FLAG_FORM_FILTERS }}";
|
|
var flagImageLogo = "{{ model.FLAG_IMAGE_LOGO }}";
|
|
var flagInitialised = "{{ model.FLAG_INITIALISED }}";
|
|
var flagIsChecked = "{{ model.FLAG_IS_CHECKED }}";
|
|
var flagIsCollapsed = "{{ model.FLAG_IS_COLLAPSED }}";
|
|
var flagLeftHandStub = "{{ model.FLAG_LEFT_HAND_STUB }}";
|
|
var flagLocation = "{{ model.FLAG_LOCATION }}";
|
|
var flagLocationParent = "{{ model.FLAG_LOCATION_PARENT }}";
|
|
var flagLogo = "{{ model.FLAG_LOGO }}";
|
|
var flagMessage = "{{ model.FLAG_MESSAGE }}";
|
|
var flagModal = "{{ model.FLAG_MODAL }}";
|
|
var flagMove = "move";
|
|
var flagName = "{{ model.FLAG_NAME }}";
|
|
var flagNameAttrOptionText = "{{ model.FLAG_NAME_ATTR_OPTION_TEXT}}";
|
|
var flagNameAttrOptionValue = "{{ model.FLAG_NAME_ATTR_OPTION_VALUE }}";
|
|
var flagNamePlural = "{{ model.FLAG_NAME_PLURAL }}";
|
|
var flagNavAdminHome = "{{ model.FLAG_NAV_ADMIN_HOME }}";
|
|
var flagNavContact = "{{ model.FLAG_NAV_CONTACT }}";
|
|
var flagNavHome = "{{ model.FLAG_NAV_HOME }}";
|
|
var flagNavDogCommandCategories = "{{ model.FLAG_NAV_DOG_COMMAND_CATEGORIES }}";
|
|
var flagNavDogCommands = "{{ model.FLAG_NAV_DOG_COMMANDS }}";
|
|
var flagNavDogDogs = "{{ model.FLAG_NAV_DOG_DOGS }}";
|
|
var flagNavDogDogCommandLinks = "{{ model.FLAG_NAV_DOG_DOG_COMMAND_LINKS }}";
|
|
var flagNavDogHome = "{{ model.FLAG_NAV_DOG_HOME }}";
|
|
var flagNavUserAccount = "{{ model.FLAG_NAV_USER_ACCOUNT }}";
|
|
var flagNavUserAdmin = "{{ model.FLAG_NAV_USER_ADMIN }}";
|
|
var flagNavUserLogin = "{{ model.FLAG_NAV_USER_LOGIN }}";
|
|
var flagNavUserLogout = "{{ model.FLAG_NAV_USER_LOGOUT }}";
|
|
var flagNotes = "{{ model.FLAG_NOTES }}";
|
|
var flagOverlay = "{{ model.FLAG_OVERLAY }}";
|
|
var flagOverlayClose = "{{ model.FLAG_OVERLAY_CLOSE }}";
|
|
var flagPageBody = "{{ model.FLAG_PAGE_BODY }}";
|
|
var flagPhoneNumber = "{{ model.FLAG_PHONE_NUMBER }}";
|
|
var flagPostcode = "{{ model.FLAG_POSTCODE }}";
|
|
var flagCaptcha = "{{ model.FLAG_CAPTCHA }}";
|
|
var flagRightHandSide = "{{ model.FLAG_RIGHT_HAND_SIDE }}";
|
|
var flagRow = "{{ model.FLAG_ROW }}";
|
|
var flagRowNew = "{{ model.FLAG_ROW_NEW }}";
|
|
var flagRows = "{{ model.FLAG_ROWS }}";
|
|
var flagSave = "{{ model.FLAG_SAVE }}";
|
|
var flagScrollable = "{{ model.FLAG_SCROLLABLE }}";
|
|
var flagSearch = "{{ model.FLAG_SEARCH }}";
|
|
var flagSlider = "{{ model.FLAG_SLIDER }}";
|
|
var flagStatus = "{{ model.FLAG_STATUS }}";
|
|
var flagSubmit = "{{ model.FLAG_SUBMIT }}";
|
|
var flagSubmitted = "{{ model.FLAG_SUBMITTED }}";
|
|
var flagSuccess = "{{ model.FLAG_SUCCESS }}";
|
|
var flagTemporaryElement = "{{ model.FLAG_TEMPORARY_ELEMENT }}";
|
|
var flagUser = "{{ model.FLAG_USER }}";
|
|
var flagWebsite = "{{ model.FLAG_WEBSITE }}";
|
|
var hashGetALTCHAChallenge = "{{ model.HASH_ALTCHA_CREATE_CHALLENGE }}";
|
|
var hashPageAccessibilityReport = "{{ model.HASH_PAGE_ACCESSIBILITY_REPORT }}";
|
|
var hashPageAccessibilityStatement = "{{ model.HASH_PAGE_ACCESSIBILITY_STATEMENT }}";
|
|
var hashPageAdminHome = "{{ model.HASH_PAGE_ADMIN_HOME }}";
|
|
var hashPageContact = "{{ model.HASH_PAGE_CONTACT }}";
|
|
var hashPageContactSuccess = "{{ model.HASH_PAGE_CONTACT_SUCCESS }}";
|
|
var hashPageDataRetentionSchedule = "{{ model.HASH_PAGE_DATA_RETENTION_SCHEDULE }}";
|
|
var hashPageDogCommandCategories = "{{ model.HASH_PAGE_DOG_COMMAND_CATEGORIES }}";
|
|
var hashPageDogCommands = "{{ model.HASH_PAGE_DOG_COMMANDS }}";
|
|
var hashPageDogDogCommandLinks = "{{ model.HASH_PAGE_DOG_DOG_COMMAND_LINKS }}";
|
|
var hashPageDogDogs = "{{ model.HASH_PAGE_DOG_DOGS }}";
|
|
var hashPageDogHome = "{{ model.HASH_PAGE_DOG_HOME }}";
|
|
var hashPageDogLocations = "{{ model.HASH_PAGE_DOG_LOCATIONS }}";
|
|
var hashPageErrorNoPermission = "{{ model.HASH_PAGE_ERROR_NO_PERMISSION }}";
|
|
var hashPageHome = "{{ model.HASH_PAGE_HOME }}";
|
|
var hashPageLicense = "{{ model.HASH_PAGE_LICENSE }}";
|
|
var hashPagePrivacyPolicy = "{{ model.HASH_PAGE_PRIVACY_POLICY }}";
|
|
var hashPageUserAccount = "{{ model.HASH_PAGE_USER_ACCOUNT }}";
|
|
var hashPageUserAdmin = "{{ model.HASH_PAGE_USER_ADMIN }}";
|
|
var hashPageUserLogin = "{{ model.HASH_PAGE_USER_LOGIN }}";
|
|
var hashPageUserLogout = "{{ model.HASH_PAGE_USER_LOGOUT }}";
|
|
var hashSaveDogCommand = "{{ model.HASH_SAVE_DOG_COMMAND }}";
|
|
var hashSaveDogCommandCategory = "{{ model.HASH_SAVE_DOG_COMMAND_CATEGORY }}";
|
|
var hashSaveDogDogCommandLink = "{{ model.HASH_SAVE_DOG_DOG_COMMAND_LINK }}";
|
|
var hashSaveDogLocation = "{{ model.HASH_SAVE_DOG_LOCATION }}";
|
|
var idButtonApplyFilters = "#{{ model.ID_BUTTON_APPLY_FILTERS }}";
|
|
var idButtonHamburger = "#{{ model.ID_BUTTON_HAMBURGER }}";
|
|
var idButtonCancel = "#{{ model.ID_BUTTON_CANCEL }}";
|
|
var idButtonSave = "#{{ model.ID_BUTTON_SAVE }}";
|
|
var idContainerTemplateElements = "#{{ model.ID_CONTAINER_TEMPLATE_ELEMENTS }}";
|
|
var idCSRFToken = "#{{ model.ID_CSRF_TOKEN }}";
|
|
var idFormFilters = "#{{ model.ID_FORM_FILTERS }}";
|
|
var idLabelError = "#{{ model.ID_LABEL_ERROR }}";
|
|
var idOverlayConfirm = "#{{ model.ID_OVERLAY_CONFIRM }}";
|
|
var idOverlayError = "#{{ model.ID_OVERLAY_ERROR }}";
|
|
var idOverlayHamburger = "#{{ model.ID_OVERLAY_HAMBURGER }}";
|
|
var idPageBody = "#{{ model.ID_PAGE_BODY }}";
|
|
var idTableMain = "#{{ model.ID_TABLE_MAIN }}";
|
|
var idTextareaConfirm = "#{{ model.ID_TEXTAREA_CONFIRM }}";
|
|
var isUserLoggedIn = "{{ model.output_bool(model.IS_USER_LOGGED_IN) }}";
|
|
var _pathHost = "{{ model.get_url_host() }}";
|
|
var _rowBlank = null;
|
|
var titlePageCurrent = "{{ model.title }}";
|
|
var _verbose = ("{{ model.app.app_config.DEBUG }}" == "True");
|
|
</script>
|
|
|
|
|
|
<link rel="preload" as="style" href="{{ url_for('static', filename='dist/css/main.bundle.css') }}" onload="this.onload=null;this.rel='stylesheet'">
|
|
<noscript><link rel="stylesheet" href="{{ url_for('static', filename='dist/css/main.bundle.css') }}"></noscript>
|
|
|
|
{% block page_head %}{% endblock %}
|
|
</head>
|
|
<body data-page="{{ model.hash_page_current }}">
|
|
<!-- Header -- >
|
|
<header>
|
|
<div class="container">
|
|
<nav class="navbar">
|
|
<div class="{{ model.FLAG_LOGO }}" href="{{ model.HASH_PAGE_HOME }}">{{ model.NAME_COMPANY }}</div>
|
|
<div class="nav-links">
|
|
{% block page_nav_links %}{% endblock %}
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
-->
|
|
<div class="topnav">
|
|
<div class="{{ model.FLAG_CONTAINER }} header-logo"> <!-- style="width: 18vw; min-width: 18vw; max-width: 20vw;" -->
|
|
<img class="header-logo" src="{{ url_for('static', filename='images/Wisp_LQ.webp') }}" alt="Dog Training logo" aria-label="Dog Training logo" tabindex="0">
|
|
</div>
|
|
<div class="{{ model.FLAG_CONTAINER }} company-name"> <!-- style="width: 75vw; min-width: 65vw; max-width: 80vw;" -->
|
|
<h1 class="company-name">Dog Training - {{ model.title }}</h1>
|
|
</div>
|
|
{#
|
|
<div class="{{ model.FLAG_CONTAINER }}"> <!-- style="width: 7vw; min-width: 7vw; max-width: 15vw; justify-content: flex-end; " padding-left: 25%; -->
|
|
<button id="{{ model.ID_BUTTON_HAMBURGER }}" class="{{ model.FLAG_BUTTON }} {{ model.FLAG_BUTTON_PRIMARY }}" tabindex="1" alt="Hamburger menu button" aria-label="Hamburger menu button">☰</button>
|
|
</div>
|
|
#}
|
|
</div>
|
|
|
|
<!-- Hamburger navigation menu -->
|
|
{% include 'components/common/buttons/_icon_hamburger.html' %}
|
|
<div id="{{ model.ID_OVERLAY_HAMBURGER }}" class="{{ model.FLAG_OVERLAY}} {{ model.FLAG_HAMBURGER }} {{ model.FLAG_IS_COLLAPSED }}">
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_HOME }}">Home</a>
|
|
</div>
|
|
{% if True or model.user.can_admin_dog %}
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_DOG_HOME }}">Dog Home</a>
|
|
</div>
|
|
{% endif %}
|
|
{% if model.user.get_is_logged_in() %}
|
|
{#
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_USER_ACCOUNT }}">Account</a>
|
|
</div>
|
|
#}
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_USER_LOGOUT }}">Logout</a>
|
|
</div>
|
|
{% else %}
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_USER_LOGIN }}">Login</a>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<!-- Body -->
|
|
<div id="{{ model.ID_PAGE_BODY }}">
|
|
{% block page_body %}{% endblock %}
|
|
</div>
|
|
|
|
<!-- Footer -->
|
|
<div class="footer">
|
|
<h4>Copyright © {{ model.NAME_COMPANY }}. <a href="{{ url_for('routes_legal.license') }}" alt="License" aria-label="License">All rights reserved.</a></h4>
|
|
<h5>Company number 13587499</h5>
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_COLUMN }}"><p><a href="{{ url_for('routes_legal.accessibility_statement') }}" alt="Accessibility statement" aria-label="Accessibility statement">Accessibility statement</a></p></div>
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_COLUMN }}"><p><a href="{{ url_for('routes_legal.privacy_policy') }}" alt="Privacy notice" aria-label="Privacy notice">Privacy notice</a></p></div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="{{ url_for('static', filename='dist/js/main.bundle.js') }}"></script>
|
|
</body>
|
|
</html>
|