diff --git a/ofu_app/apps/donar/migrations/0001_initial.py b/ofu_app/apps/donar/migrations/0001_initial.py index 3a6711c..b9b1c54 100644 --- a/ofu_app/apps/donar/migrations/0001_initial.py +++ b/ofu_app/apps/donar/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-03 22:01 +# Generated by Django 1.11.6 on 2017-10-25 21:40 from __future__ import unicode_literals from django.db import migrations, models @@ -17,13 +17,25 @@ class Migration(migrations.Migration): name='Room', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), - ('key', models.CharField(max_length=60)), - ('address', models.CharField(max_length=60)), - ('building_key', models.CharField(max_length=60)), - ('floor', models.CharField(max_length=60)), - ('name', models.CharField(max_length=60)), - ('orgname', models.CharField(max_length=60)), - ('short', models.CharField(max_length=60)), + ('key', models.CharField(default='', max_length=60)), + ('address', models.CharField(default='', max_length=60)), + ('building_key', models.CharField(default='', max_length=60)), + ('floor', models.CharField(default='', max_length=60)), + ('name', models.CharField(default='', max_length=60)), + ('orgname', models.CharField(default='', max_length=60)), + ('short', models.CharField(max_length=60, unique=True)), + ('size', models.CharField(default='', max_length=60)), + ('description', models.CharField(default='', max_length=200)), + ], + ), + migrations.CreateModel( + name='VGN_Coords', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=60, unique=True)), + ('coords', models.CharField(max_length=60, unique=True)), + ('longitude', models.CharField(max_length=60, unique=True)), + ('latitude', models.CharField(max_length=60, unique=True)), ], ), ] diff --git a/ofu_app/apps/donar/migrations/0003_auto_20171004_0211.py b/ofu_app/apps/donar/migrations/0003_auto_20171004_0211.py deleted file mode 100644 index 96b39be..0000000 --- a/ofu_app/apps/donar/migrations/0003_auto_20171004_0211.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-04 00:11 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('donar', '0002_auto_20171004_0016'), - ] - - operations = [ - migrations.AddField( - model_name='room', - name='description', - field=models.CharField(default='', max_length=200), - ), - migrations.AddField( - model_name='room', - name='size', - field=models.CharField(default='', max_length=60), - ), - migrations.AlterField( - model_name='room', - name='address', - field=models.CharField(default='', max_length=60), - ), - migrations.AlterField( - model_name='room', - name='building_key', - field=models.CharField(default='', max_length=60), - ), - migrations.AlterField( - model_name='room', - name='floor', - field=models.CharField(default='', max_length=60), - ), - migrations.AlterField( - model_name='room', - name='key', - field=models.CharField(default='', max_length=60), - ), - migrations.AlterField( - model_name='room', - name='name', - field=models.CharField(default='', max_length=60), - ), - migrations.AlterField( - model_name='room', - name='orgname', - field=models.CharField(default='', max_length=60), - ), - ] diff --git a/ofu_app/apps/donar/migrations/0004_vgn_coords.py b/ofu_app/apps/donar/migrations/0004_vgn_coords.py deleted file mode 100644 index d20ed2a..0000000 --- a/ofu_app/apps/donar/migrations/0004_vgn_coords.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-17 13:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('donar', '0003_auto_20171004_0211'), - ] - - operations = [ - migrations.CreateModel( - name='VGN_Coords', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('name', models.CharField(default='', max_length=60, unique=True)), - ('coords', models.CharField(default='', max_length=60, unique=True)), - ], - ), - ] diff --git a/ofu_app/apps/donar/migrations/0005_auto_20171017_1603.py b/ofu_app/apps/donar/migrations/0005_auto_20171017_1603.py deleted file mode 100644 index 744056d..0000000 --- a/ofu_app/apps/donar/migrations/0005_auto_20171017_1603.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-17 14:03 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('donar', '0004_vgn_coords'), - ] - - operations = [ - migrations.AddField( - model_name='vgn_coords', - name='latitude', - field=models.CharField(default=0, max_length=60, unique=True), - preserve_default=False, - ), - migrations.AddField( - model_name='vgn_coords', - name='longitude', - field=models.CharField(default=0, max_length=60, unique=True), - preserve_default=False, - ), - migrations.AlterField( - model_name='vgn_coords', - name='coords', - field=models.CharField(max_length=60, unique=True), - ), - migrations.AlterField( - model_name='vgn_coords', - name='name', - field=models.CharField(max_length=60, unique=True), - ), - ] diff --git a/ofu_app/apps/events/migrations/0001_initial.py b/ofu_app/apps/events/migrations/0001_initial.py index 6c1b9bd..8160b3c 100644 --- a/ofu_app/apps/events/migrations/0001_initial.py +++ b/ofu_app/apps/events/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-02 20:56 +# Generated by Django 1.11.6 on 2017-10-25 21:40 from __future__ import unicode_literals from django.db import migrations, models @@ -20,14 +20,28 @@ class Migration(migrations.Migration): ('id', models.AutoField(primary_key=True, serialize=False)), ('title', models.CharField(max_length=60)), ('category', models.CharField(max_length=60)), - ('link', models.CharField(max_length=60)), - ('location', models.CharField(max_length=60)), - ('time', models.TimeField(default=django.utils.timezone.now)), + ('link', models.CharField(blank=True, max_length=60)), ('date', models.DateField(default=django.utils.timezone.now)), + ('time', models.TimeField(default=django.utils.timezone.now)), + ('presenter', models.CharField(blank=True, max_length=60)), + ('orgname', models.CharField(blank=True, max_length=60)), ], ), + migrations.CreateModel( + name='Location', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('key', models.CharField(blank=True, max_length=60)), + ('name', models.CharField(max_length=60, unique=True)), + ], + ), + migrations.AddField( + model_name='event', + name='locations', + field=models.ManyToManyField(to='events.Location'), + ), migrations.AlterUniqueTogether( name='event', - unique_together=set([('date', 'location')]), + unique_together=set([('date', 'time', 'title')]), ), ] diff --git a/ofu_app/apps/events/migrations/0002_auto_20171005_1655.py b/ofu_app/apps/events/migrations/0002_auto_20171005_1655.py deleted file mode 100644 index a9ff10d..0000000 --- a/ofu_app/apps/events/migrations/0002_auto_20171005_1655.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-05 14:55 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('events', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Location', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False)), - ('key', models.CharField(max_length=60)), - ('name', models.CharField(max_length=60)), - ], - ), - migrations.AlterUniqueTogether( - name='event', - unique_together=set([]), - ), - migrations.RemoveField( - model_name='event', - name='location', - ), - migrations.AddField( - model_name='event', - name='location', - field=models.ManyToManyField(to='events.Location'), - ), - ] diff --git a/ofu_app/apps/events/migrations/0003_auto_20171005_1807.py b/ofu_app/apps/events/migrations/0003_auto_20171005_1807.py deleted file mode 100644 index 94e16cc..0000000 --- a/ofu_app/apps/events/migrations/0003_auto_20171005_1807.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-05 16:07 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('events', '0002_auto_20171005_1655'), - ] - - operations = [ - migrations.AddField( - model_name='event', - name='orgname', - field=models.CharField(blank=True, max_length=60), - ), - migrations.AddField( - model_name='event', - name='presenter', - field=models.CharField(blank=True, max_length=60), - ), - migrations.AlterField( - model_name='event', - name='link', - field=models.CharField(blank=True, max_length=60), - ), - migrations.AlterField( - model_name='location', - name='key', - field=models.CharField(blank=True, max_length=60), - ), - migrations.AlterUniqueTogether( - name='event', - unique_together=set([('date', 'time', 'title')]), - ), - ] diff --git a/ofu_app/apps/events/migrations/0004_auto_20171005_1923.py b/ofu_app/apps/events/migrations/0004_auto_20171005_1923.py deleted file mode 100644 index 73dfcc2..0000000 --- a/ofu_app/apps/events/migrations/0004_auto_20171005_1923.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-05 17:23 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('events', '0003_auto_20171005_1807'), - ] - - operations = [ - migrations.AlterField( - model_name='location', - name='name', - field=models.CharField(max_length=60, unique=True), - ), - ] diff --git a/ofu_app/apps/events/migrations/0005_auto_20171005_2004.py b/ofu_app/apps/events/migrations/0005_auto_20171005_2004.py deleted file mode 100644 index 32254bc..0000000 --- a/ofu_app/apps/events/migrations/0005_auto_20171005_2004.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-05 18:04 -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('events', '0004_auto_20171005_1923'), - ] - - operations = [ - migrations.RenameField( - model_name='event', - old_name='location', - new_name='locations', - ), - ] diff --git a/ofu_app/apps/food/migrations/0001_initial.py b/ofu_app/apps/food/migrations/0001_initial.py index 5b5cfeb..85e2fa6 100644 --- a/ofu_app/apps/food/migrations/0001_initial.py +++ b/ofu_app/apps/food/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-02 20:56 +# Generated by Django 1.11.6 on 2017-10-25 21:40 from __future__ import unicode_literals from django.db import migrations, models @@ -14,13 +14,20 @@ class Migration(migrations.Migration): ] operations = [ + migrations.CreateModel( + name='Allergene', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=60, unique=True)), + ], + ), migrations.CreateModel( name='HappyHour', fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('date', models.DateField(default=django.utils.timezone.now)), - ('starttime', models.DateField(default=django.utils.timezone.now)), - ('endtime', models.DateField(default=django.utils.timezone.now)), + ('starttime', models.TimeField(default=django.utils.timezone.now)), + ('endtime', models.TimeField(default=django.utils.timezone.now)), ('location', models.CharField(max_length=60)), ('description', models.CharField(max_length=60)), ], @@ -38,6 +45,17 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=60, unique=True)), + ('price_student', models.CharField(max_length=10)), + ('price_employee', models.CharField(max_length=10)), + ('price_guest', models.CharField(max_length=10)), + ('image', models.ImageField(blank=True, upload_to='food/%Y/%m/')), + ('rating', models.FloatField(default=0)), + ('first_star', models.SmallIntegerField(default=0)), + ('second_star', models.SmallIntegerField(default=0)), + ('third_star', models.SmallIntegerField(default=0)), + ('fourth_star', models.SmallIntegerField(default=0)), + ('fifth_star', models.SmallIntegerField(default=0)), + ('allergens', models.ManyToManyField(to='food.Allergene')), ], ), migrations.AddField( @@ -47,7 +65,7 @@ class Migration(migrations.Migration): ), migrations.AlterUniqueTogether( name='happyhour', - unique_together=set([('date', 'location')]), + unique_together=set([('date', 'location', 'starttime', 'endtime')]), ), migrations.AlterUniqueTogether( name='menu', diff --git a/ofu_app/apps/food/migrations/0002_auto_20171008_1102.py b/ofu_app/apps/food/migrations/0002_auto_20171008_1102.py deleted file mode 100644 index b3f4dc4..0000000 --- a/ofu_app/apps/food/migrations/0002_auto_20171008_1102.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-08 09:02 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('food', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='happyhour', - name='endtime', - field=models.TimeField(default=django.utils.timezone.now), - ), - migrations.AlterField( - model_name='happyhour', - name='starttime', - field=models.TimeField(default=django.utils.timezone.now), - ), - ] diff --git a/ofu_app/apps/food/migrations/0002_auto_20171026_0033.py b/ofu_app/apps/food/migrations/0002_auto_20171026_0033.py new file mode 100644 index 0000000..9bcbe1e --- /dev/null +++ b/ofu_app/apps/food/migrations/0002_auto_20171026_0033.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2017-10-25 22:33 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('food', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='singlefood', + name='allergens', + field=models.ManyToManyField(blank=True, null=True, to='food.Allergene'), + ), + migrations.AlterField( + model_name='singlefood', + name='price_employee', + field=models.CharField(blank=True, max_length=10, null=True), + ), + migrations.AlterField( + model_name='singlefood', + name='price_guest', + field=models.CharField(blank=True, max_length=10, null=True), + ), + migrations.AlterField( + model_name='singlefood', + name='price_student', + field=models.CharField(blank=True, max_length=10, null=True), + ), + ] diff --git a/ofu_app/apps/food/migrations/0003_auto_20171013_1902.py b/ofu_app/apps/food/migrations/0003_auto_20171013_1902.py deleted file mode 100644 index f180b9f..0000000 --- a/ofu_app/apps/food/migrations/0003_auto_20171013_1902.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-13 17:02 -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('food', '0002_auto_20171008_1102'), - ] - - operations = [ - migrations.AlterUniqueTogether( - name='happyhour', - unique_together=set([('date', 'location', 'starttime', 'endtime')]), - ), - ] diff --git a/ofu_app/apps/donar/migrations/0002_auto_20171004_0016.py b/ofu_app/apps/food/migrations/0003_auto_20171026_0040.py similarity index 50% rename from ofu_app/apps/donar/migrations/0002_auto_20171004_0016.py rename to ofu_app/apps/food/migrations/0003_auto_20171026_0040.py index 522314d..0798bf8 100644 --- a/ofu_app/apps/donar/migrations/0002_auto_20171004_0016.py +++ b/ofu_app/apps/food/migrations/0003_auto_20171026_0040.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-03 22:16 +# Generated by Django 1.11.6 on 2017-10-25 22:40 from __future__ import unicode_literals from django.db import migrations, models @@ -8,13 +8,13 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('donar', '0001_initial'), + ('food', '0002_auto_20171026_0033'), ] operations = [ migrations.AlterField( - model_name='room', - name='short', - field=models.CharField(max_length=60, unique=True), + model_name='singlefood', + name='allergens', + field=models.ManyToManyField(blank=True, to='food.Allergene'), ), ] diff --git a/ofu_app/apps/food/migrations/0004_auto_20171020_0146.py b/ofu_app/apps/food/migrations/0004_auto_20171020_0146.py deleted file mode 100644 index a0bdeb8..0000000 --- a/ofu_app/apps/food/migrations/0004_auto_20171020_0146.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-19 23:46 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('food', '0003_auto_20171013_1902'), - ] - - operations = [ - migrations.AddField( - model_name='singlefood', - name='image', - field=models.ImageField(blank=True, upload_to='food/%Y/%m/'), - ), - migrations.AddField( - model_name='singlefood', - name='rating', - field=models.FloatField(default=0), - ), - ] diff --git a/ofu_app/apps/food/migrations/0005_auto_20171020_0549.py b/ofu_app/apps/food/migrations/0005_auto_20171020_0549.py deleted file mode 100644 index d54dd32..0000000 --- a/ofu_app/apps/food/migrations/0005_auto_20171020_0549.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.2 on 2017-10-20 03:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('food', '0004_auto_20171020_0146'), - ] - - operations = [ - migrations.AddField( - model_name='singlefood', - name='fifth_star', - field=models.SmallIntegerField(default=0), - ), - migrations.AddField( - model_name='singlefood', - name='first_star', - field=models.SmallIntegerField(default=0), - ), - migrations.AddField( - model_name='singlefood', - name='fourth_star', - field=models.SmallIntegerField(default=0), - ), - migrations.AddField( - model_name='singlefood', - name='second_star', - field=models.SmallIntegerField(default=0), - ), - migrations.AddField( - model_name='singlefood', - name='third_star', - field=models.SmallIntegerField(default=0), - ), - ] diff --git a/ofu_app/apps/food/models.py b/ofu_app/apps/food/models.py index 1259c4a..ad6e305 100644 --- a/ofu_app/apps/food/models.py +++ b/ofu_app/apps/food/models.py @@ -23,6 +23,9 @@ class Menu(models.Model): class SingleFood(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(unique=True, max_length=MAX_LENGTH) + price_student = models.CharField(max_length=10, blank=True, null=True) + price_employee = models.CharField(max_length=10, blank=True, null=True) + price_guest = models.CharField(max_length=10, blank=True, null=True) image = models.ImageField(upload_to='food/%Y/%m/', blank=True) rating = models.FloatField(default=0) first_star = models.SmallIntegerField(default=0) @@ -30,9 +33,10 @@ class SingleFood(models.Model): third_star = models.SmallIntegerField(default=0) fourth_star = models.SmallIntegerField(default=0) fifth_star = models.SmallIntegerField(default=0) + allergens = models.ManyToManyField("Allergene", blank=True) def __str__(self): - return "%s Rating: %f" % (self.name, self.rating) + return "%s - Rating: %f - Student Price: %s" % (self.name, self.rating, self.price_student) class Allergene(models.Model): diff --git a/ofu_app/apps/food/utils/migrate_data.py b/ofu_app/apps/food/utils/migrate_data.py index c936096..9aed6a8 100644 --- a/ofu_app/apps/food/utils/migrate_data.py +++ b/ofu_app/apps/food/utils/migrate_data.py @@ -2,7 +2,7 @@ import json from datetime import datetime from pprint import pprint from django.db.utils import IntegrityError -from apps.food.models import SingleFood, Menu, HappyHour +from apps.food.models import SingleFood, Menu, HappyHour, Allergene from apps.food.utils.parser import mensa_page_parser, fekide_happyhour_page_parser, cafete_page_parser # CONFIG SERVICE LINKS @@ -21,12 +21,37 @@ def getJsonFromFile(path): def writeStudentenwerkDataInDB(data): data = json.loads(data) for menu in data['weekmenu']: + foodlist = [] for single_food in menu['menu']: + if 'allergens' in single_food: + allergens = [] + for allergen in single_food['allergens']: + try: + allergens.append(Allergene.objects.create(name=allergen)) + except IntegrityError: + allergens.append(Allergene.objects.get(name=allergen)) try: - foodlist.append(SingleFood.objects.create(name=single_food)) + if 'prices' in single_food: + db_single_food = SingleFood.objects.create(name=single_food['title'], + price_student=single_food['prices']['price_student'], + price_employee=single_food['prices']['price_employee'], + price_guest=single_food['prices']['price_guest']) + else: + db_single_food = SingleFood.objects.create(name=single_food['title']) + if 'allergens' in locals(): + db_single_food.allergens = allergens + foodlist.append(db_single_food) except IntegrityError: - foodlist.append(SingleFood.objects.get(name=single_food)) + db_single_food = SingleFood.objects.get(name=single_food['title']) + if 'prices' in single_food: + db_single_food.price_student = single_food['prices']['price_student'], + db_single_food.price_employee = single_food['prices']['price_employee'], + db_single_food.price_guest = single_food['prices']['price_guest'] + if 'allergens' in locals(): + db_single_food.allergens = allergens + + foodlist.append(db_single_food) try: date = datetime.strptime(str(menu['date']), "%d.%m.").replace(year=datetime.today().year) menu = Menu.objects.create(location=data['name'], diff --git a/ofu_app/apps/food/utils/parser/cafete_page_parser.py b/ofu_app/apps/food/utils/parser/cafete_page_parser.py index e067cff..f218c3e 100644 --- a/ofu_app/apps/food/utils/parser/cafete_page_parser.py +++ b/ofu_app/apps/food/utils/parser/cafete_page_parser.py @@ -34,8 +34,10 @@ def getFoodPerDay(soup): dayObj = {} day = str(food).split()[0] foodName = str(food).replace(day, "").strip() + singleFoodObj = {} + singleFoodObj['title'] = foodName dayObj['date'] = day - dayObj['menu'] = [foodName] + dayObj['menu'] = [singleFoodObj] days.append(dayObj) return days diff --git a/ofu_app/apps/food/utils/parser/mensa_page_parser.py b/ofu_app/apps/food/utils/parser/mensa_page_parser.py index b848d18..4da42e8 100644 --- a/ofu_app/apps/food/utils/parser/mensa_page_parser.py +++ b/ofu_app/apps/food/utils/parser/mensa_page_parser.py @@ -15,17 +15,30 @@ def getMenuDay(soup): def getFoodPerDay(soup): - days = [] + week_menus = [] for day in soup.select('.currentweek .day'): - dayObj = {} + menu = {} daysoup = BeautifulSoup(str(day), "lxml") day = getMenuDay(daysoup) - dayMenu = [e.getText() for e in daysoup.select('.menuwrap .menu .left .title')] + day_menu = [] + for singleFood in daysoup.select('.menuwrap .menu'): + singleFoodObj = {} + singleFoodSoup = BeautifulSoup(str(singleFood), "lxml") + title = singleFoodSoup.find('div', {'class': 'title'}).getText() + allergens = [e.getText() for e in singleFoodSoup.select('.left .additnr .toggler ul li')] + prices = {} + prices['price_student'] = singleFoodSoup.select('.price')[0]['data-default'] + prices['price_employee'] = singleFoodSoup.select('.price')[0]['data-bed'] + prices['price_guest'] = singleFoodSoup.select('.price')[0]['data-guest'] + singleFoodObj['title'] = title + singleFoodObj['allergens'] = allergens + singleFoodObj['prices'] = prices + day_menu.append(singleFoodObj) - dayObj['date'] = str(day).split(" ")[1] - dayObj['menu'] = dayMenu - days.append(dayObj) - return days + menu['date'] = str(day).split(" ")[1] + menu['menu'] = day_menu + week_menus.append(menu) + return week_menus def parsePage(url: str): @@ -50,4 +63,6 @@ def parsePage(url: str): def getFoodplanName(soup): foodplan_name = soup.select('.mensamenu h2')[0].getText() return foodplan_name -# parsePage(FEKI_URL) + + +parsePage(FEKI_URL) diff --git a/ofu_app/templates/macros/food_macros.jinja b/ofu_app/templates/macros/food_macros.jinja index c0699c9..ff20df4 100644 --- a/ofu_app/templates/macros/food_macros.jinja +++ b/ofu_app/templates/macros/food_macros.jinja @@ -36,6 +36,7 @@
  • {{ single_food.name }}

    +

    {{ single_food.price_student }}