Skip to content
This repository was archived by the owner on Mar 23, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion FD/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

'rest_framework',
'drf_spectacular',
'rest_framework_simplejwt.token_blacklist',
# 'rest_framework_simplejwt.token_blacklist',

'corsheaders',
'storages',
Expand Down
5 changes: 2 additions & 3 deletions authentication/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 5.1.2 on 2024-11-18 18:24
# Generated by Django 5.1.2 on 2024-11-25 21:52

import django.db.models.deletion
from django.db import migrations, models
Expand All @@ -21,7 +21,6 @@ class Migration(migrations.Migration):
('email', models.EmailField(max_length=255)),
('password', models.CharField(max_length=255)),
('date_joined', models.DateTimeField(auto_now_add=True)),

],
),
migrations.CreateModel(
Expand All @@ -30,6 +29,7 @@ class Migration(migrations.Migration):
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('email', models.EmailField(max_length=255, unique=True, verbose_name='Email Address')),
('username', models.CharField(max_length=255, unique=True, verbose_name='Username')),
('profile_image', models.ImageField(blank=True, null=True, upload_to='profile_images/')),
('password', models.CharField(max_length=255, verbose_name='Password')),
('is_staff', models.BooleanField(default=False)),
('is_superuser', models.BooleanField(default=False)),
Expand All @@ -38,7 +38,6 @@ class Migration(migrations.Migration):
('level', models.CharField(default='A1', max_length=2)),
('city', models.CharField(blank=True, max_length=255, null=True)),
('neighborhood', models.CharField(blank=True, max_length=255, null=True)),

('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
],
Expand Down
20 changes: 0 additions & 20 deletions authentication/migrations/0002_tempuser_date_joined.py

This file was deleted.

18 changes: 0 additions & 18 deletions authentication/migrations/0002_user_profile_image.py

This file was deleted.

5 changes: 1 addition & 4 deletions authentication/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,6 @@ def validate(self, attrs):
'refresh_token': str(tokens['refresh']),
}

class UserLogoutSerializer(serializers.Serializer):
refresh_token = serializers.CharField()

class PasswordResetRequestSerializer(serializers.ModelSerializer):
email = serializers.EmailField()
class Meta:
Expand Down Expand Up @@ -201,7 +198,7 @@ def update(self, instance, validated_data):
instance.level = validated_data.get('level', instance.level)
instance.city = validated_data.get('city', instance.city)
instance.neighborhood = validated_data.get('neighborhood', instance.neighborhood)
profile_image = validated_data.get('profile_image', instance.profile_image)
instance.profile_image = validated_data.get('profile_image', instance.profile_image)
instance.save()
return instance

1 change: 0 additions & 1 deletion authentication/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
path('verify-email/', VerifyEmailView.as_view()),

path('login/', LoginUserView.as_view()),
path('logout/', LogoutUserView.as_view()),


path('password-reset/', PasswordResetRequestView.as_view()),
Expand Down
14 changes: 0 additions & 14 deletions authentication/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,20 +75,6 @@ def post(self, request, uidb64, token):
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


class LogoutUserView(APIView):
serializer_class = UserLogoutSerializer

def post(self, request):
serializer = self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)

refresh_token = serializer.validated_data.get('refresh_token')
try:
token = RefreshToken(refresh_token)
token.blacklist()
return Response("logout successfully", status=status.HTTP_200_OK)
except:
return Response("invalid token", status=status.HTTP_400_BAD_REQUEST)

class UserRetriveView(APIView):
serializer_class= UserRetriveSerializer
Expand Down
3 changes: 2 additions & 1 deletion groups/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 5.1.2 on 2024-11-18 18:24
# Generated by Django 5.1.2 on 2024-11-25 21:53

import django.db.models.deletion
from django.conf import settings
Expand All @@ -20,6 +20,7 @@ class Migration(migrations.Migration):
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=255)),
('description', models.TextField(blank=True, null=True)),
('image', models.ImageField(blank=True, null=True, upload_to='group_images/')),
('level', models.CharField(max_length=255)),
('city', models.CharField(blank=True, max_length=255, null=True)),
('neighborhood', models.CharField(blank=True, max_length=255, null=True)),
Expand Down
1 change: 1 addition & 0 deletions groups/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
class Group(models.Model):
title = models.CharField(max_length=255)
description = models.TextField(blank=True, null=True)
image = models.ImageField(upload_to='group_images/', null=True, blank=True)
level = models.CharField(max_length=255)
city = models.CharField(max_length=255, blank=True, null=True)
neighborhood = models.CharField(max_length=255, blank=True, null=True)
Expand Down
5 changes: 3 additions & 2 deletions groups/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class GroupRetrieveSerializer(serializers.ModelSerializer):

class Meta:
model = Group
fields = ['id', 'title', 'description', 'level', 'city', 'neighborhood',
fields = ['id', 'title', 'description', 'image', 'level', 'city', 'neighborhood',
'created_at', 'max_members', 'meeting_url', 'private',
'owner_username', 'member_usernames']

Expand All @@ -53,7 +53,7 @@ def get_member_usernames(self, obj):
class GroupUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = ['title', 'description', 'level', 'city', 'neighborhood', 'max_members', 'meeting_url', 'private']
fields = ['title', 'description', 'image', 'level', 'city', 'neighborhood', 'max_members', 'meeting_url', 'private']

def validate(self, data):
if 'level' in data and data['level'] not in VALID_LEVELS:
Expand All @@ -69,6 +69,7 @@ def validate(self, data):
def update(self, instance, validated_data):
instance.title = validated_data.get('title', instance.title)
instance.description = validated_data.get('description', instance.description)
instance.image = validated_data.get('image', instance.image)
instance.level = validated_data.get('level', instance.level)
instance.city = validated_data.get('city', instance.city)
instance.neighborhood = validated_data.get('neighborhood', instance.neighborhood)
Expand Down
4 changes: 3 additions & 1 deletion groups/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from rest_framework.parsers import MultiPartParser, FormParser, JSONParser

from authentication.models import User

from authentication.models import User
from .serializers import *
from .models import *
from .permissions import *
Expand Down Expand Up @@ -38,6 +39,7 @@ def get(self, request, *args, **kwargs):

class GroupUpdateView(APIView):
permission_classes = [IsAuthenticated, IsGroupOwner]
parser_classes = [MultiPartParser, FormParser, JSONParser]

serializer_class = GroupUpdateSerializer

Expand Down
4 changes: 2 additions & 2 deletions home/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 5.1.2 on 2024-11-18 18:25
# Generated by Django 5.1.2 on 2024-11-25 21:53

import django.db.models.deletion
from django.conf import settings
Expand Down Expand Up @@ -26,7 +26,7 @@ class Migration(migrations.Migration):
],
),
migrations.CreateModel(
name='TimeSlot',
name='UserTimeSlot',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('day_of_week', models.CharField(max_length=255)),
Expand Down