Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions openstax/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

from api import urls as api_urls
from global_settings.views import throw_error, clear_entire_cache, sitemap
from pages.views import pardot_form_submit

admin.site.site_header = 'OpenStax'

Expand Down Expand Up @@ -43,6 +44,7 @@
path('apps/cms/api/webinars/', include('webinars.urls')),
path('apps/cms/api/donations/', include('donations.urls')),
path('apps/cms/api/oxmenus/', include('oxmenus.urls')),
path('apps/cms/api/pardot-forms/<int:page_id>/submit/', pardot_form_submit, name='pardot_form_submit'),

# route everything to /api/spike also...
path('apps/cms/api/spike/', include(wagtail_urls)),
Expand Down
128 changes: 128 additions & 0 deletions pages/migrations/0166_pardotformpage_pardotformfield.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Generated by Django 5.2.11 on 2026-03-17 23:31

import django.db.models.deletion
import modelcluster.fields
import wagtail.contrib.forms.models
import wagtail.fields
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("pages", "0165_alter_rootpage_body"),
("wagtailcore", "0096_referenceindex_referenceindex_source_object_and_more"),
]

operations = [
migrations.CreateModel(
name="PardotFormPage",
fields=[
(
"page_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.page",
),
),
("pardot_form_handler_url", models.URLField(help_text="The Pardot form handler endpoint URL.")),
(
"intro",
wagtail.fields.RichTextField(blank=True, help_text="Introductory text displayed above the form."),
),
(
"thank_you_text",
wagtail.fields.RichTextField(blank=True, help_text="Text displayed after a successful submission."),
),
("submit_button_text", models.CharField(default="Submit", max_length=255)),
],
options={
"verbose_name": "Pardot Form Page",
},
bases=(wagtail.contrib.forms.models.FormMixin, "wagtailcore.page"),
),
migrations.CreateModel(
name="PardotFormField",
fields=[
("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
("sort_order", models.IntegerField(blank=True, editable=False, null=True)),
(
"clean_name",
models.CharField(
blank=True,
default="",
help_text="Safe name of the form field, the label converted to ascii_snake_case",
max_length=255,
verbose_name="name",
),
),
(
"label",
models.CharField(help_text="The label of the form field", max_length=255, verbose_name="label"),
),
(
"field_type",
models.CharField(
choices=[
("singleline", "Single line text"),
("multiline", "Multi-line text"),
("email", "Email"),
("number", "Number"),
("url", "URL"),
("checkbox", "Checkbox"),
("checkboxes", "Checkboxes"),
("dropdown", "Drop down"),
("multiselect", "Multiple select"),
("radio", "Radio buttons"),
("date", "Date"),
("datetime", "Date/time"),
("hidden", "Hidden field"),
],
max_length=16,
verbose_name="field type",
),
),
("required", models.BooleanField(default=True, verbose_name="required")),
(
"choices",
models.TextField(
blank=True,
help_text="Comma or new line separated list of choices. Only applicable in checkboxes, radio and dropdown.",
verbose_name="choices",
),
),
(
"default_value",
models.TextField(
blank=True,
help_text="Default value. Comma or new line separated values supported for checkboxes.",
verbose_name="default value",
),
),
("help_text", models.CharField(blank=True, max_length=255, verbose_name="help text")),
(
"pardot_field_name",
models.CharField(
help_text="The Pardot external field name used as the POST parameter (e.g. email, firstName, company).",
max_length=255,
),
),
(
"page",
modelcluster.fields.ParentalKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="form_fields",
to="pages.pardotformpage",
),
),
],
options={
"ordering": ["sort_order"],
"abstract": False,
},
),
]
Loading
Loading