From 2c45a9f2abeb0ae458531ef6611951f5a18dec70 Mon Sep 17 00:00:00 2001 From: Brody Wilton <brodywilton@hotmail.com> Date: Mon, 25 Mar 2024 16:56:21 +0000 Subject: [PATCH] Restrict ability to run app behind a token count of greater than 0 --- myproject/myapp/models.py | 4 ++-- myproject/myapp/templates/index1.html | 12 ++++++++++++ myproject/myapp/views.py | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/myproject/myapp/models.py b/myproject/myapp/models.py index 663f7ba..b09b3f1 100644 --- a/myproject/myapp/models.py +++ b/myproject/myapp/models.py @@ -63,8 +63,8 @@ class UserTokenCount(models.Model): @receiver(post_save, sender=User) def create_or_update_user_profile(sender, instance, created, **kwargs): if created: - UserTokenCount.objects.create(user=instance) - # Profile.objects.create(user=instance) + UserTokenCount.objects.get_or_create(user=instance) + Profile.objects.get_or_create(user=instance) # instance.profile.save() class Action(Enum): diff --git a/myproject/myapp/templates/index1.html b/myproject/myapp/templates/index1.html index db04949..530819e 100644 --- a/myproject/myapp/templates/index1.html +++ b/myproject/myapp/templates/index1.html @@ -19,6 +19,7 @@ </div> </div> + {% if token_count > 0 %} <div class="gap-16 items-center py-8 px-4 mx-auto max-w-screen-xl lg:grid lg:grid-cols-2"> <form enctype="multipart/form-data" method="post" id="uploadForm"> {% csrf_token %} @@ -30,6 +31,17 @@ </button> </form> </div> + {% else %} + <div class="gap-16 items-center py-8 px-4 mx-auto max-w-screen-xl lg:grid lg:grid-cols-2"> + <div class="font-light text-gray-500 sm:text-lg dark:text-gray-400"> + <h2 class="mb-4 text-4xl tracking-tight font-extrabold text-gray-900 dark:text-white">Tokens required</h2> + <p class="mb-4">You require more tokens to use this service</p> + <button class="text-white bg-gray-800 hover:bg-gray-900 focus:outline-none focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-5 py-2.5 me-2 mb-2 dark:bg-gray-800 dark:hover:bg-gray-700 dark:focus:ring-gray-700 dark:border-gray-700"> + <a href="{% url 'pricing' %}">Buy Tokens</a> + </button> + </div> + </div> + {% endif %} <div id="player" class="py-8 px-4 mx-auto max-w-screen-xl lg:py-8 hidden"> diff --git a/myproject/myapp/views.py b/myproject/myapp/views.py index 9074224..912c1a2 100644 --- a/myproject/myapp/views.py +++ b/myproject/myapp/views.py @@ -111,6 +111,8 @@ def index(request): # Handle authenticated users if request.user.is_authenticated: + token_count = UserTokenCount.objects.get(user=request.user).token_count + context['token_count'] = token_count if request.method == 'POST': form = InstrumentDetectionForm(request.POST, request.FILES) if form.is_valid() and 'audio_file' in request.FILES: -- GitLab