Extend functionalities

This commit is contained in:
2022-03-29 21:15:53 +02:00
parent 9678ba3789
commit 91e6dd0cac
17 changed files with 237 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
from django.contrib import admin
from metadata.models import Decoder, Manufacturer, Company
from metadata.models import Decoder, Manufacturer, Company, Tag
@admin.register(Decoder)
@@ -15,3 +15,8 @@ class CompanyAdmin(admin.ModelAdmin):
@admin.register(Manufacturer)
class ManufacturerAdmin(admin.ModelAdmin):
readonly_fields = ('logo_thumbnail',)
@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
readonly_fields = ('slug',)

View File

@@ -0,0 +1,20 @@
# Generated by Django 4.0.2 on 2022-03-06 19:50
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('metadata', '0003_metadata_extend'),
]
operations = [
migrations.CreateModel(
name='Equipment',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('equipment_type', models.CharField(max_length=128, unique=True)),
],
),
]

View File

@@ -0,0 +1,27 @@
# Generated by Django 4.0.2 on 2022-03-06 20:02
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('metadata', '0004_equipment'),
]
operations = [
migrations.CreateModel(
name='Tag',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=128, unique=True)),
('slug', models.CharField(max_length=128, unique=True)),
],
options={
'verbose_name_plural': 'Equipment',
},
),
migrations.DeleteModel(
name='Equipment',
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 4.0.2 on 2022-03-06 20:15
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('metadata', '0005_tag_delete_equipment'),
]
operations = [
migrations.AlterModelOptions(
name='tag',
options={},
),
]

View File

@@ -1,7 +1,8 @@
from django.db import models
from django.dispatch.dispatcher import receiver
from django_countries.fields import CountryField
from dcc.utils import get_image_preview
from dcc.utils import get_image_preview, slugify
class Manufacturer(models.Model):
@@ -67,3 +68,16 @@ class Decoder(models.Model):
def image_thumbnail(self):
return get_image_preview(self.image.url)
image_thumbnail.short_description = "Preview"
class Tag(models.Model):
name = models.CharField(max_length=128, unique=True)
slug = models.CharField(max_length=128, unique=True)
def __str__(self):
return self.name
@receiver(models.signals.pre_save, sender=Tag)
def tag_pre_save(sender, instance, **kwargs):
instance.slug = slugify(instance.name)