diff options
author | ankitj | 2022-04-07 17:00:45 +0530 |
---|---|---|
committer | ankitj | 2022-04-07 17:00:45 +0530 |
commit | 54a4ef99ae098e64d80fb00bfd83c86afa080d71 (patch) | |
tree | 1d701ee4eab5f7ff6f912a9096ddce8fad7faca0 | |
parent | a18890849c658ff7e7459385acca6623685b1e04 (diff) | |
download | django_workshop_042022_project-54a4ef99ae098e64d80fb00bfd83c86afa080d71.tar.gz django_workshop_042022_project-54a4ef99ae098e64d80fb00bfd83c86afa080d71.tar.bz2 django_workshop_042022_project-54a4ef99ae098e64d80fb00bfd83c86afa080d71.zip |
21 files changed, 148 insertions, 49 deletions
diff --git a/library_management/db.sqlite3 b/library_management/db.sqlite3 deleted file mode 100644 index e69de29..0000000 --- a/library_management/db.sqlite3 +++ /dev/null diff --git a/library_management/library_management/__pycache__/__init__.cpython-38.pyc b/library_management/library_management/__pycache__/__init__.cpython-38.pyc Binary files differdeleted file mode 100644 index 1df6ad2..0000000 --- a/library_management/library_management/__pycache__/__init__.cpython-38.pyc +++ /dev/null diff --git a/library_management/library_management/__pycache__/settings.cpython-38.pyc b/library_management/library_management/__pycache__/settings.cpython-38.pyc Binary files differdeleted file mode 100644 index 0cc4bf3..0000000 --- a/library_management/library_management/__pycache__/settings.cpython-38.pyc +++ /dev/null diff --git a/library_management/library_management/__pycache__/urls.cpython-38.pyc b/library_management/library_management/__pycache__/urls.cpython-38.pyc Binary files differdeleted file mode 100644 index 1ba10fc..0000000 --- a/library_management/library_management/__pycache__/urls.cpython-38.pyc +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4164979..0000000 --- a/library_management/library_manager/__pycache__/__init__.cpython-38.pyc +++ /dev/null diff --git a/library_management/library_manager/__pycache__/admin.cpython-38.pyc b/library_management/library_manager/__pycache__/admin.cpython-38.pyc Binary files differdeleted file mode 100644 index aea6acf..0000000 --- a/library_management/library_manager/__pycache__/admin.cpython-38.pyc +++ /dev/null diff --git a/library_management/library_manager/__pycache__/apps.cpython-38.pyc b/library_management/library_manager/__pycache__/apps.cpython-38.pyc Binary files differdeleted file mode 100644 index 5849cda..0000000 --- a/library_management/library_manager/__pycache__/apps.cpython-38.pyc +++ /dev/null diff --git a/library_management/library_manager/__pycache__/models.cpython-38.pyc b/library_management/library_manager/__pycache__/models.cpython-38.pyc Binary files differdeleted file mode 100644 index c575567..0000000 --- a/library_management/library_manager/__pycache__/models.cpython-38.pyc +++ /dev/null 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 --- a/library_management/library_manager/migrations/__init__.py +++ /dev/null diff --git a/library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc b/library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc Binary files differdeleted file mode 100644 index 5a5e8b0..0000000 --- a/library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc +++ /dev/null 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 @@ +<html> + <body> + Library Manager - Books + <br> + <br> + {% for book in all_books %} + {{ book.title }} + <br> + <br> + {{ book.author_name}} + <hr> + {% endfor %} + </body> +</html>
\ 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 @@ +<html> + <body> + Library Manager - Members + <br> + <br> + {% for member in all_members %} + {{ member.name }} + <br> + <br> + {{ member.phone }} + <br> + <br> + {{ member.email }} + <hr> + {% endfor %} + </body> +</html>
\ 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 @@ +<html> + <form method="post"> + {% csrf_token %} + {{ form.as_table }} + <input type="submit" value="Submit"> + </form> +</html>
\ 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 @@ +<html> + <body> + Library Manager - Members + <br> + <br> + <table border="3"> + <thead> + <td> Book </td> + <td> Member Name </td> + <td> Status </td> + <td> Date </td> + </thead> + <tbody> + {% for stat in all_statuses %} + <tr> + <td> {{ stat.book }} </td> + <td> {{ stat.member }} </td> + <td> {{ stat.status }} </td> + <td> {{ stat.created_on }} </td> + </tr> + {% endfor %} + </tbody> + </body> +</html>
\ 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 |