mirror of
https://github.com/kristoferssolo/FOSSDB.git
synced 2025-10-21 17:50:35 +00:00
Created m2m field for Project
Created `programming_language` `ManyToManyField` for `Project`
This commit is contained in:
parent
3cfe95d214
commit
726443ee52
@ -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
|
||||
|
||||
@ -5,7 +5,7 @@ from . import views
|
||||
urlpatterns = [
|
||||
path("", views.index, name="index"),
|
||||
path("add/", views.ProjectCreateView.as_view(), name="add-project"),
|
||||
path("<str:username>/<str:project_name>/", views.ProjectDetailView.as_view(), name="project-detail"),
|
||||
path("<str:username>/<str:project_name>/update/", views.ProjectUpdateView.as_view(), name="project-update"),
|
||||
path("<str:username>/<str:project_name>/delete/", views.ProjectDeleteView.as_view(), name="project-delete"),
|
||||
path("<str:owner>/<str:project_name>/", views.ProjectDetailView.as_view(), name="project-detail"),
|
||||
path("<str:owner>/<str:project_name>/update/", views.ProjectUpdateView.as_view(), name="project-update"),
|
||||
path("<str:owner>/<str:project_name>/delete/", views.ProjectDeleteView.as_view(), name="project-delete"),
|
||||
]
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user