Added new fields for wireless headphones
This commit is contained in:
parent
2a83135234
commit
967da2ba42
2 changed files with 44 additions and 6 deletions
|
|
@ -59,16 +59,18 @@ class WiredHeadphonesInline(admin.StackedInline):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class WirelessHeadphonesInline(admin.StackedInline):
|
class WirelessHeadphonesInline(admin.StackedInline):
|
||||||
model = WirelessHeadphones
|
model = WirelessHeadphones
|
||||||
extra = 0
|
extra = 0
|
||||||
fieldsets = [
|
fieldsets = [
|
||||||
(None, {
|
(None, {
|
||||||
'fields': [
|
'fields': [
|
||||||
('wireless_technology', 'bluetooth_version'),
|
('wireless_technology', 'bluetooth_version', 'chip'),
|
||||||
('battery_life', 'charging_time'),
|
('battery_life', 'charging_time'),
|
||||||
|
('has_charging_case', 'charging_case_battery_life', 'charging_case_time'),
|
||||||
'charging_interface',
|
'charging_interface',
|
||||||
('has_charging_case', 'charging_case_battery_life'),
|
|
||||||
'supported_codecs'
|
'supported_codecs'
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
@ -222,7 +224,7 @@ class HeadphonesAdmin(admin.ModelAdmin):
|
||||||
'fields': [
|
'fields': [
|
||||||
('date_added', 'published')
|
('date_added', 'published')
|
||||||
],
|
],
|
||||||
'classes': ('collapse',)
|
# 'classes': ('collapse',)
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -432,6 +434,12 @@ class WirelessTechnologyAdmin(admin.ModelAdmin):
|
||||||
search_fields = ('name', 'description')
|
search_fields = ('name', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(WirelessHeadphonesChip)
|
||||||
|
class WWirelessHeadphonesChipAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('name',)
|
||||||
|
search_fields = ('name', 'description')
|
||||||
|
|
||||||
|
|
||||||
@admin.register(ChargingInterface)
|
@admin.register(ChargingInterface)
|
||||||
class ChargingInterfaceAdmin(admin.ModelAdmin):
|
class ChargingInterfaceAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name',)
|
list_display = ('name',)
|
||||||
|
|
|
||||||
|
|
@ -750,7 +750,7 @@ class Headphones(models.Model):
|
||||||
# blank=True,
|
# blank=True,
|
||||||
# verbose_name="Доступные цвета"
|
# verbose_name="Доступные цвета"
|
||||||
# )
|
# )
|
||||||
weight = models.PositiveSmallIntegerField(
|
weight = models.FloatField(
|
||||||
verbose_name="Вес (г)",
|
verbose_name="Вес (г)",
|
||||||
null=True,
|
null=True,
|
||||||
blank=True
|
blank=True
|
||||||
|
|
@ -877,6 +877,18 @@ class WiredHeadphones(models.Model):
|
||||||
return f"Проводные характеристики для {self.headphones.model}"
|
return f"Проводные характеристики для {self.headphones.model}"
|
||||||
|
|
||||||
|
|
||||||
|
class WirelessHeadphonesChip(models.Model):
|
||||||
|
name = models.CharField(max_length=50, verbose_name="Название")
|
||||||
|
description = models.TextField(blank=True, verbose_name="Описание")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "Используемый чип"
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class WirelessHeadphones(models.Model):
|
class WirelessHeadphones(models.Model):
|
||||||
headphones = models.OneToOneField(
|
headphones = models.OneToOneField(
|
||||||
Headphones,
|
Headphones,
|
||||||
|
|
@ -896,12 +908,16 @@ class WirelessHeadphones(models.Model):
|
||||||
verbose_name="Версия Bluetooth"
|
verbose_name="Версия Bluetooth"
|
||||||
)
|
)
|
||||||
battery_life = models.IntegerField(
|
battery_life = models.IntegerField(
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
verbose_name="Время работы (ч)",
|
verbose_name="Время работы (ч)",
|
||||||
help_text="Время работы от батареи в часах"
|
help_text="Время работы от батареи в часах"
|
||||||
)
|
)
|
||||||
charging_time = models.IntegerField(
|
charging_time = models.IntegerField(
|
||||||
verbose_name="Время зарядки (мин)",
|
blank=True,
|
||||||
help_text="Время зарядки в минутах"
|
null=True,
|
||||||
|
verbose_name="Время зарядки наушников (мин)",
|
||||||
|
help_text="Время зарядки наушников в минутах"
|
||||||
)
|
)
|
||||||
has_charging_case = models.BooleanField(
|
has_charging_case = models.BooleanField(
|
||||||
default=False,
|
default=False,
|
||||||
|
|
@ -913,11 +929,25 @@ class WirelessHeadphones(models.Model):
|
||||||
verbose_name="Время работы с кейсом (ч)",
|
verbose_name="Время работы с кейсом (ч)",
|
||||||
help_text="Общее время работы с кейсом в часах"
|
help_text="Общее время работы с кейсом в часах"
|
||||||
)
|
)
|
||||||
|
charging_case_time = models.IntegerField(
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
|
verbose_name="Время зарядки кейса (мин)",
|
||||||
|
help_text="Время зарядки кейса в минутах"
|
||||||
|
)
|
||||||
|
|
||||||
charging_interface = models.ForeignKey(
|
charging_interface = models.ForeignKey(
|
||||||
ChargingInterface,
|
ChargingInterface,
|
||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
verbose_name="Интерфейс зарядки"
|
verbose_name="Интерфейс зарядки"
|
||||||
)
|
)
|
||||||
|
chip = models.ForeignKey(
|
||||||
|
WirelessHeadphonesChip,
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
|
on_delete=models.PROTECT,
|
||||||
|
verbose_name="Чип, используемый в наушниках"
|
||||||
|
)
|
||||||
supported_codecs = models.ManyToManyField(
|
supported_codecs = models.ManyToManyField(
|
||||||
AudioCodec,
|
AudioCodec,
|
||||||
blank=True,
|
blank=True,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue