From 89143d6d43fa74937c49a367b3156ac080642667 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Sat, 8 Apr 2023 13:18:13 +0300 Subject: [PATCH] Added Tag model --- FOSSDB_web/apps/fossdb/admin.py | 3 ++- FOSSDB_web/apps/fossdb/models.py | 15 ++++++++++++--- FOSSDB_web/settings.py | 14 +++++++++++++- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/FOSSDB_web/apps/fossdb/admin.py b/FOSSDB_web/apps/fossdb/admin.py index 353a014..e7f018d 100644 --- a/FOSSDB_web/apps/fossdb/admin.py +++ b/FOSSDB_web/apps/fossdb/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin from .models import (HostingPlatform, License, ProgrammingLanguage, Project, - ProjectHostingPlatform, ProjectProgrammingLanguage) + ProjectHostingPlatform, ProjectProgrammingLanguage, Tag) class ProjectProgrammingLanguageInline(admin.TabularInline): @@ -29,3 +29,4 @@ admin.site.register(License) admin.site.register(ProgrammingLanguage) admin.site.register(HostingPlatform) admin.site.register(Project, ProjectAdmin) +admin.site.register(Tag) diff --git a/FOSSDB_web/apps/fossdb/models.py b/FOSSDB_web/apps/fossdb/models.py index d21d940..f4a7079 100644 --- a/FOSSDB_web/apps/fossdb/models.py +++ b/FOSSDB_web/apps/fossdb/models.py @@ -1,12 +1,14 @@ import uuid -from django.contrib.auth.models import User +from django.conf import settings from django.db import models +User = settings.AUTH_USER_MODEL + class License(models.Model): short_name = models.CharField(max_length=50) - full_name = models.CharField(max_length=100, null=True, blank=True) + full_name = models.CharField(max_length=100, blank=True) url = models.URLField(null=True, blank=True) description = models.TextField(null=True, blank=True) @@ -24,7 +26,7 @@ class ProgrammingLanguage(models.Model): class ProjectProgrammingLanguage(models.Model): project = models.ForeignKey("Project", on_delete=models.CASCADE) language = models.ForeignKey(ProgrammingLanguage, on_delete=models.CASCADE) - percentage = models.PositiveIntegerField() + percentage = models.PositiveIntegerField(default=0) def __str__(self): return f"{self.project} | {self.language} | {self.percentage}%" @@ -46,6 +48,12 @@ class ProjectHostingPlatform(models.Model): return f"{self.project} | {self.hosting_platform}" +class Tag(models.Model): + name = models.CharField(max_length=100) + description = models.TextField(null=True, blank=True) + icon = models.ImageField(upload_to="types/icons/", null=True, blank=True) + + class Project(models.Model): uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) author = models.ForeignKey(User, on_delete=models.CASCADE) @@ -54,6 +62,7 @@ class Project(models.Model): licenses = models.ManyToManyField(License) programming_languages = models.ManyToManyField(ProgrammingLanguage, through="ProjectProgrammingLanguage", related_name="projects") hosting_platform = models.ManyToManyField(HostingPlatform, through="ProjectHostingPlatform", related_name="projects") + project_type = models.ForeignKey(Tag, on_delete=models.CASCADE, blank=True, null=True) date_created = models.DateTimeField(auto_now_add=True) def save(self, *args, **kwargs): diff --git a/FOSSDB_web/settings.py b/FOSSDB_web/settings.py index e4d3655..cd5514a 100644 --- a/FOSSDB_web/settings.py +++ b/FOSSDB_web/settings.py @@ -82,7 +82,7 @@ WSGI_APPLICATION = "FOSSDB_web.wsgi.application" DATABASES = { "default": { - "ENGINE": "django.db.backends.mysql", + "ENGINE": f"django.db.backends.{config['DATABASE']['ENGINE']}", "NAME": config["DATABASE"]["NAME"], "USER": config["DATABASE"]["USER"], "PASSWORD": config["DATABASE"]["PASSWORD"], @@ -128,6 +128,7 @@ USE_TZ = True STATIC_URL = "/static/" STATIC_ROOT = BASE_PATH.joinpath("static") +MEDIA_URL = "/media/" MEDIA_ROOT = BASE_PATH.joinpath("media") # Default primary key field type @@ -136,3 +137,14 @@ MEDIA_ROOT = BASE_PATH.joinpath("media") DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" LOGIN_REDIRECT_URL = "/" LOGOUT_REDIRECT_URL = "/" + +# HTTPS settings +# SESSION_COOKIE_SECURE = True +# CSRF_COOKIE_SECURE = True +# SECURE_SSL_REDIRECT = True + +# HSTS settings +# SECURE_HSTS_SECONDS = 31536000 # 1 year +# SECURE_HSTS_SECONDS = 1 # 1 year +# SECURE_HSTS_PRELOAD = True +# SECURE_HSTS_INCLUDE_SUBDOMAINS = True