Compare commits

..

No commits in common. "17204180c8ea0cc0df6a581fea425291e20c231e" and "d03cf8e4042eb3604f9d3dcf7d9fa0c8e4aedd82" have entirely different histories.

4 changed files with 19 additions and 66 deletions

View File

@ -6,7 +6,7 @@ from core.models.Subscription import Subscription
class SubscriptionSerializer(serializers.ModelSerializer):
class Meta:
model = Subscription
fields = ['user', 'license_number', 'user_count', 'startTime', 'endTime', 'price' , 'id']
fields = ['user', 'license_number', 'user_count', 'startTime', 'endTime', 'price']
read_only_fields = ['user'] # user will be set automatically by the view
def create(self, validated_data):

View File

@ -13,7 +13,6 @@ from .views import spaceView
from .views import AssetBundle
from .views import teamView
from .views import meetingView
from .views import subscriptionView
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static
@ -82,8 +81,6 @@ urlpatterns = [
re_path('uploadPdf/', userView.upload_pdf , name='upload_pdf'),
re_path('add_subscription', userView.addSubscription),
re_path('get_user_subscriptions', subscriptionView.get_user_subscriptions),
re_path('add_teamMember', userView.addTeamMember),
re_path('get_team_member_info', userView.get_team_member_info),
re_path('add_space', spaceView.addSpace),

View File

@ -1,28 +0,0 @@
from rest_framework.decorators import api_view, authentication_classes, permission_classes
from rest_framework.authentication import SessionAuthentication, TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework import status
from core.models.Subscription import Subscription
from core.models.TeamMember import TeamMember
from core.serializers.SubscriptionSerializer import SubscriptionSerializer
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
@api_view(['GET'])
@authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated])
def get_user_subscriptions(request):
user = request.user
subscriptions = Subscription.objects.filter(user=user).order_by('-startTime')
serializer = SubscriptionSerializer(subscriptions, many=True)
return Response({
'status': 200,
'subscriptions': serializer.data,
'message': 'موفق'
}, status=status.HTTP_200_OK)

View File

@ -75,55 +75,39 @@ def getTeams(request):
from django.contrib.auth.models import User
from django.db.models import Q
from core.models.customer import Customer
from rest_framework.serializers import ModelSerializer
from rest_framework import serializers
class UserInlineSerializer(serializers.ModelSerializer):
class SimpleUserSerializer(ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'first_name', 'last_name']
class CustomerSerializer(serializers.ModelSerializer):
user = UserInlineSerializer()
class Meta:
model = Customer
fields = [
'user',
'semat',
'mobile_number',
'profile_img',
'profile_glb',
'is_sms_verified',
'is_email_verified',
]
fields = ['id', 'username', 'first_name', 'last_name' ]
@api_view(['GET'])
@authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated])
def get_all_team_members(request):
try:
# Find teams where user is admin or member
team_ids = Team.objects.filter(
Q(admin_id=request.user.id) | Q(members__user=request.user)
).values_list('id', flat=True).distinct()
# Get all team IDs for current user
# team_ids = TeamMember.objects.filter(user=request.user).values_list('team_id', flat=True)
# team_ids = Team.objects.filter(Q(members__user=request.user) | Q(admin=request.user)).values_list('id', flat=True).distinct()
# team_ids = Team.objects.filter(admin_id=7)
team_ids = Team.objects.filter(Q(admin_id=request.user.id) | Q(members__user=request.user)).values_list('id', flat=True).distinct()
# Get all members of those teams
team_members = TeamMember.objects.filter(team_id__in=team_ids)
# Get all members of those teams
team_members = TeamMember.objects.filter(team_id__in=team_ids)
for tm in team_members:
print(f" - {tm.user.username} (Team: {tm.team.name})")
# Get users and their related customers
users = [tm.user for tm in team_members]
customers = Customer.objects.filter(user__in=users).select_related('user')
# Extract user objects
users = [tm.user for tm in team_members]
# Serialize customer details
serializer = CustomerSerializer(customers, many=True)
return Response({'members': serializer.data}, status=status.HTTP_200_OK)
serializer = SimpleUserSerializer(users, many=True)
return Response({'members': serializer.data}, status=status.HTTP_200_OK)
except Exception as e:
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)