Skip to content
Draft
Show file tree
Hide file tree
Changes from all 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
220 changes: 220 additions & 0 deletions core/choices.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
from django.utils.translation import gettext_lazy as _

LANGUAGE = [
("aa", "Afar"),
("af", "Afrikaans"),
("ak", "Akan"),
("sq", "Albanian"),
("am", "Amharic"),
("ar", "Arabic"),
("an", "Aragonese"),
("hy", "Armenian"),
("as", "Assamese"),
("av", "Avaric"),
("ae", "Avestan"),
("ay", "Aymara"),
("az", "Azerbaijani"),
("bm", "Bambara"),
("ba", "Bashkir"),
("eu", "Basque"),
("be", "Belarusian"),
("bn", "Bengali"),
("bi", "Bislama"),
("bs", "Bosnian"),
("br", "Breton"),
("bg", "Bulgarian"),
("my", "Burmese"),
("ca", "Catalan, Valencian"),
("ch", "Chamorro"),
("ce", "Chechen"),
("ny", "Chichewa, Chewa, Nyanja"),
("zh", "Chinese"),
(
"cu",
"Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic",
),
("cv", "Chuvash"),
("kw", "Cornish"),
("co", "Corsican"),
("cr", "Cree"),
("hr", "Croatian"),
("cs", "Czech"),
("da", "Danish"),
("dv", "Divehi, Dhivehi, Maldivian"),
("nl", "Dutch, Flemish"),
("dz", "Dzongkha"),
("en", "English"),
("eo", "Esperanto"),
("et", "Estonian"),
("ee", "Ewe"),
("fo", "Faroese"),
("fj", "Fijian"),
("fi", "Finnish"),
("fr", "French"),
("fy", "Western Frisian"),
("ff", "Fulah"),
("gd", "Gaelic, Scottish Gaelic"),
("gl", "Galician"),
("lg", "Ganda"),
("ka", "Georgian"),
("de", "German"),
("el", "Greek, Modern (1453–)"),
("kl", "Kalaallisut, Greenlandic"),
("gn", "Guarani"),
("gu", "Gujarati"),
("ht", "Haitian, Haitian Creole"),
("ha", "Hausa"),
("he", "Hebrew"),
("hz", "Herero"),
("hi", "Hindi"),
("ho", "Hiri Motu"),
("hu", "Hungarian"),
("is", "Icelandic"),
("io", "Ido"),
("ig", "Igbo"),
("id", "Indonesian"),
("ia", "Interlingua (International Auxiliary Language Association)"),
("ie", "Interlingue, Occidental"),
("iu", "Inuktitut"),
("ik", "Inupiaq"),
("ga", "Irish"),
("it", "Italian"),
("ja", "Japanese"),
("jv", "Javanese"),
("kn", "Kannada"),
("kr", "Kanuri"),
("ks", "Kashmiri"),
("kk", "Kazakh"),
("km", "Central Khmer"),
("ki", "Kikuyu, Gikuyu"),
("rw", "Kinyarwanda"),
("ky", "Kirghiz, Kyrgyz"),
("kv", "Komi"),
("kg", "Kongo"),
("ko", "Korean"),
("kj", "Kuanyama, Kwanyama"),
("ku", "Kurdish"),
("lo", "Lao"),
("la", "Latin"),
("lv", "Latvian"),
("li", "Limburgan, Limburger, Limburgish"),
("ln", "Lingala"),
("lt", "Lithuanian"),
("lu", "Luba-Katanga"),
("lb", "Luxembourgish, Letzeburgesch"),
("mk", "Macedonian"),
("mg", "Malagasy"),
("ms", "Malay"),
("ml", "Malayalam"),
("mt", "Maltese"),
("gv", "Manx"),
("mi", "Maori"),
("mr", "Marathi"),
("mh", "Marshallese"),
("mn", "Mongolian"),
("na", "Nauru"),
("nv", "Navajo, Navaho"),
("nd", "North Ndebele"),
("nr", "South Ndebele"),
("ng", "Ndonga"),
("ne", "Nepali"),
("no", "Norwegian"),
("nb", "Norwegian Bokmål"),
("nn", "Norwegian Nynorsk"),
("ii", "Sichuan Yi, Nuosu"),
("oc", "Occitan"),
("oj", "Ojibwa"),
("or", "Oriya"),
("om", "Oromo"),
("os", "Ossetian, Ossetic"),
("pi", "Pali"),
("ps", "Pashto, Pushto"),
("fa", "Persian"),
("pl", "Polish"),
("pt", "Português"),
("pa", "Punjabi, Panjabi"),
("qu", "Quechua"),
("ro", "Romanian, Moldavian, Moldovan"),
("rm", "Romansh"),
("rn", "Rundi"),
("ru", "Russian"),
("se", "Northern Sami"),
("sm", "Samoan"),
("sg", "Sango"),
("sa", "Sanskrit"),
("sc", "Sardinian"),
("sr", "Serbian"),
("sn", "Shona"),
("sd", "Sindhi"),
("si", "Sinhala, Sinhalese"),
("sk", "Slovak"),
("sl", "Slovenian"),
("so", "Somali"),
("st", "Southern Sotho"),
("es", "Español"),
("su", "Sundanese"),
("sw", "Swahili"),
("ss", "Swati"),
("sv", "Swedish"),
("tl", "Tagalog"),
("ty", "Tahitian"),
("tg", "Tajik"),
("ta", "Tamil"),
("tt", "Tatar"),
("te", "Telugu"),
("th", "Thai"),
("bo", "Tibetan"),
("ti", "Tigrinya"),
("to", "Tonga (Tonga Islands)"),
("ts", "Tsonga"),
("tn", "Tswana"),
("tr", "Turkish"),
("tk", "Turkmen"),
("tw", "Twi"),
("ug", "Uighur, Uyghur"),
("uk", "Ukrainian"),
("ur", "Urdu"),
("uz", "Uzbek"),
("ve", "Venda"),
("vi", "Vietnamese"),
("vo", "Volapük"),
("wa", "Walloon"),
("cy", "Welsh"),
("wo", "Wolof"),
("xh", "Xhosa"),
("yi", "Yiddish"),
("yo", "Yoruba"),
("za", "Zhuang, Chuang"),
("zu", "Zulu"),
]

MONTHS = [
("01", _("January")),
("02", _("February")),
("03", _("March")),
("04", _("April")),
("05", _("May")),
("06", _("June")),
("07", _("July")),
("08", _("August")),
("09", _("September")),
("10", _("October")),
("11", _("November")),
("12", _("December")),
]

# https://creativecommons.org/share-your-work/cclicenses/
# There are six different license types, listed from most to least permissive here:
LICENSE_TYPES = [
("by", _("by")),
("by-sa", _("by-sa")),
("by-nc", _("by-nc")),
("by-nc-sa", _("by-nc-sa")),
("by-nd", _("by-nd")),
("by-nc-nd", _("by-nc-nd")),
]

GENDER_CHOICES = [
("M", _("Male")),
("F", _("Female")),
]
114 changes: 114 additions & 0 deletions core/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Generated by Django 5.0.8 on 2026-03-24 12:30

import django.db.models.deletion
import wagtail.fields
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

initial = True

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name='FlexibleDate',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('year', models.IntegerField(blank=True, null=True, verbose_name='Year')),
('month', models.IntegerField(blank=True, null=True, verbose_name='Month')),
('day', models.IntegerField(blank=True, null=True, verbose_name='Day')),
],
),
migrations.CreateModel(
name='Language',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Creation date')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Last update date')),
('name', models.TextField(blank=True, null=True, verbose_name='Language Name')),
('code2', models.TextField(blank=True, null=True, verbose_name='Language code 2')),
('creator', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_creator', to=settings.AUTH_USER_MODEL, verbose_name='Creator')),
('updated_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_last_mod_user', to=settings.AUTH_USER_MODEL, verbose_name='Updater')),
],
options={
'verbose_name': 'Language',
'verbose_name_plural': 'Languages',
},
),
migrations.CreateModel(
name='License',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Creation date')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Last update date')),
('license_type', models.CharField(blank=True, max_length=16, null=True)),
('creator', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_creator', to=settings.AUTH_USER_MODEL, verbose_name='Creator')),
('updated_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_last_mod_user', to=settings.AUTH_USER_MODEL, verbose_name='Updater')),
],
options={
'verbose_name': 'License',
'verbose_name_plural': 'Licenses',
},
),
migrations.CreateModel(
name='LicenseStatement',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Creation date')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Last update date')),
('url', models.CharField(blank=True, max_length=255, null=True)),
('license_p', wagtail.fields.RichTextField(blank=True, null=True)),
('creator', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_creator', to=settings.AUTH_USER_MODEL, verbose_name='Creator')),
('language', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.language')),
('updated_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_last_mod_user', to=settings.AUTH_USER_MODEL, verbose_name='Updater')),
],
options={
'verbose_name': 'License Statement',
'verbose_name_plural': 'License Statements',
},
),
migrations.CreateModel(
name='Gender',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Creation date')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Last update date')),
('code', models.CharField(blank=True, max_length=5, null=True, verbose_name='Code')),
('gender', models.CharField(blank=True, max_length=50, null=True, verbose_name='Sex')),
('creator', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_creator', to=settings.AUTH_USER_MODEL, verbose_name='Creator')),
('updated_by', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='%(class)s_last_mod_user', to=settings.AUTH_USER_MODEL, verbose_name='Updater')),
],
options={
'unique_together': {('code', 'gender')},
},
),
migrations.AddIndex(
model_name='language',
index=models.Index(fields=['code2'], name='core_langua_code2_4f7261_idx'),
),
migrations.AddIndex(
model_name='language',
index=models.Index(fields=['name'], name='core_langua_name_4f83d7_idx'),
),
migrations.AddIndex(
model_name='license',
index=models.Index(fields=['license_type'], name='core_licens_license_5d1905_idx'),
),
migrations.AlterUniqueTogether(
name='license',
unique_together={('license_type',)},
),
migrations.AddIndex(
model_name='licensestatement',
index=models.Index(fields=['url'], name='core_licens_url_ec8078_idx'),
),
migrations.AlterUniqueTogether(
name='licensestatement',
unique_together={('url', 'license_p', 'language')},
),
]
Loading