Beispiel #1
0
 def save(self, *args, **kwargs):
     if not self.pk:
         existing_codes = Affiliate.objects.values_list('unique_code',
                                                        flat=True)
         self.unique_code = generate_random_code(
             initials=self.user.first_name.lower()[:3],
             n=5,
             existing_codes=existing_codes)
     super(Affiliate, self).save(*args, **kwargs)
Beispiel #2
0
def register_view(request):
    if request.user.is_authenticated:
        return redirect(reverse(dashboard_view))

    if request.method == 'GET':
        return render(request, 'account/register.html')
    elif request.method == 'POST':
        data = request.POST
        email = data.get('email')

        if User.objects.filter(email=email).exists():
            return JsonResponse(
                {'error': "User with this email already exists."}, status=500)

        first_name = data.get('first_name')
        last_name = data.get('last_name')
        password = data.get('password')
        phone_no = data.get('phone_no')
        username = generate_random_code(
            initials=first_name.lower()[:3],
            n=5,
            alphabets=False,
            existing_codes=User.objects.values_list('username', flat=True))

        # create user
        try:
            user = User.objects.create(username=username,
                                       first_name=first_name,
                                       last_name=last_name,
                                       email=email,
                                       is_active=False)
            user.set_password(password)
            user.save()
        except Exception as e:
            return JsonResponse({'error': str(e)}, status=500)

        # create affiliate account
        Affiliate.objects.create(user=user, phone_no=phone_no)

        # send account verification link
        current_site = get_current_site(request)
        message = render_to_string(
            'account/account_activation_email.html', {
                'user': user,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
        send_account_verification_email(user.email, message)

        return JsonResponse({'detail': 'done'})
Beispiel #3
0
def get_notification_category_image_upload_path(instance, filename):
    return "notification-category-images/{}/{}-{}".format(
        instance.id, generate_random_code(n=5),
        filename.split('/')[-1])
Beispiel #4
0
def get_scout_task_category_image_upload_path(instance, filename):
    return "scout-task-categories/{}/{}-{}".format(instance.id, generate_random_code(n=5), filename.split('/')[-1])
Beispiel #5
0
def get_scout_document_thumbnail_upload_path(instance, filename):
    return "scouts/{}/documents/{}-{}/thumbnail/{}-{}".format(instance.scout.id, instance.type, instance.id,
                                                              generate_random_code(n=5), filename.split('/')[-1])
Beispiel #6
0
def get_picture_upload_path(instance, filename):
    return "scouts/{}/pictures/{}-{}".format(instance.scout.id, generate_random_code(n=5),
                                             filename.split('/')[-1])
Beispiel #7
0
def get_topic_image_upload_path(instance, filename):
    return "faqs/topics/{}/{}-{}".format(instance.slug,
                                         generate_random_code(n=5),
                                         filename.split('/')[-1])
def get_thumbnail_upload_path(instance, filename):
    return "affiliates/{}/thumbnail/{}-{}".format(instance.affiliate.id,
                                                  generate_random_code(n=5),
                                                  filename.split('/')[-1])
Beispiel #9
0
def get_property_on_boarding_house_picture_upload_path(instance, filename):
    return "scouts/tasks/{}/PropertyOnBoardingHousePhoto/{}/pictures/{}-{}".format(
        instance.property_on_boarding_house_photo_sub_task.task.id,
        instance.property_on_boarding_house_photo_sub_task.id,
        generate_random_code(n=5),
        filename.split('/')[-1])