In the previous section, we has seen how to register students for workshops. But there was no validation performed during the registration process. Validations such as wether the max registrations have reached, wether registrations for a particular workshop has started or wether a user has already registered for a particular workshop. These validations needs to be done before registration and the corresponding message should be displayed on the webpage.
So first, we shall check wether registrations are open for a particular workshop or not. This can be done be adding a method inside the AbstractEvent Model in event/models.py
file :
from django.utils import timezone
def is_registration_open(self):
if timezone.now()<self.registration_start_date:
return False
return True
Now, this method can be called on the workshop_detail
page :
{% if not workshop.is_registration_open %}
<div class="text-center mt-4">
<button class="bg-gray-500 text-white font-semibold py-2 px-4 rounded-md cursor-not-allowed" disabled>
The workshop Registration is not open yet !!.
</button>
</div>
{% else %}
<div class="text-center mt-4">
<form method="post" action="{% url 'register_workshop' workshop_slug=workshop.slug %}">
{% csrf_token %}
<button type="submit" class="bg-blue-500 hover:bg-blue-700 text-white text-xl font-semibold py-2 px-4 rounded-md transition-colors duration-300">
Register
</button>
</form>
</div>
{% endif %}
You can check this, by changing the registration start date through the admin page.