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

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

    @method_decorator(login_required)
    @method_decorator(group_required('Читатели'))
    def dispatch(self, *args, **kwargs):
        return super(OrderDetailView, self).dispatch(*args, **kwargs)
Ejemplo n.º 2
0
class CommentDetailView(generic.DetailView):
    """Выводит страницу с описанием комментария."""
    template_name = 'reader_cabinet/comments/detail.html'

    def get_queryset(self):
        """Возвращает список с комментариями текущего юзера."""
        return Comment.objects.filter(user=self.request.user)

    @method_decorator(login_required)
    @method_decorator(group_required('Читатели'))
    def dispatch(self, *args, **kwargs):
        return super(CommentDetailView, self).dispatch(*args, **kwargs)
Ejemplo n.º 3
0
class CommentsListView(generic.ListView):
    """Выводит страницу со списком комментариев."""
    template_name = 'reader_cabinet/comments/list.html'
    context_object_name = 'comments_list'

    def get_queryset(self):
        """Возвращает список с комментариями текущего юзера."""
        return Comment.objects.filter(user=self.request.user).order_by('-updated_at')

    @method_decorator(login_required, group_required('Читатели'))
    def dispatch(self, *args, **kwargs):
        return super(CommentsListView, self).dispatch(*args, **kwargs)
Ejemplo n.º 4
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)
Ejemplo n.º 5
0
class DocumentDetailView(generic.DetailView):
    """Выводит страницу с описанием документа."""
    model = Document
    template_name = 'reader_cabinet/document_detail.html'

    def get_context_data(self, **kwargs):
        context = super(DocumentDetailView, self).get_context_data(**kwargs)
        context['form'] = CommentForm
        return context

    @method_decorator(login_required)
    @method_decorator(group_required('Читатели'))
    def dispatch(self, *args, **kwargs):
        return super(DocumentDetailView, self).dispatch(*args, **kwargs)
Ejemplo n.º 6
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)
Ejemplo n.º 7
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)
Ejemplo n.º 8
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)
Ejemplo n.º 9
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)
Ejemplo n.º 10
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)
Ejemplo n.º 11
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)
Ejemplo n.º 12
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)