diff --git a/housewars/templates/housewars/pointsentry_form.html b/housewars/templates/housewars/pointsentry_form.html index e853e36..4c09f83 100644 --- a/housewars/templates/housewars/pointsentry_form.html +++ b/housewars/templates/housewars/pointsentry_form.html @@ -5,7 +5,7 @@ {% endblock %} {% block formtitle %} -

Add House Points

+

Add House Points

{% endblock %} {% block content %} diff --git a/housewars/urls.py b/housewars/urls.py index 6c9ffd1..5bb0b48 100644 --- a/housewars/urls.py +++ b/housewars/urls.py @@ -21,5 +21,5 @@ from . import views app_name = 'housewars' urlpatterns = [ path('', views.EntryCreateView.as_view(), name='signup'), - path('points/', views.CreatePointsEntry.as_view(), name='add_points') + path('points/', views.PointsEntryCreateView.as_view(), name='add_points') ] diff --git a/housewars/views.py b/housewars/views.py index a0eb78b..1fb28e3 100644 --- a/housewars/views.py +++ b/housewars/views.py @@ -22,16 +22,6 @@ class EntryCreateView(SessionWizardView): def get_template_names(self): return [TEMPLATES[self.steps.current]] - def post(self, *args, **kwargs): - form = self.get_form(data=self.request.POST, files=self.request.FILES) - - if not form.is_valid(): - if (form.errors.as_data().get('__all__')): - for error in form.errors.as_data().get('__all__'): - messages.error(self.request, error.messages[0]) - - return super().post(*args, **kwargs) - def get_form(self, step=None, data=None, files=None): form = super().get_form(step, data, files) @@ -43,11 +33,11 @@ class EntryCreateView(SessionWizardView): house=cd.get('user-house'), activity=OuterRef('id')).values('quota') # Set quota to custom quota or default, then set count to the total signups for each activity. Filter where quota is less than house signups. - filtered1 = Activity.objects.filter(time__isnull=False).annotate(final_quota=Coalesce(Subquery(quota[:1]), F('default_quota'))).annotate(count=Count( + filtered1 = Activity.objects.annotate(final_quota=Coalesce(Subquery(quota[:1]), F('default_quota'))).annotate(count=Count( 'activity1', filter=Q(activity1__house=cd.get('user-house')))).filter(final_quota__gt=F('count')) - filtered2 = Activity.objects.filter(time__isnull=False).annotate(final_quota=Coalesce(Subquery(quota[:1]), F('default_quota'))).annotate(count=Count( - 'activity1', filter=Q(activity1__house=cd.get('user-house')))).filter(final_quota__gt=F('count'), time=30) + filtered2 = Activity.objects.annotate(final_quota=Coalesce(Subquery(quota[:1]), F('default_quota'))).annotate(count=Count( + 'activity1', filter=Q(activity2__house=cd.get('user-house')))).filter(final_quota__gt=F('count'), time=30) # Render filtered as choices in activity select step form.fields['activity1'].queryset = filtered1 @@ -65,9 +55,14 @@ class EntryCreateView(SessionWizardView): return reverse('housewars:signup') -class CreatePointsEntry(CreateView): +class PointsEntryCreateView(CreateView): model = PointsEntry form_class = PointsEntryForm + def form_valid(self, form): + messages.success(self.request, 'Your points entry has been submitted.') + + return super().form_valid(form) + def get_success_url(self): return reverse('housewars:add_points') diff --git a/requirements.txt b/requirements.txt index db54141..1f846b9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,29 @@ asgiref==3.5.2 +async-generator==1.10 +attrs==22.1.0 autopep8==1.6.0 +certifi==2022.6.15 Django==4.0.4 django-formtools==2.3 django-smart-selects==1.6.0 gunicorn==20.1.0 +h11==0.13.0 +idna==3.3 mysqlclient==2.1.1 +outcome==1.2.0 Pillow==9.2.0 pycodestyle==2.8.0 +PySocks==1.7.1 python-dotenv==0.20.0 reportlab==3.6.11 +selenium==4.4.3 +sniffio==1.3.0 +sortedcontainers==2.4.0 sqlparse==0.4.2 toml==0.10.2 +trio==0.21.0 +trio-websocket==0.9.2 tzdata==2022.1 +urllib3==1.26.12 whitenoise==6.2.0 +wsproto==1.2.0