Skip to content
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 users/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class CustomUserAdmin(admin.ModelAdmin):
{
"fields": (
"user_type",
"onboarding_stage",
# "onboarding_stage",
)
},
),
Expand Down
25 changes: 25 additions & 0 deletions users/migrations/0032_alter_customuser_onboarding_stage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 4.1.3 on 2023-04-14 11:41

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("users", "0031_alter_customuser_onboarding_stage"),
]

operations = [
migrations.AlterField(
model_name="customuser",
name="onboarding_stage",
field=models.PositiveSmallIntegerField(
blank=True,
default=None,
editable=False,
help_text="null(пустое) - онбординг пройден, 1, 2 и 3 - номера стадий онбординга",
null=True,
verbose_name="Стадия онбординга",
),
),
]
1 change: 1 addition & 0 deletions users/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ class CustomUser(AbstractUser):
null=True,
blank=True,
default=None,
editable=False,
verbose_name="Стадия онбординга",
help_text="null(пустое) - онбординг пройден, 1, 2 и 3 - номера стадий онбординга",
)
Expand Down
2 changes: 2 additions & 0 deletions users/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
LogoutView,
LikedProjectList,
RegisteredEventsList,
SetUserOnboardingStage,
)

app_name = "users"
Expand All @@ -30,6 +31,7 @@
path("users/roles/", UserAdditionalRolesView.as_view()),
path("users/types/", UserTypesView.as_view()),
path("users/<int:pk>/", UserDetail.as_view()),
path("users/<int:pk>/set_onboarding_stage/", SetUserOnboardingStage.as_view()),
path("users/reset-password/", EmailResetPassword.as_view()),
path("users/current/", CurrentUser.as_view()),
path("users/current/events/", RegisteredEventsList.as_view()),
Expand Down
21 changes: 21 additions & 0 deletions users/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
UpdateAPIView,
)
from rest_framework.permissions import AllowAny, IsAuthenticated
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework_simplejwt.tokens import RefreshToken, TokenError
Expand Down Expand Up @@ -339,3 +340,23 @@ class RegisteredEventsList(ListAPIView):
def get_queryset(self):
events = Event.objects.filter(registered_users__pk=self.request.user.pk)
return events


class SetUserOnboardingStage(APIView):
def put(self, request: Request, pk):
try:
request.user.onboarding_stage = request.data["onboarding_stage"]
request.user.save()
# print(request.user.pk, pk)
if request.user.pk != pk:
return Response(
status=status.HTTP_403_FORBIDDEN,
data={"error": "You cannot edit other users!"},
)
serialized_user = UserListSerializer(request.user)
data = serialized_user.data
return Response(status=status.HTTP_200_OK, data=data)
except Exception:
return Response(
status=status.HTTP_400_BAD_REQUEST, data={"error": "Something went wrong"}
)