Browse Source

comments

master
Walter Hupfeld 2 years ago
parent
commit
51fcef21fe
  1. 4
      backend/models.py
  2. 14
      backend/views.py
  3. BIN
      db.sqlite3
  4. 2
      templates/base.html

4
backend/models.py

@ -6,6 +6,7 @@ import math
# Create your models here.
class County(models.Model):
""" Model für die Städte und Gemeinden """
gemeindeId= models.CharField(max_length=10)
kennziffer = models.CharField(max_length=10)
Name = models.CharField(max_length=100)
@ -38,6 +39,7 @@ class County(models.Model):
class Factsheet(models.Model):
""" Tabelle mit Konstanten für die Berechnung """
code = models.CharField(max_length=20)
fact = models.CharField(max_length=100)
value = models.IntegerField()
@ -57,6 +59,7 @@ class Factsheet(models.Model):
class Calc:
""" Klasse zur Berechnung der Werte für Orte und Zieljahr der Klimaneutralität """
def __init__(self, gemeindeId="05915", targetyear=2030):
self.gemeindeId=gemeindeId
self.zieljahr=targetyear
@ -66,6 +69,7 @@ class Calc:
return model.objects.get(code=code).value
def round(self, number):
""" Rundungsfunktion """
if number>1e6:
t1 = ("%s%s" % ( round(number/1e6,2) , " Mio"))
return t1.replace(".",",")+"."

14
backend/views.py

@ -58,6 +58,7 @@ class FactsheetCreate(LoginRequiredMixin,CreateView):
class CountyList(LoginRequiredMixin,ListView):
""" Liste der Städte und Gemeinden """
model = County
template_name ="backend/list.html"
#fields = '__all__'
@ -66,6 +67,7 @@ class CountyList(LoginRequiredMixin,ListView):
#queryset = User.objects.all() # Default: Model.objects.all()
class SearchResultsView(LoginRequiredMixin,ListView):
""" Ergebnis der Suche """
model = County
template_name = 'backend/search_results.html'
@ -85,6 +87,7 @@ def index(request):
@login_required
def details(request,id):
""" Detailseite für Gemeinde """
template="backend/population-details.html"
try:
county = County.objects.get(pk=id)
@ -108,7 +111,9 @@ def details(request,id):
# Create your views here.# one parameter named request
@login_required
def population_upload(request): # declaring template
""" Upload der CSV-Datei """
template = "backend/counties_upload.html"
startline=6
data = County.objects.all()# prompt is a context variable that can have different values depending on their context
prompt = {
'order': 'Reihenfolge der CSV sollte seien: gemeindeId, Name, Anzahl, männlich, weiblich',
@ -127,8 +132,8 @@ def population_upload(request): # declaring template
line_count=0
County.objects.all().delete()
for column in csv.reader(io_string, delimiter=';', quotechar="|"):
print (column)
if line_count>8:
#print (column)
if line_count>startline:
id = County.mkFull(column[0])
name = column[1].lstrip()
_, created = County.objects.update_or_create(
@ -149,6 +154,7 @@ def population_upload(request): # declaring template
@login_required
def showcalculation(request):
""" Anzeige der berechneten Werte analog zu Excel-Tabelle """
template="backend/calculate.html"
targetyear=2030
try:
@ -156,11 +162,13 @@ def showcalculation(request):
c=Calc(gemeindeId,targetyear)
return render(request, template, c.calculate())
except:
return HttpResponseNotFound('<h1>Error: wrong parameter?</h1>')
c=Calc()
return render(request, template, c.calculate())
@login_required
def output(request):
""" Ausgabe der Werte - wird im Backend nicht verwendet """
template="backend/output.html"
try:

BIN
db.sqlite3

Binary file not shown.

2
templates/base.html

@ -18,7 +18,7 @@
<a class="nav-link" href="/backend/search/">Gemeindesuche</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/backend/calculate?id=05915">Berechnung</a>
<a class="nav-link" href="/backend/calculate">Berechnung</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/backend/factsheet/">Factsheet</a>

Loading…
Cancel
Save