integrate data collectors in apps

This commit is contained in:
Götz 2017-10-02 21:21:15 +02:00
parent f94d0170ff
commit 0fcb726f92
74 changed files with 531 additions and 431 deletions

133
.gitignore vendored
View File

@ -1,3 +1,19 @@
# Created by https://www.gitignore.io/api/pycharm,python,django
### Django ###
*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3
media
# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/
# in your Git repository. Update and uncomment the following line accordingly.
# <django-project-name>/staticfiles/
### PyCharm ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
@ -31,7 +47,7 @@ cmake-build-debug/
## Plugin-specific files:
# IntelliJ
out/
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
@ -42,9 +58,124 @@ atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Ruby plugin and RubyMine
/.rakeTasks
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### PyCharm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
.idea/sonarlint
### Python ###
# Byte-compiled / optimized / DLL files
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
# Translations
*.mo
# Django stuff:
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
# End of https://www.gitignore.io/api/pycharm,python,django

View File

@ -0,0 +1,7 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="useProjectProfile" value="false" />
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

4
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5.3 (/usr/bin/python3.5)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/ofu-app.iml" filepath="$PROJECT_DIR$/.idea/ofu-app.iml" />
</modules>
</component>
</project>

18
.idea/ofu-app.iml generated Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TemplatesService">
<option name="TEMPLATE_FOLDERS">
<list>
<option value="$MODULE_DIR$/ofu_app/templates" />
</list>
</option>
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -13,9 +13,10 @@
<SUITE FILE_PATH="coverage/ofu_app$controller_json_food.coverage" NAME="controller-json-food Coverage Results" MODIFIED="1506703105217" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/data_collectors/food/json_generator" />
<SUITE FILE_PATH="coverage/ofu_app$fekide_eventpage_parser.coverage" NAME="fekide-eventpage-parser Coverage Results" MODIFIED="1506732818806" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/data_collectors/events/parser" />
<SUITE FILE_PATH="coverage/ofu_app$migrate_data__1_.coverage" NAME="migrate-data (1) Coverage Results" MODIFIED="1506734928822" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/data_collectors/events" />
<SUITE FILE_PATH="coverage/ofu_app$collect_and_migrate.coverage" NAME="collect_and_migrate Coverage Results" MODIFIED="1506815482638" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/data_collectors" />
<SUITE FILE_PATH="coverage/ofu_app$collect_and_migrate.coverage" NAME="collect_and_migrate Coverage Results" MODIFIED="1506956141616" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/data_collectors" />
<SUITE FILE_PATH="coverage/ofu_app$migrate_data.coverage" NAME="migrate-data Coverage Results" MODIFIED="1506814046322" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/data_collectors/food" />
<SUITE FILE_PATH="coverage/ofu_app$controller_json_events.coverage" NAME="controller-json-events Coverage Results" MODIFIED="1506733064332" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/data_collectors/events/json_generator" />
<SUITE FILE_PATH="coverage/ofu_app$mensa_page_parser.coverage" NAME="mensa_page_parser Coverage Results" MODIFIED="1506961724724" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/apps/food/utils/parser" />
</component>
<component name="DjangoConsoleOptions" custom-start-script="import sys; print('Python %s on %s' % (sys.version, sys.platform))&#10;import django; print('Django %s' % django.get_version())&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;if 'setup' in dir(django): django.setup()&#10;import django_manage_shell; django_manage_shell.run(PROJECT_ROOT)">
<option name="myCustomStartScript" value="import sys; print('Python %s on %s' % (sys.version, sys.platform))&#10;import django; print('Django %s' % django.get_version())&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;if 'setup' in dir(django): django.setup()&#10;import django_manage_shell; django_manage_shell.run(PROJECT_ROOT)" />
@ -23,24 +24,24 @@
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="settings.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ofu_app/settings.py">
<file leaf-file-name="views.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/apps/food/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="70" />
<folding />
<state relative-caret-position="160">
<caret line="12" column="58" lean-forward="false" selection-start-line="12" selection-start-column="58" selection-end-line="12" selection-end-column="58" />
<folding>
<element signature="e#24#63#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="models.py" pinned="false" current-in-tab="false">
<file leaf-file-name="models.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/apps/food/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="12" column="12" lean-forward="false" selection-start-line="12" selection-start-column="4" selection-end-line="12" selection-end-column="12" />
<folding>
<element signature="e#24#63#0" expanded="true" />
</folding>
<state relative-caret-position="356">
<caret line="39" column="43" lean-forward="false" selection-start-line="39" selection-start-column="43" selection-end-line="39" selection-end-column="43" />
<folding />
</state>
</provider>
</entry>
@ -55,76 +56,6 @@
</provider>
</entry>
</file>
<file leaf-file-name="collect_and_migrate.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/data_collectors/collect_and_migrate.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="100">
<caret line="5" column="69" lean-forward="false" selection-start-line="5" selection-start-column="69" selection-end-line="5" selection-end-column="69" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="migrate-data.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/data_collectors/events/migrate-data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="12" column="2" lean-forward="false" selection-start-line="12" selection-start-column="2" selection-end-line="12" selection-end-column="2" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="controller-json-food.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/data_collectors/food/json_generator/controller-json-food.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="8" column="24" lean-forward="true" selection-start-line="8" selection-start-column="24" selection-end-line="8" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="controller-json-events.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/data_collectors/events/json_generator/controller-json-events.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="700">
<caret line="35" column="33" lean-forward="false" selection-start-line="35" selection-start-column="33" selection-end-line="35" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="food.jinja" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/food/food.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="3" column="11" lean-forward="false" selection-start-line="3" selection-start-column="11" selection-end-line="3" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="week_events.jinja" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/events/week_events.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80">
<caret line="4" column="11" lean-forward="false" selection-start-line="4" selection-start-column="11" selection-end-line="4" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="base.jinja" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/base.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="23" column="24" lean-forward="false" selection-start-line="23" selection-start-column="17" selection-end-line="23" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
@ -152,7 +83,6 @@
<option value="$PROJECT_DIR$/events/urls.py" />
<option value="$PROJECT_DIR$/ofu_app/urls.py" />
<option value="$PROJECT_DIR$/events/views.py" />
<option value="$PROJECT_DIR$/ofu_app/settings.py" />
<option value="$PROJECT_DIR$/food/views.py" />
<option value="$PROJECT_DIR$/templates/base.jinja" />
<option value="$PROJECT_DIR$/templates/events/week_events.jinja" />
@ -160,9 +90,22 @@
<option value="$PROJECT_DIR$/templates/food/food.jinja" />
<option value="$PROJECT_DIR$/data_collectors/food/migrate-data.py" />
<option value="$PROJECT_DIR$/data_collectors/events/migrate-data.py" />
<option value="$PROJECT_DIR$/data_collectors/collect_and_migrate.py" />
<option value="$PROJECT_DIR$/data_collectors/food/json_generator/controller-json-food.py" />
<option value="$PROJECT_DIR$/apps/events/views.py" />
<option value="$PROJECT_DIR$/data_collectors/events/json_generator/controller-json-events.py" />
<option value="$PROJECT_DIR$/data_collectors/food/json_generator/controller-json-food.py" />
<option value="$PROJECT_DIR$/data_collectors/collect_and_migrate.py" />
<option value="$PROJECT_DIR$/apps/food/management/commands/import.py" />
<option value="$PROJECT_DIR$/data_collectors/events/migrate_data.py" />
<option value="$PROJECT_DIR$/apps/events/management/commands/import.py" />
<option value="$PROJECT_DIR$/apps/events/utils/json_generator/controller_json_events.py" />
<option value="$PROJECT_DIR$/apps/food/utils/json_generator/controller_json_food.py" />
<option value="$PROJECT_DIR$/apps/food/utils/parser/mensa_page_parser.py" />
<option value="$PROJECT_DIR$/apps/food/utils/migrate_data.py" />
<option value="$PROJECT_DIR$/apps/events/admin.py" />
<option value="$PROJECT_DIR$/ofu_app/settings.py" />
<option value="$PROJECT_DIR$/apps/food/admin.py" />
<option value="$PROJECT_DIR$/apps/food/views.py" />
<option value="$PROJECT_DIR$/apps/food/models.py" />
</list>
</option>
</component>
@ -192,6 +135,8 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@ -204,126 +149,6 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="data_collectors" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="data_collectors" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="food" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="data_collectors" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="food" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="json_generator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="data_collectors" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="food" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="json_generator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="jsons" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="data_collectors" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="events" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="data_collectors" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="events" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="json_generator" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ofu_app" />
@ -340,8 +165,6 @@
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
</panes>
</component>
<component name="PropertiesComponent">
@ -350,14 +173,19 @@
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/apps" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/apps/events" />
<recent name="$PROJECT_DIR$/data_collectors/events/parser" />
<recent name="$PROJECT_DIR$/food/static" />
<recent name="$PROJECT_DIR$/data_collectors/food/parser" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/apps/events/utils" />
<recent name="$PROJECT_DIR$/apps/food/utils" />
<recent name="$PROJECT_DIR$/apps/food" />
<recent name="$PROJECT_DIR$/apps/food/management/utils" />
<recent name="$PROJECT_DIR$/apps" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
@ -371,7 +199,7 @@
</list>
</option>
</component>
<component name="RunManager" selected="Python.collect_and_migrate">
<component name="RunManager" selected="Python.mensa_page_parser">
<configuration default="false" name="migrate-data" type="PythonConfigurationType" factoryName="Python" activateToolWindowBeforeRun="false" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
@ -385,7 +213,7 @@
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="ofu_app" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/data_collectors/food/migrate-data.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/apps/food/utils/migrate_data.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
@ -404,26 +232,7 @@
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="ofu_app" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/data_collectors/events/json_generator/controller-json-events.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<method />
</configuration>
<configuration default="false" name="fekide-eventpage-parser" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="/usr/bin/python3.5" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/data_collectors/events/parser" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="ofu_app" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/data_collectors/events/parser/fekide-eventpage-parser.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/data_collectors/events/json_generator/controller_json_events.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
@ -442,7 +251,7 @@
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="ofu_app" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/data_collectors/events/migrate-data.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/apps/events/utils/migrate_data.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
@ -467,6 +276,25 @@
<option name="EMULATE_TERMINAL" value="false" />
<method />
</configuration>
<configuration default="false" name="mensa_page_parser" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="/usr/bin/python3.5" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/apps/food/utils/parser" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="ofu_app" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/apps/food/utils/parser/mensa_page_parser.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<method />
</configuration>
<configuration default="true" type="DjangoTestsConfigurationType" factoryName="Django tests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
@ -665,17 +493,17 @@
<item index="0" class="java.lang.String" itemvalue="Django server.ofu_app" />
<item index="1" class="java.lang.String" itemvalue="Python.migrate-data" />
<item index="2" class="java.lang.String" itemvalue="Python.controller-json-events" />
<item index="3" class="java.lang.String" itemvalue="Python.fekide-eventpage-parser" />
<item index="4" class="java.lang.String" itemvalue="Python.migrate-data (1)" />
<item index="5" class="java.lang.String" itemvalue="Python.collect_and_migrate" />
<item index="3" class="java.lang.String" itemvalue="Python.migrate-data (1)" />
<item index="4" class="java.lang.String" itemvalue="Python.collect_and_migrate" />
<item index="5" class="java.lang.String" itemvalue="Python.mensa_page_parser" />
</list>
<recent_temporary>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="Python.collect_and_migrate" />
<item index="1" class="java.lang.String" itemvalue="Python.migrate-data" />
<item index="2" class="java.lang.String" itemvalue="Python.migrate-data (1)" />
<item index="3" class="java.lang.String" itemvalue="Python.controller-json-events" />
<item index="4" class="java.lang.String" itemvalue="Python.fekide-eventpage-parser" />
<item index="0" class="java.lang.String" itemvalue="Python.mensa_page_parser" />
<item index="1" class="java.lang.String" itemvalue="Python.collect_and_migrate" />
<item index="2" class="java.lang.String" itemvalue="Python.migrate-data" />
<item index="3" class="java.lang.String" itemvalue="Python.migrate-data (1)" />
<item index="4" class="java.lang.String" itemvalue="Python.controller-json-events" />
</list>
</recent_temporary>
</component>
@ -703,19 +531,18 @@
</component>
<component name="ToolWindowManager">
<frame x="0" y="27" width="1920" height="1053" extended-state="7" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2628205" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.26602563" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32896176" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32896176" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32896176" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
@ -734,11 +561,27 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="3" />
<option name="time" value="4" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/templates/food/food.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="3" column="11" lean-forward="false" selection-start-line="3" selection-start-column="11" selection-end-line="3" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/collect_and_migrate.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="100">
<caret line="5" column="72" lean-forward="true" selection-start-line="5" selection-start-column="72" selection-end-line="5" selection-end-column="72" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ofu_app/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2980">
@ -752,7 +595,7 @@
<state relative-caret-position="200">
<caret line="12" column="12" lean-forward="false" selection-start-line="12" selection-start-column="4" selection-end-line="12" selection-end-column="12" />
<folding>
<element signature="e#24#63#0" expanded="true" />
<element signature="e#24#63#0" expanded="false" />
</folding>
</state>
</provider>
@ -769,7 +612,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80">
<caret line="4" column="11" lean-forward="false" selection-start-line="4" selection-start-column="11" selection-end-line="4" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
@ -777,7 +619,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="23" column="24" lean-forward="false" selection-start-line="23" selection-start-column="17" selection-end-line="23" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
@ -810,7 +651,7 @@
<state relative-caret-position="200">
<caret line="12" column="12" lean-forward="false" selection-start-line="12" selection-start-column="4" selection-end-line="12" selection-end-column="12" />
<folding>
<element signature="e#24#63#0" expanded="true" />
<element signature="e#24#63#0" expanded="false" />
</folding>
</state>
</provider>
@ -827,7 +668,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80">
<caret line="4" column="11" lean-forward="false" selection-start-line="4" selection-start-column="11" selection-end-line="4" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
@ -835,7 +675,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="23" column="24" lean-forward="false" selection-start-line="23" selection-start-column="17" selection-end-line="23" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
@ -868,19 +707,19 @@
<state relative-caret-position="480">
<caret line="24" column="69" lean-forward="false" selection-start-line="24" selection-start-column="69" selection-end-line="24" selection-end-column="69" />
<folding>
<element signature="e#24#63#0" expanded="true" />
<element signature="e#24#63#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/food/migrate-data.py">
<entry file="file://$PROJECT_DIR$/apps/food/utils/migrate_data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="20">
<caret line="1" column="24" lean-forward="true" selection-start-line="1" selection-start-column="24" selection-end-line="1" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/food/parser/cafete-page-parser.py">
<entry file="file://$PROJECT_DIR$/apps/food/utils/parser/cafete_page_parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
@ -900,34 +739,20 @@
<state relative-caret-position="460">
<caret line="23" column="4" lean-forward="false" selection-start-line="23" selection-start-column="4" selection-end-line="23" selection-end-column="4" />
<folding>
<element signature="e#24#63#0" expanded="true" />
<element signature="e#24#63#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/food/static/bootstrap-4.0.0-beta-dist/js/bootstrap.js" />
<entry file="file://$PROJECT_DIR$/data_collectors/food/parser/fekide-happyhour-page-parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-564">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/food/parser/mensa-page-parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-40">
<caret line="22" column="25" lean-forward="false" selection-start-line="22" selection-start-column="25" selection-end-line="22" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/events/parser/univis-json-prettifier.py">
<entry file="file://$PROJECT_DIR$/apps/events/utils/parser/univis_json_prettifier.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="296">
<caret line="136" column="29" lean-forward="false" selection-start-line="136" selection-start-column="20" selection-end-line="136" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/events/parser/fekide-eventpage-parser.py">
<entry file="file://$PROJECT_DIR$/apps/events/utils/parser/fekide_eventpage_parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1136">
<caret line="71" column="2" lean-forward="false" selection-start-line="71" selection-start-column="2" selection-end-line="71" selection-end-column="2" />
@ -969,34 +794,17 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/events/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="8" column="23" lean-forward="false" selection-start-line="8" selection-start-column="23" selection-end-line="8" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/food/parser/cafete-page-parser.py">
<entry file="file://$PROJECT_DIR$/apps/food/utils/parser/cafete_page_parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="33" column="28" lean-forward="false" selection-start-line="33" selection-start-column="25" selection-end-line="33" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="12" column="35" lean-forward="false" selection-start-line="12" selection-start-column="35" selection-end-line="12" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/events/week_events.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80">
<caret line="4" column="11" lean-forward="false" selection-start-line="4" selection-start-column="11" selection-end-line="4" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
@ -1004,33 +812,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="23" column="24" lean-forward="false" selection-start-line="23" selection-start-column="17" selection-end-line="23" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ofu_app/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="70" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="12" column="12" lean-forward="false" selection-start-line="12" selection-start-column="4" selection-end-line="12" selection-end-column="12" />
<folding>
<element signature="e#24#63#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/food/daily_food.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80">
<caret line="4" column="8" lean-forward="false" selection-start-line="4" selection-start-column="3" selection-end-line="4" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
@ -1042,44 +823,162 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/food/migrate-data.py">
<entry file="file://$PROJECT_DIR$/apps/events/utils/parser/univis_eventpage_parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="12" column="2" lean-forward="false" selection-start-line="12" selection-start-column="2" selection-end-line="12" selection-end-column="2" />
<state relative-caret-position="60">
<caret line="6" column="74" lean-forward="false" selection-start-line="6" selection-start-column="18" selection-end-line="6" selection-end-column="74" />
<folding>
<element signature="e#0#15#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/collect_and_migrate.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="40">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/management/commands/import_food.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="260">
<caret line="13" column="25" lean-forward="false" selection-start-line="13" selection-start-column="25" selection-end-line="13" selection-end-column="25" />
<folding>
<element signature="e#0#65#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ofu_app/wsgi.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/events/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80">
<caret line="4" column="23" lean-forward="false" selection-start-line="4" selection-start-column="23" selection-end-line="4" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/events/utils/migrate_data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="617">
<caret line="31" column="0" lean-forward="true" selection-start-line="31" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
<folding>
<element signature="e#0#11#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/events/migrate-data.py">
<entry file="file://$PROJECT_DIR$/apps/events/management/commands/import_events.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="12" column="2" lean-forward="false" selection-start-line="12" selection-start-column="2" selection-end-line="12" selection-end-column="2" />
<state relative-caret-position="240">
<caret line="12" column="39" lean-forward="false" selection-start-line="12" selection-start-column="39" selection-end-line="12" selection-end-column="39" />
<folding>
<element signature="e#0#65#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/events/utils/json_generator/controller_json_events.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="660">
<caret line="33" column="40" lean-forward="false" selection-start-line="33" selection-start-column="40" selection-end-line="33" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/collect_and_migrate.py">
<entry file="file://$PROJECT_DIR$/apps/food/utils/parser/mensa_page_parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="100">
<caret line="5" column="69" lean-forward="false" selection-start-line="5" selection-start-column="69" selection-end-line="5" selection-end-column="69" />
<state relative-caret-position="40">
<caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/food/json_generator/controller-json-food.py">
<entry file="file://$PROJECT_DIR$/templates/food/daily_food.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80">
<caret line="4" column="8" lean-forward="false" selection-start-line="4" selection-start-column="3" selection-end-line="4" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/utils/migrate_data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="29" column="30" lean-forward="true" selection-start-line="29" selection-start-column="30" selection-end-line="29" selection-end-column="30" />
<folding>
<element signature="e#0#11#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/events/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="3" column="25" lean-forward="false" selection-start-line="3" selection-start-column="25" selection-end-line="3" selection-end-column="25" />
<folding>
<element signature="e#0#32#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ofu_app/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="39" column="1" lean-forward="false" selection-start-line="39" selection-start-column="1" selection-end-line="39" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="9" column="29" lean-forward="false" selection-start-line="9" selection-start-column="29" selection-end-line="9" selection-end-column="29" />
<folding>
<element signature="e#24#63#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="8" column="24" lean-forward="true" selection-start-line="8" selection-start-column="24" selection-end-line="8" selection-end-column="46" />
<caret line="12" column="58" lean-forward="false" selection-start-line="12" selection-start-column="58" selection-end-line="12" selection-end-column="58" />
<folding>
<element signature="e#24#63#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/utils/parser/fekide_happyhour_page_parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-564">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_collectors/events/json_generator/controller-json-events.py">
<entry file="file://$PROJECT_DIR$/apps/food/utils/json_generator/controller_json_food.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="700">
<caret line="35" column="33" lean-forward="false" selection-start-line="35" selection-start-column="33" selection-end-line="35" selection-end-column="33" />
<state relative-caret-position="200">
<caret line="10" column="21" lean-forward="true" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="50" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/apps/food/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="356">
<caret line="39" column="43" lean-forward="false" selection-start-line="39" selection-start-column="43" selection-end-line="39" selection-end-column="43" />
<folding />
</state>
</provider>

View File

@ -1,3 +1,4 @@
from django.contrib import admin
from apps.events.models import Event
# Register your models here.
admin.site.register(Event)

View File

@ -0,0 +1,16 @@
from django.core.management.base import BaseCommand, CommandError
from apps.events.models import Event
from apps.events.utils.json_generator import controller_json_events
from apps.events.utils import migrate_data
class Command(BaseCommand):
help = "Imports Food from special Websites"
def add_arguments(self, parser):
pass
def handle(self, *args, **options):
controller_json_events.main("apps/events/utils/json_generator/jsons/")
migrate_data.main("apps/events/utils/json_generator/jsons/")
self.stdout.write(self.style.SUCCESS('Successfully migrate data'))

View File

@ -0,0 +1,38 @@
from apps.events.utils.parser import fekide_eventpage_parser, univis_eventpage_parser, univis_json_prettifier
# CONFIG
JSON_OUTPUT_DIR_EVENTS = "./events/json_generator/jsons/"
def writeToFile(jsonfile, root, filename):
with open((root + filename), "w") as file:
file.write(jsonfile)
def main(path=JSON_OUTPUT_DIR_EVENTS):
try:
json_events_univis = univis_eventpage_parser.parsePage()
except Exception as err:
print(err.args)
json_events_univis = "{}"
writeToFile(json_events_univis, path, "events-univis.json")
try:
json_events_univis_pretty = univis_json_prettifier.prettify(path + "events-univis.json")
except Exception as err:
print(err.args)
json_events_univis_pretty = "{}"
try:
json_events_fekide = fekide_eventpage_parser.parsePage()
except:
print("Error")
json_events_fekide = "{}"
writeToFile(json_events_univis_pretty, path, "events-univis-pretty.json")
writeToFile(json_events_fekide, path, "events-fekide.json")
if __name__ == '__main__':
main()

File diff suppressed because one or more lines are too long

View File

@ -1,13 +1,8 @@
import json
from datetime import datetime
from pprint import pprint
import django
import os
from django.db.utils import IntegrityError
os.environ['DJANGO_SETTINGS_MODULE'] = 'ofu_app.settings'
django.setup()
from apps.events.models import Event
# JSON_FILES_PATH_EVENTS = "json_generator/jsons/"
@ -31,11 +26,12 @@ def writeFekideDataInDB(data):
break
def main():
def main(path=JSON_FILES_PATH_EVENTS):
# get food jsons
writeFekideDataInDB(getJsonFromFile(JSON_FILES_PATH_EVENTS + "events-fekide.json"))
writeFekideDataInDB(getJsonFromFile(path + "events-fekide.json"))
pprint("Event: " + str(Event.objects.count()))
main()
if __name__ == '__main__':
main()

View File

@ -2,5 +2,10 @@
from __future__ import unicode_literals
from django.contrib import admin
from apps.food.models import SingleFood, Menu, HappyHour
# Register your models here.
admin.site.register(SingleFood)
admin.site.register(Menu)
admin.site.register(HappyHour)

View File

@ -0,0 +1,15 @@
from django.core.management.base import BaseCommand, CommandError
from apps.food.models import Menu, HappyHour, SingleFood
from apps.food.utils.json_generator import controller_json_food
from apps.food.utils import migrate_data
class Command(BaseCommand):
help = "Imports Food from special Websites"
def add_arguments(self, parser):
pass
def handle(self, *args, **options):
controller_json_food.main("apps/food/utils/json_generator/jsons/")
migrate_data.main("apps/food/utils/json_generator/jsons/")

View File

@ -13,6 +13,9 @@ class Menu(models.Model):
location = models.CharField(max_length=MAX_LENGTH)
menu = models.ManyToManyField("SingleFood")
def __str__(self):
return str(self.date.strftime("%d.%m.%Y"))
class Meta:
unique_together = ('date', 'location')
@ -21,6 +24,9 @@ class SingleFood(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(unique=True, max_length=MAX_LENGTH)
def __str__(self):
return str(self.name)
class HappyHour(models.Model):
id = models.AutoField(primary_key=True)
@ -30,5 +36,8 @@ class HappyHour(models.Model):
location = models.CharField(max_length=MAX_LENGTH)
description = models.CharField(max_length=MAX_LENGTH)
def __str__(self):
return "Date: %s, Location: %s" % (self.date.strftime("%Y.%m.%d"), self.location)
class Meta:
unique_together = ('date', 'location')

View File

View File

@ -1,9 +1,4 @@
import importlib
# OWN MODULS
parser_food_mensa = importlib.import_module('data_collectors.food.parser.mensa-page-parser')
parser_food_cafete = importlib.import_module('data_collectors.food.parser.cafete-page-parser')
parser_food_fekidehappyhour = importlib.import_module('data_collectors.food.parser.fekide-happyhour-page-parser')
from apps.food.utils.parser import mensa_page_parser, cafete_page_parser, fekide_happyhour_page_parser
# CONFIG
JSON_OUTPUT_DIR_FOOD = "./food/json_generator/jsons/"
@ -21,44 +16,45 @@ def writeToFile(jsonfile, root, filename):
file.write(jsonfile)
def main():
def main(path=JSON_OUTPUT_DIR_FOOD):
try:
json_food_mensa_feki = parser_food_mensa.parsePage(LINK_FEKI_MENSA)
json_food_mensa_feki = mensa_page_parser.parsePage(LINK_FEKI_MENSA)
except IndexError:
print("Error")
json_food_mensa_feki = {}
try:
json_food_mensa_austr = parser_food_mensa.parsePage(LINK_AUSTR_MENSA)
json_food_mensa_austr = mensa_page_parser.parsePage(LINK_AUSTR_MENSA)
except IndexError:
print("Error")
json_food_mensa_austr = {}
try:
json_food_cafete_erba = parser_food_cafete.parsePage(LINK_ERBA_CAFETE)
json_food_cafete_erba = cafete_page_parser.parsePage(LINK_ERBA_CAFETE)
except IndexError:
print("Error")
json_food_cafete_erba = {}
try:
json_food_cafete_markus = parser_food_cafete.parsePage(LINK_MARKUS_CAFETE)
json_food_cafete_markus = cafete_page_parser.parsePage(LINK_MARKUS_CAFETE)
except IndexError:
print("Error")
json_food_cafete_markus = {}
try:
json_food_fekidehappyhours = parser_food_fekidehappyhour.parsePage(LINK_FEKIDE_GUIDE)
json_food_fekidehappyhours = fekide_happyhour_page_parser.parsePage(LINK_FEKIDE_GUIDE)
except IndexError:
print("Error")
json_food_fekidehappyhours = {}
# WRITE JSONS
writeToFile(json_food_mensa_feki, JSON_OUTPUT_DIR_FOOD, "mensa-feki.json")
writeToFile(json_food_mensa_austr, JSON_OUTPUT_DIR_FOOD, "mensa-austr.json")
writeToFile(json_food_cafete_erba, JSON_OUTPUT_DIR_FOOD, "cafete-erba.json")
writeToFile(json_food_cafete_markus, JSON_OUTPUT_DIR_FOOD, "cafete-markus.json")
writeToFile(json_food_fekidehappyhours, JSON_OUTPUT_DIR_FOOD, "happyhourguide-fekide.json")
writeToFile(json_food_mensa_feki, path, "mensa-feki.json")
writeToFile(json_food_mensa_austr, path, "mensa-austr.json")
writeToFile(json_food_cafete_erba, path, "cafete-erba.json")
writeToFile(json_food_cafete_markus, path, "cafete-markus.json")
writeToFile(json_food_fekidehappyhours, path, "happyhourguide-fekide.json")
main()
if __name__ == "__main__":
main()

View File

@ -0,0 +1 @@
{"execution_time": "Monday, 02.10.2017", "name": "Cafeteria Erba-Insel", "weekmenu": [{"date": "24.07.", "menu": ["Rinderhacksteak an Cognacso\u00dfe und Sp\u00e4tzle"]}, {"date": "25.07.", "menu": ["Gem\u00fcseschnitzel mit Kr\u00e4utercreme und Kartoffeln"]}, {"date": "26.07.", "menu": ["Penne-Nudeln mit Hackfleischso\u00dfe"]}, {"date": "27.07.", "menu": ["Kaiserschmarrn mit Apfelmus"]}]}

View File

@ -0,0 +1 @@
{"execution_time": "Monday, 02.10.2017", "name": "Cafeteria Markusplatz", "weekmenu": [{"date": "24.07.", "menu": ["Vegetarisches Chili sin Carne"]}, {"date": "25.07.", "menu": ["Gem\u00fcseschnitzel mit Kr\u00e4utercreme und Kartoffeln"]}, {"date": "26.07.", "menu": ["\u00dcberbackene Zucchini an Paprikaso\u00dfe mit P\u00fcree"]}, {"date": "27.07.", "menu": ["Kaiserschmarrn mit Apfelmus"]}]}

View File

@ -0,0 +1 @@
{"execution_time": "Monday, 02.10.2017", "happyhours": [{"description": "Panini f\u00fcr je 4,50 \u20ac", "time": "12:00 - 22:00", "location": "Caf\u00e9 Esspress"}, {"description": "Salat-Tag: Varianten f\u00fcr je 6 \u20ac", "time": "16:00 - 23:59", "location": "Bowlinghaus Bamberg"}, {"description": "Jede Pizza nur 5,20\u20ac", "time": "17:00 - 21:00", "location": "Cafe Arte"}, {"description": "Jede Tapa - 2,50 \u20ac", "time": "17:00 - 21:00", "location": "Bolero"}, {"description": "Schnitzel + 0,2l Getr\u00e4nk 7,90 \u20ac", "time": "17:30 - 21:30", "location": "Luitpold"}, {"description": "Riesen-Pizzen 12,50 \u20ac", "time": "18:00 - 21:00", "location": "Aposto"}, {"description": "1 Paar Bradw\u00f6rschd, 1 Ah\u00f6rnla Bier + Beilage ab 7,50 \u20ac", "time": "19:00 - 22:00", "location": "Ah\u00f6rnla im Sand"}, {"description": "Jede Pizza 4,90 \u20ac", "time": "19:00 - 01:00", "location": "Mainfranken Bowling"}], "day": "Monday, 02.10.2017"}

View File

@ -0,0 +1 @@
{"execution_time": "Monday, 02.10.2017", "name": "Speiseplan f\u00fcr Austra\u00dfe Bamberg", "weekmenu": [{"date": "02.10.", "menu": ["Pennenudeln mit Lachs, Spinat und Kirschtomaten", "Rinderhacksteak mit Cognac - Pfefferso\u00dfe", "Schneller Teller: H\u00e4hnchenspie\u00df mit Gefl\u00fcgelso\u00dfe, Bratkartoffeln und Blumenkohl", "Kartoffelgnocchi - Gem\u00fcsepfanne", "Dampfkartoffeln mit hausgemachtem Schnittlauchquark"]}, {"date": "03.10.", "menu": []}, {"date": "04.10.", "menu": ["Siebenschwabenplatte mit Bratenso\u00dfe", "Putenbrustgeschnetzeltes in Pilzrahm", "Schneller Teller: Veganes Soja - Gem\u00fcsegeschnetzeltes mit Penine Rigate, Apfel", "\u00dcberbackene Zucchini \"mediterrane Art\" an Paprikaso\u00dfe"]}, {"date": "05.10.", "menu": ["Chicken Burger mit Ananas Currydip", "Schneller Teller: Paprikagulsch vom Schwein mit Spiralnudeln und Rosenkohl", "Nudelgem\u00fcseauflauf", "Pizza \"Spinat & Hirtenk\u00e4se\""]}, {"date": "06.10.", "menu": ["Schneller Teller: Seelachsfilet an \"S\u00fc\u00df - Scharfer\" Tomatenso\u00dfe, Langkornreis und Brokkoli", "Gyros mit hausgemachtem Tsatsiki", "Green Tacos mit Walnuss - Chili - P\u00e2t\u00e9", "Kartoffel Broccoli Gratin"]}]}

View File

@ -0,0 +1 @@
{"execution_time": "Monday, 02.10.2017", "name": "Speiseplan f\u00fcr Feldkirchenstra\u00dfe Bamberg", "weekmenu": [{"date": "02.10.", "menu": ["Rinderhacksteak mit Cognac - Pfefferso\u00dfe", "Schneller Teller: H\u00e4hnchenspie\u00df mit Gefl\u00fcgelso\u00dfe, Bratkartoffeln und Blumenkohl", "Kartoffelgnocchi - Gem\u00fcsepfanne", "Dampfkartoffeln mit hausgemachtem Schnittlauchquark"]}, {"date": "03.10.", "menu": []}, {"date": "04.10.", "menu": ["Siebenschwabenplatte mit Bratenso\u00dfe", "Putenbrustgeschnetzeltes in Pilzrahm", "Schneller Teller: Veganes Soja - Gem\u00fcsegeschnetzeltes mit Penine Rigate, Apfel", "\u00dcberbackene Zucchini \"mediterrane Art\" an Paprikaso\u00dfe"]}, {"date": "05.10.", "menu": ["Chicken Burger mit Ananas Currydip", "Schneller Teller: Paprikagulsch vom Schwein mit Spiralnudeln und Rosenkohl", "Nudelgem\u00fcseauflauf", "Pizza \"Spinat & Hirtenk\u00e4se\""]}, {"date": "06.10.", "menu": ["Schneller Teller: Seelachsfilet an \"S\u00fc\u00df - Scharfer\" Tomatenso\u00dfe, Langkornreis und Brokkoli", "Gyros mit hausgemachtem Tsatsiki", "Green Tacos mit Walnuss - Chili - P\u00e2t\u00e9", "Kartoffel Broccoli Gratin"]}]}

View File

@ -1,13 +1,7 @@
import json
from datetime import datetime
from pprint import pprint
import django
import os
from django.db.utils import IntegrityError
os.environ['DJANGO_SETTINGS_MODULE'] = 'ofu_app.settings'
django.setup()
from apps.food.models import SingleFood, Menu, HappyHour
# JSON_FILES_PATH_FOOD = "json_generator/jsons/"
@ -32,6 +26,7 @@ def writeStudentenwerkDataInDB(data):
menu = Menu.objects.create(location=data['name'],
date=date)
menu.menu = foodlist
menu.save()
except IntegrityError:
# ignored
break
@ -50,18 +45,19 @@ def writeFekideDataInDB(data):
break
def main():
def main(path=JSON_FILES_PATH_FOOD):
# get food jsons
writeStudentenwerkDataInDB(getJsonFromFile(JSON_FILES_PATH_FOOD + "mensa-austr.json"))
writeStudentenwerkDataInDB(getJsonFromFile(JSON_FILES_PATH_FOOD + "cafete-erba.json"))
writeStudentenwerkDataInDB(getJsonFromFile(JSON_FILES_PATH_FOOD + "cafete-markus.json"))
writeStudentenwerkDataInDB(getJsonFromFile(JSON_FILES_PATH_FOOD + "mensa-feki.json"))
writeStudentenwerkDataInDB(getJsonFromFile(path + "mensa-austr.json"))
writeStudentenwerkDataInDB(getJsonFromFile(path + "cafete-erba.json"))
writeStudentenwerkDataInDB(getJsonFromFile(path + "cafete-markus.json"))
writeStudentenwerkDataInDB(getJsonFromFile(path + "mensa-feki.json"))
json_food_fekide = getJsonFromFile(JSON_FILES_PATH_FOOD + "happyhourguide-fekide.json")
json_food_fekide = getJsonFromFile(path + "happyhourguide-fekide.json")
writeFekideDataInDB(json_food_fekide)
pprint("SingleFood: " + str(SingleFood.objects.count()))
pprint("Menu: " + str(Menu.objects.count()))
pprint("HappyHour: " + str(HappyHour.objects.count()))
main()
if __name__ == '__main__':
main()

View File

@ -3,6 +3,8 @@ from bs4 import BeautifulSoup
import json
import datetime
FEKI_URL = "https://www.studentenwerk-wuerzburg.de/bamberg/essen-trinken/speiseplaene.html?tx_thmensamenu_pi2%5Bmensen%5D=3&tx_thmensamenu_pi2%5Baction%5D=show&tx_thmensamenu_pi2%5Bcontroller%5D=Speiseplan&cHash=c3fe5ebb35e5fba3794f01878e798b7c"
def loadPage(url: str):
return requests.get(url).content
@ -41,6 +43,7 @@ def parsePage(url: str):
mensaSpeiseplan['weekmenu'] = days
mensaSpeiseplan['name'] = foodplan_name
mensaSpeiseplan['execution_time'] = datetime.datetime.today().strftime("%A, %d.%m.%Y")
# print(mensaSpeiseplan)
mensaSpeiseplanJson = json.dumps(mensaSpeiseplan)
return mensaSpeiseplanJson
@ -48,3 +51,4 @@ def parsePage(url: str):
def getFoodplanName(soup):
foodplan_name = soup.select('.mensamenu h2')[0].getText()
return foodplan_name
# parsePage(FEKI_URL)

View File

@ -10,13 +10,14 @@ from apps.food.models import Menu, HappyHour
# Create your views here.
def daily_food(request):
today = datetime.datetime.now()
today = datetime.datetime.now() + datetime.timedelta(2)
daily_menus = Menu.objects.filter(date__exact=today)
feki_menu = daily_menus.filter(location__contains="Feldkirchenstraße").last()
austr_menu = daily_menus.filter(location__contains="Austraße").last()
erba_cafete = daily_menus.filter(location__contains="Erba").last()
markus_cafete = daily_menus.filter(location__contains="markus").last()
happy_hours = HappyHour.objects.filter(date__exact=today)
print(feki_menu.menu)
return render(request, "food/daily_food.jinja", {
'day': today,
'happy_hours': happy_hours,

View File

@ -1,7 +0,0 @@
import importlib
importlib.import_module('food.json_generator.controller-json-food')
importlib.import_module('food.migrate-data')
importlib.import_module('events.json_generator.controller-json-events')
importlib.import_module('events.migrate-data')

View File

@ -1,42 +0,0 @@
import importlib
# OWN MODULS
parser_event_univis = importlib.import_module('data_collectors.events.parser.univis-eventpage-parser')
parser_event_univis_pretty = importlib.import_module('data_collectors.events.parser.univis-json-prettifier')
parser_event_fekide = importlib.import_module('data_collectors.events.parser.fekide-eventpage-parser')
# CONFIG
JSON_OUTPUT_DIR_EVENTS = "./events/json_generator/jsons/"
def writeToFile(jsonfile, root, filename):
with open((root + filename), "w") as file:
file.write(jsonfile)
def main():
try:
json_events_univis = parser_event_univis.parsePage()
except:
print("Error")
json_events_univis = "{}"
writeToFile(json_events_univis, JSON_OUTPUT_DIR_EVENTS, "events-univis.json")
try:
json_events_univis_pretty = parser_event_univis_pretty.prettify(JSON_OUTPUT_DIR_EVENTS + "events-univis.json")
except:
print("Error")
json_events_univis_pretty = "{}"
try:
json_events_fekide = parser_event_fekide.parsePage()
except:
print("Error")
json_events_fekide = "{}"
writeToFile(json_events_univis_pretty, JSON_OUTPUT_DIR_EVENTS, "events-univis-pretty.json")
writeToFile(json_events_fekide, JSON_OUTPUT_DIR_EVENTS, "events-fekide.json")
main()

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"weekmenu": [{"menu": ["Rinderhacksteak an Cognacso\u00dfe und Sp\u00e4tzle"], "date": "24.07."}, {"menu": ["Gem\u00fcseschnitzel mit Kr\u00e4utercreme und Kartoffeln"], "date": "25.07."}, {"menu": ["Penne-Nudeln mit Hackfleischso\u00dfe"], "date": "26.07."}, {"menu": ["Kaiserschmarrn mit Apfelmus"], "date": "27.07."}], "execution_time": "Monday, 02.10.2017", "name": "Cafeteria Erba-Insel"}

View File

@ -1 +0,0 @@
{"weekmenu": [{"menu": ["Vegetarisches Chili sin Carne"], "date": "24.07."}, {"menu": ["Gem\u00fcseschnitzel mit Kr\u00e4utercreme und Kartoffeln"], "date": "25.07."}, {"menu": ["\u00dcberbackene Zucchini an Paprikaso\u00dfe mit P\u00fcree"], "date": "26.07."}, {"menu": ["Kaiserschmarrn mit Apfelmus"], "date": "27.07."}], "execution_time": "Monday, 02.10.2017", "name": "Cafeteria Markusplatz"}

View File

@ -1 +0,0 @@
{"day": "Monday, 02.10.2017", "execution_time": "Monday, 02.10.2017", "happyhours": [{"time": "11:00 - 18:00", "location": "Fritz Heaven", "description": "10% Rabatt auf Beefburger & belg. Fritten"}, {"time": "12:00 - 22:00", "location": "Caf\u00e9 Esspress", "description": "Panini f\u00fcr je 4,50 \u20ac"}, {"time": "15:00 - 17:30", "location": "Orlando", "description": "Dolce Vita (Cappucino & Tiramisu) f\u00fcr nur 3,50 \u20ac"}, {"time": "16:00 - 20:00", "location": "Caff\u00e8bar Kranen", "description": "Aperitivo Italiano incl. Antipasti"}, {"time": "16:00 - 23:59", "location": "Bowlinghaus Bamberg", "description": "Salat-Tag: Varianten f\u00fcr je 6 \u20ac"}, {"time": "17:00 - 21:00", "location": "Cafe Arte", "description": "Jede Pizza nur 5,20\u20ac"}, {"time": "17:00 - 21:00", "location": "Bolero", "description": "Jede Tapa - 2,50 \u20ac"}, {"time": "17:30 - 21:30", "location": "Luitpold", "description": "Schnitzel + 0,2l Getr\u00e4nk 7,90 \u20ac"}, {"time": "18:00 - 21:00", "location": "Aposto", "description": "Riesen-Pizzen 12,50 \u20ac"}, {"time": "19:00 - 22:00", "location": "Ah\u00f6rnla im Sand", "description": "1 Paar Bradw\u00f6rschd, 1 Ah\u00f6rnla Bier + Beilage ab 7,50 \u20ac"}, {"time": "19:00 - 01:00", "location": "Mainfranken Bowling", "description": "Jede Pizza 4,90 \u20ac"}]}

View File

@ -1 +0,0 @@
{"weekmenu": [{"menu": [], "date": "02.10."}, {"menu": [], "date": "03.10."}, {"menu": [], "date": "04.10."}, {"menu": [], "date": "05.10."}, {"menu": [], "date": "06.10."}], "execution_time": "Monday, 02.10.2017", "name": "Speiseplan f\u00fcr Austra\u00dfe Bamberg"}

View File

@ -1 +0,0 @@
{"weekmenu": [{"menu": [], "date": "02.10."}, {"menu": [], "date": "03.10."}, {"menu": [], "date": "04.10."}, {"menu": [], "date": "05.10."}, {"menu": [], "date": "06.10."}], "execution_time": "Monday, 02.10.2017", "name": "Speiseplan f\u00fcr Feldkirchenstra\u00dfe Bamberg"}

Binary file not shown.

View File

@ -23,8 +23,7 @@ SECRET_KEY = '7tm($-7tz!co8762!)ptmj%)80)qa^z0odee*8-!be!i(a!p4j'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['mg-server.ddns.net', 'localhost' ]
ALLOWED_HOSTS = ['mg-server.ddns.net', 'localhost', '127.0.0.1', ]
# Application definition
@ -162,4 +161,4 @@ STATICFILES_DIRS = [
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
FORCE_SCRIPT_NAME = "app"
# FORCE_SCRIPT_NAME = "app"