Moved HostingPlatform model to separate app

This commit is contained in:
Kristofers Solo 2023-04-08 13:56:24 +03:00
parent 21ef4a0154
commit f28e74912e
7 changed files with 51 additions and 45 deletions

View File

@ -1,12 +1,8 @@
from django.contrib import admin
from hosting_platform.admin import ProjectHostingPlatformInline
from programming_language.admin import ProjectProgrammingLanguageInline
from .models import HostingPlatform, License, Project, ProjectHostingPlatform
class ProjectHostingPlatformInline(admin.TabularInline):
model = ProjectHostingPlatform
extra = 1
from .models import Project
class ProjectAdmin(admin.ModelAdmin):
@ -20,7 +16,5 @@ class ProjectAdmin(admin.ModelAdmin):
return " | ".join([i.hosting_platform.hosting_platform for i in object.projecthostingplatform_set.all()])
admin.site.register(ProgrammingLanguage)
admin.site.register(HostingPlatform)
admin.site.register(Project, ProjectAdmin)
admin.site.register(Tag)

View File

@ -1,6 +1,6 @@
from django import forms
from .models import HostingPlatform, Project, ProjectHostingPlatform
from .models import Project
class ProjectForm(forms.ModelForm):
@ -20,20 +20,3 @@ class ProjectForm(forms.ModelForm):
}),
"licenses": forms.CheckboxSelectMultiple(),
}
class HostingPlatformForm(forms.ModelForm):
url = forms.URLField()
class Meta:
model = HostingPlatform
fields = ["hosting_platform", "url"]
ProjectHostingPlatformFormSet = forms.inlineformset_factory(
Project,
ProjectHostingPlatform,
form=HostingPlatformForm,
extra=1,
can_delete=False
)

View File

@ -2,28 +2,13 @@ import uuid
from django.conf import settings
from django.db import models
from hosting_platform.models import HostingPlatform
from license.models import License
from programming_language.models import ProgrammingLanguage
User = settings.AUTH_USER_MODEL
class HostingPlatform(models.Model):
hosting_platform = models.CharField(max_length=100)
def __str__(self):
return self.hosting_platform
class ProjectHostingPlatform(models.Model):
project = models.ForeignKey("Project", on_delete=models.CASCADE)
hosting_platform = models.ForeignKey(HostingPlatform, on_delete=models.CASCADE)
url = models.URLField()
def __str__(self):
return f"{self.project} | {self.hosting_platform}"
class Tag(models.Model):
name = models.CharField(max_length=100)
description = models.TextField(null=True, blank=True)

View File

@ -1,8 +1,9 @@
from django.contrib.auth.decorators import login_required, permission_required
from django.shortcuts import redirect, render
from hosting_platform.forms import ProjectHostingPlatformFormSet
from programming_language.forms import ProjectProgrammingLanguageFormSet
from .forms import ProjectForm, ProjectHostingPlatformFormSet
from .forms import ProjectForm
from .models import Project

View File

@ -1,3 +1,11 @@
from django.contrib import admin
# Register your models here.
from .models import HostingPlatform, ProjectHostingPlatform
class ProjectHostingPlatformInline(admin.TabularInline):
model = ProjectHostingPlatform
extra = 1
admin.site.register(HostingPlatform)

View File

@ -0,0 +1,21 @@
from django import forms
from fossdb.models import Project
from .models import HostingPlatform, ProjectHostingPlatform
class HostingPlatformForm(forms.ModelForm):
url = forms.URLField()
class Meta:
model = HostingPlatform
fields = ["hosting_platform", "url"]
ProjectHostingPlatformFormSet = forms.inlineformset_factory(
Project,
ProjectHostingPlatform,
form=HostingPlatformForm,
extra=1,
can_delete=False
)

View File

@ -1,3 +1,17 @@
from django.db import models
# Create your models here.
class HostingPlatform(models.Model):
hosting_platform = models.CharField(max_length=100)
def __str__(self):
return self.hosting_platform
class ProjectHostingPlatform(models.Model):
project = models.ForeignKey("Project", on_delete=models.CASCADE)
hosting_platform = models.ForeignKey(HostingPlatform, on_delete=models.CASCADE)
url = models.URLField()
def __str__(self):
return f"{self.project} | {self.hosting_platform}"