Skip to content

Commit d440e41

Browse files
Add third title to SignatoryPage (#2954)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent afd707f commit d440e41

File tree

10 files changed

+51
-0
lines changed

10 files changed

+51
-0
lines changed

cms/factories.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ class SignatoryPageFactory(wagtail_factories.PageFactory):
130130
name = factory.fuzzy.FuzzyText(prefix="Name")
131131
title_1 = factory.fuzzy.FuzzyText(prefix="Title_1")
132132
title_2 = factory.fuzzy.FuzzyText(prefix="Title_2")
133+
title_3 = factory.fuzzy.FuzzyText(prefix="Title_3")
133134
organization = factory.fuzzy.FuzzyText(prefix="Organization")
134135
signature_image = factory.SubFactory(wagtail_factories.ImageFactory)
135136

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Generated by Django 4.2.24 on 2025-09-26 15:01
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("cms", "0051_alter_formfield_field_type"),
9+
]
10+
11+
operations = [
12+
migrations.AddField(
13+
model_name="signatorypage",
14+
name="title_3",
15+
field=models.CharField(
16+
blank=True,
17+
help_text="Specify signatory third title in organization.",
18+
max_length=250,
19+
null=True,
20+
),
21+
),
22+
]

cms/models.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,7 @@ def signatory_items(self):
430430
"name": page.name,
431431
"title_1": page.title_1,
432432
"title_2": page.title_2,
433+
"title_3": page.title_3,
433434
"organization": page.organization,
434435
"signature_image": page.signature_image.file.url,
435436
}
@@ -1890,6 +1891,12 @@ class SignatoryPage(Page):
18901891
blank=True,
18911892
help_text="Specify signatory second title in organization.",
18921893
)
1894+
title_3 = models.CharField( # noqa: DJ001
1895+
max_length=250,
1896+
null=True,
1897+
blank=True,
1898+
help_text="Specify signatory third title in organization.",
1899+
)
18931900
organization = models.CharField( # noqa: DJ001
18941901
max_length=250,
18951902
null=True,
@@ -1913,13 +1920,15 @@ class Meta:
19131920
FieldPanel("name"),
19141921
FieldPanel("title_1"),
19151922
FieldPanel("title_2"),
1923+
FieldPanel("title_3"),
19161924
FieldPanel("organization"),
19171925
FieldPanel("signature_image"),
19181926
]
19191927
api_fields = [
19201928
APIField("name"),
19211929
APIField("title_1"),
19221930
APIField("title_2"),
1931+
APIField("title_3"),
19231932
APIField("organization"),
19241933
APIField("signature_image", serializer=ImageSerializer()),
19251934
]

cms/models_test.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,7 @@ def test_certificate_for_course_page():
562562
signatories__0__signatory__page__name="Name",
563563
signatories__0__signatory__page__title_1="Title_1",
564564
signatories__0__signatory__page__title_2="Title_2",
565+
signatories__0__signatory__page__title_3="Title_3",
565566
signatories__0__signatory__page__organization="Organization",
566567
signatories__0__signatory__page__signature_image__title="Image",
567568
)
@@ -572,6 +573,7 @@ def test_certificate_for_course_page():
572573
assert signatory.value.name == "Name"
573574
assert signatory.value.title_1 == "Title_1"
574575
assert signatory.value.title_2 == "Title_2"
576+
assert signatory.value.title_3 == "Title_3"
575577
assert signatory.value.organization == "Organization"
576578
assert signatory.value.signature_image.title == "Image"
577579

@@ -591,6 +593,7 @@ def test_certificate_for_program_page():
591593
signatories__0__signatory__page__name="Name",
592594
signatories__0__signatory__page__title_1="Title_1",
593595
signatories__0__signatory__page__title_2="Title_2",
596+
signatories__0__signatory__page__title_3="Title_3",
594597
signatories__0__signatory__page__organization="Organization",
595598
signatories__0__signatory__page__signature_image__title="Image",
596599
)
@@ -602,6 +605,7 @@ def test_certificate_for_program_page():
602605
assert signatory.value.name == "Name"
603606
assert signatory.value.title_1 == "Title_1"
604607
assert signatory.value.title_2 == "Title_2"
608+
assert signatory.value.title_3 == "Title_3"
605609
assert signatory.value.organization == "Organization"
606610
assert signatory.value.signature_image.title == "Image"
607611

cms/templates/certificate_page.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ <h2>Congratulations, {{ learner_name }}!</h2>
8888
{% if signatory.title_2 %}
8989
<p>{{ signatory.title_2 }}</p>
9090
{% endif %}
91+
{% if signatory.title_3 %}
92+
<p>{{ signatory.title_3 }}</p>
93+
{% endif %}
9194
{% if signatory.organization %}
9295
<p>{{ signatory.organization }}</p>
9396
{% endif %}

cms/wagtail_api/schema/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class SignatoryItemSerializer(serializers.Serializer):
1717
name = serializers.CharField()
1818
title_1 = serializers.CharField()
1919
title_2 = serializers.CharField()
20+
title_3 = serializers.CharField()
2021
organization = serializers.CharField()
2122
signature_image = serializers.CharField() # or serializers.URLField() if full URLs
2223

courses/models_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,7 @@ def test_certificate_choice_limits():
967967
signatories__0__signatory__page__name="Name",
968968
signatories__0__signatory__page__title_1="Title_1",
969969
signatories__0__signatory__page__title_2="Title_2",
970+
signatories__0__signatory__page__title_3="Title_3",
970971
signatories__0__signatory__page__organization="Organization",
971972
signatories__0__signatory__page__signature_image__title="Image",
972973
)
@@ -978,6 +979,7 @@ def test_certificate_choice_limits():
978979
signatories__0__signatory__page__name="Name",
979980
signatories__0__signatory__page__title_1="Title_1",
980981
signatories__0__signatory__page__title_2="Title_2",
982+
signatories__0__signatory__page__title_3="Title_3",
981983
signatories__0__signatory__page__organization="Organization",
982984
signatories__0__signatory__page__signature_image__title="Image",
983985
)

openapi/specs/v0.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3459,6 +3459,8 @@ components:
34593459
type: string
34603460
title_2:
34613461
type: string
3462+
title_3:
3463+
type: string
34623464
organization:
34633465
type: string
34643466
signature_image:
@@ -3469,6 +3471,7 @@ components:
34693471
- signature_image
34703472
- title_1
34713473
- title_2
3474+
- title_3
34723475
StaffDashboardUser:
34733476
type: object
34743477
description: Serializer for data we care about in the staff dashboard

openapi/specs/v1.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3459,6 +3459,8 @@ components:
34593459
type: string
34603460
title_2:
34613461
type: string
3462+
title_3:
3463+
type: string
34623464
organization:
34633465
type: string
34643466
signature_image:
@@ -3469,6 +3471,7 @@ components:
34693471
- signature_image
34703472
- title_1
34713473
- title_2
3474+
- title_3
34723475
StaffDashboardUser:
34733476
type: object
34743477
description: Serializer for data we care about in the staff dashboard

openapi/specs/v2.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3459,6 +3459,8 @@ components:
34593459
type: string
34603460
title_2:
34613461
type: string
3462+
title_3:
3463+
type: string
34623464
organization:
34633465
type: string
34643466
signature_image:
@@ -3469,6 +3471,7 @@ components:
34693471
- signature_image
34703472
- title_1
34713473
- title_2
3474+
- title_3
34723475
StaffDashboardUser:
34733476
type: object
34743477
description: Serializer for data we care about in the staff dashboard

0 commit comments

Comments
 (0)