diff --git a/app/export/__init__.py b/app/export/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/app/export/admin.py b/app/export/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/app/export/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/app/export/apps.py b/app/export/apps.py
new file mode 100644
index 0000000..f0eb563
--- /dev/null
+++ b/app/export/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class ExportConfig(AppConfig):
+ default_auto_field = "django.db.models.BigAutoField"
+ name = "export"
diff --git a/app/export/migrations/__init__.py b/app/export/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/app/export/models.py b/app/export/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/app/export/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/app/export/templates/export/export_site.html b/app/export/templates/export/export_site.html
new file mode 100644
index 0000000..a998b68
--- /dev/null
+++ b/app/export/templates/export/export_site.html
@@ -0,0 +1,19 @@
+{% extends "base.html" %}
+{% load static %}
+{% block content %}
+
+
+
Datenexport
+
+ Anbei finden Sie mehrere Möglichkeiten die Daten der Anwendung zu
+ exportieren.
+
+
+
+
+{% endblock content %}
diff --git a/app/export/tests.py b/app/export/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/app/export/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/app/export/urls.py b/app/export/urls.py
new file mode 100644
index 0000000..d574a77
--- /dev/null
+++ b/app/export/urls.py
@@ -0,0 +1,13 @@
+from django.urls import path
+
+from .views import (
+ export_birds,
+ export_costs,
+ site_exports,
+)
+
+urlpatterns = [
+ path("", site_exports, name="site_exports"),
+ path("birds/", export_birds, name="export_birds"),
+ path("costs/", export_costs, name="export_costs"),
+]
diff --git a/app/export/views.py b/app/export/views.py
new file mode 100644
index 0000000..5993e1d
--- /dev/null
+++ b/app/export/views.py
@@ -0,0 +1,77 @@
+import csv
+
+from costs.models import Costs
+from bird.models import FallenBird
+from django.contrib.auth.decorators import login_required
+from django.http import HttpResponse
+from django.shortcuts import render
+
+
+@login_required(login_url="account_login")
+def site_exports(request):
+ return render(
+ request,
+ "export/export_site.html",
+ )
+
+
+@login_required(login_url="account_login")
+def export_costs(request):
+ costs = Costs.objects.all().values_list(
+ "id_bird__bird_identifier",
+ "costs",
+ "created",
+ "comment",
+ "user__username")
+ response = HttpResponse(content_type="text/csv")
+ response["Content-Disposition"] = "attachment, filename=fbf_costs.csv"
+ writer = csv.writer(response)
+ writer.writerow(
+ ["Vogel", "Betrag in Euro", "Gebucht am", "Kommentar", "Gebucht von"]
+ )
+ for single_costs in costs:
+ writer.writerow(single_costs)
+ return response
+
+
+@login_required(login_url="account_login")
+def export_birds(request):
+ birds = FallenBird.objects.all().values_list(
+ "bird_identifier",
+ "bird__name",
+ "age",
+ "sex",
+ "date_found",
+ "place",
+ "created",
+ "updated",
+ "find_circumstances__description",
+ "diagnostic_finding",
+ "rescuer__last_name",
+ "user__username",
+ "status__description",
+ "aviary__description",
+ "sent_to"
+ )
+ response = HttpResponse(content_type="text/csv")
+ response["Content-Disposition"] = "attachment, filename=fbf_birds.csv"
+ writer = csv.writer(response)
+ writer.writerow(["Vogel",
+ "Patienten Alias",
+ "Alter",
+ "Geschlecht",
+ "gefunden am",
+ "Fundort",
+ "Pateient angelegt am",
+ "Pateient aktualisiert am",
+ "Fundumstände",
+ "Diagnose bei Fund",
+ "Finder (Nachname)",
+ "Benutzer",
+ "Status",
+ "Voliere",
+ "Übersandt"
+ ])
+ for bird in birds:
+ writer.writerow(bird)
+ return response
diff --git a/app/templates/partials/_navbar.html b/app/templates/partials/_navbar.html
index b8097e8..10225ed 100644
--- a/app/templates/partials/_navbar.html
+++ b/app/templates/partials/_navbar.html
@@ -30,6 +30,10 @@
alle Kosten
+
+ Export
+
{% endif %}