Commit 51b012d8 authored by impfundev's avatar impfundev

fix: cascade relations

parent 05aadb7b
# Generated by Django 5.0.6 on 2024-07-05 02:14
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('book_loans', '0004_alter_bookloans_return_date'),
('books', '0002_book_stock'),
('librarians', '0003_alter_loginhistory_table'),
('members', '0006_alter_members_account_number'),
]
operations = [
migrations.AlterField(
model_name='bookloans',
name='book',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='books.book'),
),
migrations.AlterField(
model_name='bookloans',
name='librarians',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='librarians.librarians'),
),
migrations.AlterField(
model_name='bookloans',
name='member',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='members.members'),
),
]
......@@ -5,9 +5,9 @@ from librarians.models import Librarians
class BookLoans(models.Model):
book = models.ForeignKey(to=Book, on_delete=models.SET_NULL, null=True)
member = models.ForeignKey(to=Members, on_delete=models.SET_NULL, null=True)
librarians = models.ForeignKey(to=Librarians, on_delete=models.SET_NULL, null=True)
book = models.ForeignKey(to=Book, on_delete=models.CASCADE, null=True)
member = models.ForeignKey(to=Members, on_delete=models.CASCADE, null=True)
librarians = models.ForeignKey(to=Librarians, on_delete=models.CASCADE, null=True)
notes = models.TextField(blank=True, null=True)
loan_date = models.DateTimeField()
due_date = models.DateTimeField()
......
......@@ -24,7 +24,7 @@
</div>
<div class="modal-body">
Once data is deleted, it cannot be restored.
<input type="hidden" name="id" id="almacen_id" />
<input type="hidden" name="book_id" id="almacen_id" value="{{ book_loan.book_id }}" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
......
......@@ -11,7 +11,6 @@
>
<i class="bi bi-plus-circle"></i> Add Book Loan
</button>
{% include "search_form.html" %}
</div>
{% include "book_loan_table_data.html" %}
</div>
......
......@@ -51,7 +51,7 @@ def index(request):
)
if request.method == "GET":
query = request.GET.get("q")
# query = request.GET.get("q")
order = request.GET.get("o")
# if query is not None:
......@@ -113,6 +113,14 @@ def update(request, id):
notes=notes,
updated_at=datetime.now(),
)
updated_loan = BookLoans.objects.get(id=id)
book = Book.objects.get(id=book_id)
new_stock = book.stock + 1
if updated_loan.return_date is not None and book.stock < new_stock:
Book.objects.filter(id=book_id).update(stock_in=new_stock)
return HttpResponseRedirect("/dashboard/book-loans")
context["form"] = form
......@@ -124,7 +132,17 @@ def delete(request, id):
book_loan = get_object_or_404(BookLoans, id=id)
if request.method == "POST":
books = Book.objects.all()
book_id = request.POST["book_id"]
book = Book.objects.get(id=book_id)
new_stock = book.stock + 1
if book_loan.return_date is None:
books.filter(id=book_id).update(stock=new_stock)
book_loan.delete()
return HttpResponseRedirect("/dashboard/book-loans")
return render(request, "loans.html", context)
# Generated by Django 5.0.6 on 2024-07-05 02:14
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('members', '0005_alter_members_account_number'),
]
operations = [
migrations.AlterField(
model_name='members',
name='account_number',
field=models.CharField(default='810779514016329', editable=False, max_length=15),
),
]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment