from django.core.files.uploadedfile import UploadedFile from django.shortcuts import render, get_object_or_404, redirect from django.views import generic from dispatcher.core import import_tasks from dispatcher.forms import ProjectForm, ImportForm from dispatcher.models import Project, Parent def dashboard_view(request): context = { "projects": Project.objects.all(), "parents": Parent.objects.all() } return render(request, "dashboard.html", context) def projects_view(request): context = { "projects": Project.objects.all(), "parents": Parent.objects.all() } return render(request, "projects.html", context) def project_view(request, id): project = get_object_or_404(Project, id=id) context = {} form = ProjectForm(request.POST or None, request.FILES or None, instance=project) if form.is_valid(): form.save() context["form"] = ProjectForm(instance=project) return render(request, "project.html", context) def import_view(request): if request.method == "POST": form = ImportForm(request.POST, request.FILES) if form.is_valid(): print(request.FILES) import_tasks(request.FILES["file"].read().decode("utf-8")) return redirect("dashboard") return render(request, "import.html") class ParentsView(generic.ListView): model = Parent template_name = "parents.html" context_object_name = "elements"