diff --git a/apps/account/serializers/common.py b/apps/account/serializers/common.py index 0c72d036..d5f89526 100644 --- a/apps/account/serializers/common.py +++ b/apps/account/serializers/common.py @@ -148,6 +148,7 @@ class ChangeEmailSerializer(serializers.ModelSerializer): class ConfirmEmailSerializer(serializers.ModelSerializer): """Confirm user email serializer""" + x = serializers.CharField(default=None) class Meta: """Meta class""" @@ -161,12 +162,14 @@ class ConfirmEmailSerializer(serializers.ModelSerializer): email_confirmed = self.instance.email_confirmed if email_confirmed: raise utils_exceptions.EmailConfirmedError() + return attrs def update(self, instance, validated_data): """ Override update method """ + # Send verification link on user email for change email address if settings.USE_CELERY: tasks.confirm_new_email_address.delay(instance.id) diff --git a/apps/establishment/admin.py b/apps/establishment/admin.py index 19b34cdd..24a91465 100644 --- a/apps/establishment/admin.py +++ b/apps/establishment/admin.py @@ -54,6 +54,7 @@ class CommentInline(GenericTabularInline): @admin.register(models.Establishment) class EstablishmentAdmin(admin.ModelAdmin): """Establishment admin.""" + list_display = ['id', '__str__', 'image_tag', ] inlines = [ AwardInline, MetaDataContentInline, ContactPhoneInline, ContactEmailInline, diff --git a/apps/establishment/migrations/0021_remove_establishment_image.py b/apps/establishment/migrations/0021_remove_establishment_image.py new file mode 100644 index 00000000..3354843e --- /dev/null +++ b/apps/establishment/migrations/0021_remove_establishment_image.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.4 on 2019-09-19 11:17 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('establishment', '0020_merge_20190917_1415'), + ] + + operations = [ + migrations.RemoveField( + model_name='establishment', + name='image', + ), + ] diff --git a/apps/establishment/migrations/0022_establishment_image_url.py b/apps/establishment/migrations/0022_establishment_image_url.py new file mode 100644 index 00000000..3486763b --- /dev/null +++ b/apps/establishment/migrations/0022_establishment_image_url.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.4 on 2019-09-19 11:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('establishment', '0021_remove_establishment_image'), + ] + + operations = [ + migrations.AddField( + model_name='establishment', + name='image_url', + field=models.URLField(blank=True, default=None, null=True, verbose_name='Image URL path'), + ), + ] diff --git a/apps/establishment/models.py b/apps/establishment/models.py index 00115303..56a47686 100644 --- a/apps/establishment/models.py +++ b/apps/establishment/models.py @@ -14,7 +14,7 @@ from phonenumber_field.modelfields import PhoneNumberField from location.models import Address from collection.models import Collection from review.models import Review -from utils.models import (ProjectBaseMixin, ImageMixin, TJSONField, +from utils.models import (ProjectBaseMixin, ImageMixin, TJSONField, URLImageMixin, TranslatedFieldsMixin, BaseAttributes) @@ -225,7 +225,7 @@ class EstablishmentQuerySet(models.QuerySet): return self.filter(address__coordinates__distance_lte=(center, Distance(**kwargs))) -class Establishment(ProjectBaseMixin, ImageMixin, TranslatedFieldsMixin): +class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin): """Establishment model.""" name = models.CharField(_('name'), max_length=255, default='') diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index 1c7d9d27..9a1f35f0 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -30,7 +30,8 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer): 'toque_number', 'type_id', 'type', - 'socials' + 'socials', + 'image_url' ] diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index bce07ee5..b9660781 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -20,4 +20,5 @@ urlpatterns = [ path('phones//', views.PhonesRUDView.as_view(), name='phones-rud'), path('emails/', views.EmailListCreateView.as_view(), name='emails'), path('emails//', views.EmailRUDView.as_view(), name='emails-rud'), + ] \ No newline at end of file diff --git a/apps/location/serializers/common.py b/apps/location/serializers/common.py index 839ea8e8..63fe39e1 100644 --- a/apps/location/serializers/common.py +++ b/apps/location/serializers/common.py @@ -113,3 +113,4 @@ class AddressSerializer(serializers.ModelSerializer): setattr(instance, 'geo_lat', float(0)) setattr(instance, 'geo_lon', float(0)) return super().to_representation(instance) + diff --git a/apps/search_indexes/__init__.py b/apps/search_indexes/__init__.py index f610ac3f..6c812219 100644 --- a/apps/search_indexes/__init__.py +++ b/apps/search_indexes/__init__.py @@ -1 +1 @@ -from search_indexes.signals import update_document \ No newline at end of file +from search_indexes.signals import update_document diff --git a/apps/search_indexes/signals.py b/apps/search_indexes/signals.py index 21618155..2c04b6c6 100644 --- a/apps/search_indexes/signals.py +++ b/apps/search_indexes/signals.py @@ -24,7 +24,7 @@ def update_document(sender, **kwargs): for establishment in establishments: registry.update(establishment) - if model_name == 'Address': + if model_name == 'address': establishments = Establishment.objects.filter( address=instance) for establishment in establishments: diff --git a/apps/utils/models.py b/apps/utils/models.py index 92db5c47..d4724aec 100644 --- a/apps/utils/models.py +++ b/apps/utils/models.py @@ -181,6 +181,25 @@ class SVGImageMixin(models.Model): abstract = True +class URLImageMixin(models.Model): + """URl for image and special methods.""" + image_url = models.URLField(verbose_name=_('Image URL path'), + blank=True, null=True, default=None) + + class Meta: + abstract = True + + def image_tag(self): + if self.image_url: + return mark_safe( + f'') + else: + return None + + image_tag.short_description = _('Image') + image_tag.allow_tags = True + + class PlatformMixin(models.Model): """Platforms"""