添加岗位、登录日志过滤

This commit is contained in:
xie7654
2025-07-03 16:53:40 +08:00
parent ccb4536b37
commit 18f9afb924
17 changed files with 217 additions and 65 deletions

View File

@@ -1,4 +1,4 @@
# Generated by Django 5.2.1 on 2025-07-03 03:44
# Generated by Django 5.2.1 on 2025-07-03 08:43
import django.contrib.auth.models
import django.contrib.auth.validators
@@ -88,7 +88,7 @@ class Migration(migrations.Migration):
),
),
(
"type",
"value",
models.CharField(
db_index=True,
default="",

View File

@@ -180,7 +180,7 @@ class RolePermission(CoreModel):
class DictType(CoreModel):
"""字典类型表"""
name = models.CharField(max_length=100, default='', verbose_name='字典名称')
type = models.CharField(max_length=100, default='', verbose_name='字典类型', db_index=True)
value = models.CharField(max_length=100, default='', verbose_name='字典类型', db_index=True)
status = models.IntegerField(
choices=CommonStatus.choices,
default=CommonStatus.ENABLED,

View File

@@ -1,6 +1,7 @@
from rest_framework import serializers, viewsets
from system.models import DictType
from utils.custom_model_viewSet import CustomModelViewSet
from django_filters import rest_framework as filters
class DictTypeSerializer(serializers.ModelSerializer):
@@ -10,6 +11,20 @@ class DictTypeSerializer(serializers.ModelSerializer):
fields = '__all__'
class DictTypeFilter(filters.FilterSet):
name = filters.CharFilter(field_name='name', lookup_expr='icontains')
value = filters.CharFilter(field_name='value', lookup_expr='icontains')
status = filters.CharFilter(field_name='status')
class Meta:
model = DictType
fields = ['name', 'value', 'status']
class DictTypeViewSet(CustomModelViewSet):
queryset = DictType.objects.filter(is_deleted=False)
serializer_class = DictTypeSerializer
queryset = DictType.objects.all()
serializer_class = DictTypeSerializer
filterset_class = DictTypeFilter
search_fields = ['name', 'type']
ordering_fields = ['create_time', 'id']
ordering = ['-create_time']

View File

@@ -3,6 +3,7 @@ from utils.serializers import CustomModelSerializer
from utils.custom_model_viewSet import CustomModelViewSet
from rest_framework import serializers
from utils.permissions import HasButtonPermission
from django_filters import rest_framework as filters
class LoginLogSerializer(CustomModelSerializer):
"""
@@ -19,14 +20,23 @@ class LoginLogSerializer(CustomModelSerializer):
return obj.get_result_display()
class LoginLogFilter(filters.FilterSet):
username = filters.CharFilter(field_name='username', lookup_expr='icontains')
create_time = filters.DateFromToRangeFilter(field_name='create_time')
class Meta:
model = LoginLog
fields = ['username', 'create_time']
class LoginLogViewSet(CustomModelViewSet):
"""
系统访问记录 视图集
"""
queryset = LoginLog.objects.filter(is_deleted=False).order_by('-id')
serializer_class = LoginLogSerializer
filterset_fields = ['id', 'remark', 'creator', 'modifier', 'is_deleted', 'username', 'result', 'user_ip', 'user_agent']
search_fields = ['name'] # 根据实际字段调整
filterset_class = LoginLogFilter
search_fields = ['username']
ordering_fields = ['create_time', 'id']
ordering = ['-create_time']
permission_classes = [HasButtonPermission]

View File

@@ -1,6 +1,7 @@
from system.models import Post
from utils.serializers import CustomModelSerializer
from utils.custom_model_viewSet import CustomModelViewSet
from django_filters import rest_framework as filters
class PostSerializer(CustomModelSerializer):
"""
@@ -12,13 +13,23 @@ class PostSerializer(CustomModelSerializer):
read_only_fields = ['id', 'create_time', 'update_time']
class PostFilter(filters.FilterSet):
name = filters.CharFilter(field_name='name', lookup_expr='icontains')
code = filters.CharFilter(field_name='code', lookup_expr='icontains')
status = filters.CharFilter(field_name='status')
class Meta:
model = Post
fields = ['name', 'code', 'status']
class PostViewSet(CustomModelViewSet):
"""
岗位信息表 视图集
"""
queryset = Post.objects.filter(is_deleted=False)
serializer_class = PostSerializer
filterset_fields = ['id', 'remark', 'creator', 'modifier', 'is_deleted', 'code', 'name', 'sort', 'status']
search_fields = ['name'] # 根据实际字段调整
ordering_fields = ['create_time', 'id', 'sort']
ordering = ['sort']
filterset_class = PostFilter
search_fields = ['name', 'code']
ordering_fields = ['create_time', 'id']
ordering = ['-create_time']