fix: 修复导入ID重复覆盖逻辑、Excel列顺序对齐及UI优化

This commit is contained in:
cnbugs
2026-04-29 13:48:29 +08:00
rodzic cb057b431e
commit 2eac2d867e
6 zmienionych plików z 107 dodań i 65 usunięć
+29 -8
Wyświetl plik
@@ -88,7 +88,7 @@ def dashboard(request):
def asset_list(request):
queryset = Asset.objects.select_related('category')
# 搜索
# 搜索(模糊搜索所有字段)
search = request.GET.get('search', '').strip()
if search:
queryset = queryset.filter(
@@ -96,12 +96,18 @@ def asset_list(request):
Q(name__icontains=search) |
Q(serial_number__icontains=search) |
Q(ip_address__icontains=search) |
Q(bmc_address__icontains=search) |
Q(brand__icontains=search) |
Q(model__icontains=search) |
Q(location__icontains=search) |
Q(cabinet__icontains=search) |
Q(cabinet_position__icontains=search) |
Q(responsible_person__icontains=search) |
Q(department__icontains=search) |
Q(user__icontains=search)
Q(user__icontains=search) |
Q(business_type__icontains=search) |
Q(gpu_type__icontains=search) |
Q(gpu_count__icontains=search)
)
# 筛选
@@ -113,9 +119,13 @@ def asset_list(request):
if status:
queryset = queryset.filter(status=status)
location = request.GET.get('location')
if location:
queryset = queryset.filter(location__icontains=location)
cabinet = request.GET.get('cabinet')
if cabinet:
queryset = queryset.filter(cabinet__icontains=cabinet)
business_type = request.GET.get('business_type')
if business_type:
queryset = queryset.filter(business_type=business_type)
# 排序
sort = request.GET.get('sort', 'id')
@@ -132,7 +142,16 @@ def asset_list(request):
page_obj = paginator.get_page(page_number)
categories = Category.objects.all()
locations = Asset.objects.values_list('location', flat=True).exclude(location='').distinct()
cabinets = sorted(set(
Asset.objects.values_list('cabinet', flat=True)
.exclude(cabinet='')
.exclude(cabinet=None)
))
business_types = sorted(set(
Asset.objects.values_list('business_type', flat=True)
.exclude(business_type='')
.exclude(business_type=None)
))
context = {
'page_obj': page_obj,
@@ -140,8 +159,10 @@ def asset_list(request):
'categories': categories,
'current_category': category_id,
'current_status': status,
'current_location': location,
'locations': locations,
'current_cabinet': cabinet,
'current_business_type': business_type,
'cabinets': cabinets,
'business_types': business_types,
'status_map': STATUS_MAP,
'sort': sort,
}