Skip to content
Snippets Groups Projects
Commit b4897b29 authored by sandeepsajan0's avatar sandeepsajan0 Committed by Fredrik Jonsson
Browse files

Add custom error msg to review and determination forms

parent 0d04590a
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,8 @@ from hypha.apply.determinations.models import DeterminationForm ...@@ -6,6 +6,8 @@ from hypha.apply.determinations.models import DeterminationForm
from hypha.apply.review.admin_helpers import ButtonsWithClone from hypha.apply.review.admin_helpers import ButtonsWithClone
from hypha.apply.utils.admin import ListRelatedMixin from hypha.apply.utils.admin import ListRelatedMixin
from .admin_views import CreateDeterminationFormViewClass, EditDeterminationFormViewClass
class CloneView(CreateView, InstanceSpecificView): class CloneView(CreateView, InstanceSpecificView):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
...@@ -19,6 +21,8 @@ class DeterminationFormAdmin(ListRelatedMixin, ModelAdmin): ...@@ -19,6 +21,8 @@ class DeterminationFormAdmin(ListRelatedMixin, ModelAdmin):
list_display = ('name', 'used_by') list_display = ('name', 'used_by')
button_helper_class = ButtonsWithClone button_helper_class = ButtonsWithClone
clone_view_class = CloneView clone_view_class = CloneView
create_view_class = CreateDeterminationFormViewClass
edit_view_class = EditDeterminationFormViewClass
related_models = [ related_models = [
('applicationbasedeterminationform', 'application'), ('applicationbasedeterminationform', 'application'),
......
from wagtail.contrib.modeladmin.views import CreateView, EditView
from hypha.apply.utils.blocks import show_admin_form_error_messages
class CreateDeterminationFormViewClass(CreateView):
def form_invalid(self, form):
show_admin_form_error_messages(self.request, form)
return self.render_to_response(self.get_context_data(form=form))
class EditDeterminationFormViewClass(EditView):
def form_invalid(self, form):
show_admin_form_error_messages(self.request, form)
return self.render_to_response(self.get_context_data(form=form))
...@@ -9,6 +9,8 @@ from wagtail.contrib.modeladmin.views import CreateView, EditView ...@@ -9,6 +9,8 @@ from wagtail.contrib.modeladmin.views import CreateView, EditView
from wagtail.core import hooks from wagtail.core import hooks
from wagtail.core.models import Page from wagtail.core.models import Page
from hypha.apply.utils.blocks import show_admin_form_error_messages
def custom_admin_round_copy_view(request, page): def custom_admin_round_copy_view(request, page):
# Custom view to handle copied Round pages. # Custom view to handle copied Round pages.
...@@ -100,22 +102,12 @@ class CopyApplicationFormViewClass(CreateView): ...@@ -100,22 +102,12 @@ class CopyApplicationFormViewClass(CreateView):
class CreateApplicationFormViewClass(CreateView): class CreateApplicationFormViewClass(CreateView):
def form_invalid(self, form): def form_invalid(self, form):
for err in form.errors.values(): show_admin_form_error_messages(self.request, form)
if isinstance(err, list):
for form_field_error in err:
messages.error(self.request, form_field_error)
else:
messages.error(self.request, err.as_text())
return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data(form=form))
class EditApplicationFormViewClass(EditView): class EditApplicationFormViewClass(EditView):
def form_invalid(self, form): def form_invalid(self, form):
for err in form.errors.values(): show_admin_form_error_messages(self.request, form)
if isinstance(err, list):
for form_field_error in err:
messages.error(self.request, form_field_error)
else:
messages.error(self.request, err.as_text())
return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data(form=form))
...@@ -6,6 +6,7 @@ from hypha.apply.review.models import ReviewForm ...@@ -6,6 +6,7 @@ from hypha.apply.review.models import ReviewForm
from hypha.apply.utils.admin import ListRelatedMixin from hypha.apply.utils.admin import ListRelatedMixin
from .admin_helpers import ButtonsWithClone from .admin_helpers import ButtonsWithClone
from .admin_views import CreateReviewFormViewClass, EditReviewFormViewClass
class CloneView(CreateView, InstanceSpecificView): class CloneView(CreateView, InstanceSpecificView):
...@@ -20,6 +21,8 @@ class ReviewFormAdmin(ListRelatedMixin, ModelAdmin): ...@@ -20,6 +21,8 @@ class ReviewFormAdmin(ListRelatedMixin, ModelAdmin):
list_display = ('name', 'used_by') list_display = ('name', 'used_by')
button_helper_class = ButtonsWithClone button_helper_class = ButtonsWithClone
clone_view_class = CloneView clone_view_class = CloneView
create_view_class = CreateReviewFormViewClass
edit_view_class = EditReviewFormViewClass
related_models = [ related_models = [
('applicationbasereviewform', 'application'), ('applicationbasereviewform', 'application'),
......
from wagtail.contrib.modeladmin.views import CreateView, EditView
from hypha.apply.utils.blocks import show_admin_form_error_messages
class CreateReviewFormViewClass(CreateView):
def form_invalid(self, form):
show_admin_form_error_messages(self.request, form)
return self.render_to_response(self.get_context_data(form=form))
class EditReviewFormViewClass(EditView):
def form_invalid(self, form):
show_admin_form_error_messages(self.request, form)
return self.render_to_response(self.get_context_data(form=form))
...@@ -6,6 +6,7 @@ from django.forms.utils import ErrorList ...@@ -6,6 +6,7 @@ from django.forms.utils import ErrorList
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from pagedown.widgets import PagedownWidget from pagedown.widgets import PagedownWidget
from wagtail.admin import messages
from wagtail.core.blocks import StaticBlock, StreamBlock, StreamValue from wagtail.core.blocks import StaticBlock, StreamBlock, StreamValue
from hypha.apply.stream_forms.blocks import ( from hypha.apply.stream_forms.blocks import (
...@@ -32,6 +33,15 @@ def nice_field_name(name): ...@@ -32,6 +33,15 @@ def nice_field_name(name):
return name.title().replace('_', ' ') return name.title().replace('_', ' ')
def show_admin_form_error_messages(request, form):
for err in form.errors.values():
if isinstance(err, list):
for form_field_error in err:
messages.error(request, form_field_error)
else:
messages.error(request, err.as_text())
class RichTextFieldBlock(TextFieldBlock): class RichTextFieldBlock(TextFieldBlock):
widget = RICH_TEXT_WIDGET widget = RICH_TEXT_WIDGET
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment