Beispiel #1
0
class OrderDetailView(generic.DetailView):
    """Выводит страницу с описанием заказа."""
    template_name = 'library_cabinet/orders/detail.html'

    def get_queryset(self):
        return Order.objects.filter(document__library=get_my_library(self.request))

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(OrderDetailView, self).dispatch(*args, **kwargs)
Beispiel #2
0
class UserDetailView(generic.DetailView):
    """Выводит страницу с деталями библиотекаря."""
    template_name = 'library_cabinet/users/detail.html'
    context_object_name = 'user'

    def get_queryset(self):
        return get_my_library(self.request).admins.all()

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(UserDetailView, self).dispatch(*args, **kwargs)
Beispiel #3
0
class DocumentDetailView(generic.DetailView):
    """Выводит страницу с деталями документа."""
    template_name = 'library_cabinet/documents/detail.html'
    context_object_name = 'document'

    def get_queryset(self):
        return get_my_library(self.request).document_set.order_by('-created_at').all()

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(DocumentDetailView, self).dispatch(*args, **kwargs)
Beispiel #4
0
class UsersListView(generic.ListView):
    """Выводит страницу со списком отрудников библиотеки."""
    template_name = 'library_cabinet/users/list.html'
    context_object_name = 'users_list'

    def get_queryset(self):
        """Возвращает список с документами библиотеки."""
        return get_my_library(self.request).admins.all()

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(UsersListView, self).dispatch(*args, **kwargs)
Beispiel #5
0
class CommentDetailView(generic.DetailView):
    """Выводит страницу с описанием комментария."""
    template_name = 'library_cabinet/comments/detail.html'

    def get_queryset(self):
        """Возвращает список с комментариями."""
        library = get_my_library(self.request)
        return Comment.objects.filter(
            Q(library=library) | Q(document__in=library.document_set.all())
        )

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(CommentDetailView, self).dispatch(*args, **kwargs)
Beispiel #6
0
class OrdersListView(generic.ListView):
    """Выводит страницу со списком заказов."""
    template_name = 'library_cabinet/orders/list.html'
    context_object_name = 'orders_list'

    def get_queryset(self):
        """Возвращает список с заказами."""
        return Order.objects.filter(
            document__library=get_my_library(self.request)
        ).order_by('approved', 'status_id')

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(OrdersListView, self).dispatch(*args, **kwargs)
Beispiel #7
0
class RequestAccessesListView(generic.ListView):
    """Выводит страницу со списком заказов."""
    template_name = 'library_cabinet/request_accesses/list.html'
    context_object_name = 'request_accesses_list'

    def get_queryset(self):
        """Возвращает список с заказами текущего юзера."""
        return LibraryRequestAccess.objects.filter(
            library=get_my_library(self.request)
        ).order_by('approved', '-created_at')

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(RequestAccessesListView, self).dispatch(*args, **kwargs)
Beispiel #8
0
class ReaderDetailView(generic.DetailView):
    """Выводит страницу с деталями читателя."""
    template_name = 'library_cabinet/readers/detail.html'
    context_object_name = 'reader'

    def get_queryset(self):
        library = get_my_library(self.request)

        reader_tickets = library.reader_tickets.all()
        readers = ReaderTicket.objects.filter(user__profile__city=library.city, user__groups__name__exact='Читатели')

        records = reader_tickets | readers
        return records.distinct()

    @method_decorator(login_required)
    @method_decorator(group_required('Библиотекари-администраторы',
                                     'Библиотекари-каталогизаторы',
                                     'Библиотекари-комплектаторы'))
    @method_decorator(library_enabled())
    def dispatch(self, *args, **kwargs):
        return super(ReaderDetailView, self).dispatch(*args, **kwargs)