377 lines
25 KiB
HTML
377 lines
25 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 }} - {{ model.NAME_COMPANY }}</title>
|
|
<meta name="description" content="Explore our wide range of software engineering services. We specialize in various tech stacks including MySQL, Python, Microsoft SQL Server, C#, Firebase, Node.js, Java, HTML5, React, CSS3, Flask, JavaScript, MVC, and REST." />
|
|
<meta name="keywords" content="software engineering, software development, software design, software testing, software maintenance, software support, software consultancy, software training, software documentation, software project management, software quality assurance, software process improvement, software configuration management, software requirements engineering, software architecture, software design patterns, software design principles, software testing principles, software testing techniques, software testing tools, software testing automation, software testing manual, software testing exploratory, software testing regression, software testing performance, software testing security, software testing usability, software testing accessibility, software testing compatibility, software testing reliability, software testing maintainability, software testing portability, software testing scalability, software testing test-driven development, software testing behaviour-driven development, software testing acceptance test-driven development, software testing continuous integration, software testing continuous deployment, software testing continuous delivery, software testing continuous monitoring, software testing continuous feedback, software testing continuous improvement, software testing agile, software testing scrum, software testing kanban, software testing lean, software testing waterfall, software testing v-model, software testing spiral, software testing incremental, software testing iterative, software testing adaptive, software testing predictive, software testing hybrid, software testing manual, software testing automated, software testing exploratory, software testing regression, software testing performance, software testing security, software testing usability, software testing accessibility, software testing compatibility, software testing reliability, software testing maintainability, software testing portability, software testing scalability, software testing test-driven development, software testing behaviour-driven development, software testing acceptance test-driven development, software testing continuous integration, software testing continuous deployment, software testing continuous delivery, software testing continuous monitoring, software testing continuous feedback, software testing continuous improvement, software testing agile, software testing scrum, software testing kanban, software testing lean, software testing waterfall, software testing v-model, software testing spiral, software testing incremental, software testing iterative, software testing adaptive, software testing predictive, software testing hybrid, software testing manual, software testing automated, software testing exploratory, software testing regression, software testing performance, software testing security, software testing usability, software testing accessibility, software testing compatibility, software testing reliability, software testing maintainability, software testing portability, software testing scalability, software testing test-driven development, software testing behaviour-driven development, software testing acceptance test-driven development, software testing continuous integration, software testing continuous deployment, software testing continuous delivery, software testing continuous monitoring, software testing continuous feedback, software testing continuous improvement, software testing agile, software testing, MySQL, Python, Microsoft SQL Server, MS SQL Server, C#, Firebase, Node.js, Java, HTML5, React, CSS3, Flask, JavaScript, MVC, REST" />
|
|
<link rel="canonical" href="{{ model.get_url_host() }}" />
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "ProfessionalService",
|
|
"name": "{{ model.NAME_COMPANY }}",
|
|
"url": "{{ model.get_url_host() }}",
|
|
"logo": "{{ model.get_url_host() }}{{ url_for('static', filename='images/Logo.png') }}",
|
|
"description": "Explore our wide range of software engineering services. We specialize in various tech stacks including MySQL, Python, Microsoft SQL Server, C#, Firebase, Node.js, Java, HTML5, React, CSS3, Flask, JavaScript, MVC, and REST.",
|
|
"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.NAME_CSRF_TOKEN }}" content="{{ csrf_token() }}" />
|
|
|
|
<!-- Scripts
|
|
<script src="{{ url_for('static', filename='js/lib/common.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/lib/constants.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/lib/events.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/lib/extras.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/lib/init.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/lib/local_storage.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/lib/utils.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/lib/validation.js') }}"></script>
|
|
-->
|
|
|
|
<script>
|
|
var attrIdAccessLevel = "{{ model.ATTR_ID_ACCESS_LEVEL }}";
|
|
var attrIdCurrency = "{{ model.ATTR_ID_CURRENCY }}";
|
|
var attrIdAddress = "{{ model.ATTR_ID_ADDRESS }}";
|
|
var attrIdCustomer = "{{ model.ATTR_ID_CUSTOMER }}";
|
|
var attrIdCustomerAddress = "{{ model.ATTR_ID_CUSTOMER_ADDRESS }}";
|
|
var attrIdCustomerSalesOrder = "{{ model.ATTR_ID_CUSTOMER_SALES_ORDER }}";
|
|
var attrIdDiscount = "{{ model.ATTR_ID_DISCOUNT }}";
|
|
var attrIdManufacturingPurchaseOrder = "{{ model.ATTR_ID_MANUFACTURING_PURCHASE_ORDER }}";
|
|
var attrIdManufacturingPurchaseOrderProductLink = "{{ model.ATTR_ID_MANUFACTURING_PURCHASE_ORDER_PRODUCT_LINK }}";
|
|
var attrIdPlant = "{{ model.ATTR_ID_PLANT }}";
|
|
var attrIdProduct = "{{ model.ATTR_ID_PRODUCT }}";
|
|
var attrIdProductCategory = "{{ model.ATTR_ID_PRODUCT_CATEGORY }}";
|
|
var attrIdProductPermutation = "{{ model.ATTR_ID_PRODUCT_PERMUTATION }}";
|
|
var attrIdProductPrice = "{{ model.ATTR_ID_PRODUCT_PRICE }}";
|
|
var attrIdProductVariation = "{{ model.ATTR_ID_PRODUCT_VARIATION }}";
|
|
var attrIdProductVariationType = "{{ model.ATTR_ID_PRODUCT_VARIATION_TYPE }}";
|
|
var attrIdRegion = "{{ model.ATTR_ID_REGION }}";
|
|
var attrIdStockItem = "{{ model.ATTR_ID_STOCK_ITEM }}";
|
|
var attrIdStorageLocation = "{{ model.ATTR_ID_STORAGE_LOCATION }}";
|
|
var attrIdSupplier = "{{ model.ATTR_ID_SUPPLIER }}";
|
|
var attrIdSupplierAddress = "{{ model.ATTR_ID_SUPPLIER_ADDRESS }}";
|
|
var attrIdSupplierPurchaseOrder = "{{ model.ATTR_ID_SUPPLIER_PURCHASE_ORDER }}";
|
|
var attrIdSupplierPurchaseOrderProductLink = "{{ model.ATTR_ID_SUPPLIER_PURCHASE_ORDER_PRODUCT_LINK }}";
|
|
var attrIdUnitMeasurementLatencyManufacture = "{{ model.ATTR_ID_UNIT_MEASUREMENT_LATENCY_MANUFACTURE }}";
|
|
var attrIdUnitMeasurementQuantity = "{{ model.ATTR_ID_UNIT_MEASUREMENT_QUANTITY }}";
|
|
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 flagAccessLevel = "{{ model.FLAG_ACCESS_LEVEL }}";
|
|
var flagAccessLevelRequired = "{{ model.FLAG_ACCESS_LEVEL_REQUIRED }}";
|
|
var flagActive = "{{ model.FLAG_ACTIVE }}";
|
|
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 flagCallback = "{{ model.FLAG_CALLBACK }}";
|
|
var flagCancel = "{{ model.FLAG_CANCEL }}";
|
|
var flagCard = "{{ model.FLAG_CARD }}";
|
|
var flagCity = "{{ model.FLAG_CITY }}";
|
|
var flagCloseTemporaryElement = "{{ model.FLAG_CLOSE_TEMPORARY_ELEMENT }}";
|
|
var flagCode = "{{ model.FLAG_CODE }}";
|
|
var flagCollapsed = "{{ model.FLAG_COLLAPSED }}";
|
|
var flagCollapsible = "{{ model.FLAG_COLLAPSIBLE }}";
|
|
var flagColumn = "{{ model.FLAG_COLUMN }}";
|
|
var flagComment = "{{ model.FLAG_COMMENT }}";
|
|
// var flagContactUs = "{{ model.FLAG_CONTACT_US }}";
|
|
var flagContainer = "{{ model.FLAG_CONTAINER }}";
|
|
var flagContainerInput = "{{ model.FLAG_CONTAINER_INPUT }}";
|
|
var flagCounty = "{{ model.FLAG_COUNTY }}";
|
|
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 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 flagItems = "{{ model.FLAG_ITEMS }}";
|
|
// var flagKeyPrimary = "{{ model.FLAG_KEY_PRIMARY }}";
|
|
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 flagNavAdminHome = "{{ model.FLAG_NAV_ADMIN_HOME }}";
|
|
var flagNavAdminStoreStripePrices = "{{ model.FLAG_NAV_ADMIN_STORE_STRIPE_PRICES }}";
|
|
var flagNavAdminStoreStripeProducts = "{{ model.FLAG_NAV_ADMIN_STORE_STRIPE_PRODUCTS }}";
|
|
var flagNavContact = "{{ model.FLAG_NAV_CONTACT }}";
|
|
var flagNavHome = "{{ model.FLAG_NAV_HOME }}";
|
|
var flagNavServices = "{{ model.FLAG_NAV_SERVICES }}";
|
|
var flagNavStoreHome = "{{ model.FLAG_NAV_STORE_HOME }}";
|
|
var flagNavStoreManufacturingPurchaseOrders = "{{ model.FLAG_NAV_STORE_MANUFACTURING_PURCHASE_ORDERS }}";
|
|
var flagNavStoreProducts = "{{ model.FLAG_NAV_STORE_PRODUCTS }}";
|
|
var flagNavStoreProductCategories = "{{ model.FLAG_NAV_STORE_PRODUCT_CATEGORIES }}";
|
|
var flagNavStoreProductPermutations = "{{ model.FLAG_NAV_STORE_PRODUCT_PERMUTATIONS }}";
|
|
var flagNavStoreProductPrices = "{{ model.FLAG_NAV_STORE_PRODUCT_PRICES }}";
|
|
var flagNavStoreProductVariations = "{{ model.FLAG_NAV_STORE_PRODUCT_VARIATIONS }}";
|
|
var flagNavStoreStockItems = "{{ model.FLAG_NAV_STORE_STOCK_ITEMS }}";
|
|
var flagNavStoreSuppliers = "{{ model.FLAG_NAV_STORE_SUPPLIERS }}";
|
|
var flagNavStoreSupplierPurchaseOrders = "{{ model.FLAG_NAV_STORE_SUPPLIER_PURCHASE_ORDERS }}";
|
|
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 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 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 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 hashApplyFiltersStoreProductPermutation = "{{ model.HASH_APPLY_FILTERS_STORE_PRODUCT_PERMUTATION }}";
|
|
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 hashPageDataRetentionSchedule = "{{ model.HASH_PAGE_DATA_RETENTION_SCHEDULE }}";
|
|
// var hashPageCurrent = "{{ model.hash_page_current }}";
|
|
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 hashPageServices = "{{ model.HASH_PAGE_SERVICES }}";
|
|
{#
|
|
var hashPageStoreAdminStripePrices = "{{ model.HASH_PAGE_STORE_ADMIN_STRIPE_PRICES }}";
|
|
var hashPageStoreAdminStripeProducts = "{{ model.HASH_PAGE_STORE_ADMIN_STRIPE_PRODUCTS }}";
|
|
#}
|
|
var hashPageStoreBasket = "{{ model.HASH_PAGE_STORE_BASKET }}";
|
|
var hashPageStoreCustomerSalesOrders = "{{ model.HASH_PAGE_STORE_CUSTOMER_SALES_ORDERS }}";
|
|
var hashPageStoreHome = "{{ model.HASH_PAGE_STORE_HOME }}";
|
|
var hashPageStoreManufacturingPurchaseOrders = "{{ model.HASH_PAGE_STORE_MANUFACTURING_PURCHASE_ORDERS }}";
|
|
var hashPageStoreProductCategories = "{{ model.HASH_PAGE_STORE_PRODUCT_CATEGORIES }}";
|
|
var hashPageStoreProducts = "{{ model.HASH_PAGE_STORE_PRODUCTS }}";
|
|
var hashPageStoreProductPermutations = "{{ model.HASH_PAGE_STORE_PRODUCT_PERMUTATIONS }}";
|
|
var hashPageStoreProductPrices = "{{ model.HASH_PAGE_STORE_PRODUCT_PRICES }}";
|
|
var hashPageStoreProductVariations = "{{ model.HASH_PAGE_STORE_PRODUCT_VARIATIONS }}";
|
|
var hashPageStoreStockItems = "{{ model.HASH_PAGE_STORE_STOCK_ITEMS }}";
|
|
var hashPageStoreSuppliers = "{{ model.HASH_PAGE_STORE_SUPPLIERS }}";
|
|
var hashPageStoreSupplierPurchaseOrders = "{{ model.HASH_PAGE_STORE_SUPPLIER_PURCHASE_ORDERS }}";
|
|
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 idButtonApplyFilters = "#{{ model.ID_BUTTON_APPLY_FILTERS }}";
|
|
/*
|
|
var idButtonAdd = "#{{ model.ID_BUTTON_ADD }}";
|
|
var idButtonCancel = "#{{ model.ID_BUTTON_CANCEL }}";
|
|
var idButtonConfirm = "#{{ model.ID_BUTTON_CONFIRM }}";
|
|
*/
|
|
var idButtonHamburger = "#{{ model.ID_BUTTON_HAMBURGER }}";
|
|
/*
|
|
var idButtonNavAdminHome = "#{{ model.ID_NAV_ADMIN_HOME }}";
|
|
// var idButtonNavContact = "#{{ model.ID_NAV_CONTACT }}";
|
|
var idButtonNavHome = "#{{ model.ID_NAV_HOME }}";
|
|
var idButtonNavServices = "#{{ model.ID_NAV_SERVICES }}";
|
|
var idButtonNavStoreHome = "#{{ model.ID_NAV_STORE_HOME }}";
|
|
var idButtonNavStoreProduct = "#{{ model.ID_NAV_STORE_PRODUCT }}";
|
|
var idButtonNavStoreProductCategories = "#{{ model.ID_NAV_STORE_PRODUCT_CATEGORIES }}";
|
|
var idButtonNavStoreProductPermutations = "#{{ model.ID_NAV_STORE_PRODUCT_PERMUTATIONS }}";
|
|
var idButtonNavStoreProductPrices = "#{{ model.ID_NAV_STORE_PRODUCT_PRICES }}";
|
|
var idButtonNavStoreProductVariations = "#{{ model.ID_NAV_STORE_PRODUCT_VARIATIONS }}";
|
|
var idButtonNavStoreStockItems = "#{{ model.ID_NAV_STORE_STOCK_ITEMS }}";
|
|
var idButtonNavUserAccount = "#{{ model.ID_NAV_USER_ACCOUNT }}";
|
|
var idButtonNavUserAdmin = "#{{ model.ID_NAV_USER_ADMIN }}";
|
|
var idButtonNavUserLogin = "#{{ model.ID_NAV_USER_LOGIN }}";
|
|
var idButtonNavUserLogout = "#{{ model.ID_NAV_USER_LOGOUT }}";
|
|
var idButtonSave = "#{{ model.ID_BUTTON_SAVE }}";
|
|
*/
|
|
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 nameCSRFToken = "{{ model.NAME_CSRF_TOKEN }}";
|
|
var _pathHost = "{{ model.get_url_host() }}";
|
|
var _rowBlank = null;
|
|
var titlePageCurrent = "{{ model.title }}";
|
|
</script>
|
|
|
|
|
|
<!-- Stylesheets
|
|
<link href="{{ url_for('static', filename='css/main.css') }}" rel="stylesheet" type="text/css"/>
|
|
-->
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='dist/css/main.bundle.css') }}">
|
|
</head>
|
|
<body data-page="{{ model.hash_page_current }}">
|
|
<div class="topnav">
|
|
<div class="{{ model.FLAG_CONTAINER }}" style="width: 18vw; min-width: 18vw; max-width: 20vw;">
|
|
<img class="header-logo" src="{{ url_for('static', filename='images/Logo.png') }}" alt="{{ model.NAME_COMPANY }} logo" aria-label="{{ model.NAME_COMPANY }} logo" tabindex="0">
|
|
</div>
|
|
<div class="{{ model.FLAG_CONTAINER }}" style="width: 75vw; min-width: 65vw; max-width: 80vw;">
|
|
<h1 class="company-name">{{ model.NAME_COMPANY }} - {{ 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 }}" tabindex="1" alt="Hamburger menu button" aria-label="Hamburger menu button">☰</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="{{ model.ID_OVERLAY_HAMBURGER }}" class="{{ model.FLAG_OVERLAY}} {{ model.FLAG_HAMBURGER }} {{ model.FLAG_COLLAPSED }}"> <!-- style="height: {{ 27 * 3 }}px" {- { 4.5 * 3 }}vh -->
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_HOME }}">Home</a>
|
|
</div>
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_SERVICES }}">Services</a>
|
|
</div>
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_CONTACT }}">Contact</a>
|
|
</div>
|
|
|
|
{% if model.is_page_store and model.user.can_admin_store %}
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_STORE_PRODUCT_PERMUTATIONS }}">Product Permutations</a>
|
|
</div>
|
|
{% if model.user.can_admin_store %}
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_STORE_STOCK_ITEMS }}">Stock Items</a>
|
|
</div>
|
|
{% endif %}
|
|
<!--
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<!-- <a href="{ url_ for('create_price_dummy') }">Create template price</a> --
|
|
<form id="{{ model.ID_FORM_IS_INCLUDED_VAT }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_is_included_VAT') } }" method="POST">
|
|
{ { model.form_is_included_VAT.hidden_tag() }}
|
|
<div class="container-input">
|
|
{ { model.form_is_included_VAT.is_included.label }}
|
|
{ { model.form_is_included_VAT.is_included( checked = model.is_included_VAT ) }}
|
|
{ % for error in model.form_is_included_VAT.is_included.errors %}
|
|
<p class="error">{{ error }}</p>
|
|
{ % endfor %}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<form id="{{ model.ID_FORM_DELIVERY_REGION }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_delivery_region') } }" method="POST">
|
|
{ { model.form_delivery_region.hidden_tag() }}
|
|
<div class="container-input">
|
|
{ { model.form_delivery_region.id_region_delivery.label }}
|
|
{ { model.form_delivery_region.id_region_delivery() }}
|
|
{ % for error in model.form_delivery_region.id_region_delivery.errors %}
|
|
<p class="error">{{ error }}</p>
|
|
{ % endfor %}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<form id="{{ model.ID_FORM_CURRENCY }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_currency') } }" method="POST">
|
|
{ { model.form_currency.hidden_tag() }}
|
|
<div class="container-input">
|
|
{ { model.form_currency.id_currency.label }}
|
|
{ { model.form_currency.id_currency() }}
|
|
{ % for error in model.form_currency.id_currency.errors %}
|
|
<p class="error">{{ error }}</p>
|
|
{ % endfor %}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a href="{ { url_for('routes_user.logout') if model.is_user_logged_in else url_for('routes_user.login') }}" style="float:right">{{ 'Logout' if model.is_user_logged_in else 'Login' }}</a>
|
|
</div>
|
|
-->
|
|
{% else %}
|
|
{% if model.user.can_admin_store %}
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_STORE_HOME }}">Shop</a>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if model.user.can_admin_store %}
|
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
|
<a class="{{ model.FLAG_NAV_ADMIN_HOME }}">Admin</a>
|
|
</div>
|
|
{% endif %}
|
|
{% if model.user.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>
|
|
|
|
<!-- Page body -->
|
|
<div id="{{ model.ID_PAGE_BODY }}" class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_PAGE_BODY }}">
|
|
{% block page_body %}{% endblock %}
|
|
</div>
|
|
|
|
|
|
<div class="footer">
|
|
<h4 style="padding-top: 1vh;">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 type="module" src="{{ url_for('static', filename='js/pages/base.js') }}"></script>
|
|
<script type="module" src="{{ url_for('static', filename='js/app.js') }}"></script>-->
|
|
<script src="{{ url_for('static', filename='dist/js/main.bundle.js') }}"></script>
|
|
</body>
|
|
</html>
|
|
|
|
<!--
|
|
<script>
|
|
|
|
$(document).ready(function() {
|
|
// alert("naughty boy");
|
|
hookupShared();
|
|
});
|
|
</script>
|
|
-->
|