Docker Image and first iteration
This commit is contained in:
1 parent
723b64b1c4
commit
bd9209ebb7
40 files changed
+26643
No files matched your search
@@ -0,0 +1,51 @@
|
||||
from django.http import JsonResponse
|
||||
from django.shortcuts import render
|
||||
|
||||
from .models import PortfolioEntry, Region
|
||||
|
||||
|
||||
def home(request):
|
||||
return render(request, "showcase/home.html")
|
||||
|
||||
|
||||
def _serialize_entry(entry):
|
||||
return {
|
||||
"id": entry.id,
|
||||
"type": entry.entry_type,
|
||||
"title": entry.title,
|
||||
"organization": entry.organization,
|
||||
"startDate": entry.start_date.isoformat() if entry.start_date else None,
|
||||
"endDate": entry.end_date.isoformat() if entry.end_date else None,
|
||||
"summary": entry.summary,
|
||||
"url": entry.url,
|
||||
}
|
||||
|
||||
|
||||
def map_regions(request):
|
||||
entries = PortfolioEntry.objects.filter(is_published=True).prefetch_related("regions")
|
||||
entries_by_region = {}
|
||||
for entry in entries:
|
||||
payload = _serialize_entry(entry)
|
||||
for region in entry.regions.all():
|
||||
entries_by_region.setdefault(region.code, {})[entry.id] = payload
|
||||
|
||||
regions = list(Region.objects.select_related("parent").prefetch_related("subdivisions"))
|
||||
payload = []
|
||||
for region in regions:
|
||||
related = dict(entries_by_region.get(region.code, {}))
|
||||
if region.level == Region.Level.COUNTRY:
|
||||
for subdivision in region.subdivisions.all():
|
||||
related.update(entries_by_region.get(subdivision.code, {}))
|
||||
|
||||
payload.append(
|
||||
{
|
||||
"code": region.code,
|
||||
"name": region.name,
|
||||
"level": region.level,
|
||||
"parentCode": region.parent_id,
|
||||
"entries": list(related.values()),
|
||||
}
|
||||
)
|
||||
|
||||
return JsonResponse({"regions": payload})
|
||||
|
||||
Reference in new issue
Block a user