From: Thomas Fillon Date: Wed, 9 Sep 2015 09:07:33 +0000 (+0200) Subject: Models : Change Record-Product relation to OneToOneField X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=0aaf73ee38626e3012f715a54cd079f53fc4132a;p=diggersdigest.git Models : Change Record-Product relation to OneToOneField --- diff --git a/diggersdigest/records/admin.py b/diggersdigest/records/admin.py index a9a7c80..b090d3c 100644 --- a/diggersdigest/records/admin.py +++ b/diggersdigest/records/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from cartridge.shop.models import Product, ProductVariation +from cartridge.shop.models import Product, ProductImage, ProductVariation from cartridge.shop.admin import ProductAdmin, ProductImageAdmin, ProductVariationAdmin # Register your models here. @@ -21,10 +21,14 @@ from .models import ConditionGrading class RecordInline(admin.StackedInline): model = Record extra = 0 + max_num = 0 class RecordProductAdmin(ProductAdmin): inlines = [ProductImageAdmin, ProductVariationAdmin, RecordInline] +class RecordAdmin(admin.ModelAdmin): + search_fields = ["title", "artist__name", "label__name"] + admin.site.unregister(Product) admin.site.register(Product, RecordProductAdmin) @@ -39,6 +43,6 @@ admin.site.register(User) admin.site.register(Artist) admin.site.register(Label) admin.site.register(Country) -admin.site.register(Record) +admin.site.register(Record, RecordAdmin) admin.site.register(Podcast) admin.site.register(ConditionGrading) diff --git a/diggersdigest/records/management/commands/populate_db.py b/diggersdigest/records/management/commands/populate_db.py index 77830ef..64676e0 100644 --- a/diggersdigest/records/management/commands/populate_db.py +++ b/diggersdigest/records/management/commands/populate_db.py @@ -221,7 +221,7 @@ class Command(BaseCommand): def populate_category(self): # shop_cat, created = Category.objects.get_or_create(title="Shop") - + theme_list = [theme for theme in rec_models.Theme.objects.all() if theme.published==1] count = 0 @@ -246,8 +246,11 @@ class Command(BaseCommand): IMG_PATH = os.path.join('uploads/product') shop_list = rec_models.Shop.objects.all() - + DOUBLONS_TO_SKIP = [2734, 1006, 1393] + for shop in shop_list: + if shop.id in DOUBLONS_TO_SKIP: + continue obj, created = rec_models.Record.objects.get_or_create(pk=shop.id) obj.title = parser.unescape(shop.titre) diff --git a/diggersdigest/records/migrations/0007_record_image.py b/diggersdigest/records/migrations/0007_record_image.py new file mode 100644 index 0000000..9e4c70d --- /dev/null +++ b/diggersdigest/records/migrations/0007_record_image.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('shop', '0003_auto_20150906_1911'), + ('records', '0006_auto_20150907_0835'), + ] + + operations = [ + migrations.AddField( + model_name='record', + name='image', + field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Image', blank=True, to='shop.ProductImage', null=True), + ), + ] diff --git a/diggersdigest/records/migrations/0008_auto_20150909_0818.py b/diggersdigest/records/migrations/0008_auto_20150909_0818.py new file mode 100644 index 0000000..f74a927 --- /dev/null +++ b/diggersdigest/records/migrations/0008_auto_20150909_0818.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('records', '0007_record_image'), + ] + + operations = [ + migrations.AlterField( + model_name='record', + name='performers', + field=models.ManyToManyField(related_name='records_performers', verbose_name='performers', to='records.Artist', blank=True), + ), + migrations.AlterField( + model_name='record', + name='product', + field=models.OneToOneField(related_name='record', null=True, on_delete=django.db.models.deletion.SET_NULL, verbose_name='product', to='shop.Product'), + ), + ] diff --git a/diggersdigest/records/migrations/0009_remove_record_image.py b/diggersdigest/records/migrations/0009_remove_record_image.py new file mode 100644 index 0000000..3e8458c --- /dev/null +++ b/diggersdigest/records/migrations/0009_remove_record_image.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('records', '0008_auto_20150909_0818'), + ] + + operations = [ + migrations.RemoveField( + model_name='record', + name='image', + ), + ] diff --git a/diggersdigest/records/models.py b/diggersdigest/records/models.py index 17bff9b..b914089 100644 --- a/diggersdigest/records/models.py +++ b/diggersdigest/records/models.py @@ -13,7 +13,7 @@ from mezzanine.core.models import CONTENT_STATUS_DRAFT, CONTENT_STATUS_PUBLISHED from mezzanine.blog.models import BlogPost from mezzanine.utils.models import upload_to -from cartridge.shop.models import Product, ProductVariation +from cartridge.shop.models import Product # Auto-generated Django models with manage.py inspectdb on the old database @@ -226,7 +226,7 @@ class Record(models.Model): title = models.CharField(max_length=128) artist = models.ForeignKey(Artist, verbose_name=_('artist'), related_name='records_artists', null=True, on_delete=models.SET_NULL) - performers = models.ManyToManyField(Artist, verbose_name=_('performers'), related_name='records_performers') + performers = models.ManyToManyField(Artist, verbose_name=_('performers'), related_name='records_performers', blank=True) record_status = models.IntegerField(_('record status'), choices=NOVELTY_CHOICES, default=NEW) label = models.ForeignKey(Label, verbose_name=_('label'), related_name='records', null=True, on_delete=models.SET_NULL) release_year = models.IntegerField(_('release year'), null=True, choices=YEAR_CHOICES) @@ -237,7 +237,7 @@ class Record(models.Model): vinyl_condition = models.ForeignKey(ConditionGrading, verbose_name=_('vinyl condition'), related_name='records_vinyl_condition', null=True, on_delete=models.SET_NULL) audio_file = FileField(_("audio file"), max_length=1024, format="audio", upload_to=upload_to("records.Record.audio", "audio/records"), null=True) - product = models.ForeignKey(Product, verbose_name=_('product'), related_name='records', null=True, on_delete=models.SET_NULL) + product = models.OneToOneField(Product, verbose_name=_('product'), related_name='record', null=True, on_delete=models.SET_NULL) def __unicode__(self): return " - ".join([self.artist.name, self.title]) diff --git a/diggersdigest/templates/pages/category.html b/diggersdigest/templates/pages/category.html index 9a9cae4..3111148 100644 --- a/diggersdigest/templates/pages/category.html +++ b/diggersdigest/templates/pages/category.html @@ -24,7 +24,7 @@

{{ category.title }}

- + {% endfor %} {% else %} {% for category in child_categories %} diff --git a/diggersdigest/templates/shop/product.html b/diggersdigest/templates/shop/product.html index 4d40002..344c55e 100644 --- a/diggersdigest/templates/shop/product.html +++ b/diggersdigest/templates/shop/product.html @@ -88,44 +88,48 @@ $(function () { - +{% if product.record.audio_file %} + +{% endif %} {% editable product.content %} {{ product.content|richtext_filters|safe }}