From e74853d89f4900a6b7f2f4fd1c62694e5ba6c3c8 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Sun, 9 Apr 2023 13:36:41 +0300 Subject: [PATCH] Created OS model --- .../0002_operatingsystem_project_os.py | 27 +++++++++++++++++++ FOSSDB_web/apps/fossdb/models.py | 15 ++++++++--- .../apps/fossdb/operating_system/models.py | 7 +++++ 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 FOSSDB_web/apps/fossdb/migrations/0002_operatingsystem_project_os.py create mode 100644 FOSSDB_web/apps/fossdb/operating_system/models.py diff --git a/FOSSDB_web/apps/fossdb/migrations/0002_operatingsystem_project_os.py b/FOSSDB_web/apps/fossdb/migrations/0002_operatingsystem_project_os.py new file mode 100644 index 0000000..9741c32 --- /dev/null +++ b/FOSSDB_web/apps/fossdb/migrations/0002_operatingsystem_project_os.py @@ -0,0 +1,27 @@ +# Generated by Django 4.1.7 on 2023-04-09 10:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('fossdb', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='OperatingSystem', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('description', models.TextField(blank=True, default='')), + ('version', models.CharField(blank=True, max_length=50)), + ], + ), + migrations.AddField( + model_name='project', + name='os', + field=models.ManyToManyField(to='fossdb.operatingsystem'), + ), + ] diff --git a/FOSSDB_web/apps/fossdb/models.py b/FOSSDB_web/apps/fossdb/models.py index 5fa0cf2..59297ad 100644 --- a/FOSSDB_web/apps/fossdb/models.py +++ b/FOSSDB_web/apps/fossdb/models.py @@ -3,6 +3,12 @@ import uuid from django.conf import settings from django.db import models +from .host.models import HostingPlatform +from .language.models import ProgrammingLanguage +from .license.models import License +from .operating_system.models import OperatingSystem +from .tag.models import Tag + User = settings.AUTH_USER_MODEL @@ -11,10 +17,11 @@ class Project(models.Model): author = models.ForeignKey(User, on_delete=models.CASCADE) name = models.CharField(max_length=255) description = models.TextField(blank=True, default="") - licenses = models.ManyToManyField("License") - programming_languages = models.ManyToManyField("ProgrammingLanguage", through="ProjectProgrammingLanguage", related_name="projects") - hosting_platform = models.ManyToManyField("HostingPlatform", through="ProjectHostingPlatform", related_name="projects") - tag = models.ManyToManyField("Tag") + licenses = models.ManyToManyField(License) + programming_languages = models.ManyToManyField(ProgrammingLanguage, through="ProjectProgrammingLanguage", related_name="projects") + hosting_platform = models.ManyToManyField(HostingPlatform, through="ProjectHostingPlatform", related_name="projects") + tag = models.ManyToManyField(Tag) + os = models.ManyToManyField(OperatingSystem) date_created = models.DateTimeField(auto_now_add=True) def save(self, *args, **kwargs): diff --git a/FOSSDB_web/apps/fossdb/operating_system/models.py b/FOSSDB_web/apps/fossdb/operating_system/models.py new file mode 100644 index 0000000..d638ec8 --- /dev/null +++ b/FOSSDB_web/apps/fossdb/operating_system/models.py @@ -0,0 +1,7 @@ +from django.db import models + + +class OperatingSystem(models.Model): + name = models.CharField(max_length=100) + description = models.TextField(blank=True, default="") + version = models.CharField(max_length=50, blank=True)