Commit e2edfba0 authored by felix.herrmann's avatar felix.herrmann
Browse files

Merge branch 'feature/template-base' of...

Merge branch 'feature/template-base' of gitlab.gwdg.de:discuss-data/discuss-data into feature/template-base
parents 8f472adc b85654af
......@@ -42,7 +42,6 @@ and from the documentation on `Configuring the Environment`_.
Basic Commands
--------------
Type checks
^^^^^^^^^^^
......@@ -53,7 +52,7 @@ Running type checks with mypy:
$ mypy discuss_data
Django unit tests
^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^
::
$ docker-compose -f local.yml run django python manage.py test
......@@ -66,11 +65,12 @@ To run the tests, check your test coverage, and generate an HTML coverage report
$ docker-compose -f local.yml run django coverage run -m pytest
$ docker-compose -f local.yml run django coverage report
Live reloading and Sass CSS compilation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Django templace check
^^^^^^^^^^^^^^^^^^^^^
::
$ docker-compose -f local.yml run django python manage.py templatecheck
After having installed the node dependencies with ``npm install`` the project
can be run with ``npm run dev`` with live reloading.
I18N
^^^^
......@@ -114,6 +114,11 @@ Run container:
$ docker-compose -f local.yml up
Make migrations:
::
$ docker-compose -f local.yml run --rm django python manage.py makemigrations
Run migrations:
::
......@@ -139,6 +144,9 @@ Also, set your local Database url:
$ export DATABASE_URL=postgres://<postgres_user>:<password>@127.0.0.1:5432/<dbname>
After having installed the node dependencies with ``npm install`` the project
can be run with ``npm run dev`` with Live reloading and Sass CSS compilation.
Production
^^^^^^^^^^
......
......@@ -59,6 +59,7 @@ if env("USE_DOCKER") == "yes":
# ------------------------------------------------------------------------------
# https://django-extensions.readthedocs.io/en/latest/installation_instructions.html#configuration
INSTALLED_APPS += ["django_extensions"] # noqa F405
INSTALLED_APPS += ["django_template_check"] # noqa F405
# Your stuff...
# ------------------------------------------------------------------------------
......
......@@ -23,25 +23,26 @@ urlpatterns = [
path(settings.ADMIN_URL + "doc/", include("django.contrib.admindocs.urls")),
path(settings.ADMIN_URL, admin.site.urls),
# User management
path("users/", include(("discuss_data.ddusers.urls", "ddusers"), namespace="ddusers")),
path(
"users/", include(("discuss_data.ddusers.urls", "ddusers"), namespace="ddusers")
),
# next line to be removed
# path("accounts/", include("allauth.urls")),
# Your stuff: custom urls includes go here
path("core/", include(("discuss_data.core.urls", "core"), namespace="core")),
path("dataset/", include("discuss_data.dddatasets.urls", namespace="dddatasets"),),
path("dataset/", include("discuss_data.dddatasets.urls", namespace="dddatasets")),
path("dhrep/", include("discuss_data.dhrep.urls", namespace="dhrep")),
path(
"login/",
auth_views.LoginView.as_view(template_name="auth/login.html",),
auth_views.LoginView.as_view(template_name="auth/login.html"),
name="login",
),
path(
"logout/",
auth_views.LogoutView.as_view(template_name="auth/logout.html",),
auth_views.LogoutView.as_view(template_name="auth/logout.html"),
name="logout",
),
path("shib/", include("shibboleth.urls", namespace="shibboleth")),
path("dhrep/", include("discuss_data.dhrep.urls", namespace="dhrep")),
path("", dashboard_page, name="ddusers.dashboard_page"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
......
......@@ -18,7 +18,7 @@ body {
background-color: #fff;
min-height: 100vh;
position: relative;
margin: 0;
margin: 0;
}
/*
......@@ -43,7 +43,7 @@ body {
height: calc(100vh - 80px);
padding-top: .5rem;
overflow-x: hidden;
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
bottom:50px;
}
......@@ -55,11 +55,7 @@ body {
#name {
font-weight: 700;
font-size: large;
}
#affiliation {
font-size: large;
}
@supports ((position: -webkit-sticky) or (position: sticky)) {
......@@ -98,13 +94,13 @@ body {
*/
[role="main"] {
padding-top: 80px; /* Space for fixed navbar */
padding-top: 80px; /* Space for fixed navbar */
}
#content {
padding-top: 80px;
background-color:#f8f9fa;
background-color:#f8f9fa;
min-height: calc(80vh - 82px);
}
......@@ -114,11 +110,11 @@ body {
#footer {
padding-top: 1rem;
background-color: #fff;
background-color: #fff;
bottom: 5;
z-index:90;
position: absolute;
right:0;
left:0;
}
......@@ -128,7 +124,7 @@ body {
*/
#navbar-top {
background-color: #fff;
background-color: #fff;
}
.navbar-brand {
......@@ -141,7 +137,7 @@ body {
.navbar .form-control {
padding: .75rem 1rem;
border-width: 1;
border-radius: 1;
border-color:#e5e5e5;
......@@ -150,7 +146,7 @@ body {
/*
* forms
*/
*/
.form-control-light {
color: #999;
background-color: white;
......@@ -301,7 +297,8 @@ a:any-link {color:#343b86!important;}
input[type=search]
{
-webkit-appearance: textfield;
-webkit-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
input::-webkit-search-decoration,
......@@ -313,7 +310,7 @@ input::-webkit-search-cancel-button
input[type=search]
{
background: theme-color("light") url(../images/search.svg) no-repeat 9px center;
border: solid 1px theme-color("light");
border: solid 1px theme-color("primary");
padding: 9px 10px 9px 32px;
width: 55px;
......
......@@ -16,48 +16,52 @@
<link rel="icon" href="{% static 'images/logo-sm-primary.svg' %}">
{% block css %}
<!-- Your stuff: Third-party CSS libraries go here -->
{% compress css %}
<!-- This file stores project-specific CSS -->
<link href="{% static 'css/project.css' %}" rel="stylesheet">
{% endcompress %}
{% endblock %}
</head>
<body>
{# navbar top #}
{% include 'nav-top.html' %}
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<header>
{# main navigation #}
{% block nav %}
{% include 'nav-top.html' %}
{% endblock nav %}
{# end main navigation #}
</header>
{# main container #}
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags %}alert-{{ message.tags }}{% endif %}">{{ message }}<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button></div>
{% endfor %}
{% endif %}
<div class="container-fluid">
<div class="row">
{# sidebar nav #}
{% include 'nav-sidebar.html' %}
{% include 'nav-sidebar.html' %}
{# main content #}
<div id="content" class="col-md-9 ml-sm-auto col-lg-10 px-4">
{% block content %}
<h1> Welcome to Discuss Data!</h1>
<h1> Welcome to Discuss Data!</h1>
{% endblock content %}
</div>
<!-- </main> -->
</div>
{# footer #}
{% include 'footer.html' %}
{# Footer #}
{% include "footer.html" %}
{# end footer #}
</div>
<!-- Optional JavaScript -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
{% block modal %}
{% block modal %}
<div class="modal right fade" id="signIn" tabindex="-1" role="dialog" aria-labelledby="signInLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
......@@ -95,16 +99,15 @@
</div>
{% endblock modal %}
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
{% block javascript %}
<!-- Vendor dependencies bundled as one file-->
{% compress js %}
<script src="{% static 'js/vendors.js' %}"></script>
{% endcompress %}
<!-- place project specific Javascript in this file -->
{% compress js %}
......@@ -112,65 +115,5 @@
{% endcompress %}
{% endblock javascript %}
{% comment %}
<script src="./static/js/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery-slim.min.js"><\/script>')</script>
<script src="./static/js/popper.min.js"></script>
<script src="./static/js/bootstrap.min.js"></script>
{% endcomment %}
</body>
</html>
{% comment %}
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<header>
{# main navigation #}
{% block nav %}
{% include "nav.html" %}
{% endblock nav %}
{# end main navigation #}
</header>
<div class="container">
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags %}alert-{{ message.tags }}{% endif %}">{{ message }}<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button></div>
{% endfor %}
{% endif %}
{% block content %}
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht?</p>
<p>Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich je anstrengender körperlicher Betätigung, außer um Vorteile daraus zu ziehen? Aber wer hat irgend ein Recht, einen Menschen zu tadeln, der die Entscheidung trifft, eine Freude zu genießen, die keine unangenehmen Folgen hat, oder einen, der Schmerz vermeidet, welcher keine daraus resultierende Freude nach sich zieht? Auch gibt es niemanden, der den Schmerz an sich liebt, sucht oder wünscht, nur, weil er Schmerz ist, es sei denn, es kommt zu zufälligen Umständen, in denen Mühen und Schmerz ihm große Freude bereiten können. Um ein triviales Beispiel zu nehmen, wer von uns unterzieht sich</p>
{% endblock content %}
</div> <!-- /container -->
{# Footer #}
{% include "footer.html" %}
{# end footer #}
</body>
</html>
{% endcomment %}
{% load static i18n compress%}
<nav class="navbar fixed-top flex-md-nowrap p-0 border-bottom" id="navbar-top">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="#"><img src="{% static 'images/logo-primary.svg' %}" height="40" /></a>
<input class="w-25 form-control" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav mr-right px-3">
{% if request.user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href="#">{% trans "Sign Out" %}</a>
</li>
{% else %}
<li class="nav-item">
<a id="sign-up-link" class="nav-link" href="#">{% trans "Sign Up" %}</a>
</li>
<li class="nav-item" data-toggle="modal" data-target="#signIn">
<a id="log-in-link" class="nav-link" href="#">{% trans "Sign In" %}</a>
</li>
{% endif %}
</ul>
</nav>
\ No newline at end of file
<div class="mb-1">
<nav class="navbar fixed-top navbar-expand-sm navbar-light">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#"><img src="{% static 'images/logo-primary.svg' %}" height="40" /></a>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">{% trans "Home" %}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">{% trans "About" %}</a>
</li>
<li class="nav-item">
<form class="form-inline">
<input id="navsearch" type="search" placeholder="{% trans "Search" %}" aria-label="Search">
</form>
</li>
{% if request.user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href="{% url 'ddusers:edit' %}">{% trans "My Profile" %}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">{% trans "Sign Out" %}</a>
</li>
{% else %}
<li class="nav-item">
<a id="sign-up-link" class="nav-link" href="#">{% trans "Sign Up" %}</a>
</li>
<li class="nav-item" data-toggle="modal" data-target="#signIn">
<a id="log-in-link" class="nav-link" href="#">{% trans "Sign In" %}</a>
</li>
{% endif %}
</ul>
</div>
</nav><
</div>
{% load static i18n compress%}
<div class="mb-1">
<nav class="navbar navbar-expand-md navbar-dark bg-primary">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Discuss Data</a>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">{% trans "About" %}</a>
</li>
<li class="nav-item">
<form class="form-inline">
<input id="navsearch" type="search" placeholder="Search" aria-label="Search">
</form>
</li>
{% if request.user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href="{% url 'ddusers:edit' %}">{% trans "My Profile" %}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">{% trans "Sign Out" %}</a>
</li>
{% else %}
<li class="nav-item">
<a id="sign-up-link" class="nav-link" href="#">{% trans "Sign Up" %}</a>
</li>
<li class="nav-item" data-toggle="modal" data-target="#signIn">
<a id="log-in-link" class="nav-link" href="#">{% trans "Sign In" %}</a>
</li>
{% endif %}
</ul>
</div>
</nav>
</div>
......@@ -13,6 +13,7 @@ django-coverage-plugin==1.6.0 # https://github.com/nedbat/django_coverage_plugi
# Testing
# ------------------------------------------------------------------------------
django-nose==1.4.6 # https://github.com/jazzband/django-nose
django-template-check==0.3.1 # https://github.com/joostrijneveld/django-template-check
mypy==0.760 # https://github.com/python/mypy
pytest==5.3.2 # https://github.com/pytest-dev/pytest
pytest-django==3.7.0 # https://github.com/pytest-dev/pytest-django
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment