diff --git a/book_management_system/book_management_system/__pycache__/settings.cpython-37.pyc b/book_management_system/book_management_system/__pycache__/settings.cpython-37.pyc index 662ee4486089b70c143fa0b63001880a16d35c3a..fab532f91650a126bfbde337e67540e8ce00d01e 100644 Binary files a/book_management_system/book_management_system/__pycache__/settings.cpython-37.pyc and b/book_management_system/book_management_system/__pycache__/settings.cpython-37.pyc differ diff --git a/book_management_system/book_management_system/__pycache__/urls.cpython-37.pyc b/book_management_system/book_management_system/__pycache__/urls.cpython-37.pyc index 0c0140a63a137f7cc4da8817579bf4920a91edf6..bc3b5b7c988dcd284a652780dd0463e9a1bb0f9d 100644 Binary files a/book_management_system/book_management_system/__pycache__/urls.cpython-37.pyc and b/book_management_system/book_management_system/__pycache__/urls.cpython-37.pyc differ diff --git a/book_management_system/book_management_system/settings.py b/book_management_system/book_management_system/settings.py index 0ffd96f35aa23c789fcd6ec2698847d5718be405..e2ea7496ce1c36117436cb2a06955f1a422a22b5 100644 --- a/book_management_system/book_management_system/settings.py +++ b/book_management_system/book_management_system/settings.py @@ -59,7 +59,7 @@ ROOT_URLCONF = 'book_management_system.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [str(BASE_DIR.joinpath('templates'))], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -136,4 +136,5 @@ STATICFILES_DIRS = [ MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') -LOGIN_URL = '/students/login/' +LOGIN_URL = '/accounts/login/' +LOGIN_REDIRECT_URL = '/online_books/home/' diff --git a/book_management_system/book_management_system/urls.py b/book_management_system/book_management_system/urls.py index 395ae94102ca3b1257743bd33fb178e8155e78d5..ec71ed498beb7bc6d2f4504f36c45a62b0f5ce74 100644 --- a/book_management_system/book_management_system/urls.py +++ b/book_management_system/book_management_system/urls.py @@ -1,10 +1,11 @@ from django.contrib import admin from django.urls import path, include - from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), - path('booksite/', include('online_books.urls')), + path('accounts/', include('django.contrib.auth.urls')), + path('online_books/', include('online_books.urls')), + ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \ No newline at end of file diff --git a/book_management_system/online_books/__pycache__/admin.cpython-37.pyc b/book_management_system/online_books/__pycache__/admin.cpython-37.pyc index ae10ba842444f46afb462fc495929bb5b03d5678..9364009e1fd478f40be468611e5b493666c9681b 100644 Binary files a/book_management_system/online_books/__pycache__/admin.cpython-37.pyc and b/book_management_system/online_books/__pycache__/admin.cpython-37.pyc differ diff --git a/book_management_system/online_books/__pycache__/models.cpython-37.pyc b/book_management_system/online_books/__pycache__/models.cpython-37.pyc index 26cd69ec8d9af4a74d2066d8c1a03e5f96d335ba..55e2a36067a808a1dd5f04e17400a8fd38131821 100644 Binary files a/book_management_system/online_books/__pycache__/models.cpython-37.pyc and b/book_management_system/online_books/__pycache__/models.cpython-37.pyc differ diff --git a/book_management_system/online_books/__pycache__/urls.cpython-37.pyc b/book_management_system/online_books/__pycache__/urls.cpython-37.pyc index dccb07261df0c2d5f5e24498f8261605c8ff1217..027d3c32fe4fb5233690c3303148534198402e13 100644 Binary files a/book_management_system/online_books/__pycache__/urls.cpython-37.pyc and b/book_management_system/online_books/__pycache__/urls.cpython-37.pyc differ diff --git a/book_management_system/online_books/__pycache__/views.cpython-37.pyc b/book_management_system/online_books/__pycache__/views.cpython-37.pyc index cd80d6b27653833534a94e64c70188c438357f7a..4690e496c1e33ad248ebc21beb4ada0c1848f0f6 100644 Binary files a/book_management_system/online_books/__pycache__/views.cpython-37.pyc and b/book_management_system/online_books/__pycache__/views.cpython-37.pyc differ diff --git a/book_management_system/online_books/migrations/0001_initial.py b/book_management_system/online_books/migrations/0001_initial.py index 6809e52e8cb73eef52133df8aacf90d082056e67..248028d191905b87a71f4d9ebc0e957cd16b66f1 100644 --- a/book_management_system/online_books/migrations/0001_initial.py +++ b/book_management_system/online_books/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.1.4 on 2020-12-26 10:52 +# Generated by Django 3.1.4 on 2020-12-27 12:45 from django.db import migrations, models import django.db.models.deletion @@ -31,9 +31,9 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('book_title', models.CharField(max_length=100)), - ('description', models.TextField(max_length=400)), - ('price', models.FloatField(help_text='In rupees (₹)')), - ('author_fk', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_books.author')), + ('description', models.TextField(blank=True, max_length=400, null=True)), + ('price', models.FloatField(blank=True, help_text='In rupees (₹)', null=True)), + ('author_fk', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='online_books.author')), ('genres', models.ManyToManyField(to='online_books.Genre')), ], ), diff --git a/book_management_system/online_books/migrations/__pycache__/0001_initial.cpython-37.pyc b/book_management_system/online_books/migrations/__pycache__/0001_initial.cpython-37.pyc index 0fc2c313289b269c2adeaccac748f0ded103af77..9df28ae8fe2f3b067784e7bf6882e75cae80aa3d 100644 Binary files a/book_management_system/online_books/migrations/__pycache__/0001_initial.cpython-37.pyc and b/book_management_system/online_books/migrations/__pycache__/0001_initial.cpython-37.pyc differ diff --git a/book_management_system/online_books/migrations/__pycache__/0002_auto_20201227_1807.cpython-37.pyc b/book_management_system/online_books/migrations/__pycache__/0002_auto_20201227_1807.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ffdc31341748e86c510ce76f4d1bd8e2e101dacc Binary files /dev/null and b/book_management_system/online_books/migrations/__pycache__/0002_auto_20201227_1807.cpython-37.pyc differ diff --git a/book_management_system/online_books/migrations/__pycache__/0003_auto_20201227_1808.cpython-37.pyc b/book_management_system/online_books/migrations/__pycache__/0003_auto_20201227_1808.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c615b185fbdfca37fbcc8252f66afad252bb2d62 Binary files /dev/null and b/book_management_system/online_books/migrations/__pycache__/0003_auto_20201227_1808.cpython-37.pyc differ diff --git a/book_management_system/online_books/models.py b/book_management_system/online_books/models.py index b47982d35a29373a3825c789a063c1eacabd6ad4..8781d0e41b1f5e9f4ee9e5bfc80039e9560a5c0b 100644 --- a/book_management_system/online_books/models.py +++ b/book_management_system/online_books/models.py @@ -14,10 +14,11 @@ class Author(models.Model): class Book(models.Model): book_title = models.CharField(max_length=100) - author_fk = models.ForeignKey('Author', on_delete=models.CASCADE) + author_fk = models.ForeignKey('Author', on_delete=models.CASCADE, null=True, blank=True) genres = models.ManyToManyField('Genre') description = models.TextField(max_length=400, null=True, blank=True) - price = models.FloatField(help_text="In rupees (₹)") + price = models.FloatField(help_text="In rupees (₹)", null=True, blank=True) def __str__(self): return self.book_title + diff --git a/book_management_system/online_books/static/online_books/base.css b/book_management_system/online_books/static/online_books/base.css deleted file mode 100644 index 79f8668154d5775dd4b47d755f9958f48ce7dace..0000000000000000000000000000000000000000 --- a/book_management_system/online_books/static/online_books/base.css +++ /dev/null @@ -1,24 +0,0 @@ -/* body, html { - height: 100%; - background-repeat: no-repeat; - background-repeat: repeat; - background-image: linear-gradient(rgb(104, 145, 162), rgb(12, 97, 33)); - background-attachment: fixed; -} */ - -#MyNav{ - margin-bottom: 10px; - } - #univLogo{ - color: darkorange; - } - - body, html { - height: 100%; - background-repeat: no-repeat; - background-attachment: fixed; - /* background-color: #85FFBD; - background-image: linear-gradient(45deg, #85FFBD 0%, #FFFB7D 100%); */ - /* background-image: radial-gradient( circle farthest-corner at 10% 20%, rgba(153,103,186,1) 41.2%, rgba(0,113,227,1) 90% ); */ - background-image: radial-gradient( circle farthest-corner at 10% 20%, rgba(147,230,241,1) 0%, rgba(145,192,241,1) 45.5% ); - } \ No newline at end of file diff --git a/book_management_system/online_books/templates/online_books/base.html b/book_management_system/online_books/templates/online_books/base.html deleted file mode 100644 index 07b3a7aa001d9a5b63b0da3bcbb72102cc7754df..0000000000000000000000000000000000000000 --- a/book_management_system/online_books/templates/online_books/base.html +++ /dev/null @@ -1,63 +0,0 @@ -{% load static %} - -<!DOCTYPE html> -<html> - <head> - <title>{% block title %}Default Title{% endblock %}</title> - - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> - <meta http-equiv="x-ua-compatible" content="ie=edge"> - - <!-- Bootstrap CSS --> - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-social/5.1.1/bootstrap-social.min.css" integrity="sha512-f8mUMCRNrJxPBDzPJx3n+Y5TC5xp6SmStstEfgsDXZJTcxBakoB5hvPLhAfJKa9rCvH+n3xpJ2vQByxLk4WP2g==" crossorigin="anonymous" /> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" integrity="sha512-+4zCK9k+qNFUR5X+cKL9EIR+ZOhtIloNl9GIKS57V1MyNsYpYcUrUeQc9vNfzsWfV28IaLL3i96P9sdNyeRssA==" crossorigin="anonymous"> - <link rel="stylesheet" href="{% static 'online_books/css/base.css' %}"> - - - {% block head %}{% endblock %} - - - </head> - <body> - - {% block nav %} - <nav class="navbar navbar-expand-lg navbar-extend-sm navbar-dark bg-dark" id="MyNav"> - <div class="container"> - <a class="navbar-brand" id="univLogo" href="{% url 'stud_app:home' username %}"><span class="fas fa-university"> Online Exam System</a> - <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#Navbar"> - <span class="navbar-toggler-icon"></span> - </button> - <div class="collapse navbar-collapse" id='Navbar'> - <div class="navbar-nav"> - <a class="nav-item nav-link {% if current_page == 'home' %}active{% endif %}" href="{% url 'stud_app:home' username %}"><span class="fas fa-user-graduate"></span> My Details</a> - <a class="nav-item nav-link {% if current_page == 'courses' %}active{% endif %}" href="{% url 'stud_app:courses' username %}"><span class="fas fa-book-open"></span> Courses</a> - <a class="nav-item nav-link {% if current_page == 'exams' %}active{% endif %}" href="{% url 'stud_app:exams' username %}"><span class="fas fa-edit"></span> Exams</a> - <a class="nav-item nav-link {% if current_page == 'scores' %}active{% endif %}" href="{% url 'stud_app:scores' username %}"><span class="fas fa-file-alt"></span> Scores</a> - </div> - - <div class="navbar-nav ml-auto"> - <a class="nav-item nav-link ml-auto" href="{% url 'stud_app:logout' %}"><span class="fas fa-sign-out-alt"></span> Log Out</a> - </div> - </div> - </div> - </nav> - {% endblock %} - - - <!-- {% block breadcrumb %} - <ol class="breadcrumb container"> - <li class="breadcrumb-item active"><a href="#">Home</a></li> - </ol> - {% endblock %} --> - - {% block content %} - {% endblock %} - - <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> - <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> - - </body> -</html> diff --git a/book_management_system/online_books/urls.py b/book_management_system/online_books/urls.py index 1ea023c46aa33973d2c7a26390660101127772a3..ddf126e3975cb41c3192c74b5c4f19a8e76e2f98 100644 --- a/book_management_system/online_books/urls.py +++ b/book_management_system/online_books/urls.py @@ -1,25 +1,12 @@ from django.conf.urls import url,include from django.urls import path from . import views -# from .forms import StudentLoginForm from django.contrib.auth.views import * #LoginView,LogoutView,PasswordResetView,PasswordResetDoneView,PasswordResetConfirmView,PasswordResetCompleteView app_name = 'online_books' urlpatterns = [ - - # path('', LoginView.as_view(template_name='stud_app/login.html',authentication_form=StudentLoginForm), name="login"), - # url('login/', views.StudentView.as_view(), name="login"), - - # path('', views.blank_page), - # path('login/', views.login_view, name="login"), - path('login/', login, name="login"), - path('logout/', LogoutView.as_view(template_name='online_books/logout.html'), name="logout"), - # path('<username>/home/', views.home_view, name="home"), - # path('<username>/courses/', views.courses_view, name="courses"), - # path('<username>/exams/', views.exam_list_view, name="exams"), - # path('<username>/exams/<int:exam_id>', views.exam_view, name="exams"), - # path('<username>/scores/', views.scores_view, name="scores"), + path('home/', views.home_view, name='home'), ] \ No newline at end of file diff --git a/book_management_system/online_books/views.py b/book_management_system/online_books/views.py index 91ea44a218fbd2f408430959283f0419c921093e..192c5b50b806965e91610c7fc5cbf9a80085e95d 100644 --- a/book_management_system/online_books/views.py +++ b/book_management_system/online_books/views.py @@ -1,3 +1,13 @@ +from django.urls import reverse_lazy +from django.views import generic +from django.contrib.auth.decorators import login_required from django.shortcuts import render -# Create your views here. +from .models import * + +@login_required() +def home_view(request): + books = Book.objects.all() + return render(request, 'home.html', context={ + 'books' : books, + }) diff --git a/book_management_system/templates/base.html b/book_management_system/templates/base.html new file mode 100644 index 0000000000000000000000000000000000000000..3c9316049aed41f684aae45c72bf6dcf4344bf0c --- /dev/null +++ b/book_management_system/templates/base.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>{% block title %}BOOK SITE{% endblock %}</title> +</head> +<body> + <main> + <h1>BOOK SITE</h1> + {% block content %} + {% endblock %} + </main> +</body> +</html> \ No newline at end of file diff --git a/book_management_system/templates/home.html b/book_management_system/templates/home.html new file mode 100644 index 0000000000000000000000000000000000000000..7e45a53b0745755f6f30aedc1dc61a47e55f5ea9 --- /dev/null +++ b/book_management_system/templates/home.html @@ -0,0 +1,25 @@ +{% extends "base.html" %} + +{% block content %} + <h1>Book List</h1> + {% if books %} + <ul> + {% for book in books %} + <li>{{book.book_title}}</li> + <li>{{book.author_fk.author_name}}</li> + <li> + {% for genre in book.genres.all %} + {{genre}}, + {% endfor %} + </li> + {% if book.description %} + <li>{{book.description}}</li> + {% endif %} + <li>{{book.price}}</li> + <hr> + {% endfor %} + </ul> + {% else %} + <p>No book info</p> + {% endif %} +{% endblock %} \ No newline at end of file diff --git a/book_management_system/templates/registration/login.html b/book_management_system/templates/registration/login.html new file mode 100644 index 0000000000000000000000000000000000000000..255f1c63f1fa166bb15f4bcc2fe0335fa71184fd --- /dev/null +++ b/book_management_system/templates/registration/login.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} + +{% block title %}Log In{% endblock %} + +{% block content %} +<h2>Log In</h2> +<form method="post"> + {% csrf_token %} + {{ form.as_p }} + <button type="submit">Log In</button> +</form> +{% endblock %} \ No newline at end of file diff --git a/book_management_system/templates/registration/password_reset_complete.html b/book_management_system/templates/registration/password_reset_complete.html new file mode 100644 index 0000000000000000000000000000000000000000..1bc8c3d94ea3abba8c71cc4699dc823dacd2d3dd --- /dev/null +++ b/book_management_system/templates/registration/password_reset_complete.html @@ -0,0 +1,9 @@ + +{% extends 'base.html' %} + +{% block title %}Password reset complete{% endblock %} + +{% block content %} +<h1>Password reset complete</h1> +<p>Your new password has been set. You can log in now on the <a href="{% url 'login' %}">log in page</a>.</p> +{% endblock %} \ No newline at end of file diff --git a/book_management_system/templates/registration/password_reset_confirm.html b/book_management_system/templates/registration/password_reset_confirm.html new file mode 100644 index 0000000000000000000000000000000000000000..e3aa4e165262111748765a4544c6922333c7360f --- /dev/null +++ b/book_management_system/templates/registration/password_reset_confirm.html @@ -0,0 +1,21 @@ +{% extends 'base.html' %} + +{% block title %}Enter new password{% endblock %} + +{% block content %} + +{% if validlink %} + +<h1>Set a new password!</h1> +<form method="POST"> + {% csrf_token %} + {{ form.as_p }} + <input type="submit" value="Change my password"> +</form> + +{% else %} + +<p>The password reset link was invalid, possibly because it has already been used. Please request a new password reset.</p> + +{% endif %} +{% endblock %} \ No newline at end of file diff --git a/book_management_system/templates/registration/signup.html b/book_management_system/templates/registration/signup.html new file mode 100644 index 0000000000000000000000000000000000000000..dda12b2792dbb08cb4b352223878d0808e34f053 --- /dev/null +++ b/book_management_system/templates/registration/signup.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} + +{% block title %}Sign Up{% endblock %} + +{% block content %} + <h2>Sign up</h2> + <form method="post"> + {% csrf_token %} + {{ form.as_p }} + <button type="submit">Sign Up</button> + </form> +{% endblock %} \ No newline at end of file