diff --git a/ofu_app/apps/donar/migrations/0010_auto_20180104_1905.py b/ofu_app/apps/donar/migrations/0010_auto_20180104_1905.py new file mode 100644 index 0000000..c050216 --- /dev/null +++ b/ofu_app/apps/donar/migrations/0010_auto_20180104_1905.py @@ -0,0 +1,20 @@ +# Generated by Django 2.0.1 on 2018-01-04 18:05 + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('donar', '0009_auto_20171204_1648'), + ] + + operations = [ + migrations.AlterField( + model_name='lecture_terms', + name='starttime', + field=models.TimeField(default=datetime.datetime(2018, 1, 4, 18, 5, 54, 971358, tzinfo=utc)), + ), + ] diff --git a/ofu_app/apps/food/admin_views.py b/ofu_app/apps/food/admin_views.py new file mode 100644 index 0000000..87e03c9 --- /dev/null +++ b/ofu_app/apps/food/admin_views.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import datetime +import os + +from django.conf import settings +from django.core.exceptions import ObjectDoesNotExist +from django.http import HttpResponseForbidden +from django.shortcuts import render +from pprint import pprint + +from apps.food.models import Menu, SingleFood, UserFoodImage + + +def food_picture_management(request): + if (request.user.is_superuser): + today = datetime.datetime.now() + today_images = UserFoodImage.objects.filter(food__foods__date__exact=today) + + return render(request, "admin/picture_management.jinja", { + 'day': today, + 'pictures': today_images, + }) + + else: + return HttpResponseForbidden + + +def food_picture_save(request, id): + if (request.user.is_superuser): + chosen_pic = UserFoodImage.objects.get(id=id) + food = SingleFood.objects.get(id=chosen_pic.food.id) + food.image.set([chosen_pic, ]) + food.save() + + return food_picture_management(request) + else: + return HttpResponseForbidden diff --git a/ofu_app/apps/food/migrations/0006_auto_20180104_1905.py b/ofu_app/apps/food/migrations/0006_auto_20180104_1905.py new file mode 100644 index 0000000..931f5e9 --- /dev/null +++ b/ofu_app/apps/food/migrations/0006_auto_20180104_1905.py @@ -0,0 +1,40 @@ +# Generated by Django 2.0.1 on 2018-01-04 18:05 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('food', '0005_auto_20171204_1634'), + ] + + operations = [ + migrations.AlterField( + model_name='menu', + name='menu', + field=models.ManyToManyField(related_name='foods', to='food.SingleFood'), + ), + migrations.AlterField( + model_name='userfoodimage', + name='food', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='food.SingleFood'), + ), + migrations.AlterField( + model_name='userfoodimage', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='userrating', + name='food', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='food.SingleFood'), + ), + migrations.AlterField( + model_name='userrating', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/ofu_app/apps/food/models.py b/ofu_app/apps/food/models.py index f2b7bc9..c322f46 100644 --- a/ofu_app/apps/food/models.py +++ b/ofu_app/apps/food/models.py @@ -60,8 +60,8 @@ class HappyHour(models.Model): class UserRating(models.Model): id = models.AutoField(primary_key=True) - user = models.ForeignKey(User, on_delete=models.CASCADE, unique=False) - food = models.ForeignKey(SingleFood) + user = models.ForeignKey(User, on_delete=models.PROTECT, unique=False) + food = models.ForeignKey(SingleFood, on_delete=models.PROTECT) rating = models.FloatField(default=0) def __str__(self): @@ -70,8 +70,8 @@ class UserRating(models.Model): class UserFoodImage(models.Model): id = models.AutoField(primary_key=True) - user = models.ForeignKey(User, on_delete=models.CASCADE, unique=False) - food = models.ForeignKey(SingleFood) + user = models.ForeignKey(User, on_delete=models.PROTECT, unique=False) + food = models.ForeignKey(SingleFood, on_delete=models.PROTECT) image = models.ImageField(upload_to='food/%Y/%m/%W', blank=True) class Meta: diff --git a/ofu_app/apps/food/urls.py b/ofu_app/apps/food/urls.py index 5ae6244..4041460 100644 --- a/ofu_app/apps/food/urls.py +++ b/ofu_app/apps/food/urls.py @@ -14,7 +14,7 @@ Including another URLconf 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ -from apps.food import views +from apps.food import views, admin_views from django.conf.urls import url, include urlpatterns = [ @@ -35,4 +35,8 @@ urlpatterns = [ # Food Rating url(r'^daily/rating/$', views.food_rating, name='rating-food'), url(r'^weekly/rating/$', views.food_rating, name='rating-food'), + + # Admin Pages + url(r'^admin/$', admin_views.food_picture_management, name='foodpicture-management'), + url(r'^admin/(?P[0-9]+)/$', admin_views.food_picture_save, name='foodpicture-save'), ] diff --git a/ofu_app/apps/food/utils/migrate_data.py b/ofu_app/apps/food/utils/migrate_data.py index a4d7395..027e469 100644 --- a/ofu_app/apps/food/utils/migrate_data.py +++ b/ofu_app/apps/food/utils/migrate_data.py @@ -71,7 +71,7 @@ def writeStudentenwerkDataInDB(data): try: date = datetime.strptime(str(menu['date']), "%d.%m.").replace(year=datetime.today().year) menu = Menu.objects.create(location=data['name'], date=date) - menu.menu = foodlist + menu.menu.set(foodlist) menu.save() except IntegrityError as error: # ignored diff --git a/ofu_app/apps/food/views.py b/ofu_app/apps/food/views.py index 78d7ae5..c8ec0b2 100644 --- a/ofu_app/apps/food/views.py +++ b/ofu_app/apps/food/views.py @@ -18,7 +18,7 @@ from apps.food.models import Menu, HappyHour, SingleFood, UserRating, UserFoodIm def daily_food(request): today = datetime.datetime.now() start_week = today - datetime.timedelta(today.weekday()) - end_week = start_week + datetime.timedelta(7) + end_week = start_week + datetime.timedelta(20) feki_menu = Menu.objects.filter(date__exact=today).filter(location__contains="Feldkirchenstraße").last() austr_menu = Menu.objects.filter(date__exact=today).filter(location__contains="Austraße").last() diff --git a/ofu_app/templates/admin/picture_management.jinja b/ofu_app/templates/admin/picture_management.jinja new file mode 100644 index 0000000..cc6af24 --- /dev/null +++ b/ofu_app/templates/admin/picture_management.jinja @@ -0,0 +1,20 @@ +{% extends 'food/food_wrapper.jinja' %} +{% import '/macros/food_macros.jinja' as macros %} +{% block headline %} +

Food Picture Management View

+{% endblock %} +{% block content %} +
+

Bilder

+
+ {% for picture in pictures %} + + {% endfor %} +
+
+{% endblock %} \ No newline at end of file diff --git a/ofu_app/templates/home.jinja b/ofu_app/templates/home.jinja index beabc67..f291f37 100644 --- a/ofu_app/templates/home.jinja +++ b/ofu_app/templates/home.jinja @@ -15,4 +15,4 @@ {{ macros.home_item_with_icon(icon='fa-th-large', url_id='links-home', title='Links') }} -{% endblock %}fa-cutlery \ No newline at end of file +{% endblock %} \ No newline at end of file