From 54a4ef99ae098e64d80fb00bfd83c86afa080d71 Mon Sep 17 00:00:00 2001 From: ankitj Date: Thu, 7 Apr 2022 17:00:45 +0530 Subject: Add views, urls, forms and admin --- library_management/db.sqlite3 | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 201 -> 0 bytes .../__pycache__/settings.cpython-38.pyc | Bin 2441 -> 0 bytes .../__pycache__/urls.cpython-38.pyc | Bin 989 -> 0 bytes library_management/library_management/urls.py | 3 +- .../__pycache__/__init__.cpython-38.pyc | Bin 198 -> 0 bytes .../__pycache__/admin.cpython-38.pyc | Bin 239 -> 0 bytes .../__pycache__/apps.cpython-38.pyc | Bin 492 -> 0 bytes .../__pycache__/models.cpython-38.pyc | Bin 1441 -> 0 bytes library_management/library_manager/admin.py | 5 +++ library_management/library_manager/forms.py | 8 ++++ .../library_manager/migrations/0001_initial.py | 44 -------------------- .../library_manager/migrations/__init__.py | 0 .../migrations/__pycache__/__init__.cpython-38.pyc | Bin 209 -> 0 bytes library_management/library_manager/models.py | 15 ++++++- .../templates/library_manager/books.html | 14 +++++++ .../templates/library_manager/members.html | 17 ++++++++ .../templates/library_manager/new_status.html | 7 ++++ .../templates/library_manager/statuses.html | 24 +++++++++++ library_management/library_manager/urls.py | 15 +++++++ library_management/library_manager/views.py | 45 ++++++++++++++++++++- 21 files changed, 148 insertions(+), 49 deletions(-) delete mode 100644 library_management/db.sqlite3 delete mode 100644 library_management/library_management/__pycache__/__init__.cpython-38.pyc delete mode 100644 library_management/library_management/__pycache__/settings.cpython-38.pyc delete mode 100644 library_management/library_management/__pycache__/urls.cpython-38.pyc delete mode 100644 library_management/library_manager/__pycache__/__init__.cpython-38.pyc delete mode 100644 library_management/library_manager/__pycache__/admin.cpython-38.pyc delete mode 100644 library_management/library_manager/__pycache__/apps.cpython-38.pyc delete mode 100644 library_management/library_manager/__pycache__/models.cpython-38.pyc create mode 100644 library_management/library_manager/forms.py delete mode 100644 library_management/library_manager/migrations/0001_initial.py delete mode 100644 library_management/library_manager/migrations/__init__.py delete mode 100644 library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc create mode 100644 library_management/library_manager/templates/library_manager/books.html create mode 100644 library_management/library_manager/templates/library_manager/members.html create mode 100644 library_management/library_manager/templates/library_manager/new_status.html create mode 100644 library_management/library_manager/templates/library_manager/statuses.html create mode 100644 library_management/library_manager/urls.py diff --git a/library_management/db.sqlite3 b/library_management/db.sqlite3 deleted file mode 100644 index e69de29..0000000 diff --git a/library_management/library_management/__pycache__/__init__.cpython-38.pyc b/library_management/library_management/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 1df6ad2..0000000 Binary files a/library_management/library_management/__pycache__/__init__.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_management/__pycache__/settings.cpython-38.pyc b/library_management/library_management/__pycache__/settings.cpython-38.pyc deleted file mode 100644 index 0cc4bf3..0000000 Binary files a/library_management/library_management/__pycache__/settings.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_management/__pycache__/urls.cpython-38.pyc b/library_management/library_management/__pycache__/urls.cpython-38.pyc deleted file mode 100644 index 1ba10fc..0000000 Binary files a/library_management/library_management/__pycache__/urls.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_management/urls.py b/library_management/library_management/urls.py index 740b3a3..b7b3249 100644 --- a/library_management/library_management/urls.py +++ b/library_management/library_management/urls.py @@ -14,8 +14,9 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include urlpatterns = [ + path('library/', include('library_manager.urls')), path('admin/', admin.site.urls), ] diff --git a/library_management/library_manager/__pycache__/__init__.cpython-38.pyc b/library_management/library_manager/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 4164979..0000000 Binary files a/library_management/library_manager/__pycache__/__init__.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_manager/__pycache__/admin.cpython-38.pyc b/library_management/library_manager/__pycache__/admin.cpython-38.pyc deleted file mode 100644 index aea6acf..0000000 Binary files a/library_management/library_manager/__pycache__/admin.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_manager/__pycache__/apps.cpython-38.pyc b/library_management/library_manager/__pycache__/apps.cpython-38.pyc deleted file mode 100644 index 5849cda..0000000 Binary files a/library_management/library_manager/__pycache__/apps.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_manager/__pycache__/models.cpython-38.pyc b/library_management/library_manager/__pycache__/models.cpython-38.pyc deleted file mode 100644 index c575567..0000000 Binary files a/library_management/library_manager/__pycache__/models.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_manager/admin.py b/library_management/library_manager/admin.py index 8c38f3f..9f36ecb 100644 --- a/library_management/library_manager/admin.py +++ b/library_management/library_manager/admin.py @@ -1,3 +1,8 @@ from django.contrib import admin +from .models import Book, BookStatus, Member + # Register your models here. +admin.site.register(Book) +admin.site.register(BookStatus) +admin.site.register(Member) \ No newline at end of file diff --git a/library_management/library_manager/forms.py b/library_management/library_manager/forms.py new file mode 100644 index 0000000..c7af770 --- /dev/null +++ b/library_management/library_manager/forms.py @@ -0,0 +1,8 @@ +from django.forms import ModelForm +from .models import BookStatus + +# Create the form class. +class StatusForm(ModelForm): + class Meta: + model = BookStatus + fields = ['book', 'status', 'member'] diff --git a/library_management/library_manager/migrations/0001_initial.py b/library_management/library_manager/migrations/0001_initial.py deleted file mode 100644 index daf9955..0000000 --- a/library_management/library_manager/migrations/0001_initial.py +++ /dev/null @@ -1,44 +0,0 @@ -# Generated by Django 4.0.3 on 2022-04-03 17:43 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Book', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=255)), - ('author_name', models.CharField(max_length=255)), - ('isbn_num', models.CharField(max_length=150)), - ('genre', models.CharField(max_length=15)), - ('description', models.TextField()), - ], - ), - migrations.CreateModel( - name='Member', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ('email', models.CharField(max_length=255)), - ('phone', models.CharField(max_length=15)), - ], - ), - migrations.CreateModel( - name='BookStatus', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('status', models.CharField(choices=[('Issued', 'issued'), ('Available', 'available'), ('Unavailable', 'unavailable')], max_length=100)), - ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='book_status', to='library_manager.book')), - ('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_status', to='library_manager.member')), - ], - ), - ] diff --git a/library_management/library_manager/migrations/__init__.py b/library_management/library_manager/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc b/library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 5a5e8b0..0000000 Binary files a/library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc and /dev/null differ diff --git a/library_management/library_manager/models.py b/library_management/library_manager/models.py index 2dd4146..3559927 100644 --- a/library_management/library_manager/models.py +++ b/library_management/library_manager/models.py @@ -27,5 +27,16 @@ class BookStatus(models.Model): ("Unavailable", "unavailable") ) status = models.CharField(max_length=100, choices=STATUSES) - member = models.ForeignKey("Member", on_delete=models.CASCADE, related_name="user_status") - book = models.ForeignKey("Book", on_delete=models.CASCADE, related_name="book_status") + member = models.ForeignKey( + "Member", + on_delete=models.CASCADE, + related_name="user_status", + blank=True, + null=True + ) + book = models.ForeignKey( + "Book", + on_delete=models.CASCADE, + related_name="book_status" + ) + created_on = models.DateTimeField(auto_now_add=True) diff --git a/library_management/library_manager/templates/library_manager/books.html b/library_management/library_manager/templates/library_manager/books.html new file mode 100644 index 0000000..fd61286 --- /dev/null +++ b/library_management/library_manager/templates/library_manager/books.html @@ -0,0 +1,14 @@ + + + Library Manager - Books +
+
+ {% for book in all_books %} + {{ book.title }} +
+
+ {{ book.author_name}} +
+ {% endfor %} + + \ No newline at end of file diff --git a/library_management/library_manager/templates/library_manager/members.html b/library_management/library_manager/templates/library_manager/members.html new file mode 100644 index 0000000..24495f7 --- /dev/null +++ b/library_management/library_manager/templates/library_manager/members.html @@ -0,0 +1,17 @@ + + + Library Manager - Members +
+
+ {% for member in all_members %} + {{ member.name }} +
+
+ {{ member.phone }} +
+
+ {{ member.email }} +
+ {% endfor %} + + \ No newline at end of file diff --git a/library_management/library_manager/templates/library_manager/new_status.html b/library_management/library_manager/templates/library_manager/new_status.html new file mode 100644 index 0000000..c948edf --- /dev/null +++ b/library_management/library_manager/templates/library_manager/new_status.html @@ -0,0 +1,7 @@ + +
+ {% csrf_token %} + {{ form.as_table }} + +
+ \ No newline at end of file diff --git a/library_management/library_manager/templates/library_manager/statuses.html b/library_management/library_manager/templates/library_manager/statuses.html new file mode 100644 index 0000000..7e218f9 --- /dev/null +++ b/library_management/library_manager/templates/library_manager/statuses.html @@ -0,0 +1,24 @@ + + + Library Manager - Members +
+
+ + + + + + + + + {% for stat in all_statuses %} + + + + + + + {% endfor %} + + + \ No newline at end of file diff --git a/library_management/library_manager/urls.py b/library_management/library_manager/urls.py new file mode 100644 index 0000000..bee4d62 --- /dev/null +++ b/library_management/library_manager/urls.py @@ -0,0 +1,15 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + # ex: /polls/ + # path('', views.index, name='index'), + # ex: /polls/5/ + path('books/', views.books, name='books'), + # ex: /polls/5/results/ + path('members/', views.members, name='members'), + # ex: /polls/5/vote/ + path('statuses/', views.status, name='statuses'), + path('addstatus/', views.new_status, name='new_status'), +] \ No newline at end of file diff --git a/library_management/library_manager/views.py b/library_management/library_manager/views.py index 91ea44a..fbb94fe 100644 --- a/library_management/library_manager/views.py +++ b/library_management/library_manager/views.py @@ -1,3 +1,44 @@ -from django.shortcuts import render +from django.shortcuts import render, redirect -# Create your views here. +from .models import Book, BookStatus, Member +from .forms import StatusForm + +def books(request): + all_books = Book.objects.all() + return render( + request, + 'library_manager/books.html', + context={'all_books': all_books} + ) + +def members(request): + all_members = Member.objects.all() + return render( + request, + 'library_manager/members.html', + context={'all_members': all_members} + ) + +def status(request): + all_statuses = BookStatus.objects.all() + return render( + request, + 'library_manager/statuses.html', + context={'all_statuses': all_statuses} + ) + +def new_status(request): + if request.method == "POST": + form = StatusForm(request.POST) + if form.is_valid(): + form.save() + return redirect('statuses') + else: + return redirect('statuses') + else: + form = StatusForm() + return render( + request, + 'library_manager/new_status.html', + context={'form': form} + ) \ No newline at end of file -- cgit
Book Member Name Status Date
{{ stat.book }} {{ stat.member }} {{ stat.status }} {{ stat.created_on }}