diff --git a/app/db.sqlite3 b/app/db.sqlite3 index d2eb71cf..9416a62c 100644 Binary files a/app/db.sqlite3 and b/app/db.sqlite3 differ diff --git a/app/server/models.py b/app/server/models.py index f1e05054..f2c1af38 100644 --- a/app/server/models.py +++ b/app/server/models.py @@ -1,6 +1,7 @@ import string from django.core.exceptions import ValidationError from django.db import models +from django.urls import reverse from django.contrib.auth.models import User from django.contrib.staticfiles.storage import staticfiles_storage @@ -24,6 +25,9 @@ class Project(models.Model): users = models.ManyToManyField(User) project_type = models.CharField(max_length=30, choices=PROJECT_CHOICES) + def get_absolute_url(self): + return reverse('upload', args=[self.id]) + def is_type_of(self, project_type): return project_type == self.project_type diff --git a/app/server/views.py b/app/server/views.py index 61dc9c3d..315b2af6 100644 --- a/app/server/views.py +++ b/app/server/views.py @@ -3,9 +3,9 @@ from io import TextIOWrapper from django.urls import reverse from django.http import HttpResponse, HttpResponseRedirect -from django.shortcuts import render, get_object_or_404 +from django.shortcuts import get_object_or_404 from django.views import View -from django.views.generic import TemplateView +from django.views.generic import TemplateView, CreateView from django.views.generic.list import ListView from django.contrib.auth.mixins import LoginRequiredMixin @@ -25,23 +25,10 @@ class ProjectView(LoginRequiredMixin, TemplateView): return [project.get_template_name()] -class ProjectsView(LoginRequiredMixin, TemplateView): - model = Project - paginate_by = 100 +class ProjectsView(LoginRequiredMixin, CreateView): + form_class = ProjectForm template_name = 'projects.html' - def get(self, request, *args, **kwargs): - form = ProjectForm() - return render(request, self.template_name, {'form': form}) - - def post(self, request, *args, **kwargs): - form = ProjectForm(request.POST) - if form.is_valid(): - project = form.save() - return HttpResponseRedirect(reverse('upload', args=[project.id])) - else: - return render(request, self.template_name, {'form': form}) - class DatasetView(SuperUserMixin, LoginRequiredMixin, ListView): template_name = 'admin/dataset.html' @@ -61,7 +48,6 @@ class StatsView(SuperUserMixin, LoginRequiredMixin, TemplateView): class DataUpload(SuperUserMixin, LoginRequiredMixin, TemplateView): - model = Project template_name = 'admin/dataset_upload.html' def post(self, request, *args, **kwargs): @@ -74,7 +60,6 @@ class DataUpload(SuperUserMixin, LoginRequiredMixin, TemplateView): Document(text=text, project=project).save() return HttpResponseRedirect(reverse('dataset', args=[project.id])) except: - print("failed") return HttpResponseRedirect(reverse('dataset-upload', args=[project.id]))