From 159ba340126eba73fe2cc9f6f3c446db5852c9b4 Mon Sep 17 00:00:00 2001 From: HanseGucker <hansegucker@gmail.com> Date: Tue, 10 Apr 2018 12:31:22 +0200 Subject: [PATCH] A working timetable --- .gitignore | 2 + .idea/misc.xml | 2 +- .idea/school-apps.iml | 2 +- .idea/workspace.xml | 416 ++++++++---------- schoolapps/dashboard/urls.py | 3 +- schoolapps/dashboard/views.py | 5 + schoolapps/schoolapps/settings.py | 4 + schoolapps/templates/partials/footer.html | 4 +- schoolapps/templates/partials/impress.html | 34 ++ .../migrations/0002_auto_20180410_1100.py | 25 ++ schoolapps/timetable/models.py | 32 +- schoolapps/timetable/parse.py | 120 +++-- .../timetable/templates/timetable/plan.html | 18 +- schoolapps/untisconnect/api.py | 4 + 14 files changed, 370 insertions(+), 301 deletions(-) create mode 100644 schoolapps/templates/partials/impress.html create mode 100644 schoolapps/timetable/migrations/0002_auto_20180410_1100.py diff --git a/.gitignore b/.gitignore index bee8a64b7..7370a390f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ __pycache__ +env/ +*.pyc diff --git a/.idea/misc.xml b/.idea/misc.xml index 5bbe586f1..946bc5033 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5.2 (/usr/bin/python3.5)" project-jdk-type="Python SDK" /> + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5 (school-apps)" project-jdk-type="Python SDK" /> </project> \ No newline at end of file diff --git a/.idea/school-apps.iml b/.idea/school-apps.iml index b97b43627..7a659e6a1 100644 --- a/.idea/school-apps.iml +++ b/.idea/school-apps.iml @@ -13,7 +13,7 @@ </component> <component name="NewModuleRootManager"> <content url="file://$MODULE_DIR$" /> - <orderEntry type="inheritedJdk" /> + <orderEntry type="jdk" jdkName="Python 3.5 (school-apps)" jdkType="Python SDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" name="jquery-3.2.1" level="application" /> <orderEntry type="module" module-name="bwinf-36-2" /> diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7a80e84b7..3e1b8e47e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,28 +2,19 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="3a000256-1023-4a19-a046-bde25cb853cc" name="Default" comment=""> - <change beforePath="" afterPath="$PROJECT_DIR$/schoolapps/timetable/parse.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/__init__.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/admin.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/apps.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/migrations/__init__.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/models.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/templates/timetable/admin/all.html" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/templates/timetable/plan.html" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/tests.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/urls.py" /> - <change beforePath="" afterPath="$PROJECT_DIR$/timetable-old/views.py" /> + <change beforePath="" afterPath="$PROJECT_DIR$/schoolapps/templates/partials/impress.html" /> + <change beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" /> + <change beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" /> + <change beforePath="$PROJECT_DIR$/.idea/school-apps.iml" afterPath="$PROJECT_DIR$/.idea/school-apps.iml" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> - <change beforePath="$PROJECT_DIR$/schoolapps/static/common/style.css" afterPath="$PROJECT_DIR$/schoolapps/static/common/style.css" /> - <change beforePath="$PROJECT_DIR$/schoolapps/templates/partials/header.html" afterPath="$PROJECT_DIR$/schoolapps/templates/partials/header.html" /> + <change beforePath="$PROJECT_DIR$/schoolapps/dashboard/urls.py" afterPath="$PROJECT_DIR$/schoolapps/dashboard/urls.py" /> + <change beforePath="$PROJECT_DIR$/schoolapps/dashboard/views.py" afterPath="$PROJECT_DIR$/schoolapps/dashboard/views.py" /> + <change beforePath="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" afterPath="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" /> + <change beforePath="$PROJECT_DIR$/schoolapps/templates/partials/footer.html" afterPath="$PROJECT_DIR$/schoolapps/templates/partials/footer.html" /> <change beforePath="$PROJECT_DIR$/schoolapps/timetable/models.py" afterPath="$PROJECT_DIR$/schoolapps/timetable/models.py" /> - <change beforePath="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/admin/teachers.html" afterPath="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/admin/all.html" /> - <change beforePath="$PROJECT_DIR$/schoolapps/timetable/urls.py" afterPath="$PROJECT_DIR$/schoolapps/timetable/urls.py" /> - <change beforePath="$PROJECT_DIR$/schoolapps/timetable/views.py" afterPath="$PROJECT_DIR$/schoolapps/timetable/views.py" /> + <change beforePath="$PROJECT_DIR$/schoolapps/timetable/parse.py" afterPath="$PROJECT_DIR$/schoolapps/timetable/parse.py" /> + <change beforePath="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html" afterPath="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html" /> <change beforePath="$PROJECT_DIR$/schoolapps/untisconnect/api.py" afterPath="$PROJECT_DIR$/schoolapps/untisconnect/api.py" /> - <change beforePath="$PROJECT_DIR$/schoolapps/untisconnect/models.py" afterPath="$PROJECT_DIR$/schoolapps/untisconnect/models.py" /> - <change beforePath="$PROJECT_DIR$/schoolapps/untisconnect/views.py" afterPath="$PROJECT_DIR$/schoolapps/untisconnect/views.py" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> @@ -40,90 +31,85 @@ </component> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> - <file leaf-file-name="models.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/models.py"> + <file leaf-file-name="index.html" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/templates/dashboard/index.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="255"> - <caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> + <state relative-caret-position="323"> + <caret line="46" column="32" lean-forward="true" selection-start-line="35" selection-start-column="19" selection-end-line="46" selection-end-column="32" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="parse.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/parse.py"> + <file leaf-file-name="views.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/views.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="680"> - <caret line="214" column="41" lean-forward="true" selection-start-line="214" selection-start-column="41" selection-end-line="214" selection-end-column="41" /> - <folding /> + <state relative-caret-position="440"> + <caret line="40" column="19" lean-forward="true" selection-start-line="40" selection-start-column="19" selection-end-line="40" selection-end-column="19" /> + <folding> + <element signature="e#0#57#0" expanded="true" /> + </folding> </state> </provider> </entry> </file> <file leaf-file-name="models.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/models.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/aub/models.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="17"> - <caret line="822" column="12" lean-forward="false" selection-start-line="822" selection-start-column="6" selection-end-line="822" selection-end-column="12" /> + <state relative-caret-position="387"> + <caret line="56" column="27" lean-forward="true" selection-start-line="56" selection-start-column="27" selection-end-line="56" selection-end-column="27" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="api.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/api.py"> + <file leaf-file-name="models.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/models.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2839"> - <caret line="167" column="18" lean-forward="false" selection-start-line="167" selection-start-column="18" selection-end-line="167" selection-end-column="18" /> + <state relative-caret-position="84"> + <caret line="5" column="28" lean-forward="true" selection-start-line="5" selection-start-column="28" selection-end-line="5" selection-end-column="28" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="views.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/views.py"> + <file leaf-file-name="parse.py" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/parse.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="408"> - <caret line="47" column="16" lean-forward="true" selection-start-line="47" selection-start-column="16" selection-end-line="47" selection-end-column="16" /> - <folding> - <element signature="e#0#57#0" expanded="true" /> - </folding> + <state relative-caret-position="134"> + <caret line="220" column="0" lean-forward="true" selection-start-line="220" selection-start-column="0" selection-end-line="220" selection-end-column="0" /> + <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="plan.html" pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html"> + <file leaf-file-name="settings.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/settings.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="221"> - <caret line="83" column="81" lean-forward="true" selection-start-line="83" selection-start-column="81" selection-end-line="83" selection-end-column="81" /> + <state relative-caret-position="287"> + <caret line="147" column="19" lean-forward="true" selection-start-line="147" selection-start-column="19" selection-end-line="147" selection-end-column="19" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="header.html" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/header.html"> + <file leaf-file-name="plan.html" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="110"> - <caret line="56" column="30" lean-forward="true" selection-start-line="56" selection-start-column="30" selection-end-line="56" selection-end-column="30" /> - <folding /> + <state relative-caret-position="203"> + <caret line="63" column="51" lean-forward="false" selection-start-line="63" selection-start-column="51" selection-end-line="63" selection-end-column="51" /> + <folding> + <element signature="n#style#0;n#p#0;n#div#0;n#div#0;n#div#1;n#div#1;n#main#0;n#!!top" expanded="true" /> + </folding> </state> </provider> </entry> </file> - <file leaf-file-name="logo.png" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/static/common/logo.png"> - <provider selected="true" editor-type-id="images"> - <state /> - </provider> - </entry> - </file> - <file leaf-file-name="style.css" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/schoolapps/static/common/style.css"> + <file leaf-file-name="urls.py" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/urls.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="85"> - <caret line="86" column="35" lean-forward="false" selection-start-line="86" selection-start-column="35" selection-end-line="86" selection-end-column="35" /> + <state relative-caret-position="68"> + <caret line="5" column="36" lean-forward="true" selection-start-line="5" selection-start-column="36" selection-end-line="5" selection-end-column="36" /> <folding /> </state> </provider> @@ -132,8 +118,8 @@ <file leaf-file-name="all.html" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/admin/all.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="459"> - <caret line="27" column="48" lean-forward="false" selection-start-line="27" selection-start-column="48" selection-end-line="27" selection-end-column="48" /> + <state relative-caret-position="17"> + <caret line="27" column="48" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="62" selection-end-column="0" /> <folding /> </state> </provider> @@ -174,15 +160,12 @@ <component name="IdeDocumentHistory"> <option name="CHANGED_PATHS"> <list> - <option value="$PROJECT_DIR$/schoolapps/templates/registration/password_reset_form.html" /> - <option value="$PROJECT_DIR$/schoolapps/aub/README.md" /> <option value="$PROJECT_DIR$/schoolapps/teachers/admin.py" /> <option value="$PROJECT_DIR$/schoolapps/teachers/models.py" /> <option value="$PROJECT_DIR$/schoolapps/aub/migrations/0006_auto_20171220_1229.py" /> <option value="$PROJECT_DIR$/schoolapps/todos/models.py" /> <option value="$PROJECT_DIR$/schoolapps/aub/migrations/0001_initial.py" /> <option value="$PROJECT_DIR$/schoolapps/static/style.css" /> - <option value="$PROJECT_DIR$/schoolapps/templates/partials/footer.html" /> <option value="$PROJECT_DIR$/schoolapps/templates/registration/logged_out.html" /> <option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/schoolapps/aub/apps.py" /> @@ -202,29 +185,32 @@ <option value="$PROJECT_DIR$/schoolapps/aub/templates/aub/details.html" /> <option value="$PROJECT_DIR$/schoolapps/aub/templates/aub/apply_for.html" /> <option value="$PROJECT_DIR$/schoolapps/aub/views.py" /> - <option value="$PROJECT_DIR$/schoolapps/dashboard/urls.py" /> <option value="$PROJECT_DIR$/schoolapps/templates/mail/email.txt" /> <option value="$PROJECT_DIR$/schoolapps/templates/mail/email.html" /> <option value="$PROJECT_DIR$/schoolapps/mailer.py" /> - <option value="$PROJECT_DIR$/schoolapps/dashboard/views.py" /> <option value="$PROJECT_DIR$/schoolapps/untisconnect/urls.py" /> <option value="$PROJECT_DIR$/schoolapps/untisconnect/templates/untisconnect/test.html" /> <option value="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/admin-teachers.html" /> - <option value="$PROJECT_DIR$/schoolapps/schoolapps/urls.py" /> <option value="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/admin/teachers.html" /> <option value="$PROJECT_DIR$/schoolapps/untisconnect/views.py" /> <option value="$PROJECT_DIR$/schoolapps/untisconnect/models.py" /> <option value="$PROJECT_DIR$/schoolapps/timetable/urls.py" /> - <option value="$PROJECT_DIR$/schoolapps/timetable/models.py" /> - <option value="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" /> <option value="$PROJECT_DIR$/schoolapps/timetable/parser/parse.py" /> <option value="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/admin/all.html" /> - <option value="$PROJECT_DIR$/schoolapps/untisconnect/api.py" /> <option value="$PROJECT_DIR$/schoolapps/static/common/style.css" /> <option value="$PROJECT_DIR$/schoolapps/timetable/views.py" /> - <option value="$PROJECT_DIR$/schoolapps/timetable/parse.py" /> <option value="$PROJECT_DIR$/schoolapps/templates/partials/header.html" /> + <option value="$PROJECT_DIR$/schoolapps/untisconnect/api.py" /> + <option value="$PROJECT_DIR$/schoolapps/dashboard/views.py" /> + <option value="$PROJECT_DIR$/schoolapps/schoolapps/urls.py" /> + <option value="$PROJECT_DIR$/schoolapps/dashboard/urls.py" /> + <option value="$PROJECT_DIR$/schoolapps/templates/partials/footer.html" /> + <option value="$PROJECT_DIR$/schoolapps/templates/partials/impress.html" /> + <option value="$PROJECT_DIR$/schoolapps/timetable/models.py" /> + <option value="$PROJECT_DIR$/test.py" /> <option value="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html" /> + <option value="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" /> + <option value="$PROJECT_DIR$/schoolapps/timetable/parse.py" /> </list> </option> </component> @@ -273,63 +259,13 @@ <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> <item name="school-apps" type="462c0819:PsiDirectoryNode" /> <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="static" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> - <item name="school-apps" type="462c0819:PsiDirectoryNode" /> - <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="static" type="462c0819:PsiDirectoryNode" /> - <item name="common" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> - <item name="school-apps" type="462c0819:PsiDirectoryNode" /> - <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="templates" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> - <item name="school-apps" type="462c0819:PsiDirectoryNode" /> - <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="templates" type="462c0819:PsiDirectoryNode" /> - <item name="partials" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> - <item name="school-apps" type="462c0819:PsiDirectoryNode" /> <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="timetable" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> <item name="school-apps" type="462c0819:PsiDirectoryNode" /> <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> <item name="timetable" type="462c0819:PsiDirectoryNode" /> - <item name="templates" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> - <item name="school-apps" type="462c0819:PsiDirectoryNode" /> - <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="timetable" type="462c0819:PsiDirectoryNode" /> - <item name="templates" type="462c0819:PsiDirectoryNode" /> - <item name="timetable" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> - <item name="school-apps" type="462c0819:PsiDirectoryNode" /> - <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="timetable" type="462c0819:PsiDirectoryNode" /> - <item name="templates" type="462c0819:PsiDirectoryNode" /> - <item name="timetable" type="462c0819:PsiDirectoryNode" /> - <item name="admin" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="school-apps" type="b2602c69:ProjectViewProjectNode" /> - <item name="school-apps" type="462c0819:PsiDirectoryNode" /> - <item name="schoolapps" type="462c0819:PsiDirectoryNode" /> - <item name="untisconnect" type="462c0819:PsiDirectoryNode" /> </path> </expand> <select /> @@ -339,9 +275,9 @@ </panes> </component> <component name="PropertiesComponent"> - <property name="last_opened_file_path" value="$PROJECT_DIR$/schoolapps/timetable/parse.py" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/schoolapps" /> <property name="WebServerToolWindowFactoryState" value="false" /> - <property name="settings.editor.selected.configurable" value="com.jetbrains.python.templateLanguages.PyTemplateLanguageModulesConfigurable" /> + <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> <property name="DefaultHtmlFileTemplate" value="HTML File" /> </component> <component name="RecentsManager"> @@ -395,11 +331,11 @@ <option name="INTERPRETER_OPTIONS" value="" /> <option name="PARENT_ENVS" value="true" /> <envs> - <env name="PYTHONUNBUFFERED" value="1" /> <env name="DJANGO_SETTINGS_MODULE" value="schoolapps.settings" /> + <env name="PYTHONUNBUFFERED" value="1" /> </envs> - <option name="SDK_HOME" value="/usr/bin/python3.5" /> - <option name="WORKING_DIRECTORY" value="" /> + <option name="SDK_HOME" value="$PROJECT_DIR$/env/bin/python" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/schoolapps" /> <option name="IS_MODULE_SDK" value="false" /> <option name="ADD_CONTENT_ROOTS" value="true" /> <option name="ADD_SOURCE_ROOTS" value="true" /> @@ -614,26 +550,32 @@ <option name="project" value="LOCAL" /> <updated>1521558184516</updated> </task> - <option name="localTasksCounter" value="26" /> + <task id="LOCAL-00026" summary="A working timetable [NOT FINISHED]"> + <created>1522001424996</created> + <option name="number" value="00026" /> + <option name="presentableId" value="LOCAL-00026" /> + <option name="project" value="LOCAL" /> + <updated>1522001424996</updated> + </task> + <option name="localTasksCounter" value="27" /> <servers /> </component> <component name="ToolWindowManager"> - <frame x="-3" y="33" width="1372" height="729" extended-state="6" /> - <editor active="true" /> + <frame x="-3" y="33" width="1286" height="761" extended-state="6" /> <layout> <window_info id="TODO" 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="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="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2085308" 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="true" weight="0.27083334" sideWeight="0.5" order="10" 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.3294509" sideWeight="0.5" order="8" 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.21963394" sideWeight="0.5" order="2" 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="9" side_tool="false" content_ui="tabs" /> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20757575" 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.23905997" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Docker" 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="11" side_tool="false" 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="SciView" 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="5" 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="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39933443" 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="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" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> @@ -654,7 +596,6 @@ <option name="myLimit" value="2678400000" /> </component> <component name="VcsManagerConfiguration"> - <MESSAGE value="Move header/footer files to project root | First step of login module | Clean up" /> <MESSAGE value="Running login module (without permissions) | Models for Teacher and Aub" /> <MESSAGE value="Running login module (without permissions) | Models for Teacher and Aub [ADD UNVERSIONED FILES]" /> <MESSAGE value="Delete teacher app" /> @@ -679,47 +620,18 @@ <MESSAGE value="Add basic email support" /> <MESSAGE value="Include UNTIS DB" /> <MESSAGE value="[UNTIS] All teachers can be got from [new] untisconnect api | Basic timetable app with all teachers in a list | Untisconnector app for models/api from [UNTIS]" /> - <option name="LAST_COMMIT_MESSAGE" value="[UNTIS] All teachers can be got from [new] untisconnect api | Basic timetable app with all teachers in a list | Untisconnector app for models/api from [UNTIS]" /> + <MESSAGE value="A working timetable [NOT FINISHED]" /> + <option name="LAST_COMMIT_MESSAGE" value="A working timetable [NOT FINISHED]" /> <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" /> <option name="REARRANGE_BEFORE_PROJECT_COMMIT" value="true" /> </component> <component name="XDebuggerManager"> <breakpoint-manager> - <breakpoints> - <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> - <url>file://$PROJECT_DIR$/schoolapps/untisconnect/models.py</url> - <line>1086</line> - <option name="timeStamp" value="1" /> - </line-breakpoint> - </breakpoints> - <option name="time" value="3" /> + <option name="time" value="4" /> </breakpoint-manager> <watches-manager /> </component> <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/schoolapps/todos/models.py" /> - <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/apps.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="85"> - <caret line="5" column="17" lean-forward="true" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/README.md"> - <provider 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" /> - </state> - </provider> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="SPLIT"> - <first_editor relative-caret-position="0"> - <caret line="0" column="13" lean-forward="false" selection-start-line="0" selection-start-column="13" selection-end-line="0" selection-end-column="13" /> - </first_editor> - <second_editor /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/models.py"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="130"> @@ -810,13 +722,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/aub/models.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="595"> - <caret line="37" column="9" lean-forward="false" selection-start-line="37" selection-start-column="9" selection-end-line="37" selection-end-column="9" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/schoolapps/aub/forms.py"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="255"> @@ -866,162 +771,197 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/views.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/templates/untisconnect/test.html"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="68"> + <caret line="4" column="14" lean-forward="false" selection-start-line="4" selection-start-column="14" selection-end-line="4" selection-end-column="14" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/urls.py"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="51"> - <caret line="8" column="25" lean-forward="false" selection-start-line="8" selection-start-column="25" selection-end-line="8" selection-end-column="25" /> + <caret line="4" column="50" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="6" selection-end-column="0" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/templates/dashboard/index.html"> + <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/views.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> + <state relative-caret-position="136"> + <caret line="13" column="28" lean-forward="false" selection-start-line="13" selection-start-column="28" selection-end-line="13" selection-end-column="28" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/urls.py"> + <entry file="file://$PROJECT_DIR$/timetable-old/apps.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="7" selection-end-column="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" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/templates/untisconnect/test.html"> + <entry file="file://$PROJECT_DIR$/schoolapps/aub/urls.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="4" column="14" lean-forward="false" selection-start-line="4" selection-start-column="14" selection-end-line="4" selection-end-column="14" /> + <state relative-caret-position="102"> + <caret line="7" column="61" lean-forward="true" selection-start-line="7" selection-start-column="61" selection-end-line="7" selection-end-column="61" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/urls.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/static/common/logo.png"> + <provider selected="true" editor-type-id="images"> + <state /> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/header.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="663"> - <caret line="43" column="31" lean-forward="false" selection-start-line="43" selection-start-column="31" selection-end-line="43" selection-end-column="31" /> + <state relative-caret-position="952"> + <caret line="56" column="30" lean-forward="false" selection-start-line="56" selection-start-column="30" selection-end-line="56" selection-end-column="30" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/urls.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/models.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="18462"> + <caret line="1086" column="0" lean-forward="false" selection-start-line="1086" selection-start-column="0" selection-end-line="1086" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/footer.html"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="51"> - <caret line="4" column="50" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="6" selection-end-column="0" /> + <caret line="3" column="19" lean-forward="false" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" /> + <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/views.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/urls.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="136"> - <caret line="13" column="28" lean-forward="false" selection-start-line="13" selection-start-column="28" selection-end-line="13" selection-end-column="28" /> + <state relative-caret-position="697"> + <caret line="45" column="64" lean-forward="false" selection-start-line="45" selection-start-column="64" selection-end-line="45" selection-end-column="64" /> + <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/timetable-old/apps.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/api.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" /> + <state relative-caret-position="3179"> + <caret line="187" column="37" lean-forward="false" selection-start-line="187" selection-start-column="37" selection-end-line="187" selection-end-column="37" /> + <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/aub/urls.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/static/common/style.css"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="102"> - <caret line="7" column="61" lean-forward="true" selection-start-line="7" selection-start-column="61" selection-end-line="7" selection-end-column="61" /> + <state relative-caret-position="1462"> + <caret line="86" column="35" lean-forward="false" selection-start-line="86" selection-start-column="35" selection-end-line="86" selection-end-column="35" /> + <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/settings.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/models.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="629"> - <caret line="37" column="34" lean-forward="false" selection-start-line="37" selection-start-column="34" selection-end-line="37" selection-end-column="34" /> + <state relative-caret-position="84"> + <caret line="5" column="28" lean-forward="true" selection-start-line="5" selection-start-column="28" selection-end-line="5" selection-end-column="28" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/urls.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/views.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="34"> - <caret line="3" column="15" lean-forward="false" selection-start-line="3" selection-start-column="15" selection-end-line="3" selection-end-column="15" /> - <folding> - <element signature="e#0#28#0" expanded="false" /> - </folding> + <state relative-caret-position="238"> + <caret line="19" column="20" lean-forward="false" selection-start-line="19" selection-start-column="20" selection-end-line="20" selection-end-column="56" /> + <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/models.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/urls.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="255"> - <caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> + <state relative-caret-position="119"> + <caret line="8" column="0" lean-forward="true" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/api.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/impress.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2839"> - <caret line="167" column="18" lean-forward="false" selection-start-line="167" selection-start-column="18" selection-end-line="167" selection-end-column="18" /> + <state relative-caret-position="321"> + <caret line="19" column="8" lean-forward="false" selection-start-line="19" selection-start-column="8" selection-end-line="19" selection-end-column="8" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/static/common/style.css"> + <entry file="file://$PROJECT_DIR$/schoolapps/dashboard/templates/dashboard/index.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="85"> - <caret line="86" column="35" lean-forward="false" selection-start-line="86" selection-start-column="35" selection-end-line="86" selection-end-column="35" /> + <state relative-caret-position="323"> + <caret line="46" column="32" lean-forward="true" selection-start-line="35" selection-start-column="19" selection-end-line="46" selection-end-column="32" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/untisconnect/models.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/aub/models.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="17"> - <caret line="822" column="12" lean-forward="false" selection-start-line="822" selection-start-column="6" selection-end-line="822" selection-end-column="12" /> + <state relative-caret-position="387"> + <caret line="56" column="27" lean-forward="true" selection-start-line="56" selection-start-column="27" selection-end-line="56" selection-end-column="27" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/admin/all.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="459"> - <caret line="27" column="48" lean-forward="false" selection-start-line="27" selection-start-column="48" selection-end-line="27" selection-end-column="48" /> + <state relative-caret-position="17"> + <caret line="27" column="48" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="62" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/test.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$/schoolapps/timetable/views.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="408"> - <caret line="47" column="16" lean-forward="true" selection-start-line="47" selection-start-column="16" selection-end-line="47" selection-end-column="16" /> + <state relative-caret-position="203"> + <caret line="63" column="51" lean-forward="false" selection-start-line="63" selection-start-column="51" selection-end-line="63" selection-end-column="51" /> <folding> - <element signature="e#0#57#0" expanded="true" /> + <element signature="n#style#0;n#p#0;n#div#0;n#div#0;n#div#1;n#div#1;n#main#0;n#!!top" expanded="true" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/parse.py"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/urls.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="680"> - <caret line="214" column="41" lean-forward="true" selection-start-line="214" selection-start-column="41" selection-end-line="214" selection-end-column="41" /> + <state relative-caret-position="68"> + <caret line="5" column="36" lean-forward="true" selection-start-line="5" selection-start-column="36" selection-end-line="5" selection-end-column="36" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/static/common/logo.png"> - <provider selected="true" editor-type-id="images"> - <state /> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/views.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="440"> + <caret line="40" column="19" lean-forward="true" selection-start-line="40" selection-start-column="19" selection-end-line="40" selection-end-column="19" /> + <folding> + <element signature="e#0#57#0" expanded="true" /> + </folding> + </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/header.html"> + <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/settings.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="110"> - <caret line="56" column="30" lean-forward="true" selection-start-line="56" selection-start-column="30" selection-end-line="56" selection-end-column="30" /> + <state relative-caret-position="287"> + <caret line="147" column="19" lean-forward="true" selection-start-line="147" selection-start-column="19" selection-end-line="147" selection-end-column="19" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/plan.html"> + <entry file="file://$PROJECT_DIR$/schoolapps/timetable/parse.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="221"> - <caret line="83" column="81" lean-forward="true" selection-start-line="83" selection-start-column="81" selection-end-line="83" selection-end-column="81" /> + <state relative-caret-position="134"> + <caret line="220" column="0" lean-forward="true" selection-start-line="220" selection-start-column="0" selection-end-line="220" selection-end-column="0" /> <folding /> </state> </provider> diff --git a/schoolapps/dashboard/urls.py b/schoolapps/dashboard/urls.py index 144b665c2..d6e35cbd7 100644 --- a/schoolapps/dashboard/urls.py +++ b/schoolapps/dashboard/urls.py @@ -3,5 +3,6 @@ from . import views urlpatterns = [ path('', views.index, name='dashboard'), - path('mail/', views.test_mail, name='dashboard_mail') + path('mail/', views.test_mail, name='dashboard_mail'), + path('impress/', views.impress, name='impress') ] diff --git a/schoolapps/dashboard/views.py b/schoolapps/dashboard/views.py index f1dbdb3cc..eae3fc5e8 100644 --- a/schoolapps/dashboard/views.py +++ b/schoolapps/dashboard/views.py @@ -33,3 +33,8 @@ def test_mail(request): """ Sends a test mail """ send_mail_with_template("Test", [request.user.email], 'mail/email.txt', 'mail/email.html', {'user': request.user}) return redirect(reverse('dashboard')) + + +@login_required +def impress(request): + return render(request, 'partials/impress.html') diff --git a/schoolapps/schoolapps/settings.py b/schoolapps/schoolapps/settings.py index f20b6b2c6..48a42b96f 100644 --- a/schoolapps/schoolapps/settings.py +++ b/schoolapps/schoolapps/settings.py @@ -143,3 +143,7 @@ EMAIL_PORT = 587 EMAIL_HOST_USER = 'infoplan@katharineum.de' EMAIL_HOST_PASSWORD = 'grummelPASS1531' EMAIL_USE_TLS = True + +# TIMETABLE +TIMETABLE_WIDTH = 5 +TIMETABLE_HEIGHT = 10 diff --git a/schoolapps/templates/partials/footer.html b/schoolapps/templates/partials/footer.html index 32b2e99ec..bb4dfa624 100644 --- a/schoolapps/templates/partials/footer.html +++ b/schoolapps/templates/partials/footer.html @@ -1,8 +1,8 @@ <footer class="page-footer primary-color"> <div class="footer-copyright"> <div class="container"> - © 2017 Computer-AG, Katharineum zu Lübeck - <a class="grey-text text-lighten-4 right" href="">Impressum</a> + © 2018 Computer-AG, Katharineum zu Lübeck + <a class="grey-text text-lighten-4 right" href="{% url 'impress' %}">Impressum</a> </div> </div> </footer> diff --git a/schoolapps/templates/partials/impress.html b/schoolapps/templates/partials/impress.html new file mode 100644 index 000000000..b19c37880 --- /dev/null +++ b/schoolapps/templates/partials/impress.html @@ -0,0 +1,34 @@ +{% include 'partials/header.html' %} + +<main> + <h3>Impressum</h3> + + <p> + <strong>Katharineum zu Lübeck</strong> <br> + Königsstraße 27-31 <br> + 23552 Lübeck + </p> + + <p> + <strong>Kommissarischer Schulleiter:</strong> Herr StD Poetzsch-Heffter <br> + <strong>E-Mail:</strong> schulleiter@katharineum.de + </p> + + <p> + <strong>Schulträger:</strong> Hansestadt Lübeck <br> + vertreten durch den Bürgermeister Bernd Saxe + </p> + + <p> + <strong>Entwicklung und Betreuung von <i>SchoolApps</i>:</strong> Herr Poetzsch-Heffter und die Computer-AG + </p> + + <h4>Disclaimer – rechtliche Hinweise</h4> + <strong><i><u>TODO</u></i></strong><br> + Haftungsausschluss (Aktualität, Richtigkeit, etc.)<br> + Datenschutz, Datenverarbeitung (Weitergabe an Dritte?, etc.)<br> + Sicherheit (Verschlüsselung, generell Sicherheitsprobleme möglich) + +</main> + +{% include 'partials/footer.html' %} diff --git a/schoolapps/timetable/migrations/0002_auto_20180410_1100.py b/schoolapps/timetable/migrations/0002_auto_20180410_1100.py new file mode 100644 index 000000000..7e4d06cb7 --- /dev/null +++ b/schoolapps/timetable/migrations/0002_auto_20180410_1100.py @@ -0,0 +1,25 @@ +# Generated by Django 2.0.3 on 2018-04-10 09:00 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ('timetable', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='class', + name='room', + ), + migrations.DeleteModel( + name='Teacher', + ), + migrations.DeleteModel( + name='Class', + ), + migrations.DeleteModel( + name='Room', + ), + ] diff --git a/schoolapps/timetable/models.py b/schoolapps/timetable/models.py index 09889fffd..41465b7e8 100644 --- a/schoolapps/timetable/models.py +++ b/schoolapps/timetable/models.py @@ -3,19 +3,19 @@ from django.db import models # Create your models here. -class Teacher(models.Model): - shortcode = models.CharField(max_length=10) - first_name = models.CharField(max_length=100) - name = models.CharField(max_length=100) - - -class Room(models.Model): - shortcode = models.CharField(max_length=10) - name = models.CharField(max_length=100) - - -class Class(models.Model): - name = models.CharField(max_length=10) - text1 = models.CharField(max_length=200) - text2 = models.CharField(max_length=200) - room = models.ForeignKey(Room, on_delete=models.CASCADE) +# class Teacher(models.Model): +# shortcode = models.CharField(max_length=10) +# first_name = models.CharField(max_length=100) +# name = models.CharField(max_length=100) +# +# +# class Room(models.Model): +# shortcode = models.CharField(max_length=10) +# name = models.CharField(max_length=100) +# +# +# class Class(models.Model): +# name = models.CharField(max_length=10) +# text1 = models.CharField(max_length=200) +# text2 = models.CharField(max_length=200) +# room = models.ForeignKey(Room, on_delete=models.CASCADE) diff --git a/schoolapps/timetable/parse.py b/schoolapps/timetable/parse.py index 8ffb08fc3..2bd372e3e 100644 --- a/schoolapps/timetable/parse.py +++ b/schoolapps/timetable/parse.py @@ -1,3 +1,6 @@ +from django.conf import settings + + class Lesson(object): def __init__(self): self.filled = False @@ -106,6 +109,24 @@ def parse(): raw_lesson_data = raw_lesson.lessonelement1.split(",") raw_time_data = raw_lesson.lesson_tt.split(",") + rtd2 = [] + for el in raw_time_data: + rtd2.append(el.split("~")) + + # print(rtd2) + + for el in rtd2: + day = int(el[1]) + hour = int(el[2]) + room_ids = untis_split(el[3], conv=int) + + rooms = [] + for room_id in room_ids: + r = drive["rooms"][room_id] + rooms.append(r) + + lesson_obj.add_time(day, hour, rooms) + # print(raw_lesson_data) # print(raw_time_data) @@ -149,24 +170,6 @@ def parse(): lesson_obj.add_element(teacher, subject, rooms, classes) - rtd2 = [] - for el in raw_time_data: - rtd2.append(el.split("~")) - - # print(rtd2) - - for el in rtd2: - day = int(el[1]) - hour = int(el[2]) - room_ids = untis_split(el[3], conv=int) - - rooms = [] - for room_id in room_ids: - r = drive["rooms"][room_id] - rooms.append(r) - - lesson_obj.add_time(day, hour, rooms) - # print("DAY – ", day, "; HOUR – ", hour, "; ROOMS – ", room_ids) lessons.append(lesson_obj) @@ -179,22 +182,53 @@ TYPE_ROOM = 1 TYPE_CLASS = 2 +class LessonContainer(object): + """ + Needed for Django template because template language does not support dictionaries + Saves the time object and the lesson elements + """ + + def __init__(self, ): + self.time = None + self.elements = [] + + def set_time(self, time): + self.time = time + + def append(self, element): + self.elements.append(element) + + +class LessonElementContainer(object): + """ + Needed for Django template because template language does not support dictionaries + Saves the lesson element object and the room (from time object) + """ + + def __init__(self, element, room): + self.element = element + self.room = room + + def get_plan(type, id): + """ Generates a plan for type (TYPE_TEACHE, TYPE_CLASS, TYPE_ROOM) and a id of the teacher (class, room)""" + + # Get parsed lessons lessons = parse() - plan = [[[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []], - [[], [], [], [], []]] + # Init plan array + plan = [] + + # Fill plan array with LessonContainers (show upside), WIDTH and HEIGHT are defined by Django settings + for hour_idx in range(settings.TIMETABLE_HEIGHT): + plan.append([]) + for day_idx in range(settings.TIMETABLE_WIDTH): + plan[hour_idx].append(LessonContainer()) + + # Fill plan with lessons for lesson in lessons: - for element in lesson.elements: + for i, element in enumerate(lesson.elements): + # Check if the lesson element is important for that plan (look by type and id) found = False if type == TYPE_CLASS: for lclass in element.classes: @@ -211,12 +245,34 @@ def get_plan(type, id): if lroom.id == id: found = True + # If the lesson element is important then add it to plan array if found: - for time in lesson.times: + for time in lesson.times: # Go for every time the lesson is thought # print(time.hour, " ", time.day) # print(element.subject.shortcode) - plan[time.hour - 1][time.day - 1].append(element) + + # Add the time object to the matching LessonContainer on the right position in the plan array + plan[time.hour - 1][time.day - 1].set_time(time) + + # Check if there is an room for this time and lesson + try: + room = time.rooms[i] + except IndexError: + room = None + + # Create a LessonElementContainer with room and lesson element + element_container = LessonElementContainer(element, room) + + # Add this container object to the LessonContainer object in the plan array + plan[time.hour - 1][time.day - 1].append(element_container) # print(plan) + # + # for hour in plan: + # for day in hour: + # print(day.elements) + # for c in day.elements: + # # print(c.element) + # pass return plan diff --git a/schoolapps/timetable/templates/timetable/plan.html b/schoolapps/timetable/templates/timetable/plan.html index 90ab77494..9bbaeb23f 100644 --- a/schoolapps/timetable/templates/timetable/plan.html +++ b/schoolapps/timetable/templates/timetable/plan.html @@ -61,7 +61,7 @@ <div class="card timetable-title-card"> <div class="card-content"> <span class="card-title"> - 0. + {{ forloop.counter0|add:"+1" }}. </span> </div> </div> @@ -71,24 +71,22 @@ <div class="col s2"> <div class="card lesson-card"> <div class="card-content"> - {% for element in col %} - <p> + {% for element_container in col.elements %} + <p style="background-color: {{ element_container.element.subject.hex_color }};"> {% if type == 0 or type == 1 %} - {% for class in element.classes %} + {% for class in element_container.elements.classes %} {{ class.name }} {% endfor %} {% endif %} {% if type == 2 or type == 1 %} <span data-position="bottom" class="tooltipped" - data-tooltip="{{ element.teacher }}">{{ element.teacher.shortcode }}</span> + data-tooltip="{{ element_container.element.teacher }}">{{ element_container.element.teacher.shortcode }}</span> {% endif %} - <strong>{{ element.subject.shortcode }}</strong> + <strong>{{ element_container.element.subject.shortcode }}</strong> {% if type == 0 or type == 2 %} - {% for room in element.rooms %} - <span class="tooltipped" data-position="bottom" - data-tooltip="{{ room.name }}">{{ room.shortcode }}</span> - {% endfor %} + <span class="tooltipped" data-position="bottom" + data-tooltip="{{ element_container.room.name }}">{{ element_container.room.shortcode }}</span> {% endif %} </p> diff --git a/schoolapps/untisconnect/api.py b/schoolapps/untisconnect/api.py index e51d62776..5c89c7ca2 100644 --- a/schoolapps/untisconnect/api.py +++ b/schoolapps/untisconnect/api.py @@ -177,12 +177,16 @@ class Subject(object): self.id = None self.shortcode = None self.name = None + self.color = None + self.hex_color = None def create(self, db_obj): self.filled = True self.id = db_obj.subject_id self.shortcode = db_obj.name self.name = db_obj.longname + self.color = db_obj.backcolor + self.hex_color = "#" + str(hex(db_obj.backcolor)).replace("0x", "") def get_all_subjects(): -- GitLab