Skip to content

Commit

Permalink
Adding user picture and username to navbar.
Browse files Browse the repository at this point in the history
When the user is logged into Hotails, they'll see their profile picture,
and their username in every page on Hotails on the navbar.

Signed-off-by: Ofir Matasas <[email protected]>
Signed-off-by: tamirmatok <[email protected]>
  • Loading branch information
tamirmatok authored and OfirMatasas committed Apr 21, 2022
1 parent b0145b1 commit d55e838
Show file tree
Hide file tree
Showing 8 changed files with 121 additions and 36,760 deletions.
1 change: 1 addition & 0 deletions Hotails/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'main.context_processors.navbar_extras'
],
},
},
Expand Down
21 changes: 21 additions & 0 deletions main/context_processors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from daycare.models import DayCare, Image
from dogowner.models import DogOwner


def navbar_extras(request):
navbar_picture_url = navbar_name = None
if request.user.is_authenticated:
if DogOwner.objects.filter(user=request.user).exists():
dog_owner = DogOwner.objects.filter(user=request.user).first()
navbar_picture_url = dog_owner.dog_picture_url
navbar_name = dog_owner.first_name + ' ' + dog_owner.last_name

elif DayCare.objects.filter(user=request.user).exists():
daycare = DayCare.objects.filter(user=request.user).first()
navbar_picture_url = Image.objects.filter(daycare_id=daycare).first().url
navbar_name = daycare.name
context = {
'navbar_picture_url': navbar_picture_url,
'navbar_name': navbar_name,
}
return context
43 changes: 25 additions & 18 deletions main/templates/main/base_template.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,43 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'css/sidebar.css' %}">
{% block stylesheets %}
{% endblock %}
</head>
<header>
<nav class="navbar navbar-expand-lg navbar-light bg-dark">
<nav class="navbar navbar-expand-lg navbar-light bg-dark" style="padding: 0 10px 0 10px;">
<a class="navbar-brand" href="..\">
<img src="..\..\..\static\images\Hotails-logo-smaller.png" style="width:50px; height:50px;" class="d-inline-block align-top" loading="lazy"></a>
<button class="navbar-toggler" type="button" data-target="#navbarText"
aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
</button>
<ul class="navbar-nav mr-auto">
{% if request.user.is_authenticated %}
<li class="nav-item"><a class="nav-link text-white" href="">Profile</a></li>
<li class="nav-item"><a class="nav-link text-white" href="">Orders</a></li>
<li class="nav-item"><a class="nav-link text-white" href="">Search</a></li>
<li class="nav-item"><a class="nav-link text-white" href="">Chats</a></li>
{% endif %}
<li class="nav-item"><a class="nav-link text-white" href="/about">About</a></li>
</ul>
<img src="{% static 'images/Hotails-logo-smaller.png' %}" style="width:50px; height:50px;" class="d-inline-block align-top" loading="lazy">
</a>
<button class="navbar-toggler" type="button" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation"></button>
<ul class="navbar-nav mr-auto">
{% if request.user.is_authenticated %}
<li class="nav-item"><a class="nav-link text-white" href="">Profile</a></li>
<li class="nav-item"><a class="nav-link text-white" href="">Orders</a></li>
<li class="nav-item"><a class="nav-link text-white" href="">Search</a></li>
<li class="nav-item"><a class="nav-link text-white" href="">Chats</a></li>
{% endif %}
<li class="nav-item"><a class="nav-link text-white" href="/about">About</a></li>
</ul>
{% if request.user.is_authenticated %}
<ul class="nav navbar-nav navbar-right">
<li class="nav-item"><a class="nav-link text-white" style="font-size:1.3rem" href="/logout">Logout</a></li>
<li class="nav-item"><img src="{{ navbar_picture_url }}" alt="{{ name }} image" class="card-img-top sidebar-profile-img"></li>
<li class="nav-item">
<span id="welcomeMsg">Welcome, {{ navbar_name }}!</span><a class="nav-link" id="logoutHref" href="/logout">Logout</a>
</li>
</ul>
{% endif %}
</nav>
</header>

<body>
{% block content %}
{% endblock %}
<div class="row">
<div class="col-12 col-lg-12">
{% block content %}
{% endblock %}
</div>
</div>

</body>

</html>
12 changes: 12 additions & 0 deletions main/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views

urlpatterns = [

path('', views.index, name='index'),
path('homepage/', views.homepage, name='homepage'),
path('login/', auth_views.LoginView.as_view(template_name='main/login.html',
redirect_authenticated_user=True), name='login'),
path('logout/', views.logout_view, name='logout')
]
21 changes: 20 additions & 1 deletion main/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect
from django.contrib.auth import logout
from daycare.models import DayCare, Image
from dogowner.models import DogOwner


def index(request):
Expand All @@ -13,7 +15,24 @@ def index(request):

@login_required()
def homepage(request):
return render(request, 'main/homepage.html')
if DogOwner.objects.filter(user=request.user).exists():
dog_owner = DogOwner.objects.filter(user=request.user).first()
profile_picture_url = dog_owner.dog_picture_url
username = dog_owner.first_name + dog_owner.last_name
dog_name = dog_owner.dog_name
else:
daycare = DayCare.objects.filter(user=request.user).first()
profile_picture_url = Image.objects.filter(daycare_id=daycare).first()
username = daycare.name
dog_name = None

context = {
'profile_picture_url': profile_picture_url,
'username': username,
'dog_name': dog_name,
}

return render(request, 'main/homepage.html', context)


def about(request):
Expand Down
Loading

0 comments on commit d55e838

Please sign in to comment.