modal + link caching

This commit is contained in:
vabene1111 2018-02-05 23:18:57 +01:00
parent eea37b9af5
commit ede7ddac0b
10 changed files with 349 additions and 200 deletions

View File

@ -2,13 +2,11 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="f314243c-cf5d-48a7-b986-5e05ee924c9f" name="Default" comment=""> <list default="true" id="f314243c-cf5d-48a7-b986-5e05ee924c9f" name="Default" comment="">
<change beforePath="" afterPath="$PROJECT_DIR$/cookbook/templates/storage/import.html" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/cookbook/forms.py" afterPath="$PROJECT_DIR$/cookbook/forms.py" /> <change beforePath="$PROJECT_DIR$/cookbook/forms.py" afterPath="$PROJECT_DIR$/cookbook/forms.py" />
<change beforePath="$PROJECT_DIR$/cookbook/helper/dropbox.py" afterPath="$PROJECT_DIR$/cookbook/helper/dropbox.py" /> <change beforePath="$PROJECT_DIR$/cookbook/helper/dropbox.py" afterPath="$PROJECT_DIR$/cookbook/helper/dropbox.py" />
<change beforePath="$PROJECT_DIR$/cookbook/tables.py" afterPath="$PROJECT_DIR$/cookbook/tables.py" /> <change beforePath="$PROJECT_DIR$/cookbook/models.py" afterPath="$PROJECT_DIR$/cookbook/models.py" />
<change beforePath="$PROJECT_DIR$/cookbook/templates/index.html" afterPath="$PROJECT_DIR$/cookbook/templates/index.html" /> <change beforePath="$PROJECT_DIR$/cookbook/templates/index.html" afterPath="$PROJECT_DIR$/cookbook/templates/index.html" />
<change beforePath="$PROJECT_DIR$/cookbook/urls.py" afterPath="$PROJECT_DIR$/cookbook/urls.py" /> <change beforePath="$PROJECT_DIR$/cookbook/templates/new_recipe.html" afterPath="$PROJECT_DIR$/cookbook/templates/new_recipe.html" />
<change beforePath="$PROJECT_DIR$/cookbook/views/api.py" afterPath="$PROJECT_DIR$/cookbook/views/api.py" /> <change beforePath="$PROJECT_DIR$/cookbook/views/api.py" afterPath="$PROJECT_DIR$/cookbook/views/api.py" />
<change beforePath="$PROJECT_DIR$/cookbook/views/views.py" afterPath="$PROJECT_DIR$/cookbook/views/views.py" /> <change beforePath="$PROJECT_DIR$/cookbook/views/views.py" afterPath="$PROJECT_DIR$/cookbook/views/views.py" />
<change beforePath="$PROJECT_DIR$/recipes/settings.py" afterPath="$PROJECT_DIR$/recipes/settings.py" /> <change beforePath="$PROJECT_DIR$/recipes/settings.py" afterPath="$PROJECT_DIR$/recipes/settings.py" />
@ -56,50 +54,18 @@
<file leaf-file-name="views.py" pinned="false" current-in-tab="false"> <file leaf-file-name="views.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/views/views.py"> <entry file="file://$PROJECT_DIR$/cookbook/views/views.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="525"> <state relative-caret-position="825">
<caret line="27" column="36" lean-forward="false" selection-start-line="27" selection-start-column="36" selection-end-line="27" selection-end-column="36" /> <caret line="40" column="44" lean-forward="false" selection-start-line="40" selection-start-column="44" selection-end-line="40" selection-end-column="44" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="index.html" pinned="false" current-in-tab="false"> <file leaf-file-name="api.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/cookbook/templates/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="325">
<caret line="13" column="35" lean-forward="true" selection-start-line="13" selection-start-column="35" selection-end-line="13" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="settings.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/recipes/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="975">
<caret line="39" column="21" lean-forward="true" selection-start-line="39" selection-start-column="21" selection-end-line="39" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="tables.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/tables.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="8" column="65" lean-forward="false" selection-start-line="8" selection-start-column="55" selection-end-line="8" selection-end-column="65" />
<folding>
<element signature="e#0#31#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="api.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/views/api.py"> <entry file="file://$PROJECT_DIR$/cookbook/views/api.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275"> <state relative-caret-position="325">
<caret line="11" column="0" lean-forward="false" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" /> <caret line="13" column="36" lean-forward="true" selection-start-line="13" selection-start-column="36" selection-end-line="13" selection-end-column="36" />
<folding> <folding>
<element signature="e#0#36#0" expanded="true" /> <element signature="e#0#36#0" expanded="true" />
</folding> </folding>
@ -107,31 +73,46 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="index.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/templates/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="801">
<caret line="59" column="20" lean-forward="false" selection-start-line="59" selection-start-column="20" selection-end-line="59" selection-end-column="20" />
<folding>
<element signature="e#1704#1711#1#HTML" expanded="true" />
<element signature="e#1812#1838#0#HTML" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="new_category.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/templates/new_category.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="15" column="8" lean-forward="false" selection-start-line="15" selection-start-column="8" selection-end-line="15" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="dropbox.py" pinned="false" current-in-tab="false"> <file leaf-file-name="dropbox.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/helper/dropbox.py"> <entry file="file://$PROJECT_DIR$/cookbook/helper/dropbox.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="825">
<caret line="0" column="8" lean-forward="false" selection-start-line="0" selection-start-column="8" selection-end-line="0" selection-end-column="8" /> <caret line="33" column="0" lean-forward="false" selection-start-line="33" selection-start-column="0" selection-end-line="33" selection-end-column="0" />
<folding /> <folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="import.html" pinned="false" current-in-tab="false"> <file leaf-file-name="models.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/templates/storage/import.html"> <entry file="file://$PROJECT_DIR$/cookbook/models.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450"> <state relative-caret-position="1025">
<caret line="18" column="14" lean-forward="false" selection-start-line="18" selection-start-column="14" selection-end-line="18" selection-end-column="14" /> <caret line="41" column="0" lean-forward="false" selection-start-line="41" selection-start-column="0" selection-end-line="41" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="forms.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="831">
<caret line="69" column="30" lean-forward="false" selection-start-line="69" selection-start-column="30" selection-end-line="69" selection-end-column="30" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -140,8 +121,8 @@
<file leaf-file-name="urls.py" pinned="false" current-in-tab="false"> <file leaf-file-name="urls.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cookbook/urls.py"> <entry file="file://$PROJECT_DIR$/cookbook/urls.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="400"> <state relative-caret-position="450">
<caret line="16" column="42" lean-forward="false" selection-start-line="16" selection-start-column="33" selection-end-line="16" selection-end-column="42" /> <caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding> <folding>
<element signature="e#0#28#0" expanded="true" /> <element signature="e#0#28#0" expanded="true" />
</folding> </folding>
@ -178,7 +159,6 @@
<option value="$PROJECT_DIR$/cookbook/admin.py" /> <option value="$PROJECT_DIR$/cookbook/admin.py" />
<option value="$PROJECT_DIR$/cookbook/templates/registration.html" /> <option value="$PROJECT_DIR$/cookbook/templates/registration.html" />
<option value="$PROJECT_DIR$/cookbook/templates/registration/new_keyword.html" /> <option value="$PROJECT_DIR$/cookbook/templates/registration/new_keyword.html" />
<option value="$PROJECT_DIR$/cookbook/templates/new_recipe.html" />
<option value="$PROJECT_DIR$/cookbook/templates/tables/table_template.html" /> <option value="$PROJECT_DIR$/cookbook/templates/tables/table_template.html" />
<option value="$PROJECT_DIR$/cookbook/locale/de/LC_MESSAGES/django.po" /> <option value="$PROJECT_DIR$/cookbook/locale/de/LC_MESSAGES/django.po" />
<option value="$PROJECT_DIR$/Recipies/urls.py" /> <option value="$PROJECT_DIR$/Recipies/urls.py" />
@ -194,20 +174,22 @@
<option value="$PROJECT_DIR$/requirements.txt" /> <option value="$PROJECT_DIR$/requirements.txt" />
<option value="$PROJECT_DIR$/Recipies/settings.py" /> <option value="$PROJECT_DIR$/Recipies/settings.py" />
<option value="$PROJECT_DIR$/cookbook/api.py" /> <option value="$PROJECT_DIR$/cookbook/api.py" />
<option value="$PROJECT_DIR$/cookbook/models.py" />
<option value="$PROJECT_DIR$/cookbook/dropbox.py" /> <option value="$PROJECT_DIR$/cookbook/dropbox.py" />
<option value="$PROJECT_DIR$/cookbook/views/__init__.py" /> <option value="$PROJECT_DIR$/cookbook/views/__init__.py" />
<option value="$PROJECT_DIR$/recipes/urls.py" /> <option value="$PROJECT_DIR$/recipes/urls.py" />
<option value="$PROJECT_DIR$/recipes/wsgi.py" /> <option value="$PROJECT_DIR$/recipes/wsgi.py" />
<option value="$PROJECT_DIR$/cookbook/templates/storage/import.html" /> <option value="$PROJECT_DIR$/cookbook/templates/storage/import.html" />
<option value="$PROJECT_DIR$/cookbook/views/views.py" />
<option value="$PROJECT_DIR$/cookbook/urls.py" /> <option value="$PROJECT_DIR$/cookbook/urls.py" />
<option value="$PROJECT_DIR$/cookbook/forms.py" />
<option value="$PROJECT_DIR$/cookbook/views/api.py" />
<option value="$PROJECT_DIR$/cookbook/helper/dropbox.py" />
<option value="$PROJECT_DIR$/cookbook/tables.py" /> <option value="$PROJECT_DIR$/cookbook/tables.py" />
<option value="$PROJECT_DIR$/cookbook/templates/index.html" />
<option value="$PROJECT_DIR$/recipes/settings.py" /> <option value="$PROJECT_DIR$/recipes/settings.py" />
<option value="$PROJECT_DIR$/cookbook/views/views.py" />
<option value="$APPLICATION_CONFIG_DIR$/consoles/db/b165bb40-b588-4413-81a1-07015656a7cb/console.sql" />
<option value="$PROJECT_DIR$/cookbook/helper/dropbox.py" />
<option value="$PROJECT_DIR$/cookbook/templates/new_recipe.html" />
<option value="$PROJECT_DIR$/cookbook/forms.py" />
<option value="$PROJECT_DIR$/cookbook/templates/index.html" />
<option value="$PROJECT_DIR$/cookbook/models.py" />
<option value="$PROJECT_DIR$/cookbook/views/api.py" />
</list> </list>
</option> </option>
</component> </component>
@ -323,7 +305,7 @@
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="DefaultHtmlFileTemplate" value="HTML File" /> <property name="DefaultHtmlFileTemplate" value="HTML File" />
<property name="com.intellij.database.dataSource.DataSourceTemplate" value="Sqlite (Xerial)" /> <property name="com.intellij.database.dataSource.DataSourceTemplate" value="Sqlite (Xerial)" />
<property name="SearchEverywhereHistoryKey" value="base&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/templates/base.html&#10;tables&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/tables.py&#10;api&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/views/api.py&#10;urls&#9;FILE&#9;file://F:/Developement/Django/Recipies/recipes/urls.py&#10;forms&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/forms.py&#10;models&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/models.py&#10;new_&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/cookbook/templates/new_keyword.html&#10;tabl&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/cookbook/tables.py&#10;tablees&#9;null&#9;null&#10;view&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/cookbook/views.py&#10;sett&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/Recipies/settings.py&#10;setting&#9;FILE&#9;file://F:/Developement/Django/Recipies/Recipies/settings.py&#10;model&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/models.py&#10;settings&#9;FILE&#9;file://F:/Developement/Django/Recipies/Recipies/settings.py&#10;mode&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/models.py&#10;settin&#9;FILE&#9;file://F:/Developement/Django/Recipies/Recipies/settings.py" /> <property name="SearchEverywhereHistoryKey" value="api&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/views/api.py&#10;model&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/models.py&#10;new_rec&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/templates/new_recipe.html&#10;forms&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/forms.py&#10;inde&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/templates/index.html&#10;setting&#9;FILE&#9;file://F:/Developement/Django/Recipies/recipes/settings.py&#10;base&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/templates/base.html&#10;tables&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/tables.py&#10;urls&#9;FILE&#9;file://F:/Developement/Django/Recipies/recipes/urls.py&#10;models&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/models.py&#10;new_&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/cookbook/templates/new_keyword.html&#10;tabl&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/cookbook/tables.py&#10;tablees&#9;null&#9;null&#10;view&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/cookbook/views.py&#10;sett&#9;FILE&#9;file://C:/Users/bene/Documents/Developement/Django/recipies/Recipies/settings.py&#10;settings&#9;FILE&#9;file://F:/Developement/Django/Recipies/Recipies/settings.py&#10;mode&#9;FILE&#9;file://F:/Developement/Django/Recipies/cookbook/models.py&#10;settin&#9;FILE&#9;file://F:/Developement/Django/Recipies/Recipies/settings.py" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/venv" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/venv" />
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
@ -361,7 +343,7 @@
<module name="Recipies" /> <module name="Recipies" />
<option name="launchJavascriptDebuger" value="false" /> <option name="launchJavascriptDebuger" value="false" />
<option name="port" value="8000" /> <option name="port" value="8000" />
<option name="host" value="" /> <option name="host" value="192.168.178.27" />
<option name="additionalOptions" value="" /> <option name="additionalOptions" value="" />
<option name="browserUrl" value="" /> <option name="browserUrl" value="" />
<option name="runTestServer" value="false" /> <option name="runTestServer" value="false" />
@ -392,10 +374,11 @@
<layout> <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="12" side_tool="false" content_ui="tabs" /> <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="12" 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="0" side_tool="true" 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="0" side_tool="true" 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.33" 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.32968178" sideWeight="0.5" order="2" 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.3286385" sideWeight="0.5" order="3" 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.3286385" 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="false" show_stripe_button="true" weight="0.25821596" 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="false" show_stripe_button="true" weight="0.25821596" sideWeight="0.5" order="8" 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.3286385" sideWeight="0.5" order="4" 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.3286385" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Database Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32968178" sideWeight="0.5" order="-1" 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.17931035" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.17931035" sideWeight="0.5" order="1" 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="5" side_tool="false" content_ui="tabs" /> <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="5" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23925729" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23925729" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
@ -428,28 +411,49 @@
</properties> </properties>
</breakpoint> </breakpoint>
</default-breakpoints> </default-breakpoints>
<option name="time" value="17" /> <option name="time" value="22" />
</breakpoint-manager> </breakpoint-manager>
<watches-manager /> <watches-manager>
<configuration name="Python.DjangoServer">
<watch expression="os.path.splitext(recipe['name'])[0]" language="Python" />
</configuration>
</watches-manager>
</component>
<component name="debuggerHistoryManager">
<expressions id="watch">
<expression>
<expression-string>os.path.splitext(recipe['name'])[0]</expression-string>
<language-id>Python</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
<expression-string>splitext(recipe['name'])[0]</expression-string>
<language-id>Python</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
<expression-string>recipe['name']</expression-string>
<language-id>Python</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
<expression-string>recipes[1]['name']</expression-string>
<language-id>Python</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
<expression-string>recipes[0]['name']</expression-string>
<language-id>Python</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
<expression-string>r.json()</expression-string>
<language-id>Python</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
</expressions>
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_keyword" />
<entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_recipe_keywords" />
<entry file="file://$PROJECT_DIR$/cookbook/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="850">
<caret line="34" column="22" lean-forward="false" selection-start-line="34" selection-start-column="22" selection-end-line="34" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/tables/table_template.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1075">
<caret line="67" column="72" lean-forward="false" selection-start-line="67" selection-start-column="72" selection-end-line="67" selection-end-column="72" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/tables.py"> <entry file="file://$PROJECT_DIR$/cookbook/tables.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225"> <state relative-caret-position="225">
@ -499,13 +503,6 @@
<entry file="file://$PROJECT_DIR$/cookbook/templates/registration.html" /> <entry file="file://$PROJECT_DIR$/cookbook/templates/registration.html" />
<entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.django_migrations" /> <entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.django_migrations" />
<entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_category" /> <entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_category" />
<entry file="file://$PROJECT_DIR$/cookbook/templates/new_recipe.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200">
<caret line="8" column="14" lean-forward="false" selection-start-line="8" selection-start-column="14" selection-end-line="8" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_recipe" /> <entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_recipe" />
<entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_keyword" /> <entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_keyword" />
<entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_recipe_keywords" /> <entry file="das://table:/76de5693/85add68a-b15d-441c-9865-ed9a59ea29b9/main.cookbook_recipe_keywords" />
@ -589,14 +586,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cookbook/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="750">
<caret line="30" column="26" lean-forward="false" selection-start-line="30" selection-start-column="26" selection-end-line="30" selection-end-column="26" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/recipes/wsgi.py"> <entry file="file://$PROJECT_DIR$/recipes/wsgi.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="25"> <state relative-caret-position="25">
@ -613,22 +602,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/recipes/secret_settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="625">
<caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/new_category.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="425">
<caret line="17" column="0" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="21" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/tables/table_template.html"> <entry file="file://$PROJECT_DIR$/cookbook/templates/tables/table_template.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1750"> <state relative-caret-position="1750">
@ -645,71 +618,12 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cookbook/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="831">
<caret line="69" column="30" lean-forward="false" selection-start-line="69" selection-start-column="30" selection-end-line="69" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/storage/import.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="18" column="14" lean-forward="false" selection-start-line="18" selection-start-column="14" selection-end-line="18" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="das://table:/76de5693/b165bb40-b588-4413-81a1-07015656a7cb/main.cookbook_recipe">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/helper/dropbox.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="8" lean-forward="false" selection-start-line="0" selection-start-column="8" selection-end-line="0" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/views/api.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275">
<caret line="11" column="0" lean-forward="false" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
<folding>
<element signature="e#0#36#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/views/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="525">
<caret line="27" column="36" lean-forward="false" selection-start-line="27" selection-start-column="36" selection-end-line="27" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/tables.py"> <entry file="file://$PROJECT_DIR$/cookbook/tables.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200"> <state relative-caret-position="200">
<caret line="8" column="65" lean-forward="false" selection-start-line="8" selection-start-column="55" selection-end-line="8" selection-end-column="65" /> <caret line="8" column="65" lean-forward="false" selection-start-line="8" selection-start-column="55" selection-end-line="8" selection-end-column="65" />
<folding> <folding>
<element signature="e#0#31#0" expanded="true" /> <element signature="e#0#31#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="400">
<caret line="16" column="42" lean-forward="false" selection-start-line="16" selection-start-column="33" selection-end-line="16" selection-end-column="42" />
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -722,21 +636,146 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/index.html"> <entry file="file://$PROJECT_DIR$/cookbook/templates/storage/import.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="325"> <state relative-caret-position="450">
<caret line="13" column="35" lean-forward="true" selection-start-line="13" selection-start-column="35" selection-end-line="13" selection-end-column="35" /> <caret line="18" column="14" lean-forward="false" selection-start-line="18" selection-start-column="14" selection-end-line="18" selection-end-column="14" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/recipes/settings.py"> <entry file="file://$PROJECT_DIR$/recipes/settings.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="975"> <state relative-caret-position="500">
<caret line="39" column="21" lean-forward="true" selection-start-line="39" selection-start-column="21" selection-end-line="39" selection-end-column="21" /> <caret line="20" column="36" lean-forward="false" selection-start-line="20" selection-start-column="36" selection-end-line="20" selection-end-column="36" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/recipes/secret_settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="625">
<caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/b165bb40-b588-4413-81a1-07015656a7cb/console.sql">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="27" lean-forward="false" selection-start-line="0" selection-start-column="27" selection-end-line="0" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="das://table:/76de5693/b165bb40-b588-4413-81a1-07015656a7cb/main.cookbook_keyword">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="das://table:/76de5693/b165bb40-b588-4413-81a1-07015656a7cb/main.cookbook_category">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="das://table:/76de5693/b165bb40-b588-4413-81a1-07015656a7cb/main.cookbook_recipe_keywords">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/new_category.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="15" column="8" lean-forward="false" selection-start-line="15" selection-start-column="8" selection-end-line="15" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/new_recipe.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="5" column="14" lean-forward="true" selection-start-line="5" selection-start-column="14" selection-end-line="5" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="625">
<caret line="29" column="81" lean-forward="false" selection-start-line="29" selection-start-column="81" selection-end-line="29" selection-end-column="81" />
<folding />
</state>
</provider>
</entry>
<entry file="das://table:/76de5693/b165bb40-b588-4413-81a1-07015656a7cb/main.cookbook_recipe">
<provider selected="true" editor-type-id="com.intellij.database.editor.DatabaseTableFileEditorProvider">
<state>
<filtering enabled="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/views/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="825">
<caret line="40" column="44" lean-forward="false" selection-start-line="40" selection-start-column="44" selection-end-line="40" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/helper/dropbox.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="825">
<caret line="33" column="0" lean-forward="false" selection-start-line="33" selection-start-column="0" selection-end-line="33" selection-end-column="0" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/templates/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="801">
<caret line="59" column="20" lean-forward="false" selection-start-line="59" selection-start-column="20" selection-end-line="59" selection-end-column="20" />
<folding>
<element signature="e#1704#1711#1#HTML" expanded="true" />
<element signature="e#1812#1838#0#HTML" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1025">
<caret line="41" column="0" lean-forward="false" selection-start-line="41" selection-start-column="0" selection-end-line="41" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cookbook/views/api.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="325">
<caret line="13" column="36" lean-forward="true" selection-start-line="13" selection-start-column="36" selection-end-line="13" selection-end-column="36" />
<folding>
<element signature="e#0#36#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component> </component>
</project> </project>

View File

@ -25,6 +25,9 @@ class RecipeForm(forms.ModelForm):
self.fields['name'].widget.attrs.update({'class': 'form-control'}) self.fields['name'].widget.attrs.update({'class': 'form-control'})
self.fields['category'].widget.attrs.update({'class': 'form-control'}) self.fields['category'].widget.attrs.update({'class': 'form-control'})
self.fields['keywords'].widget.attrs.update({'class': 'form-control'}) self.fields['keywords'].widget.attrs.update({'class': 'form-control'})
self.helper = FormHelper()
self.helper.form_method = 'post'
self.helper.add_input(Submit('save', _('Save'), css_class='btn-primary'))
class CategoryForm(forms.ModelForm): class CategoryForm(forms.ModelForm):

View File

@ -1,10 +1,35 @@
import os
import requests import requests
import json import json
from django.conf import settings from django.conf import settings
from cookbook.models import Recipe, Category
def import_all(base_path): def import_all(base_path):
print("test") url = "https://api.dropboxapi.com/2/files/list_folder"
headers = {
"Authorization": "Bearer " + settings.DROPBOX_API_KEY,
"Content-Type": "application/json"
}
data = {
"path": base_path
}
r = requests.post(url, headers=headers, data=json.dumps(data))
try:
recipes = r.json()
except ValueError:
return r
for recipe in recipes['entries']:
name = os.path.splitext(recipe['name'])[0]
insert = Recipe(name=name, path=recipe['path_lower'], category=Category.objects.get(id=0))
insert.save()
return True
def get_share_link(recipe_path): def get_share_link(recipe_path):

View File

@ -0,0 +1,28 @@
# Generated by Django 2.0.2 on 2018-02-05 22:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cookbook', '0003_recipe_path'),
]
operations = [
migrations.AddField(
model_name='recipe',
name='link',
field=models.CharField(default='', max_length=512),
),
migrations.AlterField(
model_name='recipe',
name='keywords',
field=models.ManyToManyField(blank=True, to='cookbook.Keyword'),
),
migrations.AlterField(
model_name='recipe',
name='path',
field=models.CharField(default='', max_length=512),
),
]

View File

@ -26,8 +26,9 @@ class Category(models.Model):
class Recipe(models.Model): class Recipe(models.Model):
name = models.CharField(max_length=64) name = models.CharField(max_length=64)
path = models.CharField(max_length=512, default="") path = models.CharField(max_length=512, default="")
link = models.CharField(max_length=512, default="")
category = models.ForeignKey(Category, on_delete=models.CASCADE) category = models.ForeignKey(Category, on_delete=models.CASCADE)
keywords = models.ManyToManyField(Keyword) keywords = models.ManyToManyField(Keyword, blank=True)
created_by = models.IntegerField(default=0) created_by = models.IntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True) created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True) updated_at = models.DateTimeField(auto_now=True)

View File

@ -29,22 +29,74 @@
</div> </div>
{% endif %} {% endif %}
<style>
.loader {
border: 16px solid #f3f3f3; /* Light grey */
border-top: 16px solid #3498db; /* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
<div class="modal" tabindex="-1" role="dialog" id="modal_recipe">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{% trans 'Recipe' %}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" style="text-align: center">
<div class="loader" id="div_loader"></div>
<a href="" id="a_recipe_open" target="_blank" onclick="afterClick()"></a>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">{% trans 'Close' %}</button>
</div>
</div>
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">
function openRecipe(id) { function openRecipe(id) {
var link = $('#a_recipe_open');
link.hide();
url = "{% url 'get_file_link' recipe_id=12345 %}".replace(/12345/, id); url = "{% url 'get_file_link' recipe_id=12345 %}".replace(/12345/, id);
link.text("{% trans 'Open Recipe' %}");
$('#modal_recipe').modal('show');
var xhttp = new XMLHttpRequest(); var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () { xhttp.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) { if (this.readyState === 4 && this.status === 200) {
console.log(this.response); link.attr("href", this.responseText);
window.open(this.responseText, '_blank'); link.show();
$('#div_loader').hide();
} }
}; };
xhttp.open("GET", url, true); xhttp.open("GET", url, true);
xhttp.send(); xhttp.send();
} }
function afterClick(){
$('#modal_recipe').modal('hide');
return true;
}
</script> </script>
{% endblock %} {% endblock %}

View File

@ -1,9 +1,6 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load crispy_forms_tags %}
{% block content %} {% block content %}
<form method="POST" class="post-form">{% csrf_token %} {% crispy form %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
{% endblock %} {% endblock %}

View File

@ -1,5 +1,4 @@
from django.http import HttpResponse from django.http import HttpResponse
import json
from cookbook.models import Recipe from cookbook.models import Recipe
from cookbook.helper import dropbox from cookbook.helper import dropbox
@ -7,5 +6,9 @@ from cookbook.helper import dropbox
def get_file_link(request, recipe_id): def get_file_link(request, recipe_id):
recipe = Recipe.objects.get(id=recipe_id) recipe = Recipe.objects.get(id=recipe_id)
if recipe.link == "":
response = dropbox.get_share_link(recipe.path) response = dropbox.get_share_link(recipe.path)
return HttpResponse(response['url']) recipe.link = response['url']
recipe.save()
return HttpResponse(recipe.link)

View File

@ -4,6 +4,7 @@ from django_tables2 import RequestConfig
from cookbook.filters import RecipeFilter from cookbook.filters import RecipeFilter
from cookbook.forms import * from cookbook.forms import *
from cookbook.helper import dropbox
from cookbook.tables import RecipeTable, CategoryTable, KeywordTable from cookbook.tables import RecipeTable, CategoryTable, KeywordTable
@ -12,7 +13,7 @@ def index(request):
f = RecipeFilter(request.GET, queryset=Recipe.objects.all()) f = RecipeFilter(request.GET, queryset=Recipe.objects.all())
table = RecipeTable(f.qs) table = RecipeTable(f.qs)
RequestConfig(request, paginate={'per_page': 3}).configure(table) RequestConfig(request, paginate={'per_page': 25}).configure(table)
return render(request, 'index.html', {'recipes': table, 'filter': f}) return render(request, 'index.html', {'recipes': table, 'filter': f})
else: else:
@ -24,7 +25,7 @@ def import_recipes(request):
if request.method == "POST": if request.method == "POST":
form = ImportForm(request.POST) form = ImportForm(request.POST)
if form.is_valid(): if form.is_valid():
dropbox.import_all(form.cleaned_data['path'])
return redirect('index') return redirect('index')
else: else:
form = ImportForm() form = ImportForm()

View File

@ -18,7 +18,7 @@ from recipes.secret_settings import *
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True DEBUG = True
ALLOWED_HOSTS = ['192.168.178.27'] ALLOWED_HOSTS = ['192.168.178.27', '127.0.0.1']
LOGIN_REDIRECT_URL = "index" LOGIN_REDIRECT_URL = "index"
LOGOUT_REDIRECT_URL = "index" LOGOUT_REDIRECT_URL = "index"