This commit is contained in:
behruz-dev
2025-09-16 18:29:14 +05:00
parent 456bee4d3d
commit f1fd620061
24 changed files with 41 additions and 124 deletions

View File

@@ -8,23 +8,14 @@ class Command(BaseCommand):
def handle(self, *args, **options):
permissions = [
{"code": "project", "name": "project all access"},
{
"code": "project_folder",
"name": "project folder all access"
},
{'code': 'delete_user', "name": 'can delete user permissions'},
{'code': 'user', 'name': 'all user access'},
{'code': 'settings', 'name': 'all settings access'},
{'code': 'product_folder', 'name': 'all access to product folder'},
{'code': 'product', 'name': 'all access to product'},
{'code': 'order', 'name': 'all access to orders'},
{'code': 'offer', 'name': 'all access to offers'},
{'code': 'party', 'name': 'all access to partyies'},
{'code': '', 'name': 'kataloglar'},
{'code': '', 'name': 'kassa'},
{'code': '', 'name': 'moliya'},
{'code': '', 'name': 'arxiv'},
{'code': 'supply', 'name': "Ta'minot"},
{'code': 'counterparty', 'name': "Kontragent"},
{'code': 'warehouse', 'name': "Omborxona"},
{'code': 'project', 'name': "Loyiha"},
{'code': 'cash_transaction', 'name': "Kassa"},
{'code': 'directory', 'name': "Katalog"},
{'code': 'finance', 'name': "Moliya"},
{'code': 'archive', 'name': "Arxiv"},
]
for perm in permissions:
@@ -35,4 +26,3 @@ class Command(BaseCommand):
self.stdout.write(self.style.SUCCESS(f"Created: {perm['code']}"))
else:
self.stdout.write(self.style.WARNING(f"Already exists: {perm['code']}"))

View File

@@ -0,0 +1,30 @@
from django.core.management.base import BaseCommand
from core.apps.accounts.models.permission import PermissionToTab
class Command(BaseCommand):
help = "Creates intial tab permission entries"
def handle(self, *args, **options):
permissions = [
{'code': 'order', 'name': "Buyurtmalar"},
{'code': 'offer', 'name': "Takliflar"},
{'code': 'party', 'name': "Partiyalar"},
{'code': 'warehouse', 'name': "Omborxona"},
{'code': 'transfer', 'name': "O'tkazmalar"},
{'code': 'invalid', 'name': "Yaroqsiz"},
{'code': 'income', 'name': "Kirim"},
{'code': 'expence', 'name': "Chiqim"},
{'code': 'income_contract', 'name': 'Kirim shartnoma'},
{'code': 'expence_contract', 'name': 'Chiqim shartnoma'},
]
for perm in permissions:
obj, created = PermissionToTab.objects.get_or_create(
code=perm['code'], name=perm['name']
)
if created:
self.stdout.write(self.style.SUCCESS(f"Created: {perm['code']}"))
else:
self.stdout.write(self.style.WARNING(f"Already exists: {perm['code']}"))

View File

@@ -10,5 +10,4 @@ class PermissionListApiView(generics.ListAPIView):
queryset = Permission.objects.prefetch_related('permission_tab')
serializer_class = serializers.PermissionListSerializer
permission_classes = [HasRolePermission]
required_permissions = ['settings', 'permissions', 'role']
pagination_class = None

View File

@@ -10,5 +10,4 @@ class RoleListApiView(generics.ListAPIView):
serializer_class = serializers.RoleListSerializer
queryset = Role.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['settings', 'user']

View File

@@ -16,7 +16,6 @@ class UserProfileApiView(generics.GenericAPIView):
serializer_class = serializers.UserProfileSerializer
queryset = User.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
def get(self, request):
user = request.user
@@ -32,7 +31,6 @@ class UserProfileUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.UserProfileSerializer
queryset = User.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
parser_classes = [parsers.MultiPartParser, parsers.FormParser]
def patch(self, request):
@@ -58,7 +56,6 @@ class UserCreateApiView(generics.GenericAPIView):
serializer_class = serializers.UserCreateSerializer
queryset = User.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['settings', 'user']
parser_classes = [parsers.MultiPartParser, parsers.FormParser]
def post(self, request):
@@ -79,7 +76,6 @@ class UserListApiView(generics.ListAPIView):
serializer_class = serializers.UserListSerializer
queryset = User.objects.select_related('role')
permission_classes = [HasRolePermission]
required_permissions = ['settings', 'user']
pagination_class = CustomPageNumberPagination
@@ -87,7 +83,6 @@ class UserUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.UserProfileSerializer
queryset = User.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
parser_classes = [parsers.MultiPartParser, parsers.FormParser]
def patch(self, request, id):

View File

@@ -11,7 +11,6 @@ class CompanyListApiView(generics.ListAPIView):
serializer_class = serializers.CompanyListSerializer
queryset = Company.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
pagination_class = CustomPageNumberPagination
@@ -19,5 +18,4 @@ class CompanyDetailApiView(generics.RetrieveAPIView):
serializer_class = serializers.CompanyDetailSerializer
queryset = Company.objects.prefetch_related('branches')
permission_classes = [HasRolePermission]
required_permissions = []
lookup_field = 'id'

View File

@@ -16,7 +16,6 @@ class CounterpartyListApiView(generics.ListAPIView):
serializer_class = serializers.CounterpartyListSerializer
queryset = Counterparty.objects.exclude(is_archived=True).exclude(folder__isnull=False)
pagination_class = [HasRolePermission]
required_permissions = []
pagination_class = CustomPageNumberPagination
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
filterset_class = CounterpartyFilter
@@ -29,7 +28,6 @@ class CounterpartyCreateApiView(generics.GenericAPIView):
serializer_class = serializers.CounterpartyCreateSerializer
queryset = Counterparty.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
def post(self, request):
serializer = self.serializer_class(data=request.data)
@@ -47,7 +45,6 @@ class CounterpartyCreateApiView(generics.GenericAPIView):
class ArchiveCounterpartyApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = []
def get(self, request, id):
counterparty = get_object_or_404(Counterparty, id=id)
@@ -63,13 +60,11 @@ class ArchivedCounterpartyListApiView(generics.ListAPIView):
serializer_class = serializers.CounterpartyListSerializer
queryset = Counterparty.objects.exclude(is_archived=False)
pagination_class = [HasRolePermission]
required_permissions = []
pagination_class = CustomPageNumberPagination
class CounterpartyDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = []
def delete(self, request, id):
counterparty = get_object_or_404(Counterparty, id=id)
@@ -82,7 +77,6 @@ class CounterpartyDeleteApiView(views.APIView):
class CounterpartyUpdateApiView(generics.UpdateAPIView):
permission_classes = [HasRolePermission]
required_permissions = []
lookup_field = 'id'
serializer_class = serializers.CounterpartyUpdateSerializer
queryset = Counterparty.objects.all()

View File

@@ -12,7 +12,6 @@ class CounterpartyFolderListApiView(generics.GenericAPIView):
serializer_class = serializers.CounterpartyFolderListSerializer
queryset = CounterpartyFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
pagination_class = None
def get(self, request):
@@ -25,7 +24,6 @@ class CounterpartyCreateApiView(generics.GenericAPIView):
serializer_class = serializers.CounterpartyFolderCreateSerializer
queryset = CounterpartyFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
def post(self, request):
serializer = self.serializer_class(data=request.data)
@@ -43,7 +41,6 @@ class CounterpartyCreateApiView(generics.GenericAPIView):
class CounterpartyDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = []
def delete(self, request, id):
counterparty_folder = get_object_or_404(CounterpartyFolder, id=id)
@@ -59,4 +56,3 @@ class CounterpartyUpdateApiView(generics.UpdateAPIView):
serializer_class = serializers.CounterpartyFolderListSerializer
lookup_field = 'id'
permission_classes = [HasRolePermission]
required_permissions = []

View File

@@ -14,7 +14,6 @@ from core.apps.orders.filters.order import OrderFilter
class OffersCreateApiView(generics.GenericAPIView):
permission_classes = [HasRolePermission]
required_permissions = ['offer']
queryset = Offer.objects.all()
serializer_class = serializers.MultipleOfferCreateSerializer
@@ -36,7 +35,6 @@ class OfferListApiView(generics.GenericAPIView):
queryset = Order.objects.select_related('product', 'unity').prefetch_related('offers').filter(
offers__isnull=False
).distinct()
required_permissions = ['offer']
serializer_class = serializers.OrderListForOfferSerializer
filter_backends = [DjangoFilterBackend]
filterset_class = OrderFilter
@@ -56,7 +54,6 @@ class OfferUpdateApiView(generics.GenericAPIView):
queryset = Offer.objects.all()
lookup_field = 'id'
permission_classes = [HasRolePermission]
required_permissions = ['offer']
def put(self, request, id):
offer = get_object_or_404(Offer, id=id)
@@ -87,7 +84,6 @@ class OfferUpdateApiView(generics.GenericAPIView):
class OfferDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['offer']
def delete(self, request, id):
offer = get_object_or_404(Offer, id=id)

View File

@@ -19,7 +19,6 @@ class OrderListApiView(generics.ListAPIView):
'product', 'unity', 'project', 'project_folder', 'wherehouse'
)
permission_classes = [HasRolePermission]
required_permissions = ['order']
pagination_class = CustomPageNumberPagination
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
search_fields = [
@@ -33,7 +32,6 @@ class OrderCreateApiView(generics.CreateAPIView):
serializer_class = serializers.MultipleOrderCreateSerializer
queryset = Order.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['order']
def post(self, request):
serializer = self.serializer_class(data=request.data, context={'user': request.user})
@@ -47,13 +45,11 @@ class OrderUpdateApiView(generics.UpdateAPIView):
serializer_class = serializers.OrderUpdateSerializer
queryset = Order.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['order']
lookup_field = 'id'
class OrderDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['order']
def delete(self, request, id):
order = get_object_or_404(Order, id=id)
@@ -63,7 +59,6 @@ class OrderDeleteApiView(views.APIView):
class OrderChangeStatusCancelledApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['order']
def get(self, request, order_id):
order = get_object_or_404(Order, id=order_id)
@@ -77,7 +72,6 @@ class OrderChangeStatusCancelledApiView(views.APIView):
class OrderChangeStatusAcceptedApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['order']
def get(self, request, order_id):
order = get_object_or_404(Order, id=order_id)
@@ -93,14 +87,12 @@ class OrderAcceptApiView(generics.ListAPIView):
serializer_class = serializers.OrderListSerializer
queryset = Order.objects.filter(status='ACCEPTED')
permission_classes = [HasRolePermission]
required_permissions = ['order']
pagination_class = CustomPageNumberPagination
class OrderOfferListApiView(generics.GenericAPIView):
serializer_class = OffersSerializer
permission_classes = [HasRolePermission]
required_permissions = ['order']
queryset = Offer.objects.select_related('order')
pagination_class = None

View File

@@ -19,7 +19,6 @@ class PartyCreateApiView(generics.GenericAPIView):
serializer_class = serializers.PartyCreateSerializer
queryset = Party.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['party']
def post(self, request):
serializer = self.serializer_class(data=request.data, context={'user': request.user})
@@ -39,7 +38,6 @@ class PartyListApiView(generics.GenericAPIView):
serializer_class = serializers.PartyListSerializer
queryset = Party.objects.select_related('party_amount').exclude(is_deleted=True)
permission_classes = [HasRolePermission]
required_permissions = ['party']
filter_backends = [DjangoFilterBackend]
filterset_class = PartyFilter
@@ -55,7 +53,6 @@ class PartyListApiView(generics.GenericAPIView):
class PartyDetailApiView(generics.GenericAPIView):
permission_classes = [HasRolePermission]
required_permissions = ['party']
serializer_class = serializers.PartyDetailSerializer
queryset = Party.objects.select_related('party_amount').prefetch_related('orders')
@@ -71,7 +68,6 @@ class PartyDeleteApiView(generics.GenericAPIView):
serializer_class = serializers.DeletedPartyCreateSerializer
queryset = Party.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['party']
def post(self, request, party_id):
serializer = self.serializer_class(data=request.data, context={'party_id': party_id})
@@ -91,7 +87,6 @@ class DeletedPartyListApiView(generics.GenericAPIView):
serializer_class = serializers.DeletedPartyListSerializer
queryset = DeletedParty.objects.select_related('party')
permission_classes = [HasRolePermission]
required_permissions = ['party']
def get(self, request):
deleted_parties = DeletedParty.objects.select_related('party')
@@ -106,7 +101,6 @@ class PartyUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.PartyUpdateSerializer
queryset = Party.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['party']
pagination_class = None
def patch(self, request, id):
@@ -123,7 +117,6 @@ class PartyUpdateApiView(generics.GenericAPIView):
class OrderDeleteToPartyApiView(generics.GenericAPIView):
serializer_class = None
permission_classes = [HasRolePermission]
required_permissions = ['party']
queryset = None
@@ -145,7 +138,6 @@ class PartyChangeStatusToIsMadeApiView(generics.GenericAPIView):
serializer_class = None
queryset = Party.objects.all()
permission_classes = [HasRolePermission]
required_permission = ['party']
pagination_class = None
def get(self, request, party_id):

View File

@@ -14,14 +14,12 @@ class FolderCreateApiView(generics.CreateAPIView):
serializer_class = serializers.FolderSerializer
queryset = Folder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
class FolderDetailApiView(generics.RetrieveAPIView):
serializer_class = serializers.FolderDetailSerializer
queryset = Folder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
lookup_field = 'id'
@@ -29,7 +27,6 @@ class FolderListApiView(generics.ListAPIView):
serializer_class = serializers.FolderSerializer
queryset = Folder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
pagination_class = None
@@ -37,7 +34,6 @@ class FolderUdateApiView(generics.UpdateAPIView):
serializer_class = serializers.FolderSerializer
queryset = Folder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
lookup_field = 'id'
@@ -45,14 +41,12 @@ class FolderDeleteApiView(generics.DestroyAPIView):
serializer_class = serializers.FolderSerializer
queryset = Folder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
lookup_field = 'id'
class FolderProductListApiView(generics.GenericAPIView):
pagination_class = CustomPageNumberPagination
permission_classes = [HasRolePermission]
required_permissions = ['product', 'product_folder']
queryset = Product.objects.all()
serializer_class = ProductListSerializer
filter_backends = [filters.SearchFilter]
@@ -72,13 +66,11 @@ class SubFolderCreateApiView(generics.CreateAPIView):
serializer_class = serializers.SubFolderSerializer
queryset = SubFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
lookup_field = 'id'
class SubFolderListByFolderIdApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
def get(self, request, folder_id):
folder = get_object_or_404(Folder, id=folder_id)
@@ -92,7 +84,6 @@ class SubFolderUpdateApiView(generics.UpdateAPIView):
queryset = SubFolder.objects.all()
lookup_field = 'id'
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
class SubFolderDeleteApiView(generics.DestroyAPIView):
@@ -100,13 +91,11 @@ class SubFolderDeleteApiView(generics.DestroyAPIView):
queryset = SubFolder.objects.all()
lookup_field = 'id'
permission_classes = [HasRolePermission]
required_permissions = ['product_folder']
class SubFolderProductListApiView(generics.GenericAPIView):
pagination_class = CustomPageNumberPagination
permission_classes = [HasRolePermission]
required_permissions = ['product', 'product_folder']
queryset = Product.objects.all()
serializer_class = ProductListSerializer
@@ -122,5 +111,4 @@ class SubFolderDetailApiView(generics.RetrieveAPIView):
serializer_class = serializers.SubFolderDetailSerializer
queryset = SubFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product', 'product_folder']
lookup_field = 'id'

View File

@@ -15,7 +15,6 @@ class ProductListApiView(generics.ListAPIView):
'id', 'name', 'type', 'unity'
)
permission_classes = [HasRolePermission]
required_permissions = ['product']
pagination_class = CustomPageNumberPagination
@@ -23,7 +22,6 @@ class ProductCreateApiView(generics.GenericAPIView):
serializer_class = serializers.ProductSerializer
queryset = Product.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product']
def post(self, request):
serializer = self.serializer_class(data=request.data)
@@ -47,7 +45,6 @@ class ProductUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.ProductUpdateSerializer
queryset = Product.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['product']
def put(self, request, product_id):
product = get_object_or_404(Product, id=product_id)
@@ -88,7 +85,6 @@ class ProductUpdateApiView(generics.GenericAPIView):
class ProductDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['product']
def delete(self, request, product_id):
product = get_object_or_404(Product, id=product_id)

View File

@@ -11,7 +11,6 @@ class UnityListApiView(generics.ListAPIView):
serializer_class = serializers.UnityListSerializer
queryset = Unity.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
pagination_class = CustomPageNumberPagination
@@ -19,14 +18,12 @@ class UnityCreateApiView(generics.CreateAPIView):
serializer_class = serializers.UnityListSerializer
queryset = Unity.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
class UnityUpdateApiView(generics.UpdateAPIView):
serializer_class = serializers.UnityListSerializer
queryset = Unity.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
lookup_field = 'id'
@@ -34,5 +31,4 @@ class UnityDeleteApiView(generics.DestroyAPIView):
serializer_class = serializers.UnityListSerializer
queryset = Unity.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
lookup_field = 'id'

View File

@@ -10,7 +10,6 @@ class BuilderListApiView(generics.ListAPIView):
serializer_class = serializers.BuilderListSerializer
queryset = Builder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
pagination_class = CustomPageNumberPagination

View File

@@ -10,7 +10,6 @@ from core.apps.accounts.permissions.permissions import HasRolePermission
class EstimateProductCreateApiView(generics.GenericAPIView):
permission_classes = [HasRolePermission]
required_permissions = ['project']
serializer_class = serializers.EstimateProductCreateSerializer
queryset = EstimateProduct.objects.all()
@@ -26,7 +25,6 @@ class EstimateProductUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.EstimateProductUpdateSerializer
queryset = EstimateProduct.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project']
def patch(self, request, id):
estimate_product = get_object_or_404(EstimateProduct, id=id)
@@ -39,7 +37,6 @@ class EstimateProductUpdateApiView(generics.GenericAPIView):
class EstimateProductDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['project']
def delete(self, request, id):
estimate_product = get_object_or_404(EstimateProduct, id=id)

View File

@@ -12,7 +12,6 @@ class EstimateWorkCreateApiView(generics.GenericAPIView):
serializer_class = serializers.EstimateWorkCreateSerializer
queryset = EstimateWork.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project', 'project_folder']
def post(self, request):
serializer = self.serializer_class(data=request.data)
@@ -26,7 +25,6 @@ class EstimateWorkUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.EstimateWorkUpdateSerializer
queryset = EstimateWork.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project', 'project_folder']
def patch(self, request, id):
estimate_work = get_object_or_404(EstimateWork, id=id)
@@ -39,7 +37,6 @@ class EstimateWorkUpdateApiView(generics.GenericAPIView):
class EstimateWorkDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['project']
def delete(self, request, id):
work = get_object_or_404(EstimateWork, id=id)

View File

@@ -14,7 +14,6 @@ class ProjectListApiView(generics.ListAPIView):
serializer_class = serializers.ProjectListSerializer
queryset = Project.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project']
pagination_class = CustomPageNumberPagination
def get_queryset(self):
@@ -30,7 +29,6 @@ class ArchivedProjectListApiView(generics.ListAPIView):
serializer_class = serializers.ProjectListSerializer
queryset = Project.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project']
pagination_class = CustomPageNumberPagination
def get_queryset(self):
@@ -47,7 +45,6 @@ class ProjectDetailApiView(generics.RetrieveAPIView):
'boss', 'foreman', 'other_members', 'wherehouse', 'cash_transaction',
)
permission_classes = [HasRolePermission]
required_permissions = ['project']
lookup_field = 'id'
@@ -55,28 +52,24 @@ class ProjectCreateApiView(generics.CreateAPIView):
serializer_class = serializers.ProjectCreateSerializer
queryset = Project.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project']
class ProjectUpdateApiView(generics.UpdateAPIView):
serializer_class = serializers.ProjectUpdateSerialzier
queryset = Project.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project']
lookup_field = 'id'
class ProjectDeleteApiView(generics.DestroyAPIView):
permission_classes = [HasRolePermission]
lookup_field = 'id'
required_permissions = ['project']
queryset = Project.objects.all()
class ArchiveProjectApiView(generics.GenericAPIView):
serializer_class = None
permission_classes = [HasRolePermission]
required_permissions = ['project']
def get(self, request, id):
project = get_object_or_404(Project, id=id)
@@ -87,7 +80,6 @@ class ArchiveProjectApiView(generics.GenericAPIView):
class UnArchiveProjectApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['project']
def get(self, request, id):
project = get_object_or_404(Project, id=id)
@@ -101,14 +93,12 @@ class ProjectFolderCreateApiView(generics.CreateAPIView):
serializer_class = serializers.ProjectFolderCreateSerializer
queryset = ProjectFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project_folder']
class ProjectFolderListApiView(generics.ListAPIView):
serializer_class = serializers.ProjectFolderListSerializer
queryset = ProjectFolder.objects.prefetch_related('projects')
permission_classes = [HasRolePermission]
required_permissions = ['project_folder']
pagination_class = CustomPageNumberPagination
@@ -116,14 +106,12 @@ class ProjectFolderCreateProjectApiView(generics.CreateAPIView):
serializer_class = serializers.ProjectFolderProjectCreateSerializer
queryset = Project.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project_folder']
class ProjectFolderUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.ProjectFolderUpdateSerializer
queryset = ProjectFolder.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project_folder']
def put(self, request, id):
folder = get_object_or_404(ProjectFolder, id=id)
@@ -138,7 +126,6 @@ class ProjectFolderDetailApiView(generics.GenericAPIView):
serializer_class = serializers.ProjectFolderDetailSerializer
queryset = ProjectFolder.objects.select_related('projects')
permission_classes = [HasRolePermission]
required_permissions = ['project_folder']
def get(self, request, id):
folder = (
@@ -154,7 +141,6 @@ class ProjectFolderDetailApiView(generics.GenericAPIView):
class ProjectFolderDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['project_folder']
def delete(self, request, id):
folder = get_object_or_404(ProjectFolder, id=id)
@@ -165,7 +151,6 @@ class ProjectFolderDeleteApiView(views.APIView):
class ChangeProjectFolderApiView(generics.GenericAPIView):
serializer_class = serializers.ChangeProjectFolderSerializer
queryset = Project.objects.all()
required_permissions = ['project_folder']
def post(self, request):
serializer = self.serializer_class(data=request.data)
@@ -185,7 +170,6 @@ class ChangeProjectFolderApiView(generics.GenericAPIView):
class ProjectAndFolderApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['project', 'project_folder']
def get(self, request):
folders = ProjectFolder.objects.prefetch_related('projects')

View File

@@ -12,14 +12,12 @@ class ProjectEstimateListApiView(generics.ListAPIView):
serializer_class = serializers.ProjectEstimateListSerializer
queryset = ProjectEstimate.objects.prefetch_related('estimate_works')
permission_classes = [HasRolePermission]
required_permissions = ['project']
class ProjectEstimateCreateApiView(generics.GenericAPIView):
serializer_class = serializers.ProjectEstimateCreateSerializer
queryset = ProjectEstimate.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project']
def post(self, request):
serializer = self.serializer_class(data=request.data)
@@ -33,7 +31,6 @@ class ProjectEstimateUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.ProjectEstimateUpdateSerializer
queryset = ProjectEstimate.objects.all()
permission_classes = [HasRolePermission]
required_permissions = ['project']
def patch(self, request, id):
estimate = get_object_or_404(ProjectEstimate, id=id)
@@ -48,7 +45,6 @@ class ProjectEstimateDeleteApiView(generics.GenericAPIView):
queryset = ProjectEstimate.objects.all()
serializer_class = None
permission_classes = [HasRolePermission]
required_permissions = ['project']
def delete(self, request, id):
estimte = get_object_or_404(ProjectEstimate, id=id)

View File

@@ -13,13 +13,11 @@ class RegionListApiView(generics.ListAPIView):
permission_classes = [HasRolePermission]
queryset = Region.objects.all()
serializer_class = RegionListSerializer
required_permissions = ['project', 'project_folder']
pagination_class = None
class DistrictListApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['project', 'project_folder']
def get(self, request, id):
region = get_object_or_404(Region, id=id)

View File

@@ -19,7 +19,6 @@ class InvalidProductCreateApiView(generics.GenericAPIView):
serializer_class = serializers.InvalidProductCreateSerializer
queryset = InvalidProduct.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
parser_classes = [parsers.FormParser, parsers.MultiPartParser]
def post(self, request):
@@ -42,7 +41,6 @@ class InvalidProductListApiView(generics.GenericAPIView):
'inventory', 'project_folder', 'work'
).prefetch_related('witnesses')
permission_classes = [HasRolePermission]
required_permissions = []
filter_backends = [DjangoFilterBackend]
filterset_class = InvalidProductFilter
@@ -60,7 +58,6 @@ class InvalidProductUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.InvalidProductUpdateSerializer
queryset = InvalidProduct.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
parser_classes = [parsers.FormParser, parsers.MultiPartParser]
def patch(self, request, id):
@@ -80,7 +77,6 @@ class InvalidProductUpdateApiView(generics.GenericAPIView):
class InvalidProductDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = []
def delete(self, request, id):
invalid_product = get_object_or_404(InvalidProduct, id=id)

View File

@@ -14,7 +14,6 @@ class InventoryListApiView(generics.GenericAPIView):
serializer_class = serializers.InventoryListSerializer
queryset = Inventory.objects.select_related('product', 'unity').exclude(is_invalid=True)
permissions_classes = [HasRolePermission]
required_permissions = ['wherehouse']
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
search_fields = [
'product__name', 'unity__value'

View File

@@ -18,7 +18,6 @@ class StockMovemendCreateApiView(generics.GenericAPIView):
serializer_class = serializers.StockMovmendCreateSerializer
queryset = StockMovemend.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
def post(self, request):
serializer = self.serializer_class(data=request.data, context={'user': request.user})
@@ -39,7 +38,6 @@ class StockMovemendListApiView(generics.GenericAPIView):
'wherehouse_to', 'wherehouse_from', 'recipient', 'project_folder', 'project'
).prefetch_related('movemend_products')
permission_classes = [HasRolePermission]
required_permissions = []
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
filterset_class = StockMovemendFilter
search_fields = [
@@ -60,7 +58,6 @@ class StockMovemendListApiView(generics.GenericAPIView):
class StockMovemendDeleteApiView(generics.GenericAPIView):
serializer_class = None
permission_classes = [HasRolePermission]
required_permissions = []
queryset = StockMovemend.objects.all()
def delete(self, request, id):
@@ -80,7 +77,6 @@ class StockMovemendDeleteApiView(generics.GenericAPIView):
class StockMovemendProductRemoveApiView(generics.GenericAPIView):
permission_classes = [HasRolePermission]
required_permissions = []
queryset = StockMovmendProduct.objects.all()
serializer_class = None
@@ -106,7 +102,6 @@ class StockMovemendUpdateApiView(generics.GenericAPIView):
serializer_class = serializers.StockMovemendUpdateSerializer
queryset = StockMovemend.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
def patch(self, request, id):
stock_movemend = get_object_or_404(StockMovemend, id=id)

View File

@@ -12,14 +12,12 @@ class WhereHouseListApiView(generics.ListAPIView):
serializer_class = serializers.WhereHouseListSerializer
queryset = WhereHouse.objects.select_related('branch')
permission_classes = [HasRolePermission]
required_permissions = []
class WhereHouseDetailApiView(generics.RetrieveAPIView):
serializer_class = serializers.WhereHouseDetailSerializer
queryset = WhereHouse.objects.select_related('branch')
permission_classes = [HasRolePermission]
required_permissions = []
lookup_field = 'id'
@@ -27,12 +25,10 @@ class WhereHouseCreateApiView(generics.CreateAPIView):
serializer_class = serializers.WhereHouseCreateSerializer
queryset = WhereHouse.objects.all()
permission_classes = [HasRolePermission]
required_permissions = []
class WhereHouseDeleteApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = []
def delete(self, request, id):
wherehouse = get_object_or_404(WhereHouse, id=id)
@@ -48,4 +44,3 @@ class WhereHouseUpdateApiView(generics.UpdateAPIView):
queryset = WhereHouse.objects.all()
lookup_field = 'id'
permission_classes = [HasRolePermission]
required_permissions = []