Skip to content

Commit da5207f

Browse files
committed
Finished with registering new user to program
1 parent f2750de commit da5207f

2 files changed

Lines changed: 37 additions & 8 deletions

File tree

partner_programs/views.py

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,40 @@ class PartnerProgramCreateUserAndRegister(generics.GenericAPIView):
6060
serializer_class = PartnerProgramNewUserSerializer
6161

6262
def post(self, request, *args, **kwargs):
63-
# todo
64-
# register new user
65-
# create PartnerProgram m2m table if not created
66-
# add user to m2m
67-
# program = PartnerProgram.objects.get(pk=kwargs["pk"])
68-
# user = User()
69-
return Response(status=status.HTTP_201_CREATED)
63+
try:
64+
program = PartnerProgram.objects.get(pk=kwargs["pk"])
65+
data = request.data
66+
user_fields = (
67+
"email",
68+
"password",
69+
"first_name",
70+
"last_name",
71+
"patronymic",
72+
"birthday",
73+
"city",
74+
)
75+
# fixme: should we set verification_date?, if no then we need to ad them to ClickUp list
76+
user = User(
77+
**{field_name: data[field_name] for field_name in user_fields},
78+
is_active=True, # bypass email verification
79+
onboarding_stage=None, # bypass onboarding
80+
)
81+
user.save()
82+
83+
user_profile_program_data = {
84+
field_name: data.get(field_name)
85+
for field_name in data
86+
if field_name not in user_fields
87+
}
88+
added_user_profile = PartnerProgramUserProfile(
89+
partner_program_data=user_profile_program_data,
90+
user=user,
91+
partner_program=program,
92+
)
93+
added_user_profile.save()
94+
return Response(status=status.HTTP_201_CREATED)
95+
except PartnerProgram.DoesNotExist:
96+
return Response(status=status.HTTP_404_NOT_FOUND)
7097

7198

7299
class PartnerProgramRegister(generics.GenericAPIView):
@@ -100,7 +127,8 @@ def post(self, request, *args, **kwargs):
100127
)
101128

102129

103-
class PartnerProgramSetViewed(generics.CreateAPIView):
130+
class PartnerProgramSetViewed(generics.GenericAPIView):
131+
# fixme
104132
# serializer_class = SetViewedSerializer
105133
permission_classes = [IsAuthenticated]
106134

projects/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ def update(self, request, *args, **kwargs):
291291

292292
class ProjectNewsDetailSetViewed(generics.CreateAPIView):
293293
queryset = ProjectNews.objects.all()
294+
# fixme
294295
# serializer_class = SetViewedSerializer
295296
permission_classes = [IsAuthenticated]
296297

0 commit comments

Comments
 (0)