mirror of
https://github.com/kristoferssolo/FOSSDB.git
synced 2025-10-21 17:50:35 +00:00
Fix HostingPlatform
This commit is contained in:
parent
9dbc32656a
commit
fd5dd8bf55
@ -1,7 +1,5 @@
|
||||
from django import forms
|
||||
|
||||
from .hosting_platform.models import HostingPlatform
|
||||
|
||||
from .models import Project
|
||||
|
||||
|
||||
|
||||
@ -3,9 +3,15 @@ from django import forms
|
||||
from .models import HostingPlatform, ProjectHostingPlatform
|
||||
|
||||
|
||||
class ProjectHostingPlatformForm(forms.ModelForm):
|
||||
hosting_platform = forms.ModelChoiceField(queryset=HostingPlatform.objects.all())
|
||||
|
||||
class HostingPlatformForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = ProjectHostingPlatform
|
||||
fields = ("hosting_platform", "url")
|
||||
fields = (
|
||||
"url",
|
||||
"hosting_platform",
|
||||
)
|
||||
widgets = {
|
||||
"hosting_platform": forms.Select(
|
||||
choices=HostingPlatform.objects.all(),
|
||||
)
|
||||
}
|
||||
|
||||
@ -12,29 +12,28 @@ from .models import Project
|
||||
@permission_required("fossdb.add_project", login_url="login/", raise_exception=True)
|
||||
def add_project(request):
|
||||
project_form = ProjectForm(request.POST or None)
|
||||
hosting_platform_form = ProjectHostingPlatformForm(request.POST or None)
|
||||
hosting_platform_form = HostingPlatformForm(request.POST or None)
|
||||
|
||||
_forms: dict[str, forms.ModelForm] = {
|
||||
"project_form": project_form,
|
||||
"hosting_platform_form": hosting_platform_form,
|
||||
}
|
||||
|
||||
if request.method == "POST":
|
||||
if project_form.is_valid() and hosting_platform_form.is_valid():
|
||||
if all([form.is_valid() for form in _forms.values()]):
|
||||
project = project_form.save(commit=False)
|
||||
project.author = request.user
|
||||
project.save()
|
||||
|
||||
project_hosting_platform = ProjectHostingPlatform(
|
||||
hosting_platform=hosting_platform_form.cleaned_data["hosting_platform"],
|
||||
project=project,
|
||||
url=hosting_platform_form.cleaned_data["url"],
|
||||
)
|
||||
project_hosting_platform.save()
|
||||
hosting_platform = hosting_platform_form.save(commit=False)
|
||||
hosting_platform.project = project
|
||||
hosting_platform.save()
|
||||
|
||||
|
||||
project_form.save_m2m()
|
||||
return redirect("index")
|
||||
|
||||
context = {
|
||||
"title": "Add project",
|
||||
"form": project_form,
|
||||
"host_form": hosting_platform_form,
|
||||
}
|
||||
context = {"title": "Add project", **_forms}
|
||||
return render(request, "fossdb/add_project.html", context)
|
||||
|
||||
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
{% block content %}
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
{{ host_form.as_p }}
|
||||
{{ project_form.as_p }}
|
||||
{{ hosting_platform_form.as_table }}
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user