Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- submission_request_resource.py
- import logging
- from typing import Any, List, Union, Optional
- from django.db.models import QuerySet, Q
- from django.http import HttpRequest
- from django.urls import reverse
- from django.utils import timezone
- from rest_framework import permissions
- from rest_framework.decorators import permission_classes
- from rest_framework.request import Request
- from rest_framework.response import Response
- from misc.views.generic_api_single_view import GenericApiSingleView
- from misc.views.table_style import TableStyle
- from misc.views.generic_api_view import GenericApiView
- from misc.views.generic_filters import GenericFilters
- from misc.views.table_style import TableStyle
- from users.models import (
- SubmissionRequest,
- User,
- )
- log = logging.getLogger(__name__)
- @permission_classes((permissions.AllowAny,))
- class SubmissionRequestTableView(GenericApiSingleView):
- """Определяет структуру и содержание ответа на запросы к данным элемента Запросов (Таб с Имуществом и доступами)."""
- table_name = 'SubmissionRequest'
- element_verbose = 'Запросы'
- PERMISSIONS = {
- # 'create': 'users.crm_users_can_add_employee',
- 'view': 'users.crm_users_can_view_employee',
- 'edit': 'users.crm_users_can_edit_employee',
- # 'delete': 'users.crm_users_can_delete_employee',
- 'view_all': 'users.crm_users_can_view_and_edit_all',
- 'edit_current_user_personal_information': 'users.crm_users_edit_current_user_personal_information',
- }
- class Filters:
- pass
- FIELDS_FILTERS = []
- def get_queryset(self, context: dict, user: User) -> QuerySet:
- """Возвращает базовый (до фильтрации и пагинации) QuerySet."""
- return SubmissionRequest.objects.all()
- @staticmethod
- def get_field_dict(context: dict, user: User) -> dict:
- """Распаковывает ответ и возвращает словарь со значениями полей"""
- # supervisor_field = UsersTableView.get_unpack_value(context.get('supervisor_field'))
- # supervisor_field = safe_to_int(supervisor_field, -1)
- # supervisor_field = User.objects.filter(id=supervisor_field).first()
- data = {
- 'context_user': user,
- }
- return data
- def get_action_methods(self) -> dict:
- """Возвращает словарь соотношений названий действий с их методом."""
- return {
- 'edit': self.edit_elements,
- 'send_invite': self.send_invite,
- }
- @classmethod
- def get_actions(cls) -> list:
- """Возвращает список со списком действий, применимый к набору данных."""
- actions = [
- # cls.get_action(
- # name='edit',
- # verbose='Сохранить изменения',
- # url=reverse('submission_request_access_list'),
- # ),
- ]
- return actions
- def send_invite(self, request: Union[HttpRequest, Request], context: dict, user: User) -> Response:
- """
- Выполняет массовую отправку приглашений на регистрацию для сотрудников.
- """
- return Response(
- {
- 'status': GenericApiView.Responses.STATUS_OK,
- # 'msg': f'К отправке подготовлено писем: {len(prepare_data_for_notification)} '
- # f'Найдено дублей: {len(items) - len(prepare_data_for_notification)}'
- }
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement