Implement image serializer, Update default pic
This commit is contained in:
parent
a6c5fb1491
commit
7fdae11859
22
ofu_app/apps/donar/migrations/0002_auto_20180105_0300.py
Normal file
22
ofu_app/apps/donar/migrations/0002_auto_20180105_0300.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.7 on 2018-01-05 02:00
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from django.db import migrations, models
|
||||||
|
from django.utils.timezone import utc
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('donar', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='lecture_terms',
|
||||||
|
name='starttime',
|
||||||
|
field=models.TimeField(default=datetime.datetime(2018, 1, 5, 2, 0, 11, 705365, tzinfo=utc)),
|
||||||
|
),
|
||||||
|
]
|
||||||
22
ofu_app/apps/donar/migrations/0003_auto_20180105_0304.py
Normal file
22
ofu_app/apps/donar/migrations/0003_auto_20180105_0304.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.7 on 2018-01-05 02:04
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from django.db import migrations, models
|
||||||
|
from django.utils.timezone import utc
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('donar', '0002_auto_20180105_0300'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='lecture_terms',
|
||||||
|
name='starttime',
|
||||||
|
field=models.TimeField(default=datetime.datetime(2018, 1, 5, 2, 4, 12, 19246, tzinfo=utc)),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -1,6 +1,12 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from apps.food.models import Menu, SingleFood, HappyHour, Allergene
|
from apps.food.models import Menu, SingleFood, HappyHour, Allergene, UserFoodImage
|
||||||
|
|
||||||
|
|
||||||
|
class UserFoodImageSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = UserFoodImage
|
||||||
|
fields = ('id', 'image', 'thumb')
|
||||||
|
|
||||||
|
|
||||||
class AllergensSerializer(serializers.HyperlinkedModelSerializer):
|
class AllergensSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
@ -11,10 +17,11 @@ class AllergensSerializer(serializers.HyperlinkedModelSerializer):
|
|||||||
|
|
||||||
class SingleFoodSerializer(serializers.HyperlinkedModelSerializer):
|
class SingleFoodSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
allergens = AllergensSerializer(many=True, read_only=True)
|
allergens = AllergensSerializer(many=True, read_only=True)
|
||||||
|
image = UserFoodImageSerializer(many=True, read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SingleFood
|
model = SingleFood
|
||||||
fields = ('name', 'rating', 'price_student', 'price_employee', 'price_guest', 'allergens')
|
fields = ('name', 'rating', 'price_student', 'price_employee', 'price_guest', 'allergens', 'image')
|
||||||
|
|
||||||
|
|
||||||
class MenuSerializer(serializers.HyperlinkedModelSerializer):
|
class MenuSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
|
|||||||
20
ofu_app/apps/food/migrations/0002_auto_20180105_0304.py
Normal file
20
ofu_app/apps/food/migrations/0002_auto_20180105_0304.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.7 on 2018-01-05 02:04
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('food', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RenameField(
|
||||||
|
model_name='userfoodimage',
|
||||||
|
old_name='thumbnail',
|
||||||
|
new_name='thumb',
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -80,7 +80,7 @@ class UserFoodImage(models.Model):
|
|||||||
user = models.ForeignKey(User, on_delete=models.CASCADE, unique=False)
|
user = models.ForeignKey(User, on_delete=models.CASCADE, unique=False)
|
||||||
food = models.ForeignKey(SingleFood)
|
food = models.ForeignKey(SingleFood)
|
||||||
image = models.ImageField(upload_to='food/originals/%Y/%m/%W', blank=True)
|
image = models.ImageField(upload_to='food/originals/%Y/%m/%W', blank=True)
|
||||||
thumbnail = models.ImageField(upload_to='food/thumbs/%Y/%m/%W', blank=True)
|
thumb = models.ImageField(upload_to='food/thumbs/%Y/%m/%W', blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ('user', 'food')
|
unique_together = ('user', 'food')
|
||||||
@ -104,12 +104,12 @@ class UserFoodImage(models.Model):
|
|||||||
suf = SimpleUploadedFile(os.path.split(self.image.name)[-1],
|
suf = SimpleUploadedFile(os.path.split(self.image.name)[-1],
|
||||||
temp_handle.read(),
|
temp_handle.read(),
|
||||||
content_type='image/jpg')
|
content_type='image/jpg')
|
||||||
self.thumbnail.save('%s_thumbnail.%s' % (self.food.name, 'jpg'), suf, save=False)
|
self.thumb.save('%s_%s_thumbnail.%s' % (self.food.name, self.user.username, 'jpg'), suf, save=False)
|
||||||
# save the image object
|
# save the image object
|
||||||
self.image.name = "%s" % self.food.name
|
self.image.name = "%s_%s_original.%s" % (self.food.name, self.user.username, 'jpg')
|
||||||
super(UserFoodImage, self).save(force_update, force_insert)
|
super(UserFoodImage, self).save(force_update, force_insert)
|
||||||
|
|
||||||
def delete(self, using=None, keep_parents=False):
|
def delete(self, using=None, keep_parents=False):
|
||||||
os.remove(os.path.join(settings.MEDIA_ROOT, self.image.name))
|
os.remove(os.path.join(settings.MEDIA_ROOT, self.image.name))
|
||||||
os.remove(os.path.join(settings.MEDIA_ROOT, self.thumbnail.name))
|
os.remove(os.path.join(settings.MEDIA_ROOT, self.thumb.name))
|
||||||
super(UserFoodImage, self).delete()
|
super(UserFoodImage, self).delete()
|
||||||
|
|||||||
@ -26,16 +26,16 @@ apiRouter_v1.register(r'happy-hour', api_views.HappyHourViewSet, base_name='Happ
|
|||||||
|
|
||||||
# API Version 1.1
|
# API Version 1.1
|
||||||
apiRouter_v1_1 = routers.DefaultRouter()
|
apiRouter_v1_1 = routers.DefaultRouter()
|
||||||
apiRouter_v1_1.register(r'foods', api_views.FoodViewSet, base_name='Food')
|
apiRouter_v1_1.register(r'food', api_views.FoodViewSet, base_name='Food')
|
||||||
apiRouter_v1_1.register(r'foods/food/(?P<location>[feldkirchenstrasse, markusstrasse, erba, austrasse])/$',
|
apiRouter_v1_1.register(r'food/(?P<location>[feldkirchenstrasse, markusstrasse, erba, austrasse])/$',
|
||||||
api_views.FoodViewSet, base_name='Food')
|
api_views.FoodViewSet, base_name='Food')
|
||||||
apiRouter_v1_1.register(r'foods/food/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', api_views.FoodViewSet,
|
apiRouter_v1_1.register(r'food/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', api_views.FoodViewSet,
|
||||||
base_name='Food')
|
base_name='Food')
|
||||||
apiRouter_v1_1.register(
|
apiRouter_v1_1.register(
|
||||||
r'foods/food/(?P<location>)[feldkirchenstrasse, markusstrasse, erba, austrasse]/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$',
|
r'food/(?P<location>)[feldkirchenstrasse, markusstrasse, erba, austrasse]/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$',
|
||||||
api_views.FoodViewSet, base_name='Food')
|
api_views.FoodViewSet, base_name='Food')
|
||||||
apiRouter_v1_1.register(r'foods/food/today/$', api_views.FoodViewSet, base_name='Food')
|
apiRouter_v1_1.register(r'food/today/$', api_views.FoodViewSet, base_name='Food')
|
||||||
apiRouter_v1_1.register(r'foods/food/week/$', api_views.FoodViewSet, base_name='Food')
|
apiRouter_v1_1.register(r'food/week/$', api_views.FoodViewSet, base_name='Food')
|
||||||
apiRouter_v1_1.register(r'happy-hour', api_views.HappyHourViewSet, base_name='HappyHours')
|
apiRouter_v1_1.register(r'happy-hour', api_views.HappyHourViewSet, base_name='HappyHours')
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|||||||
BIN
ofu_app/media/food/default/default.jpg
Normal file
BIN
ofu_app/media/food/default/default.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
@ -68,9 +68,9 @@
|
|||||||
</a>
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="/media/food/default/gorilla.jpg" data-lightbox="{{ title }}"
|
<a href="/media/food/default/default.jpg" data-lightbox="{{ title }}"
|
||||||
data-title="{{ single_food.name }}">
|
data-title="{{ single_food.name }}">
|
||||||
<img src="/media/food/default/gorilla.jpg" class="media-object" alt="Bild" width="80px">
|
<img src="/media/food/default/default.jpg" class="media-object" alt="Bild" width="80px">
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user