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 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):
|
||||
|
||||
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)
|
||||
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()
|
||||
|
||||
@ -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 = [
|
||||
|
||||
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>
|
||||
{% 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>
|
||||
|
||||
Reference in New Issue
Block a user