Implement image serializer, Update default pic

This commit is contained in:
Michael Götz 2018-01-05 03:48:27 +01:00
parent a6c5fb1491
commit 7fdae11859
8 changed files with 85 additions and 14 deletions

View 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)),
),
]

View 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)),
),
]

View File

@ -1,6 +1,12 @@
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):
@ -11,10 +17,11 @@ class AllergensSerializer(serializers.HyperlinkedModelSerializer):
class SingleFoodSerializer(serializers.HyperlinkedModelSerializer):
allergens = AllergensSerializer(many=True, read_only=True)
image = UserFoodImageSerializer(many=True, read_only=True)
class Meta:
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):

View 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',
),
]

View File

@ -80,7 +80,7 @@ class UserFoodImage(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, unique=False)
food = models.ForeignKey(SingleFood)
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:
unique_together = ('user', 'food')
@ -104,12 +104,12 @@ class UserFoodImage(models.Model):
suf = SimpleUploadedFile(os.path.split(self.image.name)[-1],
temp_handle.read(),
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
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)
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.thumbnail.name))
os.remove(os.path.join(settings.MEDIA_ROOT, self.thumb.name))
super(UserFoodImage, self).delete()

View File

@ -26,16 +26,16 @@ apiRouter_v1.register(r'happy-hour', api_views.HappyHourViewSet, base_name='Happ
# API Version 1.1
apiRouter_v1_1 = routers.DefaultRouter()
apiRouter_v1_1.register(r'foods', 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', api_views.FoodViewSet, base_name='Food')
apiRouter_v1_1.register(r'food/(?P<location>[feldkirchenstrasse, markusstrasse, erba, austrasse])/$',
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')
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')
apiRouter_v1_1.register(r'foods/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/today/$', 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')
urlpatterns = [

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

View File

@ -68,9 +68,9 @@
</a>
{% endfor %}
{% 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 }}">
<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>
{% endif %}
</div>