Merge branch 'develop' into fix/check_tags
This commit is contained in:
commit
9acb9e4a22
|
|
@ -1,8 +1,8 @@
|
|||
from transfer.serializers import location as location_serializers
|
||||
from transfer import models as transfer_models
|
||||
from location.models import Country
|
||||
from location.models import Country, CityGallery, City
|
||||
from gallery.models import Image
|
||||
from pprint import pprint
|
||||
|
||||
from requests import get
|
||||
|
||||
|
||||
|
|
@ -179,6 +179,42 @@ def update_flags():
|
|||
query.save()
|
||||
|
||||
|
||||
def transfer_city_gallery():
|
||||
created_counter = 0
|
||||
cities_not_exists = {}
|
||||
gallery_obj_exists_counter = 0
|
||||
|
||||
city_gallery = transfer_models.CityPhotos.objects.exclude(city__isnull=True) \
|
||||
.exclude(city__country_code_2__isnull=True) \
|
||||
.exclude(city__country_code_2__iexact='') \
|
||||
.exclude(city__region_code__isnull=True) \
|
||||
.exclude(city__region_code__iexact='') \
|
||||
.values_list('city_id', 'attachment_suffix_url')
|
||||
for old_city_id, image_suffix_url in city_gallery:
|
||||
city = City.objects.filter(old_id=old_city_id)
|
||||
if city.exists():
|
||||
city = city.first()
|
||||
image, _ = Image.objects.get_or_create(image=image_suffix_url,
|
||||
defaults={
|
||||
'image': image_suffix_url,
|
||||
'orientation': Image.HORIZONTAL,
|
||||
'title': f'{city.name} - {image_suffix_url}',
|
||||
})
|
||||
city_gallery, created = CityGallery.objects.get_or_create(image=image,
|
||||
city=city,
|
||||
is_main=True)
|
||||
if created:
|
||||
created_counter += 1
|
||||
else:
|
||||
gallery_obj_exists_counter += 1
|
||||
else:
|
||||
cities_not_exists.update({'city_old_id': old_city_id})
|
||||
|
||||
print(f'Created: {created_counter}\n'
|
||||
f'City not exists: {cities_not_exists}\n'
|
||||
f'Already added: {gallery_obj_exists_counter}')
|
||||
|
||||
|
||||
data_types = {
|
||||
"dictionaries": [
|
||||
transfer_countries,
|
||||
|
|
@ -192,4 +228,5 @@ data_types = {
|
|||
"update_country_flag": [
|
||||
update_flags
|
||||
],
|
||||
"fill_city_gallery": [transfer_city_gallery]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,3 +6,4 @@ from partner import models
|
|||
@admin.register(models.Partner)
|
||||
class PartnerModelAdmin(admin.ModelAdmin):
|
||||
"""Model admin for Partner model."""
|
||||
raw_id_fields = ('establishment',)
|
||||
|
|
|
|||
50
apps/partner/migrations/0003_auto_20191121_1059.py
Normal file
50
apps/partner/migrations/0003_auto_20191121_1059.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Generated by Django 2.2.7 on 2019-11-21 10:59
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('establishment', '0065_establishment_purchased_products'),
|
||||
('partner', '0002_auto_20191101_0939'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='partner',
|
||||
name='establishment',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='partners', to='establishment.Establishment', verbose_name='Establishment'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='partner',
|
||||
name='expiry_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='expiry date'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='partner',
|
||||
name='name',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='name'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='partner',
|
||||
name='old_id',
|
||||
field=models.PositiveIntegerField(blank=True, default=None, null=True, verbose_name='old id'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='partner',
|
||||
name='price_per_month',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='price per month'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='partner',
|
||||
name='starting_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='starting date'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='partner',
|
||||
name='type',
|
||||
field=models.PositiveSmallIntegerField(choices=[(0, 'Partner'), (1, 'Sponsor')], default=0),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,13 +1,36 @@
|
|||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from establishment.models import Establishment
|
||||
from utils.models import ImageMixin, ProjectBaseMixin
|
||||
|
||||
|
||||
class Partner(ProjectBaseMixin):
|
||||
"""Partner model."""
|
||||
|
||||
PARTNER = 0
|
||||
SPONSOR = 1
|
||||
MODEL_TYPES = (
|
||||
(PARTNER, _('Partner')),
|
||||
(SPONSOR, _('Sponsor')),
|
||||
)
|
||||
|
||||
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)
|
||||
establishment = models.ForeignKey(
|
||||
Establishment,
|
||||
verbose_name=_('Establishment'),
|
||||
related_name='partners',
|
||||
on_delete=models.CASCADE,
|
||||
blank=True,
|
||||
null=True,
|
||||
)
|
||||
type = models.PositiveSmallIntegerField(choices=MODEL_TYPES, default=PARTNER)
|
||||
starting_date = models.DateField(_('starting date'), blank=True, null=True)
|
||||
expiry_date = models.DateField(_('expiry date'), blank=True, null=True)
|
||||
price_per_month = models.DecimalField(_('price per month'), max_digits=10, decimal_places=2, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('partner')
|
||||
|
|
|
|||
|
|
@ -1,19 +1,32 @@
|
|||
from django.db.models import Value, IntegerField, F
|
||||
from pprint import pprint
|
||||
|
||||
from establishment.models import Establishment
|
||||
from transfer.models import EstablishmentBacklinks
|
||||
from transfer.serializers.partner import PartnerSerializer
|
||||
|
||||
|
||||
def transfer_partner():
|
||||
queryset = EstablishmentBacklinks.objects.filter(type="Partner")
|
||||
establishments = Establishment.objects.filter(old_id__isnull=False).values_list('old_id', flat=True)
|
||||
queryset = EstablishmentBacklinks.objects.filter(
|
||||
establishment_id__in=list(establishments),
|
||||
).values(
|
||||
'id',
|
||||
'establishment_id',
|
||||
'partnership_name',
|
||||
'partnership_icon',
|
||||
'backlink_url',
|
||||
'created_at',
|
||||
'type',
|
||||
'starting_date',
|
||||
'expiry_date',
|
||||
'price_per_month',
|
||||
)
|
||||
|
||||
# queryset = EstablishmentBacklinks.objects.all() # Partner and Sponsor
|
||||
|
||||
serialized_data = PartnerSerializer(data=list(queryset.values()), many=True)
|
||||
serialized_data = PartnerSerializer(data=list(queryset), many=True)
|
||||
if serialized_data.is_valid():
|
||||
serialized_data.save()
|
||||
else:
|
||||
pprint(f"News serializer errors: {serialized_data.errors}")
|
||||
pprint(f"Partner serializer errors: {serialized_data.errors}")
|
||||
|
||||
|
||||
data_types = {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ class Command(BaseCommand):
|
|||
'product_review',
|
||||
'newsletter_subscriber', # подписчики на рассылку - переносить после переноса пользователей №1
|
||||
'purchased_plaques', # №6 - перенос купленных тарелок
|
||||
'fill_city_gallery', # №3 - перенос галереи городов
|
||||
]
|
||||
|
||||
def handle(self, *args, **options):
|
||||
|
|
|
|||
|
|
@ -217,10 +217,10 @@ class CityNames(MigrateMixin):
|
|||
class CityPhotos(MigrateMixin):
|
||||
using = 'legacy'
|
||||
|
||||
# city_id = models.IntegerField(blank=True, null=True)
|
||||
city = models.ForeignKey(Cities, models.DO_NOTHING, blank=True, null=True)
|
||||
attachment_file_name = models.CharField(max_length=255, blank=True, null=True)
|
||||
attachment_content_type = models.CharField(max_length=255, blank=True, null=True)
|
||||
attachment_suffix_url = models.CharField(max_length=255)
|
||||
geometries = models.CharField(max_length=1024, blank=True, null=True)
|
||||
attachment_file_size = models.IntegerField(blank=True, null=True)
|
||||
attachment_updated_at = models.DateTimeField(blank=True, null=True)
|
||||
|
|
|
|||
|
|
@ -2,27 +2,28 @@ from rest_framework import serializers
|
|||
from partner.models import Partner
|
||||
|
||||
|
||||
class PartnerSerializer(serializers.ModelSerializer):
|
||||
backlink_url = serializers.CharField(source="url")
|
||||
partnership_icon = serializers.CharField()
|
||||
partnership_name = serializers.CharField()
|
||||
class PartnerSerializer(serializers.Serializer):
|
||||
pass
|
||||
# 'id',
|
||||
# 'establishment_id',
|
||||
# 'partnership_name',
|
||||
# 'partnership_icon',
|
||||
# 'backlink_url',
|
||||
# 'created_at',
|
||||
# 'type',
|
||||
# 'starting_date',
|
||||
# 'expiry_date',
|
||||
# 'price_per_month',
|
||||
|
||||
class Meta:
|
||||
model = Partner
|
||||
fields = (
|
||||
"backlink_url",
|
||||
"partnership_icon",
|
||||
"partnership_name"
|
||||
)
|
||||
|
||||
def validate(self, data):
|
||||
data["image"] = partnership_to_image_url.get(data["partnership_name"]).get(data["partnership_icon"])
|
||||
data.pop("partnership_name")
|
||||
data.pop("partnership_icon")
|
||||
return data
|
||||
|
||||
def create(self, validated_data):
|
||||
return Partner.objects.create(**validated_data)
|
||||
# def validate(self, data):
|
||||
# data["image"] = partnership_to_image_url.get(data["partnership_name"]).get(data["partnership_icon"])
|
||||
# data.pop("partnership_name")
|
||||
# data.pop("partnership_icon")
|
||||
# return data
|
||||
#
|
||||
# def create(self, validated_data):
|
||||
# return Partner.objects.create(**validated_data)
|
||||
|
||||
|
||||
partnership_to_image_url = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user