feature/sending-email #15
6
.gitignore
vendored
6
.gitignore
vendored
@ -9,7 +9,8 @@ media
|
|||||||
# Backup files #
|
# Backup files #
|
||||||
*.bak
|
*.bak
|
||||||
|
|
||||||
# If you are using PyCharm #
|
# If you are using PyCharm #
|
||||||
|
.idea/
|
||||||
# User-specific stuff
|
# User-specific stuff
|
||||||
.idea/**/workspace.xml
|
.idea/**/workspace.xml
|
||||||
.idea/**/tasks.xml
|
.idea/**/tasks.xml
|
||||||
@ -103,7 +104,8 @@ env/
|
|||||||
venv/
|
venv/
|
||||||
ENV/
|
ENV/
|
||||||
env.bak/
|
env.bak/
|
||||||
venv.bak/
|
venv.bak/
|
||||||
|
soita-venv/
|
||||||
|
|
||||||
# mkdocs documentation
|
# mkdocs documentation
|
||||||
/site
|
/site
|
||||||
|
@ -68,7 +68,7 @@ ROOT_URLCONF = get_secret("ROOT_URLCONF")
|
|||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
{
|
{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'DIRS': os.path.join(BASE_DIR, "templates"),
|
'DIRS': [os.path.join(BASE_DIR, "templates")],
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
'OPTIONS': {
|
'OPTIONS': {
|
||||||
'context_processors': [
|
'context_processors': [
|
||||||
|
@ -16,8 +16,13 @@ Including another URLconf
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import include
|
from django.urls import include
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
from .views import index, login, logout, register
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
path('', index),
|
||||||
|
path('login/', login),
|
||||||
|
path('logout/', logout),
|
||||||
|
path('register/', register),
|
||||||
path('users/', include("users.urls")),
|
path('users/', include("users.urls")),
|
||||||
path('questions/', include("questions.urls")),
|
path('questions/', include("questions.urls")),
|
||||||
path('answers/', include("answers.urls")),
|
path('answers/', include("answers.urls")),
|
||||||
|
27
config/views.py
Normal file
27
config/views.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
from django.shortcuts import render, redirect
|
||||||
|
from django.template import loader
|
||||||
|
|
||||||
|
|
||||||
|
def index(request):
|
||||||
|
# context = {
|
||||||
|
# 'latest_question_list': latest_question_list,
|
||||||
|
# }
|
||||||
|
return render(request, 'index.html')
|
||||||
|
|
||||||
|
def login(request):
|
||||||
|
# context = {
|
||||||
|
# 'latest_question_list': latest_question_list,
|
||||||
|
# }
|
||||||
|
return render(request, 'login.html')
|
||||||
|
|
||||||
|
def logout(request):
|
||||||
|
# context = {
|
||||||
|
# 'latest_question_list': latest_question_list,
|
||||||
|
# }
|
||||||
|
return render(request, 'logout.html')
|
||||||
|
|
||||||
|
def register(request):
|
||||||
|
# context = {
|
||||||
|
# 'latest_question_list': latest_question_list,
|
||||||
|
# }
|
||||||
|
return render(request, 'register.html')
|
6
palette.txt
Normal file
6
palette.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Color palette:
|
||||||
|
#00916E - Illuminating Emerald
|
||||||
|
#FEEFE5 - Linen
|
||||||
|
#FFCF00 - Cyber Yellow
|
||||||
|
#EE6123 - Orange Panteon
|
||||||
|
#FA003F - Red Munsell
|
109
static/style.css
Normal file
109
static/style.css
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
.sidenav {
|
||||||
|
height: 100%;
|
||||||
|
width: 160px;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 1;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: #FA003F;
|
||||||
|
overflow-x: :hidden;
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidenav a {
|
||||||
|
padding: 6px 8px 6px 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 20px;
|
||||||
|
color: #FEEFE5;
|
||||||
|
display: block;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidenav a:hover {
|
||||||
|
color: #00916E;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
margin-left: 160px;
|
||||||
|
padding: 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.authContent {
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
position: absolute;
|
||||||
|
width: 400px;
|
||||||
|
height: 550px;
|
||||||
|
padding: 80px 40px;
|
||||||
|
background-color: #FEEFE5;
|
||||||
|
-webkit-transform: translate(-50%,-50%);
|
||||||
|
-moz-transform: translate(-50%,-50%);
|
||||||
|
-ms-transform: translate(-50%,-50%);
|
||||||
|
-o-transform: translate(-50%,-50%);
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
color: #2B3D41;
|
||||||
|
}
|
||||||
|
|
||||||
|
.authContent h2 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 0 20px;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.authContent p {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.authContent input {
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.authContent input[type=text],
|
||||||
|
.authContent input[type=email],
|
||||||
|
.authContent input[type=password]{
|
||||||
|
border: none;
|
||||||
|
border-bottom: 1px solid #2B3D41;;
|
||||||
|
background: transparent;
|
||||||
|
outline: none;
|
||||||
|
height: 35px;
|
||||||
|
color: #2B3D41;;
|
||||||
|
}
|
||||||
|
|
||||||
|
.authContent input[type=submit]{
|
||||||
|
height: 30px;
|
||||||
|
color: #FFF;
|
||||||
|
font-size: 15px;
|
||||||
|
background: #00916E;
|
||||||
|
cursor: pointer;
|
||||||
|
border-radius: 25px;
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=checkbox]{
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titleBar {
|
||||||
|
height: 50px;
|
||||||
|
width: 100%;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 1;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: #2B3D41;
|
||||||
|
padding-top: 20px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 30px;
|
||||||
|
color: #FEEFE5;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color:#FA003F
|
22
templates/authBase.html
Normal file
22
templates/authBase.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
{% load static %}
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}">
|
||||||
|
<title>SOITA | {% block title %}{% endblock %}</title>
|
||||||
|
<meta name="description" content="{% block description %}{% endblock %}">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="background-color: #FA003F">
|
||||||
|
<div class="titleBar">
|
||||||
|
SOITA
|
||||||
|
</div>
|
||||||
|
<div class="authContent">
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
66
templates/base.html
Normal file
66
templates/base.html
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
{% load static %}
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}">
|
||||||
|
<!-- <style type="text/css">-->
|
||||||
|
<!-- .sidenav {-->
|
||||||
|
<!-- height: 100%;-->
|
||||||
|
<!-- width: 160px;-->
|
||||||
|
<!-- position: fixed;-->
|
||||||
|
<!-- z-index: 1;-->
|
||||||
|
<!-- top: 0;-->
|
||||||
|
<!-- left: 0;-->
|
||||||
|
<!-- background-color: #111;-->
|
||||||
|
<!-- overflow-x: :hidden;-->
|
||||||
|
<!-- padding-top: 20px;-->
|
||||||
|
<!-- }-->
|
||||||
|
|
||||||
|
<!-- .sidenav a {-->
|
||||||
|
<!-- padding: 6px 8px 6px 16px;-->
|
||||||
|
<!-- text-decoration: none;-->
|
||||||
|
<!-- font-size: 20px;-->
|
||||||
|
<!-- color: #818181;-->
|
||||||
|
<!-- display: block;-->
|
||||||
|
<!-- line-height: 1.6;-->
|
||||||
|
<!-- }-->
|
||||||
|
|
||||||
|
<!-- .sidenav a:hover {-->
|
||||||
|
<!-- color: #f1f1f1;-->
|
||||||
|
<!-- }-->
|
||||||
|
|
||||||
|
<!-- .main {-->
|
||||||
|
<!-- margin-left: 160px;-->
|
||||||
|
<!-- padding: 0px 10px;-->
|
||||||
|
<!-- }-->
|
||||||
|
|
||||||
|
<!-- </style>-->
|
||||||
|
<title>SOITA | {% block title %}{% endblock %}</title>
|
||||||
|
<meta name="description" content="{% block description %}{% endblock %}">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="sidenav">
|
||||||
|
<a href="/">Home</a>
|
||||||
|
<a href="/about">About</a>
|
||||||
|
<a href="/tests/category/1">Category1</a>
|
||||||
|
<a href="/tests/category/2">Category2</a>
|
||||||
|
<a href="/tests/category/3">Category3</a>
|
||||||
|
<a href="/tests/category/4">Category4</a>
|
||||||
|
<a href="/tests/category/5">Category5</a>
|
||||||
|
<a href="/tests/category/6">Category6</a>
|
||||||
|
<a href="/tests/category/7">Category7</a>
|
||||||
|
<a href="/tests/category/8">Category8</a>
|
||||||
|
<a href="/tests/category/9">Category9</a>
|
||||||
|
<a href="/tests/category/10">Category10</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content", name="content", class="main">
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
22
templates/index.html
Normal file
22
templates/index.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}Home{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Welcome in SOITA/h1>
|
||||||
|
<!-- TODO reading all tests from DB-->
|
||||||
|
{% for test in tests.all %}
|
||||||
|
<div class="test-infoBox">
|
||||||
|
<p><a href="/tests/{{test.id}}/show/">{{test.name}}</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
<!-- {% if user.is_authenticated %}-->
|
||||||
|
<!-- <p>Username: {{user.username}}</p>-->
|
||||||
|
<!-- <p>Name: {{user.first_name}} {{user.last_name}}</p>-->
|
||||||
|
<!-- <p>Email: {{user.email}}</p>-->
|
||||||
|
<!-- {% else %}-->
|
||||||
|
<!-- Guest nr 123-->
|
||||||
|
<!-- {% endif %}-->
|
||||||
|
{% endblock %}
|
||||||
|
|
16
templates/login.html
Normal file
16
templates/login.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{% extends "authBase.html" %}
|
||||||
|
|
||||||
|
{% block title %}Log In{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h2>Log In</h2>
|
||||||
|
<form action="">
|
||||||
|
<p>Email</p>
|
||||||
|
<input type="email" placeholder="Enter Email">
|
||||||
|
<p>Password</p>
|
||||||
|
<input type="password" placeholder="Enter Password">
|
||||||
|
<input type="submit" value="Log in">
|
||||||
|
<p><input type="checkbox">Remember Me</p>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
|
|
8
templates/logout.html
Normal file
8
templates/logout.html
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{% extends "authBase.html" %}
|
||||||
|
|
||||||
|
{% block title %}Log Out{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<p>You have been logged out successfully</p>
|
||||||
|
{% endblock %}
|
||||||
|
|
22
templates/register.html
Normal file
22
templates/register.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{% extends "authBase.html" %}
|
||||||
|
|
||||||
|
{% block title %}Create account{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h2>Register</h2>
|
||||||
|
<form action="">
|
||||||
|
<p>First Name</p>
|
||||||
|
<input type="text" placeholder="Enter First Name">
|
||||||
|
<p>Last Name</p>
|
||||||
|
<input type="text" placeholder="Enter Last Name">
|
||||||
|
<p>Email</p>
|
||||||
|
<input type="email" placeholder="Enter Email">
|
||||||
|
<p>Password</p>
|
||||||
|
<input type="password" placeholder="Enter Password">
|
||||||
|
<p>Repeat password</p>
|
||||||
|
<input type="password" placeholder="Enter Password">
|
||||||
|
<input type="submit" value="Crete account">
|
||||||
|
<p><input type="checkbox">Remember Me</p>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user