mirror of
https://github.com/kristoferssolo/FOSSDB.git
synced 2025-10-21 17:50:35 +00:00
Added language form
This commit is contained in:
parent
4791e5477a
commit
2544256b50
@ -1,14 +1,15 @@
|
|||||||
from django.contrib.auth.decorators import login_required, permission_required
|
from django.contrib.auth.decorators import login_required, permission_required
|
||||||
|
from django.forms import formset_factory
|
||||||
from django.shortcuts import redirect, render
|
from django.shortcuts import redirect, render
|
||||||
|
|
||||||
from .forms import ProjectForm
|
from .forms import ProjectForm, ProjectProgrammingLanguageForm
|
||||||
from .models import Project
|
from .models import ProgrammingLanguage, Project
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
context = {
|
context = {
|
||||||
"title": "FOSSDB",
|
"title": "FOSSDB",
|
||||||
"projects": Project.objects.all()
|
"projects": Project.objects.all(),
|
||||||
}
|
}
|
||||||
return render(request, "fossdb/index.html", context)
|
return render(request, "fossdb/index.html", context)
|
||||||
|
|
||||||
@ -16,21 +17,31 @@ def index(request):
|
|||||||
@login_required(login_url="login/")
|
@login_required(login_url="login/")
|
||||||
@permission_required("fossdb.add_post", login_url="login/", raise_exception=True)
|
@permission_required("fossdb.add_post", login_url="login/", raise_exception=True)
|
||||||
def add_project(request):
|
def add_project(request):
|
||||||
|
ProgrammingLanguageFormSet = formset_factory(ProjectProgrammingLanguageForm, extra=1)
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
project_form = ProjectForm(request.POST)
|
project_form = ProjectForm(request.POST)
|
||||||
|
language_formset = ProgrammingLanguageFormSet(request.POST)
|
||||||
|
|
||||||
if project_form.is_valid():
|
if project_form.is_valid() and language_formset.is_valid():
|
||||||
project = project_form.save(commit=False)
|
project = project_form.save(commit=False)
|
||||||
project.author = request.user
|
project.author = request.user
|
||||||
project.save()
|
project.save()
|
||||||
|
|
||||||
|
for language_form in language_formset:
|
||||||
|
if language_formset.is_valid():
|
||||||
|
language = language_form.save(commit=False)
|
||||||
|
language.project = project
|
||||||
|
language.save()
|
||||||
|
|
||||||
project_form.save_m2m()
|
project_form.save_m2m()
|
||||||
return redirect("/")
|
return redirect("/")
|
||||||
else:
|
else:
|
||||||
project_form = ProjectForm()
|
project_form = ProjectForm()
|
||||||
|
language_formset = ProgrammingLanguageFormSet()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
"title": "Add project",
|
"title": "Add project",
|
||||||
"project_form": project_form,
|
"project_form": project_form,
|
||||||
# "language_formset": language_formset
|
"language_formset": language_formset
|
||||||
}
|
}
|
||||||
return render(request, "fossdb/add_project.html", context)
|
return render(request, "fossdb/add_project.html", context)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user