diff --git a/FOSSDB/apps/fossdb/urls.py b/FOSSDB/apps/fossdb/urls.py index 11fbdee..4e0ad33 100644 --- a/FOSSDB/apps/fossdb/urls.py +++ b/FOSSDB/apps/fossdb/urls.py @@ -4,5 +4,6 @@ from . import views urlpatterns = [ path("", views.index, name="index"), - path("add", views.add_project, name="add-project"), + path("add/", views.add_project, name="add-project"), + path("//", views.ProjectDetailView.as_view(), name="project-detail"), ] diff --git a/FOSSDB/apps/fossdb/views.py b/FOSSDB/apps/fossdb/views.py index 35fa898..1a53e34 100644 --- a/FOSSDB/apps/fossdb/views.py +++ b/FOSSDB/apps/fossdb/views.py @@ -1,6 +1,9 @@ from django import forms +from django.conf import settings from django.contrib.auth.decorators import login_required, permission_required -from django.shortcuts import redirect, render +from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin +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 @@ -8,6 +11,8 @@ from .hosting_platform.forms import HostingPlatformForm from .models import Project from .programming_language.forms import ProgrammingLanguageForm +User = settings.AUTH_USER_MODEL + @login_required(login_url="login/") @permission_required("fossdb.add_project", login_url="login/", raise_exception=True) @@ -52,8 +57,15 @@ def index(request): return render(request, "fossdb/index.html", context) - - - +class ProjectDetailView(DetailView): + model = Project + template_name = "fossdb/detailed_view.html" + context_object_name = "project" + 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")) diff --git a/templates/fossdb/detailed_view.html b/templates/fossdb/detailed_view.html new file mode 100644 index 0000000..ba842da --- /dev/null +++ b/templates/fossdb/detailed_view.html @@ -0,0 +1,38 @@ +{% extends "layout.html" %} +{% load static %} +{% block title %}{{ project.name }}{% endblock %} +{% block meta %}{% endblock %} +{% block content %} +

@{{ project.owner.username }}

+

{{ project.name }}

+

{{ project.description }}

+ + + +

{{ project.date_created|date:"d.m.Y, G:i" }}

+ + +{% endblock %}