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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)