Merge remote-tracking branch 'origin/develop' into feature/reviews

# Conflicts:
#	apps/establishment/admin.py
#	apps/establishment/serializers.py
This commit is contained in:
Anatoly 2019-09-01 14:06:17 +03:00
commit cd0f03f05d
8 changed files with 165 additions and 47 deletions

View File

@ -1,8 +1,7 @@
"""Establishment admin conf.""" """Establishment admin conf."""
from django.contrib import admin from django.contrib import admin
from django.contrib.contenttypes.admin import GenericTabularInline
from establishment import models from establishment import models
from django.contrib.contenttypes.admin import GenericTabularInline
from main.models import Award, MetaDataContent from main.models import Award, MetaDataContent
from review import models as review_models from review import models as review_models
@ -38,18 +37,6 @@ class ContactEmailInline(admin.TabularInline):
model = models.ContactEmail model = models.ContactEmail
extra = 0 extra = 0
@admin.register(models.Contact)
class ContactAdmin(admin.ModelAdmin):
"""Contact admin."""
inlines = [ContactPhoneInline, ContactEmailInline, ]
class ContactsInline(admin.TabularInline):
model = models.Contact
extra = 0
class ReviewInline(GenericTabularInline): class ReviewInline(GenericTabularInline):
model = review_models.Review model = review_models.Review
extra = 0 extra = 0
@ -58,7 +45,10 @@ class ReviewInline(GenericTabularInline):
@admin.register(models.Establishment) @admin.register(models.Establishment)
class EstablishmentAdmin(admin.ModelAdmin): class EstablishmentAdmin(admin.ModelAdmin):
"""Establishment admin.""" """Establishment admin."""
inlines = [AwardInline, MetaDataContentInline, ContactsInline, ReviewInline] inlines = [
AwardInline, MetaDataContentInline,
ContactPhoneInline, ContactEmailInline,
ReviewInline]
@admin.register(models.EstablishmentSchedule) @admin.register(models.EstablishmentSchedule)

View File

@ -0,0 +1,30 @@
# Generated by Django 2.2.4 on 2019-09-01 10:32
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('establishment', '0006_merge_20190901_0846'),
]
operations = [
migrations.RemoveField(
model_name='contactemail',
name='contact',
),
migrations.RemoveField(
model_name='contactphone',
name='contact',
),
migrations.DeleteModel(
name='Contact',
),
migrations.DeleteModel(
name='ContactEmail',
),
migrations.DeleteModel(
name='ContactPhone',
),
]

View File

@ -0,0 +1,39 @@
# Generated by Django 2.2.4 on 2019-09-01 10:36
from django.db import migrations, models
import django.db.models.deletion
import phonenumber_field.modelfields
class Migration(migrations.Migration):
dependencies = [
('establishment', '0007_auto_20190901_1032'),
]
operations = [
migrations.CreateModel(
name='ContactPhone',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('phone', phonenumber_field.modelfields.PhoneNumberField(max_length=128)),
('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='phones', to='establishment.Establishment')),
],
options={
'verbose_name': 'contact phone',
'verbose_name_plural': 'contact phones',
},
),
migrations.CreateModel(
name='ContactEmail',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('email', models.EmailField(max_length=254)),
('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='emails', to='establishment.Establishment')),
],
options={
'verbose_name': 'contact email',
'verbose_name_plural': 'contact emails',
},
),
]

View File

@ -166,21 +166,10 @@ class EstablishmentSchedule(BaseAttributes):
verbose_name_plural = _('Establishment schedules') verbose_name_plural = _('Establishment schedules')
class Contact(models.Model):
"""Contact model."""
establishment = models.ForeignKey(
Establishment, related_name='contacts', on_delete=models.CASCADE)
address = models.ForeignKey('location.Address', on_delete=models.CASCADE)
class Meta:
verbose_name = _('contact')
verbose_name_plural = _('contacts')
class ContactPhone(models.Model): class ContactPhone(models.Model):
"""Contact phone model.""" """Contact phone model."""
contact = models.ForeignKey( establishment = models.ForeignKey(
Contact, related_name='phones', on_delete=models.CASCADE) Establishment, related_name='phones', on_delete=models.CASCADE)
phone = PhoneNumberField() phone = PhoneNumberField()
class Meta: class Meta:
@ -193,8 +182,8 @@ class ContactPhone(models.Model):
class ContactEmail(models.Model): class ContactEmail(models.Model):
"""Contact email model.""" """Contact email model."""
contact = models.ForeignKey( establishment = models.ForeignKey(
Contact, related_name='emails', on_delete=models.CASCADE) Establishment, related_name='emails', on_delete=models.CASCADE)
email = models.EmailField() email = models.EmailField()
class Meta: class Meta:

View File

@ -25,21 +25,6 @@ class ContactEmailsSerializer(serializers.ModelSerializer):
] ]
class ContactSerializer(serializers.ModelSerializer):
"""Contact serializer."""
address = AddressSerializer(read_only=True)
phones = ContactPhonesSerializer(read_only=True, many=True,)
emails = ContactEmailsSerializer(read_only=True, many=True,)
class Meta:
model = models.Contact
fields = [
'address',
'phones',
'emails'
]
class EstablishmentTypeSerializer(serializers.ModelSerializer): class EstablishmentTypeSerializer(serializers.ModelSerializer):
"""Serializer for EstablishmentType model.""" """Serializer for EstablishmentType model."""
@ -103,7 +88,8 @@ class EstablishmentSerializer(serializers.ModelSerializer):
schedule = EstablishmentScheduleSerializer(source='schedule.schedule', schedule = EstablishmentScheduleSerializer(source='schedule.schedule',
many=True, many=True,
allow_null=True) allow_null=True)
contacts = ContactSerializer(read_only=True, many=True, ) phones = ContactPhonesSerializer(read_only=True, many=True, )
emails = ContactEmailsSerializer(read_only=True, many=True, )
reviews = ReviewSerializer(source='reviews.last', reviews = ReviewSerializer(source='reviews.last',
allow_null=True) allow_null=True)
@ -126,6 +112,7 @@ class EstablishmentSerializer(serializers.ModelSerializer):
'tags', 'tags',
'awards', 'awards',
'schedule', 'schedule',
'phones',
'emails'
'reviews', 'reviews',
'contacts'
) )

View File

@ -0,0 +1,35 @@
# Generated by Django 2.2.4 on 2019-09-01 10:32
from django.db import migrations, models
import utils.models
class Migration(migrations.Migration):
dependencies = [
('main', '0012_auto_20190829_1155'),
]
operations = [
migrations.CreateModel(
name='Currency',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50, verbose_name='name')),
],
options={
'verbose_name': 'currency',
'verbose_name_plural': 'currencies',
},
),
migrations.AlterField(
model_name='award',
name='title',
field=utils.models.TJSONField(blank=True, default=None, help_text='{"en-GB":"some text"}', null=True, verbose_name='title'),
),
migrations.AlterField(
model_name='metadata',
name='label',
field=utils.models.TJSONField(blank=True, default=None, help_text='{"en-GB":"some text"}', null=True, verbose_name='label'),
),
]

View File

@ -0,0 +1,29 @@
# Generated by Django 2.2.4 on 2019-09-01 10:32
from django.db import migrations
import utils.models
class Migration(migrations.Migration):
dependencies = [
('news', '0008_auto_20190828_1522'),
]
operations = [
migrations.AlterField(
model_name='news',
name='description',
field=utils.models.TJSONField(blank=True, default=None, help_text='{"en-GB":"some text"}', null=True, verbose_name='description'),
),
migrations.AlterField(
model_name='news',
name='subtitle',
field=utils.models.TJSONField(blank=True, default=None, help_text='{"en-GB":"some text"}', null=True, verbose_name='subtitle'),
),
migrations.AlterField(
model_name='news',
name='title',
field=utils.models.TJSONField(blank=True, default=None, help_text='{"en-GB":"some text"}', null=True, verbose_name='title'),
),
]

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2.4 on 2019-09-01 10:32
import django.contrib.postgres.fields.jsonb
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('translation', '0002_siteinterfacedictionary'),
]
operations = [
migrations.AlterField(
model_name='siteinterfacedictionary',
name='text',
field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, default=None, help_text='{"en-GB":"some text"}', null=True, verbose_name='Text'),
),
]