Skip to content

Commit

Permalink
Merge pull request #93 from gm3dmo/friday
Browse files Browse the repository at this point in the history
Friday push
  • Loading branch information
gm3dmo authored Nov 3, 2023
2 parents 57bbcb3 + 6f5182a commit f7d47fa
Show file tree
Hide file tree
Showing 5 changed files with 144 additions and 124 deletions.
147 changes: 64 additions & 83 deletions cmp/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,18 @@ 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 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.CharField(max_length=255, unique=False, default='')
latitude = models.FloatField() # latitude
longitude = models.FloatField() # longitude

def __str__(self):
return self.name


class Theatre(models.Model):
Expand All @@ -49,38 +49,38 @@ class Theatre(models.Model):
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 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
Expand All @@ -95,52 +95,33 @@ class Cemetery(models.Model):
# 1
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=255, unique=True, default='')
country = models.ForeignKey('Country', to_field='ccn3', on_delete=models.CASCADE)
latitude = models.FloatField() # latitude
longitude = models.FloatField() # longitude
country = models.ForeignKey('Country', to_field='CountryNumber', on_delete=models.CASCADE)
latitude = models.CharField(max_length=255, unique=False, default='') # latitude
longitude = models.CharField(max_length=255, unique=False, default='') # 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 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='')
cca2 = models.CharField(max_length=2, unique=True, default='')
ccn3 = models.CharField(max_length=3, unique=True, default='')
cca3 = models.CharField(max_length=3, unique=True, default='')
cioc = models.CharField(max_length=3, unique=False, default='')
independent = models.BooleanField( default=True)
status = models.CharField(max_length=255, default='')
unMember = models.BooleanField(default=True)
currencies = models.CharField(max_length=255, default='')
idd_root = models.CharField(max_length=10, default='')
idd_suffixes = models.CharField(max_length=255, default='')
capital = models.CharField(max_length=255, default='')
alt_spellings = models.CharField(max_length=255, default='')
region = models.CharField(max_length=255, default='')
subregion = models.CharField(max_length=255, default='')
languages = 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='')
callingCodes = models.CharField(max_length=255, default='')
name = models.CharField(max_length=255, unique=True, default='')
Alpha2 = models.CharField(max_length=2, unique=True, default='')
Alpha3 = models.CharField(max_length=3, unique=True, default='')
CountryNumber = models.CharField(max_length=3, unique=True, default='')
Flag = models.CharField(max_length=255, default='')

def __str__(self):
return self.name_common
return self.name
5 changes: 5 additions & 0 deletions scripts/delete-all-cemeteries.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from cmp.models import Cemetery

def run():
Cemeteries = Cemetery.objects.all()
Cemeteries.delete()
61 changes: 61 additions & 0 deletions scripts/insert-all-cemeteries.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@

def run():

import sys
import urllib3
import csv
from cmp.models import Cemetery

ref_data_url = "https://raw.githubusercontent.com/gm3dmo/old-cmp/main/data/cemetery.csv"
http = urllib3.PoolManager()
r = http.request('GET', ref_data_url)
print(r.status)
# load the response into a csv dictionary reader
reader = csv.DictReader(r.data.decode('utf-8').splitlines())
reader.fieldnames = [field.replace('.', '_') for field in reader.fieldnames]

# add a country model for each row in the csv file
for row in reader:
print(row['id'])
if row['latitude'] == '':
row['latitude'] = 0
if row['longitude'] == '':
row['longitude'] = 0
if int(row['id']) == 948:
print(row)
continue
if int(row['id']) == 991:
print(row)
continue
if int(row['id']) == 1007:
print(row)
continue
if int(row['id']) == 1043:
print(row)
continue
if int(row['id']) == 1051:
print(row)
continue
if int(row['id']) == 1068:
print(row)
continue
try:
Cemetery.objects.create(
id=row['id'],
name=row['name'],
country_id=row['ccn3'],
latitude=row['latitude'],
longitude=row['longitude']
)
except Exception as e:
print("Error with: " + row['name'])
raise e









53 changes: 13 additions & 40 deletions scripts/insert-all-countries.py
Original file line number Diff line number Diff line change
@@ -1,60 +1,33 @@

def run():

import sys
import urllib3
import csv
from cmp.models import Country

ref_data_url = "https://raw.githubusercontent.com/mledoze/countries/master/dist/countries.csv"
#ref_data_url = "https://raw.githubusercontent.com/mledoze/countries/master/dist/countries.csv"
ref_data_url = "https://raw.githubusercontent.com/gm3dmo/old-cmp/main/data/country.csv"
http = urllib3.PoolManager()
r = http.request('GET', ref_data_url)
print(r.status)
# load the response into a csv dictionary reader
reader = csv.DictReader(r.data.decode('utf-8').splitlines())
reader.fieldnames = [field.replace('.', '_') for field in reader.fieldnames]
#reader.fieldnames = [field.replace('.', '_') for field in reader.fieldnames]

# add a country model for each row in the csv file
print(reader.fieldnames)
for row in reader:
print(row['name_common'])
if row['name_common'] == 'Kosovo':
row['ccn3'] = '999'
row['independent'] = False
print(row['Name'])
try:
Country.objects.create(
name_common=row['name_common'],
name_official=row['name_official'],
tld=row['tld'],
cca2=row['cca2'],
ccn3=row['ccn3'],
cca3=row['cca3'],
cioc=row['cioc'],
independent=row['independent'],
status=row['status'],
unMember=row['unMember'],
currencies=row['currencies'],
idd_root=row['idd_root'],
idd_suffixes=row['idd_suffixes'],
capital=row['capital'],
alt_spellings=row['altSpellings'],
region=row['region'],
subregion=row['subregion'],
languages=row['languages'],
latlng=row['latlng'],
landlocked=row['landlocked'],
borders=row['borders'],
area=row['area'],
flag=row['flag'],
callingCodes=row['callingCodes']
id = row['id'],
name = row['Name'],
Alpha2 = row['Alpha2'],
Alpha3 = row['Alpha3'],
CountryNumber = row['CountryNumber'],
Flag = ""
)
except Exception as e:
print("Error with: " + row['name_common'])
print("Error with: " + row['Name'])
raise e









2 changes: 1 addition & 1 deletion templates/cmp/countries.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ <h1>Countries</h1>
<tbody>
{% for country in countries %}
<tr>
<td>{{ country.name_common }}</td>
<td>{{ country.name }}</td>
<td><h2>{{ country.flag }}</h2></td>
</tr>
{% endfor %}
Expand Down

0 comments on commit f7d47fa

Please sign in to comment.