Skip to content
Snippets Groups Projects
layout.html 11.5 KiB
Newer Older
Cédric Krier's avatar
Cédric Krier committed
{% from "utils.html" import icon %}
Cédric Krier's avatar
Cédric Krier committed
<!DOCTYPE html>
Cédric Krier's avatar
Cédric Krier committed
<html lang="en" prefix="og: http://ogp.me/ns#">
Cédric Krier's avatar
Cédric Krier committed
    <head>
Cédric Krier's avatar
Cédric Krier committed
        {% block head %}
        {%- if canonical is not defined %}
        {%- set canonical = url_for_canonical() %}
        {%- endif %}
        <meta charset="utf-8"/>
        <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
        <meta name="viewport" content="width=device-width, initial-scale=1"/>
        <meta name="description" content="{{ description }}"/>
        <meta name="keywords" content="{{ ((keywords or []) + ["tryton", "open source", "opensource", "free software", "freesoftware", "business software", "erp"]) | join(', ') }}"/>
        <meta name="author" content="Tryton"/>
Cédric Krier's avatar
Cédric Krier committed
        <meta property="og:title" content="{{ title }}"/>
Cédric Krier's avatar
Cédric Krier committed
        <meta property="og:type" content="website"/>
        <meta property="og:url" content="{{ canonical }}"/>
Cédric Krier's avatar
Cédric Krier committed
        <meta property="og:image" content="{{ url_for('static', filename=(logo or 'images/logo.png'), _external=True, _scheme='http') }}"/>
        <meta property="og:image:secure_url" content="{{ url_for('static', filename=(logo or 'images/logo.png'), _external=True, _scheme='https') }}"/>
Cédric Krier's avatar
Cédric Krier committed
        {% if description %}
        <meta property="og:description" content="{{ description }}"/>
        {% endif %}
        <meta property="og:site_name" content="Tryton"/>
        <meta name="twitter:card" content="summary"/>
        <meta name="twitter:site" content="@TrytonSoftware"/>
        <meta name="twitter:title" content="{{ title }}"/>
        {% if description %}
        <meta name="twitter:description" content="{{ description }}"/>
        {% endif %}
Cédric Krier's avatar
Cédric Krier committed
        <meta name="twitter:image" content="{{ url_for('static', filename=(logo or 'images/logo.png'), _external=True) }}"/>
Cédric Krier's avatar
Cédric Krier committed

Cédric Krier's avatar
Cédric Krier committed
        <title>Tryton - {{ title }}</title>
Cédric Krier's avatar
Cédric Krier committed
        <link rel="shortcut icon" type="image/png" href="{{ url_for('static', filename='images/favicon.ico') }}"/>
        {% if canonical != request.url %}
        <link rel="canonical" href="{{ canonical }}"/>
Cédric Krier's avatar
Cédric Krier committed

        {% block style %}
        {% set css = critical_css() %}
        {% if css %}
        <style type="text/css">
            {{ css|safe }}
        </style>
        <link rel="preload" href="{{ url_for('static', filename='css/main.css') }}" as="style" onload="this.onload=null;this.rel='stylesheet'">
        <noscript>
            <link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}"/>
        </noscript>
        {% else %}
        <link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}"/>
        {% endif %}
        <noscript>
            <link rel="stylesheet" href="{{ url_for('static', filename='css/noscript.css') }}"/>
        </noscript>
        {% endblock style %}
Cédric Krier's avatar
Cédric Krier committed

        <script async src="{{ url_for('static', filename='js/main.js') }}"></script>
Cédric Krier's avatar
Cédric Krier committed
        {% endblock head %}
Cédric Krier's avatar
Cédric Krier committed
    </head>
    <body>

        <header id="header">
Cédric Krier's avatar
Cédric Krier committed
            {% block header %}
            <nav id="navbar" class="navbar navbar-expand-lg navbar-light">
                <div class="container">
Cédric Krier's avatar
Cédric Krier committed
                    <a class="navbar-brand" href="{{ url_for('index') }}">
                        <img class="img-fluid" src="{{ url_for('static', filename='images/tryton-black.png') }}" width="110" height="32" alt="Tryton Home"/>
Cédric Krier's avatar
Cédric Krier committed
                    </a>
Cédric Krier's avatar
Cédric Krier committed
                    <a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
Cédric Krier's avatar
Cédric Krier committed
                    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>
                    <noscript>
                        <label class="navbar-toggler" for="navbarButton" tabindex="0">
                            <span class="navbar-toggler-icon"></span>
                        </label>
                    </noscript>
                    <input id="navbarButton" class="navbar-toggler d-none" aria-controls="navbarText" role="button" type="checkbox"/>
Cédric Krier's avatar
Cédric Krier committed
                    <div class="collapse navbar-collapse" id="navbarText">
                        <ul class="navbar-nav ml-auto">
                            {% for title, items in menu.items() %}
                            <li class="nav-item dropdown">
                                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true">{{ title }}</a>
                                <div class="dropdown-menu dropdown-menu-right text-lg-right">
Cédric Krier's avatar
Cédric Krier committed
                                    {% for item, url in items %}
                                    <a class="dropdown-item" href="{{ url }}">{{ item|safe }}</a>
Cédric Krier's avatar
Cédric Krier committed
                                    {% endfor %}
                                </div>
                            </li>
                            {% endfor %}
                        </ul>
                    </div>
                </div>
            </nav>
            {% if datetime.date.today() <= datetime.date(2019, 6, 7) %}
Cédric Krier's avatar
Cédric Krier committed
            <div class="alert alert-info text-center" role="alert">
Cédric Krier's avatar
Cédric Krier committed
                <span class="material-icons align-middle">notifications</span>Do not miss the <a class="alert-link" href="{{ url_for('event', event='tum2019') }}">Tryton Unconference, June 4th-7th 2019</a>!
Cédric Krier's avatar
Cédric Krier committed
            </div>
            {% endif %}
            {% if datetime.date.today() <= datetime.date(2019, 11, 28) %}
Sergi Almacellas Abellana's avatar
Sergi Almacellas Abellana committed
            <div class="alert alert-info text-center" role="alert">
                <span class="material-icons align-middle">notifications</span>Do not miss the <a class="alert-link" href="{{ url_for('event', event='tsd2019') }}">Tryton Spanish Days, November 27th-28th 2019</a>!
            </div>
            {% endif %}
            {% if datetime.date.today() <= datetime.date(2021, 6, 30) %}
            <div class="alert alert-info text-center" role="alert">
                <span class="material-icons align-middle">notifications</span>The Tryton Foundation has published its <a class="alert-link" href="https://discuss.tryton.org/t/foundation-budget-for-2021/3861">2021 Budget</a>.
Cédric Krier's avatar
Cédric Krier committed
                You can help us get everything done by <a class="alert-link" href="{{ url_for('donate')}}">making a donation</a>{{ heart | safe }}!
            {% if datetime.date.today() <= datetime.date(2021, 11, 18) %}
            <div class="alert alert-info text-center" role="alert">
                <span class="material-icons align-middle">notifications</span>Do not miss the <a class="alert-link" href="{{ url_for('event', event='tsd2021') }}">Tryton Spanish Days, November 17th-18th 2021</a>!
            </div>
            {% endif %}
Cédric Krier's avatar
Cédric Krier committed
            {% endblock header %}
        </header>

Cédric Krier's avatar
Cédric Krier committed
        <div id="content" tabindex="-1">
Cédric Krier's avatar
Cédric Krier committed
            {% block content %}
            {% endblock content %}
        </div>
Cédric Krier's avatar
Cédric Krier committed

        <footer id="footer">
            {% block footer %}
            <noscript class="loading-lazy">
                <img class="img-fluid" src="{{ url_for('static', filename='images/placeholder-large.jpg') }}" sizes="100vw" srcset="{{ url_for('static', filename='images/placeholder-large.jpg') }} 1920w, {{ url_for('static', filename='images/placeholder-large-800px.jpg') }} 800w, {{ url_for('static', filename='images/placeholder-large-400px.jpg') }} 400w" alt="" loading="lazy" style="background-color: {{ dominant_color('images/placeholder-large.jpg') }};" width="1920" height="350"/>
            </noscript>
Cédric Krier's avatar
Cédric Krier committed
            <section class="topfooter">
                <div class="container">
                    <div class="row">
                        <div class="col-md-7">
                            <div class="row">
                                {% for title, items in menu.items() %}
                                <div class="col-md-3">
                                    <h2>{{ title }}</h2>
                                    <nav>
Cédric Krier's avatar
Cédric Krier committed
                                        <ul>
                                            {% for item, url in items %}
                                            <li class="p-2">
                                                <a href="{{ url }}">{{ item|safe }}</a>
Cédric Krier's avatar
Cédric Krier committed
                                            </li>
                                            {% endfor %}
                                        </ul>
                                    </nav>
                                </div>
                                {% endfor %}
                            </div>
                        </div>
                        <div class="offset-lg-1 col-md-5 col-lg-4">
                            <div class="footer-right">
                                <noscript class="loading-lazy">
                                    <img class="img-fluid" src="{{ url_for('static', filename='images/tryton-white.png') }}" width="110" height="32" alt="Tryton" loading="lazy"/>
                                </noscript>
Cédric Krier's avatar
Cédric Krier committed
                                <hr/>
                                <p class="lead">Modularity, scalability & security for your business</p>
                                <p>
                                {% include "tryton-tm.html" %} is business software, ideal for communities of any size,<br/>easy to use, complete and <strong>100% Open Source</strong>.
Cédric Krier's avatar
Cédric Krier committed
                                </p>
                                <div class="socials">
                                    <h2>Follow us</h2>
Cédric Krier's avatar
Cédric Krier committed
                                    <a href="{{ url_for('news_rss') }}" class="mr-3">{{ icon('rss-box', 36) }}<span class="sr-only">RSS</span></a>
                                    <a href="https://twitter.com/TrytonSoftware" target="_blank" rel="noopener" class="mr-3">{{ icon('twitter-box', 36) }}<span class="sr-only">Twitter</span></a>
                                    <a href="https://fosstodon.org/@tryton" target="_blank" rel="noopener" class="mr-3">{{ icon('mastodon', 36) }}<span class="sr-only">Mastodon</span></a>
Cédric Krier's avatar
Cédric Krier committed
                                    <a href="https://www.facebook.com/TrytonSoftware/" target="_blank" rel="noopener" class="mr-3">{{ icon('facebook-box', 36) }}<span class="sr-only">Facebook</span></a>
                                    <a href="https://www.linkedin.com/groups/1313967" target="_blank" rel="noopener" class="mr-3">{{ icon('linkedin-box', 36) }}<span class="sr-only">LinkedIn</span></a>
                                    <a href="https://www.youtube.com/c/TrytonSoftware" target="_blank" rel="noopener" class="mr-3">{{ icon('youtube', 36) }}<span class="sr-only">YouTube</span></a>
                                    <a href="https://vimeo.com/groups/tryton" target="_blank" rel="noopener" class="mr-3">{{ icon('vimeo', 36) }}<span class="sr-only">Vimeo</span></a>
Cédric Krier's avatar
Cédric Krier committed
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
            <div class="subfooter">
Cédric Krier's avatar
Cédric Krier committed
                <div class="container">
Cédric Krier's avatar
Cédric Krier committed
                    <div class="row">
                        <div class="col col-12 col-md-6">Contents © {{ copyright_dates }} Tryton <a href="https://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a></div>
                        <div class="col col-12 col-md-6 text-md-right">Made with <a target="_blank" rel="noopener" href="https://www.palletsprojects.com/p/flask/">Flask</a> and delivered through <a target="_blank" rel="noopener" href="https://www.keycdn.com/?a=69381">KeyCDN</a></div>
Cédric Krier's avatar
Cédric Krier committed
                    </div>
Cédric Krier's avatar
Cédric Krier committed
                </div>
            </div>
Cédric Krier's avatar
Cédric Krier committed
            {% endblock footer %}
        </footer>

        {% block script %}
        {% endblock %}
Cédric Krier's avatar
Cédric Krier committed
    </body>
</html>