Repository: DDMAL/CantusDB

Issue:
Admin Area, Update Chant page: "Cao concordances"
from Debra:

> In the headings for the fields, Cao is an acronym and so it should be "CAO". If you need me to find a page that has this in the Django admin panel, I can do that tomorrow and send you a link.
> I think it was in the "chant" detail part, and I remember the background being turquoise so it was within the Django view, not the beige ms page background view.

![Screenshot 2023-09-14 at 11 55 20 AM](https://github.com/DDMAL/CantusDB/assets/58090591/d9e17cba-4171-40be-a732-2de965284e28)



Discussion:

Resolving patch:
diff --git a/django/cantusdb_project/main_app/migrations/0005_alter_chant_ah_volume_alter_chant_cantus_id_and_more.py b/django/cantusdb_project/main_app/migrations/0005_alter_chant_ah_volume_alter_chant_cantus_id_and_more.py
new file mode 100644
--- /dev/null
+++ b/django/cantusdb_project/main_app/migrations/0005_alter_chant_ah_volume_alter_chant_cantus_id_and_more.py
@@ -0,0 +1,83 @@
+# Generated by Django 4.2.3 on 2023-09-14 20:43
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("main_app", "0004_alter_chant_source_alter_sequence_source"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="chant",
+            name="ah_volume",
+            field=models.CharField(
+                blank=True, max_length=255, null=True, verbose_name="AH volume"
+            ),
+        ),
+        migrations.AlterField(
+            model_name="chant",
+            name="cantus_id",
+            field=models.CharField(
+                blank=True,
+                db_index=True,
+                max_length=255,
+                null=True,
+                verbose_name="cantus ID",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="chant",
+            name="cao_concordances",
+            field=models.CharField(
+                blank=True, max_length=63, null=True, verbose_name="CAO concordances"
+            ),
+        ),
+        migrations.AlterField(
+            model_name="chant",
+            name="differentia_new",
+            field=models.CharField(
+                blank=True,
+                max_length=12,
+                null=True,
+                verbose_name="differentiae database",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="sequence",
+            name="ah_volume",
+            field=models.CharField(
+                blank=True, max_length=255, null=True, verbose_name="AH volume"
+            ),
+        ),
+        migrations.AlterField(
+            model_name="sequence",
+            name="cantus_id",
+            field=models.CharField(
+                blank=True,
+                db_index=True,
+                max_length=255,
+                null=True,
+                verbose_name="cantus ID",
+            ),
+        ),
+        migrations.AlterField(
+            model_name="sequence",
+            name="cao_concordances",
+            field=models.CharField(
+                blank=True, max_length=63, null=True, verbose_name="CAO concordances"
+            ),
+        ),
+        migrations.AlterField(
+            model_name="sequence",
+            name="differentia_new",
+            field=models.CharField(
+                blank=True,
+                max_length=12,
+                null=True,
+                verbose_name="differentiae database",
+            ),
+        ),
+    ]
diff --git a/django/cantusdb_project/main_app/models/base_chant.py b/django/cantusdb_project/main_app/models/base_chant.py
--- a/django/cantusdb_project/main_app/models/base_chant.py
+++ b/django/cantusdb_project/main_app/models/base_chant.py
@@ -43,11 +43,15 @@ class Meta:
     col1 = models.CharField(blank=True, null=True, max_length=255)
     col2 = models.CharField(blank=True, null=True, max_length=255)
     col3 = models.CharField(blank=True, null=True, max_length=255)
-    ah_volume = models.CharField(blank=True, null=True, max_length=255)
+    ah_volume = models.CharField(
+        blank=True, null=True, max_length=255, verbose_name="AH volume"
+    )
     source = models.ForeignKey(
         "Source", on_delete=models.CASCADE
     )  # PROTECT so that we can't delete a source with chants in it
-    cantus_id = models.CharField(blank=True, null=True, max_length=255, db_index=True)
+    cantus_id = models.CharField(
+        blank=True, null=True, max_length=255, db_index=True, verbose_name="cantus ID"
+    )
     image_link = models.URLField(blank=True, null=True)
     json_info = models.JSONField(null=True, blank=True)
     marginalia = models.CharField(max_length=63, null=True, blank=True)
@@ -58,7 +62,13 @@ class Meta:
     feast = models.ForeignKey("Feast", on_delete=models.PROTECT, null=True, blank=True)
     mode = models.CharField(max_length=63, null=True, blank=True)
     differentia = models.CharField(blank=True, null=True, max_length=63)
-    differentia_new = models.CharField(blank=True, null=True, max_length=12)
+    differentia_new = models.CharField(
+        blank=True,
+        null=True,
+        max_length=12,
+        verbose_name="differentiae database",  # eventually, we should rename this entire
+        #                                     # field from `differentia_new` to `differentiae_db`
+    )
     finalis = models.CharField(blank=True, null=True, max_length=63)
     extra = models.CharField(blank=True, null=True, max_length=63)
     chant_range = models.CharField(
@@ -103,7 +113,7 @@ class Meta:
     # NB: the cao_concordances field should not be used in public-facing views, as it contains data that may be out-of-date.
     # For more information, see https://github.com/DDMAL/CantusDB/wiki/BaseChant-Model
     cao_concordances = models.CharField(
-        blank=True, null=True, max_length=63
+        blank=True, null=True, max_length=63, verbose_name="CAO concordances"
     )  # !! see lines immediately above
     proofread_by = models.ManyToManyField(get_user_model(), blank=True)
     melody_id = models.CharField(blank=True, null=True, max_length=63)


Test patch: