add sidebar nav, fixes

This commit is contained in:
2021-12-22 19:31:46 -06:00
parent b9dc626e28
commit e445768b95
10 changed files with 73 additions and 44 deletions

View File

@@ -14,6 +14,7 @@ Events
<ul class="list-group"> <ul class="list-group">
{% for event in events %} {% for event in events %}
<li class="list-group-item"> <li class="list-group-item">
<h6>{{ event.away_team|default_if_none:"" }} vs. {{ event.home_team|default_if_none:"" }}</h6>
{{ event.start.date }}<br>{{ event.start.time }}<br> {{ event.start.date }}<br>{{ event.start.time }}<br>
<a href="{% url 'edit lineup' event_id=event.id %}">Edit Lineup...</a> <a href="{% url 'edit lineup' event_id=event.id %}">Edit Lineup...</a>
</li> </li>

View File

@@ -12,7 +12,7 @@
{% block content %} {% block content %}
<ul class="list-group"> <ul class="list-group">
{% for object in object_list %} {% for object in object_list|dictsort:"name.lower" %}
<li class="list-group-item">{{ object }}</li> <li class="list-group-item">{{ object }}</li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

@@ -4,9 +4,9 @@ from . import views
urlpatterns = [ urlpatterns = [
path('lineup/edit/<int:event_id>', views.lineup_edit, name="edit lineup"), path('lineup/edit/<int:event_id>', views.lineup_edit, name="edit lineup"),
path('events/list', views.EventListView.as_view(), name="event list"), path('events/list/', views.EventListView.as_view(), name="event list"),
path('events/<int:pk>/detail', views.EventDetailView.as_view(), name="event detail"), path('events/<int:pk>/detail', views.EventDetailView.as_view(), name="event detail"),
path('players/list', views.PlayerListView.as_view(), name="player list"), path('players/list/', views.PlayerListView.as_view(), name="player list"),
path('teams/list', views.TeamListView.as_view(), name="team list"), path('teams/list/', views.TeamListView.as_view(), name="team list"),
path('venues/list', views.VenueListView.as_view(), name="venue list") path('venues/list/', views.VenueListView.as_view(), name="venue list")
] ]

View File

@@ -133,4 +133,4 @@ MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
LOGIN_URL = "/login" LOGIN_URL = "/login"
LOGIN_REDIRECT_URL = "" LOGIN_REDIRECT_URL = "/"

View File

@@ -18,12 +18,13 @@ from django.urls import path, include
from django.conf.urls.static import static from django.conf.urls.static import static
from django.conf import settings from django.conf import settings
from .views import welcome, login from .views import welcome, login_view
urlpatterns = [ urlpatterns = [
path("", welcome, name="home"), path("", welcome, name="home"),
path("", include("benchcoach.urls")), path("", include("benchcoach.urls")),
path("admin/", admin.site.urls), path("admin/", admin.site.urls),
path("teamsnap/", include("teamsnap.urls")), path("teamsnap/", include("teamsnap.urls")),
path("login", login, name="login"), path("login", login_view, name="login_view"),
path("welcome", welcome, name="welcome")
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@@ -5,11 +5,11 @@ from django.contrib.auth.decorators import login_required
@login_required() @login_required()
def welcome(request): def welcome(request):
pages = ['event list', 'team list', 'venue list', 'player list', 'teamsnap home', 'login'] pages = ['event list', 'team list', 'venue list', 'player list', 'teamsnap home', 'login_view']
return render(request,'home.html',{'pages':pages}) return render(request,'home.html',{'pages':pages})
def login(request): def login_view(request):
if request.method == 'POST': if request.method == 'POST':
username = request.POST.get('username') username = request.POST.get('username')
password = request.POST.get('password') password = request.POST.get('password')
@@ -17,11 +17,10 @@ def login(request):
try: try:
user = authenticate(request, username=username, password=password) user = authenticate(request, username=username, password=password)
if user is not None: if user is not None:
print('Login') login(request, user)
login(request,user)
return redirect(reverse('home')) return redirect(reverse('home'))
else: else:
print("Someone tried to login and failed.") print("Someone tried to login_view and failed.")
print("They used username: {} and password: {}".format(username, password)) print("They used username: {} and password: {}".format(username, password))
return redirect('/') return redirect('/')

View File

@@ -9,23 +9,25 @@
<body class="bg-light"> <body class="bg-light">
<header class="min-vw-100">
<div> <div>
{% block navbar %} {% block navbar %}
{% include 'navbar.html' %} {% include 'navbar.html' %}
{% endblock %}
</div>
<div>
{% block header %}
{% endblock %}
</div>
<div class="row flex-row flex-nowrap">
<div class="col-auto">
{% block sidebar %}
{% endblock %} {% endblock %}
</div> </div>
<div class="container my-2 col-sm min-vh-100"> <div>
{% block header %}
{% endblock %}
</div>
</header>
<div class="d-inline-flex min-vw-100">
<div class="">
{% block sidebar %}
{% include 'sidebar.html' %}
{% endblock %}
</div>
<div class="container m-2">
<h1>{% block page_heading %}{% endblock %}</h1> <h1>{% block page_heading %}{% endblock %}</h1>
{% block content %}{% endblock %} {% block content %}{% endblock %}
</div> </div>

View File

@@ -1,25 +1,11 @@
{% extends "base.html" %}{% load static %} {% extends "base.html" %}{% load static %}
{% block title %}Bench Coach Home{% endblock %} {% block title %}Bench Coach Home{% endblock %}
{% block sidebar %}
<div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark min-vh-100 " style="width: 200px;">
<ul class="nav nav-pills flex-column mb-auto">
{% for page in pages %}
<li class="nav-item">
<a class="nav-link text-white" style="text-transform:capitalize;" href="{% url page %}"
aria-current="page">{{ page }} </a>
</li>
{% endfor %}
</ul>
</div>
{% endblock %}
{% block content %} {% block content %}
<div class="text-center my-2"> <div class="text-center my-2">
<h1><img class="mx-auto" src="{% static 'benchcoach.svg' %}" style="width: 64px;" /><strong>Welcome to Bench Coach</strong></h1> <h1><img class="mx-auto" src="{% static 'benchcoach.svg' %}" style="width: 64px;" /><strong>Welcome to Bench Coach</strong></h1>
<div class="col-lg-6 m-auto"> <div class="col-lg-6 m-auto">
<p class="lead mb-4 d-none">Quisque at curabitur mollis ornare, malesuada maecenas. Orci elit tristique, malesuada eu pharetra. Est praesent tortor porttitor aptent, amet quisque.</p> <p class="lead mb-4">Quisque at curabitur mollis ornare, malesuada maecenas. Orci elit tristique, malesuada eu pharetra. Est praesent tortor porttitor aptent, amet quisque.</p>
{# <div class="d-grid gap-2 d-sm-flex justify-content-sm-center mx-1">#} {# <div class="d-grid gap-2 d-sm-flex justify-content-sm-center mx-1">#}
{# <button class="btn btn-primary" type="button">Login</button><button class="btn btn-outline-secondary" type="button">Sign Up</button>#} {# <button class="btn btn-primary" type="button">Login</button><button class="btn btn-outline-secondary" type="button">Sign Up</button>#}
{# </div>#} {# </div>#}

View File

@@ -2,10 +2,11 @@
{% block title %}Bench Coach Home{% endblock %} {% block title %}Bench Coach Home{% endblock %}
{% block sidebar %}{% endblock %}
{% block content %} {% block content %}
<div class="text-center d-flex flex-column justify-content-center align-items-center mb-4"> <div class="text-center d-flex flex-column justify-content-center align-items-center mb-4">
<form style="width: 100%; max-width: 330px; padding: 15px; margin: 0 auto;" <form style="width: 100%; max-width: 330px; padding: 15px; margin: 0 auto;"
method="post" action="{% url "login" %}"> method="post" action="{% url "login_view" %}">
{% csrf_token %} {% csrf_token %}
<img class="mb-4" src="{% static "benchcoach.svg" %}" width="72" height="72"/> <img class="mb-4" src="{% static "benchcoach.svg" %}" width="72" height="72"/>

39
templates/sidebar.html Normal file
View File

@@ -0,0 +1,39 @@
<div class="bg-dark min-vh-100" >
<ul class="nav nav-pills flex-column mb-auto">
<li class="nav-item">
<a class="nav-link {{ events_tab }} text-white" href="{% url 'event list' %}">
<div class="d-inline-block">
<i class="bi bi-calendar3"></i>
<span class="d-none d-print-inline-block d-sm-inline-block d-md-inline-block d-lg-inline-block d-xl-inline-block d-xxl-inline-block mx-1 my-auto text-white">
Events
</span>
</div>
</a>
</li>
<li class="nav-item">
<a class="nav-link {{ members_tab }} text-white" href="{% url 'player list' %}">
<i class="bi bi-person-fill"></i>
<span class="d-none d-print-inline-block d-sm-inline-block d-md-inline-block d-lg-inline-block d-xl-inline-block d-xxl-inline-block mx-1 my-auto text-white">
Players
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link {{ opponents_tab }} text-white" href="{% url 'team list' %}">
<i class="bi bi-people-fill"></i>
<span class="d-none d-print-inline-block d-sm-inline-block d-md-inline-block d-lg-inline-block d-xl-inline-block d-xxl-inline-block mx-1 my-auto text-white">
Teams
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link {{ venues_tab }} text-white" href="{% url 'venue list' %}">
<i class="bi bi-geo"></i>
<span class="d-none d-print-inline-block d-sm-inline-block d-md-inline-block d-lg-inline-block d-xl-inline-block d-xxl-inline-block mx-1 my-auto text-white">
Venues
</span>
</a>
</li>
</ul>
</div>