From 28d4a5ae4285bb0d0660462beb06a5e8d17926ab Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Wed, 29 Jan 2020 15:21:51 +0300 Subject: [PATCH] reorganize partner models --- .../migrations/0006_auto_20200129_1201.py | 37 +++++++++++++++++++ apps/partner/models.py | 10 +++-- apps/partner/serializers/back.py | 2 +- apps/partner/serializers/common.py | 2 +- 4 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 apps/partner/migrations/0006_auto_20200129_1201.py diff --git a/apps/partner/migrations/0006_auto_20200129_1201.py b/apps/partner/migrations/0006_auto_20200129_1201.py new file mode 100644 index 00000000..0bb7487c --- /dev/null +++ b/apps/partner/migrations/0006_auto_20200129_1201.py @@ -0,0 +1,37 @@ +# Generated by Django 2.2.7 on 2020-01-29 12:01 + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('partner', '0005_auto_20200128_1754'), + ] + + operations = [ + migrations.RemoveField( + model_name='partner', + name='image', + ), + migrations.RemoveField( + model_name='partner', + name='url', + ), + migrations.AddField( + model_name='partner', + name='images', + field=django.contrib.postgres.fields.ArrayField(base_field=models.URLField(verbose_name='Partner image URL'), blank=True, default=None, null=True, size=None), + ), + migrations.AddField( + model_name='partnertoestablishment', + name='image', + field=models.URLField(null=True, verbose_name='Partner image URL'), + ), + migrations.AddField( + model_name='partnertoestablishment', + name='url', + field=models.URLField(blank=True, default=None, null=True, verbose_name='Establishment to Partner URL'), + ), + ] diff --git a/apps/partner/models.py b/apps/partner/models.py index 5c9f8af2..e50fd939 100644 --- a/apps/partner/models.py +++ b/apps/partner/models.py @@ -1,6 +1,7 @@ from django.db import models from django.utils.translation import gettext_lazy as _ from django.utils import timezone +from django.contrib.postgres.fields import ArrayField from establishment.models import Establishment from utils.models import ImageMixin, ProjectBaseMixin @@ -31,8 +32,9 @@ class Partner(ProjectBaseMixin): old_id = models.PositiveIntegerField(_('old id'), blank=True, null=True, default=None) name = models.CharField(_('name'), max_length=255, blank=True, null=True) - url = models.URLField(verbose_name=_('Partner URL')) - image = models.URLField(verbose_name=_('Partner image URL'), null=True) + images = ArrayField( + models.URLField(verbose_name=_('Partner image URL')), blank=True, null=True, default=None, + ) establishment = models.ManyToManyField('establishment.Establishment', related_name='partners', through='PartnerToEstablishment', verbose_name=_('Establishments')) @@ -49,7 +51,7 @@ class Partner(ProjectBaseMixin): verbose_name_plural = _('partners') def __str__(self): - return f'{self.url}' + return f'{self.name}' @property def type_display(self): @@ -59,5 +61,7 @@ class Partner(ProjectBaseMixin): class PartnerToEstablishment(models.Model): partner_bind_date = models.DateTimeField(default=timezone.now, editable=False, verbose_name=_('Date partner binded')) + url = models.URLField(verbose_name=_('Establishment to Partner URL'), null=True, blank=True, default=None) + image = models.URLField(verbose_name=_('Partner image URL'), null=True) partner = models.ForeignKey(Partner, on_delete=models.CASCADE, null=True) establishment = models.ForeignKey('establishment.Establishment', on_delete=models.CASCADE, null=True) diff --git a/apps/partner/serializers/back.py b/apps/partner/serializers/back.py index ebbbd2ca..ba676bfa 100644 --- a/apps/partner/serializers/back.py +++ b/apps/partner/serializers/back.py @@ -23,7 +23,7 @@ class BackPartnerSerializer(serializers.ModelSerializer): 'id', 'name', 'url', - 'image', + # 'image', 'type', 'type_display', 'starting_date', diff --git a/apps/partner/serializers/common.py b/apps/partner/serializers/common.py index 1d5a6b23..83053f26 100644 --- a/apps/partner/serializers/common.py +++ b/apps/partner/serializers/common.py @@ -11,6 +11,6 @@ class PartnerSerializer(serializers.ModelSerializer): model = models.Partner fields = ( 'id', - 'image', + # 'image', 'url' )