Add some layouting and navving

This commit is contained in:
Maxime Bloch 2020-07-22 05:44:49 +02:00
parent 146f81b0fe
commit 688f303978
4 changed files with 171 additions and 52 deletions

View file

@ -27,7 +27,7 @@ def register_callback(req: HttpRequest):
code = req.GET['code']
csrftoken = req.COOKIES.get('csrftoken')
print(csrftoken)
response = requests.post(settings.OAUTH["AUTHORIZE_URI"],
response = requests.post(settings.OAUTH["ACCESS_TOKEN_URI"],
data={'code': code,
'grant_type': 'authorization_code',
'client_id': settings.OAUTH["CLIENT_ID"],
@ -51,7 +51,7 @@ def register_callback(req: HttpRequest):
redirect('/')
else:
print(response.request)
raise OAuthException(f'Status code not 200, response: {response}')
raise OAuthException(f'Status code not 200, response: {response}: {response.text}')
except OAuthException as e:
logger.error(e)

View file

@ -1,12 +1,128 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width"/>
<title>Zeus WPI Kelderregistratiesysteem™</title>
</head>
<body>
<h1>Zeus WPI Kelderregistratiesysteem™</h1>
{% block content %}{% endblock %}
</body>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width"/>
<title>{% block title %}Zeus WPI Kelderregistratiesysteem™{% endblock %}</title>
{% block styles %}{% endblock %}
<style>
nav {
width: 100vw;
background-color: #ff8000;
margin-bottom: 1em;
padding-top: 1rem;
padding-bottom: 1em;
}
body {
margin: 0;
}
nav ul {
margin: 0;
padding: 0;
/*this option by default dispose the elements in a row (flex-direction: row)*/
display: flex;
}
nav li {
list-style-type: none;
margin: 0 2vw;
/* our font-size will be 3% of the height of the viewport */
font-size: 3vh;
}
nav a {
text-decoration: none;
/*below I changed the color*/
color: black;
/*I added some padding*/
padding: 2vw;
/*also changed the font family but that's totally irrelevant*/
font-family: monospace;
}
nav a:hover {
background-color: rgba(255, 128, 0, 0.53);
}
/*change the layout of the navigation bar for all the screens
that have a width less or equal than 500px*/
@media only screen and (max-width: 750px) {
/*shows elements in a column*/
ul {
flex-direction: column;
}
/* deletes margin on top or bottom of the a tag*/
li {
margin: 0;
}
/* makes sure that the a tag will take the entire screen*/
a {
display: block;
}
button {
/*makes the button visible*/
display: block;
/*since we are here, we can style it a little bit!*/
padding: 2vw;
font-size: 3vh;
background-color: #AFE0FF;
border: none;
/*outline none removes the default blue border that appears anytime you click on the button*/
outline: none;
cursor: pointer;
/*this put the button on the left*/
align-self: flex-start;
}
}
button {
display: none;
}
</style>
</head>
<body>
<nav>
<ul>
<button id="nav-button">🞬</button>
<li>
<a href="{% url 'events:index' %}">
Home</a>
</li>
<li>
<a href="{% url 'users:profile' %}">
Profile
</a>
</li>
</ul>
</nav>
<h1>Zeus WPI Kelderregistratiesysteem™</h1>
{% block content %}{% endblock %}
</body>
<script>
document.addEventListener("DOMContentLoaded", function () {
let button = document.getElementById('nav-button')
button.addEventListener('click', () => {
if (button.innerText === "☰") {
button.innerText = "✖";
} else {
button.innerText = "☰";
}
})
});
</script>
</html>

View file

@ -1,42 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Profile</title>
</head>
<body>
<style>
.container {
margin: auto;
width: 50%;
padding: 10px;
}
{% extends "base.html" %}
input {
width: 100%;
}
{% block title %}KeRS - Profile{% endblock %}
{% block styles %}
<style>
.container {
margin: auto;
width: 50%;
padding: 10px;
}
input {
width: 100%;
}
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
}
</style>
{% endblock %}
{% block content %}
<div class="container">
<h1>Profile</h1>
{% if user.is_authenticated %}
<p>Username: {{ username }}</p>
<label>Student number</label>
<input type="text" value="{{ user.student_number }}"/>
<label>Real name</label>
<input type="text" value="{{ user.real_name }}">
<input type="submit" value="Save"/>
<a href="/user/logout">Logout</a>
{% else %}
<p>Not logged in</p>
<a href="/login/zeus/register">Login</a>
{% endif %}
</div>
{% endblock %}
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
}
</style>
<div class="container">
<h1>Profile</h1>
{% if user.is_authenticated %}
<p>Username: {{ username }}</p>
<label>Student number</label>
<input type="text" value="{{ user.student_number }}"/>
<label>Real name</label>
<input type="text" value="{{ user.real_name }}">
<input type="submit" value="Save"/>
<a href="/user/logout">Logout</a>
{% else %}
<p>Not logged in</p>
<a href="/login/zeus/register">Login</a>
{% endif %}
</div>
</body>
</html>

View file

@ -2,7 +2,9 @@ from django.urls import path
from . import views
app_name = "users"
urlpatterns = [
path('profile', views.profile),
path('profile', views.profile, name="profile"),
path('logout', views.logout_view)
]