diff --git a/dcc/dcc/settings.py b/dcc/dcc/settings.py index c3da72e..7c53fdb 100644 --- a/dcc/dcc/settings.py +++ b/dcc/dcc/settings.py @@ -42,6 +42,7 @@ INSTALLED_APPS = [ 'rest_framework', 'dcc', 'driver', + 'metadata', 'roster', ] diff --git a/dcc/metadata/__init__.py b/dcc/metadata/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dcc/metadata/admin.py b/dcc/metadata/admin.py new file mode 100644 index 0000000..dfb502c --- /dev/null +++ b/dcc/metadata/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin +from metadata.models import Decoder, Manufacturer, Company + +admin.site.register(Decoder) +admin.site.register(Company) +admin.site.register(Manufacturer) diff --git a/dcc/metadata/apps.py b/dcc/metadata/apps.py new file mode 100644 index 0000000..1d731c9 --- /dev/null +++ b/dcc/metadata/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class MetadataConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'metadata' diff --git a/dcc/metadata/migrations/0001_initial.py b/dcc/metadata/migrations/0001_initial.py new file mode 100644 index 0000000..5d00089 --- /dev/null +++ b/dcc/metadata/migrations/0001_initial.py @@ -0,0 +1,42 @@ +# Generated by Django 4.0 on 2021-12-20 21:37 + +from django.db import migrations, models +import django.db.models.deletion +import django_countries.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Company', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=128, unique=True)), + ('country', django_countries.fields.CountryField(max_length=2)), + ], + options={ + 'verbose_name_plural': 'Companies', + }, + ), + migrations.CreateModel( + name='Manufacturer', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=128, unique=True)), + ], + ), + migrations.CreateModel( + name='Decoder', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=128, unique=True)), + ('manufacturer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='metadata.manufacturer')), + ], + ), + ] diff --git a/dcc/metadata/migrations/0002_decoder_version.py b/dcc/metadata/migrations/0002_decoder_version.py new file mode 100644 index 0000000..d5c2e1d --- /dev/null +++ b/dcc/metadata/migrations/0002_decoder_version.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0 on 2021-12-20 21:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('metadata', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='decoder', + name='version', + field=models.CharField(blank=True, max_length=64), + ), + ] diff --git a/dcc/metadata/migrations/__init__.py b/dcc/metadata/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dcc/metadata/models.py b/dcc/metadata/models.py new file mode 100644 index 0000000..59c77f8 --- /dev/null +++ b/dcc/metadata/models.py @@ -0,0 +1,31 @@ +from django.db import models +from django_countries.fields import CountryField + + +class Manufacturer(models.Model): + name = models.CharField(max_length=128, unique=True) + + def __str__(self): + return self.name + + +class Company(models.Model): + name = models.CharField(max_length=128, unique=True) + country = CountryField() + + class Meta: + verbose_name_plural = "Companies" + + def __str__(self): + return self.name + + +class Decoder(models.Model): + name = models.CharField(max_length=128, unique=True) + manufacturer = models.ForeignKey( + Manufacturer, + on_delete=models.CASCADE) + version = models.CharField(max_length=64, blank=True) + + def __str__(self): + return "{0} - {1}".format(self.manufacturer, self.name) diff --git a/dcc/metadata/tests.py b/dcc/metadata/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/dcc/metadata/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/dcc/metadata/views.py b/dcc/metadata/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/dcc/metadata/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/dcc/roster/admin.py b/dcc/roster/admin.py index b207796..5889b18 100644 --- a/dcc/roster/admin.py +++ b/dcc/roster/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from roster.models import Cab, Decoder, Manufacturer, Company +from roster.models import Cab @admin.register(Cab) @@ -28,8 +28,3 @@ class CabAdmin(admin.ModelAdmin): 'fields': ('creation_time', 'updated_time',) }), ) - - -admin.site.register(Decoder) -admin.site.register(Company) -admin.site.register(Manufacturer) diff --git a/dcc/roster/migrations/0015_remove_decoder_manufacturer_alter_cab_company_and_more.py b/dcc/roster/migrations/0015_remove_decoder_manufacturer_alter_cab_company_and_more.py new file mode 100644 index 0000000..a5cae8e --- /dev/null +++ b/dcc/roster/migrations/0015_remove_decoder_manufacturer_alter_cab_company_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 4.0 on 2021-12-20 21:37 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('metadata', '0001_initial'), + ('roster', '0014_alter_company_options_alter_cab_image'), + ] + + operations = [ + migrations.RemoveField( + model_name='decoder', + name='manufacturer', + ), + migrations.AlterField( + model_name='cab', + name='company', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='metadata.company'), + ), + migrations.AlterField( + model_name='cab', + name='decoder', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='metadata.decoder'), + ), + migrations.AlterField( + model_name='cab', + name='manufacturer', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='metadata.manufacturer'), + ), + migrations.DeleteModel( + name='Company', + ), + migrations.DeleteModel( + name='Decoder', + ), + migrations.DeleteModel( + name='Manufacturer', + ), + ] diff --git a/dcc/roster/models.py b/dcc/roster/models.py index 7fe6469..4242243 100644 --- a/dcc/roster/models.py +++ b/dcc/roster/models.py @@ -1,11 +1,10 @@ from uuid import uuid4 from django.db import models -from django_countries.fields import CountryField # from django.core.files.storage import FileSystemStorage # from django.dispatch import receiver from dcc.utils import get_image_preview - +from metadata.models import Manufacturer, Decoder, Company # class OverwriteMixin(FileSystemStorage): # def get_available_name(self, name, max_length): @@ -13,34 +12,6 @@ from dcc.utils import get_image_preview # return name -class Manufacturer(models.Model): - name = models.CharField(max_length=128, unique=True) - - def __str__(self): - return self.name - - -class Company(models.Model): - name = models.CharField(max_length=128, unique=True) - country = CountryField() - - class Meta: - verbose_name_plural = "Companies" - - def __str__(self): - return self.name - - -class Decoder(models.Model): - name = models.CharField(max_length=128, unique=True) - manufacturer = models.ForeignKey( - Manufacturer, - on_delete=models.CASCADE) - - def __str__(self): - return "{0} - {1}".format(self.manufacturer, self.name) - - class Cab(models.Model): uuid = models.UUIDField( primary_key=True, default=uuid4,