summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorankitj2022-04-07 17:00:45 +0530
committerankitj2022-04-07 17:00:45 +0530
commit54a4ef99ae098e64d80fb00bfd83c86afa080d71 (patch)
tree1d701ee4eab5f7ff6f912a9096ddce8fad7faca0
parenta18890849c658ff7e7459385acca6623685b1e04 (diff)
downloaddjango_workshop_042022_project-54a4ef99ae098e64d80fb00bfd83c86afa080d71.tar.gz
django_workshop_042022_project-54a4ef99ae098e64d80fb00bfd83c86afa080d71.tar.bz2
django_workshop_042022_project-54a4ef99ae098e64d80fb00bfd83c86afa080d71.zip
Add views, urls, forms and adminHEADmaster
-rw-r--r--library_management/db.sqlite30
-rw-r--r--library_management/library_management/__pycache__/__init__.cpython-38.pycbin201 -> 0 bytes
-rw-r--r--library_management/library_management/__pycache__/settings.cpython-38.pycbin2441 -> 0 bytes
-rw-r--r--library_management/library_management/__pycache__/urls.cpython-38.pycbin989 -> 0 bytes
-rw-r--r--library_management/library_management/urls.py3
-rw-r--r--library_management/library_manager/__pycache__/__init__.cpython-38.pycbin198 -> 0 bytes
-rw-r--r--library_management/library_manager/__pycache__/admin.cpython-38.pycbin239 -> 0 bytes
-rw-r--r--library_management/library_manager/__pycache__/apps.cpython-38.pycbin492 -> 0 bytes
-rw-r--r--library_management/library_manager/__pycache__/models.cpython-38.pycbin1441 -> 0 bytes
-rw-r--r--library_management/library_manager/admin.py5
-rw-r--r--library_management/library_manager/forms.py8
-rw-r--r--library_management/library_manager/migrations/0001_initial.py44
-rw-r--r--library_management/library_manager/migrations/__init__.py0
-rw-r--r--library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pycbin209 -> 0 bytes
-rw-r--r--library_management/library_manager/models.py15
-rw-r--r--library_management/library_manager/templates/library_manager/books.html14
-rw-r--r--library_management/library_manager/templates/library_manager/members.html17
-rw-r--r--library_management/library_manager/templates/library_manager/new_status.html7
-rw-r--r--library_management/library_manager/templates/library_manager/statuses.html24
-rw-r--r--library_management/library_manager/urls.py15
-rw-r--r--library_management/library_manager/views.py45
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
deleted file mode 100644
index 1df6ad2..0000000
--- a/library_management/library_management/__pycache__/__init__.cpython-38.pyc
+++ /dev/null
Binary files 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
--- a/library_management/library_management/__pycache__/settings.cpython-38.pyc
+++ /dev/null
Binary files 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
--- a/library_management/library_management/__pycache__/urls.cpython-38.pyc
+++ /dev/null
Binary files 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
--- a/library_management/library_manager/__pycache__/__init__.cpython-38.pyc
+++ /dev/null
Binary files 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
--- a/library_management/library_manager/__pycache__/admin.cpython-38.pyc
+++ /dev/null
Binary files 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
--- a/library_management/library_manager/__pycache__/apps.cpython-38.pyc
+++ /dev/null
Binary files 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
--- a/library_management/library_manager/__pycache__/models.cpython-38.pyc
+++ /dev/null
Binary files 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
--- 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
deleted file mode 100644
index 5a5e8b0..0000000
--- a/library_management/library_manager/migrations/__pycache__/__init__.cpython-38.pyc
+++ /dev/null
Binary files 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 @@
+<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