mirror of
https://github.com/kristoferssolo/FOSSDB.git
synced 2025-10-21 17:50:35 +00:00
Added Project detail view
This commit is contained in:
parent
a2868b573d
commit
31cf63c1ed
@ -4,5 +4,6 @@ from . import views
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", views.index, name="index"),
|
path("", views.index, name="index"),
|
||||||
path("add", views.add_project, name="add-project"),
|
path("add/", views.add_project, name="add-project"),
|
||||||
|
path("<str:username>/<str:project_name>/", views.ProjectDetailView.as_view(), name="project-detail"),
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib.auth.decorators import login_required, permission_required
|
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 django.views.generic import CreateView, DeleteView, DetailView, UpdateView
|
||||||
|
|
||||||
from .forms import ProjectForm
|
from .forms import ProjectForm
|
||||||
@ -8,6 +11,8 @@ from .hosting_platform.forms import HostingPlatformForm
|
|||||||
from .models import Project
|
from .models import Project
|
||||||
from .programming_language.forms import ProgrammingLanguageForm
|
from .programming_language.forms import ProgrammingLanguageForm
|
||||||
|
|
||||||
|
User = settings.AUTH_USER_MODEL
|
||||||
|
|
||||||
|
|
||||||
@login_required(login_url="login/")
|
@login_required(login_url="login/")
|
||||||
@permission_required("fossdb.add_project", login_url="login/", raise_exception=True)
|
@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)
|
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"))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
38
templates/fossdb/detailed_view.html
Normal file
38
templates/fossdb/detailed_view.html
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{% extends "layout.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% block title %}{{ project.name }}{% endblock %}
|
||||||
|
{% block meta %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<h2>@{{ project.owner.username }}</h2>
|
||||||
|
<p>{{ project.name }}</p>
|
||||||
|
<p>{{ project.description }}</p>
|
||||||
|
<ul>
|
||||||
|
{% for license in project.licenses.all %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ license.url }}">{{ license.short_name }}</a>
|
||||||
|
</li>
|
||||||
|
{% empty %}
|
||||||
|
<p>No license</p>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
{% for language in project.projectprogramminglanguage_set.all %}
|
||||||
|
<li>{{ language.language }} | {{ language.percentage }}%</li>
|
||||||
|
{% empty %}
|
||||||
|
<p>No language</p>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
{% for tag in project.tag.all %}
|
||||||
|
<li>{{ tag.name }}</li>
|
||||||
|
{% empty %}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
<p>{{ project.date_created|date:"d.m.Y, G:i" }}</p>
|
||||||
|
<button>
|
||||||
|
<a href="{% url 'project-update' project.owner project.name %}">Update</a>
|
||||||
|
</button>
|
||||||
|
<button>
|
||||||
|
<a href="{% url 'project-delete' project.owner project.name %}">Delete</a>
|
||||||
|
</button>
|
||||||
|
{% endblock %}
|
||||||
Loading…
Reference in New Issue
Block a user