diff --git a/libraries/__init__.py b/libraries/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/libraries/admin.py b/libraries/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/libraries/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/libraries/apps.py b/libraries/apps.py new file mode 100644 index 00000000..d20b00e1 --- /dev/null +++ b/libraries/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class LibrariesConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'libraries' diff --git a/libraries/migrations/__init__.py b/libraries/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/libraries/models.py b/libraries/models.py new file mode 100644 index 00000000..7d94b5ec --- /dev/null +++ b/libraries/models.py @@ -0,0 +1,48 @@ +from django.db import models + + +class Category(models.Model): + """ + Library categories such as: + - Math and Numerics + - Algorithms + - etc + """ + + name = models.CharField(max_length=100) + + def __str__(self): + return self.name + + +class Library(models.Model): + """ + Model to represent component Libraries of Boost + """ + + name = models.CharField(max_length=100, db_index=True) + description = models.TextField(blank=True, null=True) + github_url = models.URLField(max_length=500, blank=True, null=True) + first_release = models.ForeignKey( + "versions.Version", + related_name="first_releases", + on_delete=models.CASCADE, + blank=True, + null=True, + ) + cpp_standard_minimum = models.CharField(max_length=50, blank=True, null=True) + + active_development = models.BooleanField(default=True, db_index=True) + last_github_update = models.DateTimeField(blank=True, null=True, db_index=True) + + categories = models.ManyToManyField(Category, related_name="libraries") + + authors = models.ManyToManyField("users.User", related_name="authors") + maintainers = models.ManyToManyField("users.User", related_name="maintainers") + + closed_prs_per_month = models.IntegerField(blank=True, null=True) + open_issues = models.IntegerField(blank=True, null=True) + commits_per_release = models.IntegerField(blank=True, null=True) + + def __str__(self): + return self.name diff --git a/libraries/tests/__init__.py b/libraries/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/libraries/tests/test_models.py b/libraries/tests/test_models.py new file mode 100644 index 00000000..e69de29b diff --git a/libraries/views.py b/libraries/views.py new file mode 100644 index 00000000..91ea44a2 --- /dev/null +++ b/libraries/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.