Pylint updates

This commit is contained in:
Horilla
2024-10-10 15:45:44 +05:30
parent dcc667e99d
commit a9c6cf5a4e
33 changed files with 1638 additions and 929 deletions

View File

@@ -1,42 +1,45 @@
from collections import Counter
from django.db.models import Q
from django.http import QueryDict
from rest_framework.pagination import PageNumberPagination
from employee.models import EmployeeWorkInformation
from collections import Counter
from django.db.models import Q
def get_filter_url(current_url, request):
url_parts = current_url.split('?')
url_parts = current_url.split("?")
base_url = request.path
query_params = QueryDict(url_parts[1], mutable=True)
query_params.pop('groupby_field', None)
return base_url + '?' + query_params.urlencode()
query_params.pop("groupby_field", None)
return base_url + "?" + query_params.urlencode()
def groupby_queryset(request, url, field_name, queryset):
queryset_with_counts = queryset.values(
field_name)
queryset_with_counts = queryset.values(field_name)
counts = Counter(item[field_name] for item in queryset_with_counts)
result_list = []
for i in counts:
result_list.append({field_name: i, 'count': counts[i]})
result_list.append({field_name: i, "count": counts[i]})
counts_and_objects = []
url = get_filter_url(url, request)
for item in result_list:
count = item['count']
count = item["count"]
related_fields = field_name.split("__")
if item[field_name]:
related_obj = queryset.filter(
**{field_name: item[field_name]}).first()
related_obj = queryset.filter(**{field_name: item[field_name]}).first()
for field in related_fields:
related_obj = getattr(related_obj, field)
counts_and_objects.append(
{'count': count,
'name': str(related_obj),
"filter_url": f"{url}&{field_name}={item[field_name]}"})
{
"count": count,
"name": str(related_obj),
"filter_url": f"{url}&{field_name}={item[field_name]}",
}
)
pagination = PageNumberPagination()
page = pagination.paginate_queryset(counts_and_objects, request)
return pagination.get_paginated_response(page)
@@ -53,12 +56,13 @@ def permission_based_queryset(user, perm, queryset, user_obj=None):
if is_manager:
if user_obj:
return queryset.filter(
Q(employee_id=employee) |
Q(employee_id__employee_work_info__reporting_manager_id=employee)
Q(employee_id=employee)
| Q(employee_id__employee_work_info__reporting_manager_id=employee)
)
manager_filter = Q(employee_id=employee)
subordinates_filter = Q(
employee_id__employee_work_info__reporting_manager_id=employee)
employee_id__employee_work_info__reporting_manager_id=employee
)
merged_filter = manager_filter | subordinates_filter
merged_queryset = queryset.filter(merged_filter)
return merged_queryset