mirror of
https://github.com/kristoferssolo/FOSSDB.git
synced 2025-10-21 17:50:35 +00:00
46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
|
|
from django.contrib.auth.decorators import login_required, permission_required
|
|
from django.shortcuts import redirect, render
|
|
|
|
from .forms import (ProjectForm, ProjectHostingPlatformFormSet,
|
|
ProjectProgrammingLanguageFormSet)
|
|
from .models import Project
|
|
|
|
# from fossdb.hosting_platform.forms import ProjectHostingPlatformFormSet
|
|
# from fossdb.programming_language.forms import ProjectProgrammingLanguageFormSet
|
|
|
|
|
|
@login_required(login_url="login/")
|
|
@permission_required("fossdb.add_post", login_url="login/", raise_exception=True)
|
|
def add_project(request):
|
|
if request.method == "POST":
|
|
project_form = ProjectForm(request.POST)
|
|
language_formset = ProjectProgrammingLanguageFormSet(request.POST, instance=Project())
|
|
host_formset = ProjectHostingPlatformFormSet(request.POST, instance=Project())
|
|
|
|
if project_form.is_valid() and language_formset.is_valid() and host_formset.is_valid():
|
|
project = project_form.save(commit=False)
|
|
project.author = request.user
|
|
project.save()
|
|
|
|
language_formset.instance = project
|
|
language_formset.save()
|
|
|
|
host_formset.instance = project
|
|
host_formset.save()
|
|
|
|
project_form.save_m2m()
|
|
return redirect("/")
|
|
else:
|
|
project_form = ProjectForm()
|
|
language_formset = ProjectProgrammingLanguageFormSet()
|
|
host_formset = ProjectHostingPlatformFormSet()
|
|
|
|
context = {
|
|
"title": "Add project",
|
|
"project_form": project_form,
|
|
"language_formset": language_formset,
|
|
"host_formset": host_formset,
|
|
}
|
|
return render(request, "fossdb/add_project.html", context)
|