Remove metadatacontent

This commit is contained in:
evgeniy-st 2019-10-22 17:05:54 +03:00
parent 7b3a379b3f
commit d1c9e649b7
7 changed files with 60 additions and 68 deletions

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2.4 on 2019-10-22 13:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tag', '0004_tag_priority'),
('establishment', '0039_establishmentsubtype_index_name'),
]
operations = [
migrations.AddField(
model_name='employee',
name='tags',
field=models.ManyToManyField(related_name='employees', to='tag.Tag', verbose_name='Tags'),
),
]

View File

@ -353,11 +353,8 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin):
verbose_name=_('Establishment slug'), editable=True) verbose_name=_('Establishment slug'), editable=True)
awards = generic.GenericRelation(to='main.Award', related_query_name='establishment') awards = generic.GenericRelation(to='main.Award', related_query_name='establishment')
# todo: remove after data merge
# tags = generic.GenericRelation(to='main.MetaDataContent')
tags = models.ManyToManyField('tag.Tag', related_name='establishments', tags = models.ManyToManyField('tag.Tag', related_name='establishments',
verbose_name=_('Tag')) verbose_name=_('Tag'))
old_tags = generic.GenericRelation(to='main.MetaDataContent')
reviews = generic.GenericRelation(to='review.Review') reviews = generic.GenericRelation(to='review.Review')
comments = generic.GenericRelation(to='comment.Comment') comments = generic.GenericRelation(to='comment.Comment')
favorites = generic.GenericRelation(to='favorites.Favorites') favorites = generic.GenericRelation(to='favorites.Favorites')
@ -419,11 +416,6 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin):
def best_price_carte(self): def best_price_carte(self):
return 200 return 200
@property
def tags_indexing(self):
return [{'id': tag.metadata.id,
'label': tag.metadata.label} for tag in self.tags.all()]
@property @property
def last_published_review(self): def last_published_review(self):
"""Return last published review""" """Return last published review"""
@ -511,7 +503,8 @@ class Employee(BaseAttributes):
establishments = models.ManyToManyField(Establishment, related_name='employees', establishments = models.ManyToManyField(Establishment, related_name='employees',
through=EstablishmentEmployee,) through=EstablishmentEmployee,)
awards = generic.GenericRelation(to='main.Award', related_query_name='employees') awards = generic.GenericRelation(to='main.Award', related_query_name='employees')
tags = generic.GenericRelation(to='main.MetaDataContent') tags = models.ManyToManyField('tag.Tag', related_name='employees',
verbose_name=_('Tags'))
class Meta: class Meta:
"""Meta class.""" """Meta class."""

View File

@ -8,10 +8,10 @@ from comment import models as comment_models
from establishment import filters from establishment import filters
from establishment import models, serializers from establishment import models, serializers
from main import methods from main import methods
from main.models import MetaDataContent
from utils.pagination import EstablishmentPortionPagination from utils.pagination import EstablishmentPortionPagination
from utils.permissions import IsCountryAdmin from utils.permissions import IsCountryAdmin
class EstablishmentMixinView: class EstablishmentMixinView:
"""Establishment mixin.""" """Establishment mixin."""

View File

@ -0,0 +1,38 @@
# Generated by Django 2.2.4 on 2019-10-22 13:59
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('main', '0018_feature_source'),
]
operations = [
migrations.RemoveField(
model_name='metadatacategory',
name='content_type',
),
migrations.RemoveField(
model_name='metadatacategory',
name='country',
),
migrations.RemoveField(
model_name='metadatacontent',
name='content_type',
),
migrations.RemoveField(
model_name='metadatacontent',
name='metadata',
),
migrations.DeleteModel(
name='MetaData',
),
migrations.DeleteModel(
name='MetaDataCategory',
),
migrations.DeleteModel(
name='MetaDataContent',
),
]

View File

@ -256,49 +256,6 @@ class AwardType(models.Model):
return self.name return self.name
class MetaDataCategory(models.Model):
"""MetaData category model."""
country = models.ForeignKey(
'location.Country', null=True, default=None, on_delete=models.CASCADE)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
public = models.BooleanField()
class MetaData(TranslatedFieldsMixin, models.Model):
"""MetaData model."""
label = TJSONField(
_('label'), null=True, blank=True,
default=None, help_text='{"en-GB":"some text"}')
category = models.ForeignKey(
MetaDataCategory, verbose_name=_('category'), on_delete=models.CASCADE)
class Meta:
verbose_name = _('metadata')
verbose_name_plural = _('metadata')
def __str__(self):
label = 'None'
lang = TranslationSettings.get_solo().default_language
if self.label and lang in self.label:
label = self.label[lang]
return f'id:{self.id}-{label}'
class MetaDataContentQuerySet(ContentTypeQuerySetMixin):
"""QuerySets for MetaDataContent model."""
class MetaDataContent(models.Model):
"""MetaDataContent model."""
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
metadata = models.ForeignKey(MetaData, on_delete=models.CASCADE)
objects = MetaDataContentQuerySet.as_manager()
class Currency(models.Model): class Currency(models.Model):
"""Currency model.""" """Currency model."""
name = models.CharField(_('name'), max_length=50) name = models.CharField(_('name'), max_length=50)

View File

@ -113,19 +113,6 @@ class AwardSerializer(AwardBaseSerializer):
fields = AwardBaseSerializer.Meta.fields + ['award_type', ] fields = AwardBaseSerializer.Meta.fields + ['award_type', ]
class MetaDataContentSerializer(serializers.ModelSerializer):
"""MetaData content serializer."""
id = serializers.IntegerField(source='metadata.id', read_only=True)
label_translated = TranslatedField(source='metadata.label_translated')
class Meta:
"""Meta class."""
model = models.MetaDataContent
fields = ('id', 'label_translated')
class CurrencySerializer(serializers.ModelSerializer): class CurrencySerializer(serializers.ModelSerializer):
"""Currency serializer""" """Currency serializer"""

View File

@ -146,8 +146,6 @@ class News(BaseAttributes, TranslatedFieldsMixin):
verbose_name=_('State')) verbose_name=_('State'))
is_highlighted = models.BooleanField(default=False, is_highlighted = models.BooleanField(default=False,
verbose_name=_('Is highlighted')) verbose_name=_('Is highlighted'))
# TODO: metadata_keys - описание ключей для динамического построения полей метаданных
# TODO: metadata_values - Описание значений для динамических полей из MetadataKeys
image_url = models.URLField(blank=True, null=True, default=None, image_url = models.URLField(blank=True, null=True, default=None,
verbose_name=_('Image URL path')) verbose_name=_('Image URL path'))
preview_image_url = models.URLField(blank=True, null=True, default=None, preview_image_url = models.URLField(blank=True, null=True, default=None,