Changed AmiiboShop to M2M so we can use the same item for more amiibo
This commit is contained in:
parent
987d111a2b
commit
40fde99d15
|
@ -86,10 +86,13 @@ class AmiiboCardAdmin(ImportExportModelAdmin, reversion.VersionAdmin):
|
|||
|
||||
class AmiiboShopAdmin(ImportExportModelAdmin, reversion.VersionAdmin):
|
||||
resource_class = AmiiboShopResource
|
||||
list_display = ('amiibo', 'shop', 'check_price')
|
||||
list_filter = ('amiibo', 'shop', )
|
||||
list_display = ('amiibos_names', 'shop_name', 'shop', 'check_price')
|
||||
list_filter = ('shop', 'shop_name', )
|
||||
list_editable = ('check_price', )
|
||||
|
||||
def amiibos_names(self, obj):
|
||||
return ", ".join(obj.amiibo.all().values_list('name_eu', flat=True))
|
||||
|
||||
|
||||
class AmiiboPriceAdmin(reversion.VersionAdmin):
|
||||
pass
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
BACKUP = {}
|
||||
|
||||
|
||||
def backup(apps, schema_editor):
|
||||
AmiiboShop = apps.get_model("amiibo", "AmiiboShop")
|
||||
for shop in AmiiboShop.objects.all():
|
||||
BACKUP[shop.pk] = {
|
||||
'amiibo_id': shop.amiibo_id,
|
||||
}
|
||||
|
||||
def restore(apps, schema_editor):
|
||||
AmiiboShop = apps.get_model("amiibo", "AmiiboShop")
|
||||
Amiibo = apps.get_model("amiibo", "Amiibo")
|
||||
for pk, info in BACKUP.items():
|
||||
a = AmiiboShop.objects.get(pk=pk)
|
||||
a.amiibo.add(Amiibo.objects.get(pk=int(info['amiibo_id'])))
|
||||
a.save()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('amiibo', '0029_amiiboshop_shop_name'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(backup),
|
||||
migrations.RemoveField(
|
||||
model_name='amiiboshop',
|
||||
name='amiibo',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='amiiboshop',
|
||||
name='amiibo',
|
||||
field=models.ManyToManyField(related_name='shops_set', to='amiibo.Amiibo'),
|
||||
),
|
||||
migrations.RunPython(restore),
|
||||
]
|
|
@ -0,0 +1,23 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def convert(apps, schema_editor):
|
||||
Amiibo = apps.get_model("amiibo", "Amiibo")
|
||||
for amiibo in Amiibo.objects.all():
|
||||
amiibo.name_en = amiibo.name_eu
|
||||
amiibo.save()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('amiibo', '0030_auto_20150910_2116'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(convert),
|
||||
]
|
|
@ -237,7 +237,7 @@ class AmiiboShop(models.Model):
|
|||
(PACK, 'Pack'),
|
||||
)
|
||||
|
||||
amiibo = models.ForeignKey(Amiibo, related_name='shops_set')
|
||||
amiibo = models.ManyToManyField(Amiibo, related_name='shops_set')
|
||||
shop = models.ForeignKey('shop.Shop', related_name='amiibos_set')
|
||||
type = models.CharField(choices=ITEM_TYPES, default=FIGURE, max_length=1)
|
||||
url = models.TextField()
|
||||
|
@ -276,7 +276,7 @@ class AmiiboShop(models.Model):
|
|||
return self.type == self.PACK
|
||||
|
||||
def __unicode__(self):
|
||||
return u'{} in {}'.format(self.amiibo.name, self.shop.name)
|
||||
return u'{} in {}'.format(self.amiibo.count(), self.shop.name)
|
||||
|
||||
|
||||
class AmiiboPrice(models.Model):
|
||||
|
|
Loading…
Reference in New Issue