Added Project update view

This commit is contained in:
Kristofers Solo 2023-06-26 14:41:58 +00:00
parent 31cf63c1ed
commit b041bf3773
3 changed files with 40 additions and 0 deletions

View File

@ -6,4 +6,5 @@ urlpatterns = [
path("", views.index, name="index"),
path("add/", views.add_project, 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"),
]

View File

@ -69,3 +69,22 @@ class ProjectDetailView(DetailView):
return queryset.filter(owner__username=self.kwargs.get("username"))
class ProjectUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
model = Project
template_name = "fossdb/update_view.html"
form_class = (
ProjectForm,
HostingPlatformForm,
ProgrammingLanguageForm,
)
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"))
def test_func(self):
return self.get_object().owner == self.request.user

View File

@ -0,0 +1,20 @@
{% extends "layout.html" %}
{% block title %}Update {{ project.name }}{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ project_form.as_p }}
<table>
{{ language_formset.management_form }}
{% for form in language_formset %}
<tr>
<td>{{ form.language.label_tag }}</td>
<td>{{ form.language }}</td>
<td>{{ form.percentage }}</td>
</tr>
{% endfor %}
</table>
{{ host_formset.as_p }}
<button type="submit">Save</button>
</form>
{% endblock %}