Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #model
- class BookInstance(models.Model):
- id = models.UUIDField(primary_key=True,
- default=uuid.uuid4,
- help_text="Unique ID for this particular book across whole library")
- book: Book = models.ForeignKey(Book, on_delete=models.SET_NULL, null=True)
- imprint = models.CharField(max_length=200)
- LOAN_STATUS = (
- ("m", "Maintenance"),
- ("o", "On loan"),
- ("a", "Available"),
- ("r", "Reserved"),
- )
- status = models.CharField(max_length=1, choices=LOAN_STATUS, blank=True, default="m",
- help_text='Book availability')
- due_back = models.DateField(null=True, blank=True)
- borrower = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
- class Meta:
- ordering = ["due_back"]
- permissions = (("see_all_borrowed_books", "See all borrowed books"),)
- def __str__(self):
- return f"{self.id} ({self.book.title})"
- def display_book(self):
- return f"{self.book.title}"
- @property
- def is_overdue(self):
- if self.due_back and date.today() > self.due_back:
- return True
- else:
- return False
- #view
- class LoanedBooksForLibrarianListView(PermissionRequiredMixin, generic.ListView):
- model = BookInstance
- template_name = "catalog/bookinstance_list_borrowed_user.html"
- paginate_by = 10
- def get_queryset(self):
- return BookInstance.objects.filter(status__exact="o").order_by("due_back")
- permission_required = 'see_all_borrowed_books'
- #через шаблонизатор проверку проходит, ссылка у юзера с праввами есть, у юзера без прав нет
- {% if perms.catalog.see_all_borrowed_books %}
- <li><a href="{% url 'borrowed' %}">All Borrowed</a></li>
- {% endif %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement