From 726443ee52cf9d1ed277df023cf2ee2e5aa35fdd Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Tue, 27 Jun 2023 10:09:13 +0000 Subject: [PATCH] Created m2m field for `Project` Created `programming_language` `ManyToManyField` for `Project` --- FOSSDB/apps/fossdb/models.py | 2 ++ FOSSDB/apps/fossdb/urls.py | 6 +++--- FOSSDB/apps/fossdb/views.py | 15 --------------- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/FOSSDB/apps/fossdb/models.py b/FOSSDB/apps/fossdb/models.py index 7953744..a5d6aa8 100644 --- a/FOSSDB/apps/fossdb/models.py +++ b/FOSSDB/apps/fossdb/models.py @@ -5,6 +5,7 @@ from django.db import models from .license.models import License from .operating_system.models import OperatingSystemVersion +from .programming_language.models import ProgrammingLanguage, ProjectProgrammingLanguage from .tag.models import Tag User = settings.AUTH_USER_MODEL @@ -18,6 +19,7 @@ class Project(models.Model): license = models.ManyToManyField(License, blank=True) tag = models.ManyToManyField(Tag, blank=True) operating_system = models.ManyToManyField(OperatingSystemVersion, blank=True) + programming_language = models.ManyToManyField(ProgrammingLanguage, through=ProjectProgrammingLanguage, blank=True) date_created = models.DateTimeField(auto_now_add=True) @property diff --git a/FOSSDB/apps/fossdb/urls.py b/FOSSDB/apps/fossdb/urls.py index c06a67b..e2bb536 100644 --- a/FOSSDB/apps/fossdb/urls.py +++ b/FOSSDB/apps/fossdb/urls.py @@ -5,7 +5,7 @@ from . import views urlpatterns = [ path("", views.index, name="index"), path("add/", views.ProjectCreateView.as_view(), name="add-project"), - path("//", views.ProjectDetailView.as_view(), name="project-detail"), - path("//update/", views.ProjectUpdateView.as_view(), name="project-update"), - path("//delete/", views.ProjectDeleteView.as_view(), name="project-delete"), + path("//", views.ProjectDetailView.as_view(), name="project-detail"), + path("//update/", views.ProjectUpdateView.as_view(), name="project-update"), + path("//delete/", views.ProjectDeleteView.as_view(), name="project-delete"), ] diff --git a/FOSSDB/apps/fossdb/views.py b/FOSSDB/apps/fossdb/views.py index ac25d58..ad876b3 100644 --- a/FOSSDB/apps/fossdb/views.py +++ b/FOSSDB/apps/fossdb/views.py @@ -1,15 +1,12 @@ from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin from django.db import transaction from django.shortcuts import get_object_or_404, redirect, render -from django.urls import reverse_lazy from django.views.generic import CreateView, DeleteView, DetailView, UpdateView from .forms import ProjectForm from .hosting_platform.forms import HostingPlatformForm -from .hosting_platform.models import ProjectHostingPlatform from .models import Project from .programming_language.forms import ProgrammingLanguageForm -from .programming_language.models import ProjectProgrammingLanguage def index(request): @@ -64,10 +61,6 @@ class ProjectDetailView(DetailView): slug_field = "name" slug_url_kwarg = "project_name" - def get_queryset(self): - queryset = super().get_queryset() - return queryset.filter(owner__username=self.kwargs.get("username")) - class ProjectUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView): model = Project @@ -78,10 +71,6 @@ class ProjectUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView): login_url = "/login/" redirect_field_name = "redirect_to" - def get_queryset(self): - queryset = super().get_queryset() - return queryset.filter(owner__username=self.kwargs.get("username")) - def test_func(self): return self.get_object().owner == self.request.user @@ -111,10 +100,6 @@ class ProjectDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView): redirect_field_name = "redirect_to" success_url = "/" - def get_queryset(self): - queryset = super().get_queryset() - return queryset.filter(owner__username=self.kwargs.get("username")) - def test_func(self): return self.get_object().owner == self.request.user