import logging from django.utils.translation import gettext as _ from django.db import models from django.contrib.auth.models import Group from rest_framework.response import Response from rest_framework.permissions import IsAdminUser from university.api.base import Endpoint from university.models import User logger = logging.getLogger(__name__) class FindUserEndpoint(Endpoint): permission_classes = (IsAdminUser, ) def get(self, request, *args, **kwargs): search = request.GET.get('search', '') users = User.objects.filter(is_active=True) if search: users = users.filter( models.Q(username__icontains=search) | models.Q(email__icontains=search) | models.Q(phone__icontains=search)) return Response({ 'detail': _('success'), 'data': [{ 'id': u.id, 'username': u.username, 'email': u.email, 'phone': u.phone } for u in users[:20]] }) class FindGroupEndpoint(Endpoint): permission_classes = (IsAdminUser, ) def get(self, request, *args, **kwargs): search = request.GET.get('search', '') groups = Group.objects.all() if search: groups = groups.filter(name__icontains=search) return Response({ 'detail': _('success'), 'data': [{ 'id': g.id, 'name': g.name } for g in groups[:20]] })