Initial commit
This commit is contained in:
46
env/lib/python3.10/site-packages/wagtail/contrib/forms/panels.py
vendored
Normal file
46
env/lib/python3.10/site-packages/wagtail/contrib/forms/panels.py
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from wagtail.admin.panels import Panel
|
||||
|
||||
|
||||
class FormSubmissionsPanel(Panel):
|
||||
def on_model_bound(self):
|
||||
if not self.heading:
|
||||
self.heading = _("%(model_name)s submissions") % {
|
||||
"model_name": self.model.get_verbose_name()
|
||||
}
|
||||
|
||||
class BoundPanel(Panel.BoundPanel):
|
||||
template_name = "wagtailforms/panels/form_responses_panel.html"
|
||||
|
||||
@cached_property
|
||||
def submissions(self):
|
||||
form_page_model = self.panel.model
|
||||
form_submissions_model = form_page_model().get_submission_class()
|
||||
if self.instance.pk:
|
||||
return form_submissions_model.objects.filter(page=self.instance)
|
||||
else:
|
||||
# Page has not been created yet, so there can't be any submissions
|
||||
return form_submissions_model.objects.none()
|
||||
|
||||
@cached_property
|
||||
def submission_count(self):
|
||||
return self.submissions.count()
|
||||
|
||||
def is_shown(self):
|
||||
return self.submission_count
|
||||
|
||||
def get_context_data(self, parent_context=None):
|
||||
context = super().get_context_data(parent_context)
|
||||
|
||||
context.update(
|
||||
{
|
||||
"submission_count": self.submission_count,
|
||||
"last_submit_time": self.submissions.order_by("submit_time")
|
||||
.last()
|
||||
.submit_time,
|
||||
}
|
||||
)
|
||||
|
||||
return context
|
||||
Reference in New Issue
Block a user