]> git.parisson.com Git - mezzo.git/commitdiff
Add product link inlines
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Fri, 23 Sep 2016 16:12:06 +0000 (18:12 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Fri, 23 Sep 2016 16:12:06 +0000 (18:12 +0200)
app/organization/shop/admin.py
app/organization/shop/migrations/0003_productlink.py [new file with mode: 0644]
app/organization/shop/models.py
app/organization/shop/translation.py

index 990954e9ae4e9fcadd8cd9a8303454806f42cc19..8bec442c33bb5fbdd6eb160d7444fc66475449e9 100644 (file)
@@ -10,6 +10,8 @@ from organization.pages.models import *
 from organization.media.models import Video, Audio
 from organization.shop.models import *
 
+from cartridge.shop.admin import *
+
 
 class ProductBlockProductInline(TabularDynamicInlineAdmin):
 
@@ -21,4 +23,16 @@ class ProductBlockAdmin(BaseTranslationModelAdmin):
     inlines = [ProductBlockProductInline, ]
 
 
+class ProductLinkInline(TabularDynamicInlineAdmin):
+
+    model = ProductLink
+
+
+class CustomProductAdmin(ProductAdmin):
+
+    inlines = [ProductLinkInline, ]
+
+
 admin.site.register(ProductBlock, ProductBlockAdmin)
+admin.site.unregister(Product)
+admin.site.register(Product, CustomProductAdmin)
diff --git a/app/organization/shop/migrations/0003_productlink.py b/app/organization/shop/migrations/0003_productlink.py
new file mode 100644 (file)
index 0000000..3c13bd0
--- /dev/null
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-09-23 16:11
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-core', '0004_auto_20160923_1141'),
+        ('shop', '0008_auto_20160907_1726'),
+        ('organization-shop', '0002_auto_20160923_1749'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='ProductLink',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('url', models.URLField(blank=True, max_length=512, verbose_name='URL')),
+                ('link_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='organization-core.LinkType', verbose_name='link type')),
+                ('product', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='links', to='shop.Product', verbose_name='product')),
+            ],
+            options={
+                'verbose_name': 'link',
+                'verbose_name_plural': 'links',
+                'abstract': False,
+            },
+        ),
+    ]
index 983c8c596778a3272ede4ee1e4b580a1cd3edc2d..cf1588a9abce5cddff8b615c2e6aea3e3568cdd6 100644 (file)
@@ -46,3 +46,8 @@ class PageProductBlock(models.Model):
     class Meta:
         verbose_name = _("product block")
         verbose_name_plural = _("product blocks")
+
+
+class ProductLink(Link):
+
+    product = models.ForeignKey(Product, verbose_name=_('product'), related_name='links', blank=True, null=True, on_delete=models.SET_NULL)
index 37da75baea0c54fbfb6c90c4b48d771782b21163..57d5a2667465de48664972e428daf603301e2c2d 100644 (file)
@@ -20,3 +20,9 @@ class ProductBlockProductTranslationOptions(TranslationOptions):
 class PageProductBlockTranslationOptions(TranslationOptions):
 
     pass
+
+
+@register(ProductLink)
+class ProductLinkTranslationOptions(TranslationOptions):
+
+    pass