feat & chore: list logged in user in nav & linting

wip-payments
Aravinth Manivannan 2022-06-17 16:59:20 +05:30
parent 64b4437acd
commit 5a10b06e11
Signed by: realaravinth
GPG Key ID: AD9F0F08E855ED88
6 changed files with 23 additions and 12 deletions

View File

@ -33,6 +33,8 @@ help: ## Prints help for targets with comments
lint: ## Run linter
@./venv/bin/black ./dashboard/*
@./venv/bin/black ./accounts/*
@./venv/bin/black ./dash/*
@./venv/bin/black ./support/*
migrate: ## Run migrations
$(call run_migrations)

View File

@ -2,5 +2,5 @@ from django.apps import AppConfig
class DashConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'dash'
default_auto_field = "django.db.models.BigAutoField"
name = "dash"

View File

@ -1,7 +1,7 @@
<aside class="secondary-nav__container">
<nav class="secondary-nav">
<div class="secondary-nav__options">
<p class="secondary-nav__option-link">realaravinth</p>
<p class="secondary-nav__option-link">Hello, {{ username }}!</p>
</div>
<div class="secondary-nav__options">
<a href="/foo" class="secondary-nav__option-link">Instances</a>

View File

@ -19,6 +19,7 @@ from django.test import TestCase, Client, override_settings
from django.contrib.auth import authenticate
from django.conf import settings
class DashHome(TestCase):
"""
Tests create new app view
@ -42,10 +43,12 @@ class DashHome(TestCase):
resp = self.client.get(reverse("dash.home"))
self.assertEqual(resp.status_code, 302)
# default LOGIN redirect URI that is used by @login_required decorator is
# default LOGIN redirect URI that is used by @login_required decorator is
# /accounts/login. There's a redirection endpoint at /accounts/login/ that
# will redirect user to /login. Hence the /accounts prefix
redirect_login_uri = f"/accounts{reverse('accounts.login')}?next={reverse('dash.home')}"
redirect_login_uri = (
f"/accounts{reverse('accounts.login')}?next={reverse('dash.home')}"
)
self.assertEqual(resp.headers["location"], redirect_login_uri)
def test_dash_home_renders(self):
@ -64,7 +67,7 @@ class DashHome(TestCase):
self.assertEqual(resp.headers["location"], reverse("accounts.home"))
# email login works
resp = c.get(reverse('dash.home'))
resp = c.get(reverse("dash.home"))
self.assertEqual(resp.status_code, 200)
self.assertEqual(b"Billing" in resp.content, True)
self.assertEqual(b"Support" in resp.content, True)

View File

@ -15,9 +15,7 @@
from django.contrib import admin
from django.urls import path, include
from .views import (
home
)
from .views import home
urlpatterns = [
path("", home, name="dash.home"),

View File

@ -21,16 +21,24 @@ from django.http import HttpResponse
from django.views.decorators.csrf import csrf_protect
from django.urls import reverse
def default_ctx(title: str):
def default_ctx(title: str, username: str):
"""
Default context for all dashboard pages
"""
return {
"title": title,
"username": username,
}
@login_required
def home(request):
"""
Dashboard homepage view
"""
PAGE_TITLE = "Home"
ctx = default_ctx(title=PAGE_TITLE)
username = request.user
ctx = default_ctx(title=PAGE_TITLE, username=username.username)
return render(request, "dash/home/index.html", context=ctx)