From e95005c5463c42a4777726efdcf12ad2020c609f Mon Sep 17 00:00:00 2001 From: David Morris Date: Thu, 2 Nov 2023 18:50:32 +0000 Subject: [PATCH 1/2] Adding ranks form/model --- cmp/forms.py | 9 +- cmp/migrations/0002_country.py | 30 ++ ...y_alpha2_remove_country_alpha3_and_more.py | 368 ++++++++++++++++++ cmp/migrations/0004_alter_country_cioc.py | 17 + cmp/migrations/0005_alter_country_tld.py | 17 + .../0006_alter_country_name_official.py | 17 + .../0007_alter_country_name_common.py | 17 + cmp/migrations/0008_alter_country_ccn3.py | 17 + cmp/migrations/0009_alter_country_ccn3.py | 17 + cmp/migrations/0010_rank.py | 41 ++ .../0011_rename_abbr_rank_abbreviation.py | 17 + .../0012_company_theatre_and_more.py | 242 ++++++++++++ cmp/migrations/0013_alter_rank_id.py | 17 + cmp/models.py | 142 ++++--- cmp/urls.py | 2 + cmp/views.py | 20 +- scripts/insert-all-countries.py | 44 --- scripts/insert-all-ranks.py | 10 +- templates/cmp/edit-ranks.html | 16 + templates/cmp/ranks.html | 26 ++ 20 files changed, 986 insertions(+), 100 deletions(-) create mode 100644 cmp/migrations/0002_country.py create mode 100644 cmp/migrations/0003_remove_country_alpha2_remove_country_alpha3_and_more.py create mode 100644 cmp/migrations/0004_alter_country_cioc.py create mode 100644 cmp/migrations/0005_alter_country_tld.py create mode 100644 cmp/migrations/0006_alter_country_name_official.py create mode 100644 cmp/migrations/0007_alter_country_name_common.py create mode 100644 cmp/migrations/0008_alter_country_ccn3.py create mode 100644 cmp/migrations/0009_alter_country_ccn3.py create mode 100644 cmp/migrations/0010_rank.py create mode 100644 cmp/migrations/0011_rename_abbr_rank_abbreviation.py create mode 100644 cmp/migrations/0012_company_theatre_and_more.py create mode 100644 cmp/migrations/0013_alter_rank_id.py create mode 100644 templates/cmp/edit-ranks.html create mode 100644 templates/cmp/ranks.html diff --git a/cmp/forms.py b/cmp/forms.py index a44ed0d..34e0e46 100644 --- a/cmp/forms.py +++ b/cmp/forms.py @@ -3,6 +3,7 @@ from .models import CustomUser from .models import Country +from .models import Rank class CustomUserCreationForm(UserCreationForm): class Meta: @@ -19,4 +20,10 @@ class Meta: class editCountryForm(forms.ModelForm): class Meta: model = Country - fields = "__all__" \ No newline at end of file + fields = "__all__" + +class editRankForm(forms.ModelForm): + class Meta: + model = Rank + fields = "__all__" + diff --git a/cmp/migrations/0002_country.py b/cmp/migrations/0002_country.py new file mode 100644 index 0000000..bf6dd93 --- /dev/null +++ b/cmp/migrations/0002_country.py @@ -0,0 +1,30 @@ +# Generated by Django 4.2.5 on 2023-10-14 19:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0001_initial"), + ] + + operations = [ + migrations.CreateModel( + name="Country", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(max_length=50)), + ("old_id", models.IntegerField(blank=True, null=True)), + ("alpha2", models.CharField(max_length=2)), + ("alpha3", models.CharField(max_length=3)), + ], + ), + ] diff --git a/cmp/migrations/0003_remove_country_alpha2_remove_country_alpha3_and_more.py b/cmp/migrations/0003_remove_country_alpha2_remove_country_alpha3_and_more.py new file mode 100644 index 0000000..225530d --- /dev/null +++ b/cmp/migrations/0003_remove_country_alpha2_remove_country_alpha3_and_more.py @@ -0,0 +1,368 @@ +# Generated by Django 4.2.5 on 2023-10-21 15:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0002_country"), + ] + + operations = [ + migrations.RemoveField( + model_name="country", + name="alpha2", + ), + migrations.RemoveField( + model_name="country", + name="alpha3", + ), + migrations.RemoveField( + model_name="country", + name="name", + ), + migrations.RemoveField( + model_name="country", + name="old_id", + ), + migrations.AddField( + model_name="country", + name="alt_spellings", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="area", + field=models.FloatField(default=0.0), + ), + migrations.AddField( + model_name="country", + name="borders", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="callingCodes", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="capital", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="cca2", + field=models.CharField(default="", max_length=2, unique=True), + ), + migrations.AddField( + model_name="country", + name="cca3", + field=models.CharField(default="", max_length=3, unique=True), + ), + migrations.AddField( + model_name="country", + name="ccn3", + field=models.CharField(default="", max_length=3, unique=True), + ), + migrations.AddField( + model_name="country", + name="cioc", + field=models.CharField(default="", max_length=3, unique=True), + ), + migrations.AddField( + model_name="country", + name="currencies", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="demonyms_eng_f", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="demonyms_eng_m", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="demonyms_fra_f", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="demonyms_fra_m", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="flag", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="idd_root", + field=models.CharField(default="", max_length=10), + ), + migrations.AddField( + model_name="country", + name="idd_suffixes", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="independent", + field=models.BooleanField(default=True), + ), + migrations.AddField( + model_name="country", + name="landlocked", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="country", + name="languages", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="latlng", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="name_common", + field=models.CharField(default="", max_length=255, unique=True), + ), + migrations.AddField( + model_name="country", + name="name_official", + field=models.CharField(default="", max_length=255, unique=True), + ), + migrations.AddField( + model_name="country", + name="region", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="status", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="subregion", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="tld", + field=models.CharField(default="", max_length=10, unique=True), + ), + migrations.AddField( + model_name="country", + name="translations_ces_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_ces_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_deu_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_deu_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_est_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_est_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_fin_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_fin_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_fra_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_fra_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_hrv_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_hrv_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_hun_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_hun_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_ita_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_ita_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_jpn_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_jpn_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_kor_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_kor_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_nld_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_nld_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_per_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_per_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_pol_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_pol_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_por_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_por_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_rus_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_rus_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_slk_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_slk_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_spa_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_spa_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_swe_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_swe_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_urd_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_urd_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_zho_common", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="translations_zho_official", + field=models.CharField(default="", max_length=255), + ), + migrations.AddField( + model_name="country", + name="unMember", + field=models.BooleanField(default=True), + ), + ] diff --git a/cmp/migrations/0004_alter_country_cioc.py b/cmp/migrations/0004_alter_country_cioc.py new file mode 100644 index 0000000..5d78185 --- /dev/null +++ b/cmp/migrations/0004_alter_country_cioc.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-10-21 20:00 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0003_remove_country_alpha2_remove_country_alpha3_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="country", + name="cioc", + field=models.CharField(default="", max_length=3), + ), + ] diff --git a/cmp/migrations/0005_alter_country_tld.py b/cmp/migrations/0005_alter_country_tld.py new file mode 100644 index 0000000..47af3f1 --- /dev/null +++ b/cmp/migrations/0005_alter_country_tld.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-10-21 20:01 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0004_alter_country_cioc"), + ] + + operations = [ + migrations.AlterField( + model_name="country", + name="tld", + field=models.CharField(default="", max_length=10), + ), + ] diff --git a/cmp/migrations/0006_alter_country_name_official.py b/cmp/migrations/0006_alter_country_name_official.py new file mode 100644 index 0000000..7acfe8a --- /dev/null +++ b/cmp/migrations/0006_alter_country_name_official.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-10-21 20:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0005_alter_country_tld"), + ] + + operations = [ + migrations.AlterField( + model_name="country", + name="name_official", + field=models.CharField(default="", max_length=255), + ), + ] diff --git a/cmp/migrations/0007_alter_country_name_common.py b/cmp/migrations/0007_alter_country_name_common.py new file mode 100644 index 0000000..b33dffa --- /dev/null +++ b/cmp/migrations/0007_alter_country_name_common.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-10-21 20:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0006_alter_country_name_official"), + ] + + operations = [ + migrations.AlterField( + model_name="country", + name="name_common", + field=models.CharField(default="", max_length=255), + ), + ] diff --git a/cmp/migrations/0008_alter_country_ccn3.py b/cmp/migrations/0008_alter_country_ccn3.py new file mode 100644 index 0000000..8fd94cc --- /dev/null +++ b/cmp/migrations/0008_alter_country_ccn3.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-10-21 20:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0007_alter_country_name_common"), + ] + + operations = [ + migrations.AlterField( + model_name="country", + name="ccn3", + field=models.CharField(default="", max_length=3), + ), + ] diff --git a/cmp/migrations/0009_alter_country_ccn3.py b/cmp/migrations/0009_alter_country_ccn3.py new file mode 100644 index 0000000..8d299ff --- /dev/null +++ b/cmp/migrations/0009_alter_country_ccn3.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-10-22 07:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0008_alter_country_ccn3"), + ] + + operations = [ + migrations.AlterField( + model_name="country", + name="ccn3", + field=models.CharField(default="", max_length=3, unique=True), + ), + ] diff --git a/cmp/migrations/0010_rank.py b/cmp/migrations/0010_rank.py new file mode 100644 index 0000000..1baac35 --- /dev/null +++ b/cmp/migrations/0010_rank.py @@ -0,0 +1,41 @@ +# Generated by Django 4.2.5 on 2023-10-23 20:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0009_alter_country_ccn3"), + ] + + operations = [ + migrations.CreateModel( + name="Rank", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("Name", models.CharField(max_length=50, unique=True)), + ("Abbr", models.CharField(blank=True, max_length=50)), + ( + "Class", + models.CharField( + blank=True, + choices=[ + ("OR", "Other Rank"), + ("NC", "Non Commisioned Officer"), + ("OF", "Officer"), + ], + default="Other Rank", + max_length=2, + ), + ), + ], + ), + ] diff --git a/cmp/migrations/0011_rename_abbr_rank_abbreviation.py b/cmp/migrations/0011_rename_abbr_rank_abbreviation.py new file mode 100644 index 0000000..9ef0aac --- /dev/null +++ b/cmp/migrations/0011_rename_abbr_rank_abbreviation.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-10-23 20:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0010_rank"), + ] + + operations = [ + migrations.RenameField( + model_name="rank", + old_name="Abbr", + new_name="Abbreviation", + ), + ] diff --git a/cmp/migrations/0012_company_theatre_and_more.py b/cmp/migrations/0012_company_theatre_and_more.py new file mode 100644 index 0000000..73faf22 --- /dev/null +++ b/cmp/migrations/0012_company_theatre_and_more.py @@ -0,0 +1,242 @@ +# Generated by Django 4.2.5 on 2023-11-02 17:19 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0011_rename_abbr_rank_abbreviation"), + ] + + operations = [ + migrations.CreateModel( + name="Company", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(default="", max_length=255, unique=True)), + ("notes", models.CharField(default="", max_length=255)), + ], + ), + migrations.CreateModel( + name="Theatre", + fields=[ + ("id", models.IntegerField(primary_key=True, serialize=False)), + ("name", models.CharField(default="", max_length=255, unique=True)), + ], + ), + migrations.RenameField( + model_name="rank", + old_name="Abbreviation", + new_name="abbreviation", + ), + migrations.RenameField( + model_name="rank", + old_name="Name", + new_name="name", + ), + migrations.RenameField( + model_name="rank", + old_name="Class", + new_name="rankClass", + ), + migrations.RemoveField( + model_name="country", + name="demonyms_eng_f", + ), + migrations.RemoveField( + model_name="country", + name="demonyms_eng_m", + ), + migrations.RemoveField( + model_name="country", + name="demonyms_fra_f", + ), + migrations.RemoveField( + model_name="country", + name="demonyms_fra_m", + ), + migrations.RemoveField( + model_name="country", + name="translations_ces_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_ces_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_deu_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_deu_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_est_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_est_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_fin_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_fin_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_fra_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_fra_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_hrv_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_hrv_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_hun_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_hun_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_ita_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_ita_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_jpn_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_jpn_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_kor_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_kor_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_nld_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_nld_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_per_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_per_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_pol_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_pol_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_por_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_por_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_rus_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_rus_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_slk_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_slk_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_spa_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_spa_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_swe_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_swe_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_urd_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_urd_official", + ), + migrations.RemoveField( + model_name="country", + name="translations_zho_common", + ), + migrations.RemoveField( + model_name="country", + name="translations_zho_official", + ), + migrations.CreateModel( + name="Cemetery", + fields=[ + ("id", models.IntegerField(primary_key=True, serialize=False)), + ("name", models.CharField(default="", max_length=255, unique=True)), + ("latitude", models.FloatField()), + ("longitude", models.FloatField()), + ( + "country", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, to="cmp.country" + ), + ), + ], + ), + ] diff --git a/cmp/migrations/0013_alter_rank_id.py b/cmp/migrations/0013_alter_rank_id.py new file mode 100644 index 0000000..72a0b5d --- /dev/null +++ b/cmp/migrations/0013_alter_rank_id.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2023-11-02 17:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cmp", "0012_company_theatre_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="rank", + name="id", + field=models.IntegerField(primary_key=True, serialize=False), + ), + ] diff --git a/cmp/models.py b/cmp/models.py index 3611e51..e08e3a8 100644 --- a/cmp/models.py +++ b/cmp/models.py @@ -17,16 +17,106 @@ def __str__(self): return self.email class Rank(models.Model): - RankTypes = (('OR','Other Rank'),('NC','Non Commisioned Officer'),('OF','Officer')) - Name = models.CharField(max_length=50, unique=True) - Abbreviation = models.CharField(max_length=50, blank=True) - Class = models.CharField(max_length=2, blank=True, choices=RankTypes,default='Other Rank') + # 6 + id = models.IntegerField(primary_key=True) + name = models.CharField(max_length=50, unique=True) + rankTypes = (('OR','Other Rank'),('NC','Non Commisioned Officer'),('OF','Officer')) + abbreviation = models.CharField(max_length=50, blank=True) + rankClass = models.CharField(max_length=2, blank=True, choices=rankTypes,default='Other Rank') def __str__(self): return self.Name + + +#class PowCamp(models.Model): +# id = models.IntegerField(primary_key=True) +# name = models.CharField(max_length=255, unique=True, default='') +# nearestCity = models.CharField(max_length=255, unique=False, default='') +# notes = models.CharField(max_length=255, unique=False, default='') +# wartimeCountry = models.ForeignKey('Country', on_delete=models.CASCADE) +# presentCountry = models.ForeignKey('Country', on_delete=models.CASCADE) +# latitude = models.FloatField() # latitude +# longitude = models.FloatField() # longitude +# +# def __str__(self): +# return self.name + + +class Theatre(models.Model): + # 11 + id = models.IntegerField(primary_key=True) + name = models.CharField(max_length=255, unique=True, default='') + def __str__(self): + return self.name + +#class Soldier(models.Model): +# # 10 +# id = models.IntegerField(primary_key=True) +# surname = models.CharField(max_length=255, unique=False, default='') +# initials = models.CharField(max_length=255, unique=False, default='') +# army_number = models.CharField(max_length=255, unique=False, default='') +# rank_id = models.ForeignKey('Rank', on_delete=models.CASCADE) +# notes = models.CharField(max_length=255, unique=False, default='') +# +# def __str__(self): +# return self.surname + +#class SoldierImprisonment(models.Model): +# # 9 +# id = models.IntegerField(primary_key=True) +# soldier_id = models.ForeignKey('Soldier', on_delete=models.CASCADE) +# company_id = models.ForeignKey('Company', on_delete=models.CASCADE) +# powNumber = models.CharField(max_length=255, unique=False, default='') +# powCamp_id = models.ForeignKey('PowCamp', on_delete=models.CASCADE) +# dateFrom = models.DateField() # dateFrom +# dateTo = models.DateField() # dateTo +# notes = models.CharField(max_length=255, unique=False, default='') + + +#class SoldierDecoration(models.Model): +# # 8 +# id = models.IntegerField(primary_key=True) +# name = models.CharField(max_length=255, unique=True, default='') +# notes = models.CharField(max_length=255, unique=False, default='') +# country_id = models.ForeignKey('Country', on_delete=models.CASCADE) +# details_link = models.CharField(max_length=255, unique=False, default='') +# abbreviation = models.CharField(max_length=255, unique=False, default='') + +class Company(models.Model): + # 2 + name = models.CharField(max_length=255, unique=True, default='') + notes = models.CharField(max_length=255, unique=False, default='') + + def __str__(self): + return self.name +class Cemetery(models.Model): + # 1 + id = models.IntegerField(primary_key=True) + name = models.CharField(max_length=255, unique=True, default='') + country = models.ForeignKey('Country', on_delete=models.CASCADE) + latitude = models.FloatField() # latitude + longitude = models.FloatField() # longitude + + def __str__(self): + return self.name + + +#class Decoration(models.Model): +# # 4 +# id = models.IntegerField(primary_key=True) +# name = models.CharField(max_length=255, unique=True, default='') +# notes = models.CharField(max_length=255, unique=False, default='') +# country_id = models.ForeignKey('Country', on_delete=models.CASCADE) +# details_link = models.CharField(max_length=255, unique=False, default='') +# abbreviation = models.CharField(max_length=255, unique=False, default='') +# +# def __str__(self): +# return self.Name + class Country(models.Model): + # 3 name_common = models.CharField(max_length=255, unique=False, default='') name_official = models.CharField(max_length=255, unique=False, default='') tld = models.CharField(max_length=10, unique=False, default='') @@ -45,55 +135,11 @@ class Country(models.Model): region = models.CharField(max_length=255, default='') subregion = models.CharField(max_length=255, default='') languages = models.CharField(max_length=255, default='') - translations_ces_official = models.CharField(max_length=255, default='') - translations_ces_common = models.CharField(max_length=255, default='') - translations_deu_official = models.CharField(max_length=255, default='') - translations_deu_common = models.CharField(max_length=255, default='') - translations_est_official = models.CharField(max_length=255, default='') - translations_est_common = models.CharField(max_length=255, default='') - translations_fin_official = models.CharField(max_length=255, default='') - translations_fin_common = models.CharField(max_length=255, default='') - translations_fra_official = models.CharField(max_length=255, default='') - translations_fra_common = models.CharField(max_length=255, default='') - translations_hrv_official = models.CharField(max_length=255, default='') - translations_hrv_common = models.CharField(max_length=255, default='') - translations_hun_official = models.CharField(max_length=255, default='') - translations_hun_common = models.CharField(max_length=255, default='') - translations_ita_official = models.CharField(max_length=255, default='') - translations_ita_common = models.CharField(max_length=255, default='') - translations_jpn_official = models.CharField(max_length=255, default='') - translations_jpn_common = models.CharField(max_length=255, default='') - translations_kor_official = models.CharField(max_length=255, default='') - translations_kor_common = models.CharField(max_length=255, default='') - translations_nld_official = models.CharField(max_length=255, default='') - translations_nld_common = models.CharField(max_length=255, default='') - translations_per_official = models.CharField(max_length=255, default='') - translations_per_common = models.CharField(max_length=255, default='') - translations_pol_official = models.CharField(max_length=255, default='') - translations_pol_common = models.CharField(max_length=255, default='') - translations_por_official = models.CharField(max_length=255, default='') - translations_por_common = models.CharField(max_length=255, default='') - translations_rus_official = models.CharField(max_length=255, default='') - translations_rus_common = models.CharField(max_length=255, default='') - translations_slk_official = models.CharField(max_length=255, default='') - translations_slk_common = models.CharField(max_length=255, default='') - translations_spa_official = models.CharField(max_length=255, default='') - translations_spa_common = models.CharField(max_length=255, default='') - translations_swe_official = models.CharField(max_length=255, default='') - translations_swe_common = models.CharField(max_length=255, default='') - translations_urd_official = models.CharField(max_length=255, default='') - translations_urd_common = models.CharField(max_length=255, default='') - translations_zho_official = models.CharField(max_length=255, default='') - translations_zho_common = models.CharField(max_length=255, default='') latlng = models.CharField(max_length=255, default='') landlocked = models.BooleanField(default=False) borders = models.CharField(max_length=255, default='') area = models.FloatField(default=0.0) flag = models.CharField(max_length=255, default='') - demonyms_eng_f = models.CharField(max_length=255, default='') - demonyms_eng_m = models.CharField(max_length=255, default='') - demonyms_fra_f = models.CharField(max_length=255, default='') - demonyms_fra_m = models.CharField(max_length=255, default='') callingCodes = models.CharField(max_length=255, default='') def __str__(self): diff --git a/cmp/urls.py b/cmp/urls.py index f2d9166..3d404d1 100644 --- a/cmp/urls.py +++ b/cmp/urls.py @@ -10,5 +10,7 @@ path("tools/army-number-search", views.army_number_search, name="army-number-search" ), path("tools/army-number-search/" , views.original_unit, name="army-number-search" ), path('countries/', views.countries, name='countries'), + path('ranks/', views.ranks, name='ranks'), path("mgmt/countries", views.edit_countries, name="countries"), + path("mgmt/ranks", views.edit_ranks, name="ranks"), ] diff --git a/cmp/views.py b/cmp/views.py index 8459d7f..fa8ac3d 100644 --- a/cmp/views.py +++ b/cmp/views.py @@ -1,15 +1,22 @@ from django.shortcuts import render, HttpResponse from .models import Country - from cmp.forms import editCountryForm +from .models import Rank +from cmp.forms import editRankForm + def countries(request): countries = Country.objects.all() return render(request, 'cmp/countries.html', {'countries': countries}) +def ranks(request): + ranks = Rank.objects.all() + return render(request, 'cmp/ranks.html', {'ranks': ranks}) + + def index(request): return render(request, "cmp/index.html") @@ -225,4 +232,13 @@ def edit_countries(request): if post and form.is_valid(): form.save() return HttpResponse("Country Added") - return render(request, "cmp/edit-countries.html", {"form": form}) \ No newline at end of file + return render(request, "cmp/edit-countries.html", {"form": form}) + + +def edit_ranks(request): + post = request.POST + form = editRankForm(post or None) + if post and form.is_valid(): + form.save() + return HttpResponse("Rank Added") + return render(request, "cmp/edit-ranks.html", {"form": form}) \ No newline at end of file diff --git a/scripts/insert-all-countries.py b/scripts/insert-all-countries.py index dce1b6c..0fb7451 100644 --- a/scripts/insert-all-countries.py +++ b/scripts/insert-all-countries.py @@ -39,55 +39,11 @@ def run(): region=row['region'], subregion=row['subregion'], languages=row['languages'], - translations_ces_official=row['translations_ces_official'], - translations_ces_common=row['translations_ces_common'], - translations_deu_official=row['translations_deu_official'], - translations_deu_common=row['translations_deu_common'], - translations_est_official=row['translations_est_official'], - translations_est_common=row['translations_est_common'], - translations_fin_official=row['translations_fin_official'], - translations_fin_common=row['translations_fin_common'], - translations_fra_official=row['translations_fra_official'], - translations_fra_common=row['translations_fra_common'], - translations_hrv_official=row['translations_hrv_official'], - translations_hrv_common=row['translations_hrv_common'], - translations_hun_official=row['translations_hun_official'], - translations_hun_common=row['translations_hun_common'], - translations_ita_official=row['translations_ita_official'], - translations_ita_common=row['translations_ita_common'], - translations_jpn_official=row['translations_jpn_official'], - translations_jpn_common=row['translations_jpn_common'], - translations_kor_official=row['translations_kor_official'], - translations_kor_common=row['translations_kor_common'], - translations_nld_official=row['translations_nld_official'], - translations_nld_common=row['translations_nld_common'], - translations_per_official=row['translations_per_official'], - translations_per_common=row['translations_per_common'], - translations_pol_official=row['translations_pol_official'], - translations_pol_common=row['translations_pol_common'], - translations_por_official=row['translations_por_official'], - translations_por_common=row['translations_por_common'], - translations_rus_official=row['translations_rus_official'], - translations_rus_common=row['translations_rus_common'], - translations_slk_official=row['translations_slk_official'], - translations_slk_common=row['translations_slk_common'], - translations_spa_official=row['translations_spa_official'], - translations_spa_common=row['translations_spa_common'], - translations_swe_official=row['translations_swe_official'], - translations_swe_common=row['translations_swe_common'], - translations_urd_official=row['translations_urd_official'], - translations_urd_common=row['translations_urd_common'], - translations_zho_official=row['translations_zho_official'], - translations_zho_common=row['translations_zho_common'], latlng=row['latlng'], landlocked=row['landlocked'], borders=row['borders'], area=row['area'], flag=row['flag'], - demonyms_eng_f=row['demonyms_eng_f'], - demonyms_eng_m=row['demonyms_eng_m'], - demonyms_fra_f=row['demonyms_fra_f'], - demonyms_fra_m=row['demonyms_fra_m'], callingCodes=row['callingCodes'] ) except Exception as e: diff --git a/scripts/insert-all-ranks.py b/scripts/insert-all-ranks.py index 9506835..8d15428 100644 --- a/scripts/insert-all-ranks.py +++ b/scripts/insert-all-ranks.py @@ -5,7 +5,7 @@ def run(): import csv from cmp.models import Rank - ref_data_url = "https://raw.githubusercontent.com/gm3dmo/old-cmp/main/data/ranks.csv" + ref_data_url = "https://raw.githubusercontent.com/gm3dmo/old-cmp/main/data/rank.csv" http = urllib3.PoolManager() r = http.request('GET', ref_data_url) print(r.status) @@ -18,16 +18,16 @@ def run(): try: Rank.objects.create( id=row['id'], - Name=row['name'], - Abbreviation=row['abbr'], - Class=row['class'] + name=row['name'], + abbreviation=row['abbr'], + rankClass=row['class'] ) except Exception as e: print("Error with: " + row['name']) raise e for rank in Rank.objects.all(): - print(f"""{rank.id} {rank.Name}""") + print(f"""{rank.id} {rank.name}""") diff --git a/templates/cmp/edit-ranks.html b/templates/cmp/edit-ranks.html new file mode 100644 index 0000000..473d2f0 --- /dev/null +++ b/templates/cmp/edit-ranks.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} +{% load static crispy_forms_tags %} +{% block title %}Rank Form{% endblock %} +{% block content %} + +
+
+ {% csrf_token %} + {{ form.management_form }} + {{ form.errors }} + {{form | crispy}} + +
+
+ +{% endblock %} \ No newline at end of file diff --git a/templates/cmp/ranks.html b/templates/cmp/ranks.html new file mode 100644 index 0000000..9946659 --- /dev/null +++ b/templates/cmp/ranks.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} +{% load static crispy_forms_tags %} +{% block title %}Ranks{% endblock %} +{% block content %} + +

Ranks

+ + + + + + + + + + {% for rank in ranks %} + + + + + {% endfor %} + +
NameAbbreviation
{{ rank.name }}{{ rank.abbreviation }}
+ + +{% endblock %} \ No newline at end of file From 97ccd963fef4572d8153acc255270da56b3c05ef Mon Sep 17 00:00:00 2001 From: David Morris Date: Thu, 2 Nov 2023 19:51:25 +0000 Subject: [PATCH 2/2] Adding cemeteries --- cmp/forms.py | 9 +++++++++ cmp/models.py | 2 +- cmp/urls.py | 8 +++++++- cmp/views.py | 17 +++++++++++++++++ templates/cmp/cemeteries.html | 26 ++++++++++++++++++++++++++ templates/cmp/edit-cemeteries.html | 17 +++++++++++++++++ 6 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 templates/cmp/cemeteries.html create mode 100644 templates/cmp/edit-cemeteries.html diff --git a/cmp/forms.py b/cmp/forms.py index 34e0e46..6b12983 100644 --- a/cmp/forms.py +++ b/cmp/forms.py @@ -2,8 +2,10 @@ from django import forms from .models import CustomUser + from .models import Country from .models import Rank +from .models import Cemetery class CustomUserCreationForm(UserCreationForm): class Meta: @@ -17,11 +19,18 @@ class Meta: fields = ("email",) +class editCemeteryForm(forms.ModelForm): + class Meta: + model = Cemetery + fields = "__all__" + + class editCountryForm(forms.ModelForm): class Meta: model = Country fields = "__all__" + class editRankForm(forms.ModelForm): class Meta: model = Rank diff --git a/cmp/models.py b/cmp/models.py index e08e3a8..2d98cb2 100644 --- a/cmp/models.py +++ b/cmp/models.py @@ -95,7 +95,7 @@ class Cemetery(models.Model): # 1 id = models.IntegerField(primary_key=True) name = models.CharField(max_length=255, unique=True, default='') - country = models.ForeignKey('Country', on_delete=models.CASCADE) + country = models.ForeignKey('Country', to_field='ccn3', on_delete=models.CASCADE) latitude = models.FloatField() # latitude longitude = models.FloatField() # longitude diff --git a/cmp/urls.py b/cmp/urls.py index 3d404d1..d0abc08 100644 --- a/cmp/urls.py +++ b/cmp/urls.py @@ -9,8 +9,14 @@ path("sentry-debug/", views.trigger_error ), path("tools/army-number-search", views.army_number_search, name="army-number-search" ), path("tools/army-number-search/" , views.original_unit, name="army-number-search" ), + path('countries/', views.countries, name='countries'), - path('ranks/', views.ranks, name='ranks'), path("mgmt/countries", views.edit_countries, name="countries"), + + path('ranks/', views.ranks, name='ranks'), path("mgmt/ranks", views.edit_ranks, name="ranks"), + + path('cemeteries/', views.ranks, name='cemeteries'), + path("mgmt/cemeteries", views.edit_cemeteries, name="cemeteries"), + ] diff --git a/cmp/views.py b/cmp/views.py index fa8ac3d..e39567f 100644 --- a/cmp/views.py +++ b/cmp/views.py @@ -6,6 +6,14 @@ from .models import Rank from cmp.forms import editRankForm +from .models import Cemetery +from cmp.forms import editCemeteryForm + + +def cemeteries(request): + cemeteries = Cemetery.objects.all() + return render(request, 'cmp/cemeteries.html', {'cemeteries': cemeteries}) + def countries(request): countries = Country.objects.all() @@ -226,6 +234,15 @@ def original_unit(request, army_number): return HttpResponse("No Match Found") +def edit_cemeteries(request): + post = request.POST + form = editCemeteryForm(post or None) + if post and form.is_valid(): + form.save() + return HttpResponse("Cemetery Added") + return render(request, "cmp/edit-cemeteries.html", {"form": form}) + + def edit_countries(request): post = request.POST form = editCountryForm(post or None) diff --git a/templates/cmp/cemeteries.html b/templates/cmp/cemeteries.html new file mode 100644 index 0000000..f1d5f9b --- /dev/null +++ b/templates/cmp/cemeteries.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} +{% load static crispy_forms_tags %} +{% block title %}Cemeteries {% endblock %} +{% block content %} + +

Countries

+ + + + + + + + + + {% for cemetery in cemeteries %} + + + + + {% endfor %} + +
NameCountry
{{ cemetery.name }}

{{ cemetery.name }}

+ + +{% endblock %} \ No newline at end of file diff --git a/templates/cmp/edit-cemeteries.html b/templates/cmp/edit-cemeteries.html new file mode 100644 index 0000000..1b7f36d --- /dev/null +++ b/templates/cmp/edit-cemeteries.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% load static crispy_forms_tags %} +{% block title %}Cemeteries Form{% endblock %} +{% block content %} + +
+
+ {% csrf_token %} + {{ form.management_form }} + {{ form.errors }} + {{form | crispy}} + +
+ +
+ +{% endblock %} \ No newline at end of file