diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 6c0b8635858dc7ad44b93df54b762707ce49eefc..288b36b1efb71c411d5c27a1ea6c08e41a7fed46 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,5 +2,6 @@ <project version="4"> <component name="VcsDirectoryMappings"> <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> </component> </project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c820520f5e37cec3ae2bcd2c293038672968a634..bfe55b2c2dc075aa94d41cbdc489cb3d3a406645 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,25 +2,10 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="8e0a1b72-f07e-4c5d-8e03-75ac89ac3031" name="Default Changelist" comment=""> - <change afterPath="$PROJECT_DIR$/.idea/PMPBackend.iml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/__init__.py" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/settings.py" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/homePage.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/lookUpBook.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/newBook.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/signIn.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/signUp.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/updateBook.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/userProfile.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/templates/userUpdate.html" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/urls.py" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/views.py" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/PMPBackend/wsgi.py" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/db.sqlite3" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/manage.py" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/PMPBackend/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/PMPBackend/settings.py" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/PMPBackend/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/PMPBackend/urls.py" afterDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -35,43 +20,49 @@ <session id="-1540407213"> <usages-collector id="statistics.lifecycle.project"> <counts> + <entry key="project.closed" value="4" /> + <entry key="project.open.time.1" value="1" /> <entry key="project.open.time.16" value="1" /> - <entry key="project.opened" value="1" /> + <entry key="project.open.time.6" value="1" /> + <entry key="project.open.time.7" value="1" /> + <entry key="project.opened" value="4" /> </counts> </usages-collector> <usages-collector id="statistics.file.extensions.edit"> <counts> <entry key="html" value="181" /> - <entry key="py" value="1084" /> + <entry key="py" value="6122" /> + <entry key="txt" value="2" /> </counts> </usages-collector> <usages-collector id="statistics.file.types.edit"> <counts> <entry key="HTML" value="181" /> - <entry key="Python" value="1084" /> + <entry key="PLAIN_TEXT" value="2" /> + <entry key="Python" value="6122" /> </counts> </usages-collector> <usages-collector id="statistics.file.extensions.open"> <counts> - <entry key="html" value="13" /> - <entry key="py" value="4" /> + <entry key="html" value="14" /> + <entry key="py" value="11" /> </counts> </usages-collector> <usages-collector id="statistics.file.types.open"> <counts> - <entry key="HTML" value="13" /> - <entry key="Python" value="4" /> + <entry key="HTML" value="14" /> + <entry key="Python" value="11" /> </counts> </usages-collector> </session> </component> <component name="FileEditorManager"> - <leaf> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/PMPBackend/settings.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="339"> - <caret line="62" column="36" lean-forward="true" selection-start-line="62" selection-start-column="36" selection-end-line="62" selection-end-column="36" /> + <state relative-caret-position="-106"> + <caret line="42" lean-forward="true" selection-start-line="42" selection-end-line="42" /> </state> </provider> </entry> @@ -79,8 +70,8 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/PMPBackend/urls.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="420"> - <caret line="28" column="43" lean-forward="true" selection-start-line="28" selection-start-column="43" selection-end-line="28" selection-end-column="43" /> + <state relative-caret-position="375"> + <caret line="25" column="54" selection-start-line="25" selection-start-column="54" selection-end-line="25" selection-end-column="54" /> <folding> <element signature="e#635#667#0" expanded="true" /> </folding> @@ -88,19 +79,42 @@ </provider> </entry> </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/cargo/models.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="90"> + <caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/cargo/views.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="376"> + <caret line="77" column="32" lean-forward="true" selection-start-line="77" selection-start-column="32" selection-end-line="77" selection-end-column="32" /> + <folding> + <element signature="e#0#45#0" expanded="true" /> + <marker date="1538741737406" expanded="true" signature="674:1340" ph="..." /> + <marker date="1538741737406" expanded="true" signature="3852:5054" ph="..." /> + <marker date="1538741737406" expanded="true" signature="5769:6475" ph="..." /> + </folding> + </state> + </provider> + </entry> + </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/PMPBackend/wsgi.py"> <provider selected="true" editor-type-id="text-editor" /> </entry> </file> - <file pinned="false" current-in-tab="true"> + <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/PMPBackend/views.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="420"> - <caret line="28" column="24" lean-forward="true" selection-start-line="28" selection-start-column="24" selection-end-line="28" selection-end-column="24" /> + <state relative-caret-position="30"> + <caret line="2" selection-start-line="2" selection-end-line="2" /> <folding> <marker date="1538386992227" expanded="true" signature="556:604" ph="..." /> - <marker date="1538386992227" expanded="true" signature="702:750" ph="..." /> </folding> </state> </provider> @@ -108,7 +122,41 @@ </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/manage.py"> - <provider selected="true" editor-type-id="text-editor" /> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="195"> + <caret line="14" column="39" selection-start-line="14" selection-start-column="39" selection-end-line="14" selection-end-column="39" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-186"> + <caret line="5" selection-start-line="5" selection-end-line="5" /> + <folding> + <element signature="e#104#113#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file:///usr/local/lib/python3.7/site-packages/django/utils/autoreload.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="210"> + <caret line="224" selection-start-line="224" selection-end-line="224" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/utils.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="240"> + <caret line="203" column="31" selection-start-line="203" selection-start-column="31" selection-end-line="203" selection-end-column="31" /> + </state> + </provider> </entry> </file> </leaf> @@ -117,16 +165,16 @@ <option name="RECENT_TEMPLATES"> <list> <option value="HTML File" /> + <option value="Python Script" /> </list> </option> </component> <component name="Git.Settings"> - <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." /> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> </component> <component name="IdeDocumentHistory"> <option name="CHANGED_PATHS"> <list> - <option value="$PROJECT_DIR$/PMPBackend/settings.py" /> <option value="$PROJECT_DIR$/PMPBackend/templates/homePage.html" /> <option value="$PROJECT_DIR$/PMPBackend/templates/SignUp.html" /> <option value="$PROJECT_DIR$/PMPBackend/templates/SignIn.html" /> @@ -139,8 +187,12 @@ <option value="$PROJECT_DIR$/PMPBackend/templates/updatebook.html" /> <option value="$PROJECT_DIR$/PMPBackend/templates/updateBook.html" /> <option value="$PROJECT_DIR$/PMPBackend/templates/lookUpBook.html" /> - <option value="$PROJECT_DIR$/PMPBackend/urls.py" /> <option value="$PROJECT_DIR$/PMPBackend/views.py" /> + <option value="$PROJECT_DIR$/PMPBackend/models.py" /> + <option value="$PROJECT_DIR$/PMPBackend/settings.py" /> + <option value="$PROJECT_DIR$/cargo/models.py" /> + <option value="$PROJECT_DIR$/PMPBackend/urls.py" /> + <option value="$PROJECT_DIR$/cargo/views.py" /> </list> </option> </component> @@ -150,11 +202,21 @@ <detection-done>true</detection-done> <sorting>DEFINITION_ORDER</sorting> </component> - <component name="ProjectFrameBounds"> - <option name="x" value="113" /> - <option name="y" value="34" /> - <option name="width" value="1400" /> - <option name="height" value="908" /> + <component name="ProjectFrameBounds" fullScreen="true"> + <option name="width" value="1680" /> + <option name="height" value="1050" /> + </component> + <component name="ProjectInspectionProfilesVisibleTreeState"> + <entry key="Project Default"> + <profile-state> + <expanded-state> + <State /> + <State> + <id>SQL</id> + </State> + </expanded-state> + </profile-state> + </entry> </component> <component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectView"> @@ -162,7 +224,6 @@ <foldersAlwaysOnTop value="true" /> </navigator> <panes> - <pane id="Scope" /> <pane id="ProjectPane"> <subPane> <expand> @@ -170,6 +231,11 @@ <item name="PMPBackend" type="b2602c69:ProjectViewProjectNode" /> <item name="PMPBackend" type="462c0819:PsiDirectoryNode" /> </path> + <path> + <item name="PMPBackend" type="b2602c69:ProjectViewProjectNode" /> + <item name="PMPBackend" type="462c0819:PsiDirectoryNode" /> + <item name="cargo" type="462c0819:PsiDirectoryNode" /> + </path> <path> <item name="PMPBackend" type="b2602c69:ProjectViewProjectNode" /> <item name="PMPBackend" type="462c0819:PsiDirectoryNode" /> @@ -185,6 +251,7 @@ <select /> </subPane> </pane> + <pane id="Scope" /> </panes> </component> <component name="PropertiesComponent"> @@ -247,30 +314,30 @@ <servers /> </component> <component name="ToolWindowManager"> - <frame x="113" y="34" width="1400" height="908" extended-state="0" /> + <frame x="0" y="0" width="1680" height="1050" extended-state="0" /> <editor active="true" /> <layout> - <window_info id="Favorites" side_tool="true" /> - <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2496318" /> + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.21611722" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> - <window_info anchor="bottom" id="Docker" show_stripe_button="false" /> - <window_info anchor="bottom" id="Database Changes" show_stripe_button="false" /> - <window_info anchor="bottom" id="Version Control" show_stripe_button="false" /> - <window_info anchor="bottom" id="Python Console" /> - <window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.32965687" /> - <window_info anchor="bottom" id="Event Log" side_tool="true" /> + <window_info id="Favorites" order="2" side_tool="true" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> - <window_info anchor="bottom" id="Run" order="2" weight="0.32965687" /> + <window_info anchor="bottom" id="Run" order="2" weight="0.32959184" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="TODO" order="6" /> - <window_info anchor="right" id="SciView" /> - <window_info anchor="right" id="Database" /> + <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> + <window_info anchor="bottom" id="Version Control" order="8" show_stripe_button="false" /> + <window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" /> + <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" /> + <window_info anchor="bottom" id="Terminal" order="11" weight="0.32965687" /> + <window_info anchor="bottom" id="Python Console" order="12" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="right" id="SciView" order="3" /> + <window_info anchor="right" id="Database" order="4" /> </layout> </component> <component name="TypeScriptGeneratedFilesManager"> @@ -280,13 +347,6 @@ <option name="myLimit" value="2678400000" /> </component> <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/PMPBackend/templates/homePage.html"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1275"> - <caret line="85" column="17" lean-forward="true" selection-start-line="85" selection-start-column="17" selection-end-line="85" selection-end-column="17" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/PMPBackend/templates/signIn.html"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="60"> @@ -308,19 +368,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/PMPBackend/wsgi.py"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> - <entry file="file://$PROJECT_DIR$/manage.py"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> - <entry file="file://$PROJECT_DIR$/PMPBackend/settings.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="339"> - <caret line="62" column="36" lean-forward="true" selection-start-line="62" selection-start-column="36" selection-end-line="62" selection-end-column="36" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/PMPBackend/templates/userProfile.html"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="60"> @@ -349,23 +396,97 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/PMPBackend/urls.py"> + <entry file="file://$PROJECT_DIR$/PMPBackend/templates/homePage.html"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1275"> + <caret line="85" column="17" selection-start-line="85" selection-start-column="17" selection-end-line="85" selection-end-column="17" /> + </state> + </provider> + </entry> + <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="420"> - <caret line="28" column="43" lean-forward="true" selection-start-line="28" selection-start-column="43" selection-end-line="28" selection-end-column="43" /> + <state relative-caret-position="-186"> + <caret line="5" selection-start-line="5" selection-end-line="5" /> <folding> - <element signature="e#635#667#0" expanded="true" /> + <element signature="e#104#113#0" expanded="true" /> </folding> </state> </provider> </entry> + <entry file="file:///usr/local/lib/python3.7/site-packages/django/utils/autoreload.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="210"> + <caret line="224" selection-start-line="224" selection-end-line="224" /> + </state> + </provider> + </entry> + <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/utils.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="240"> + <caret line="203" column="31" selection-start-line="203" selection-start-column="31" selection-end-line="203" selection-end-column="31" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/PMPBackend/models.py"> + <provider selected="true" editor-type-id="text-editor"> + <state> + <caret selection-end-line="31" selection-end-column="47" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/PMPBackend/wsgi.py"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> <entry file="file://$PROJECT_DIR$/PMPBackend/views.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="420"> - <caret line="28" column="24" lean-forward="true" selection-start-line="28" selection-start-column="24" selection-end-line="28" selection-end-column="24" /> + <state relative-caret-position="30"> + <caret line="2" selection-start-line="2" selection-end-line="2" /> <folding> <marker date="1538386992227" expanded="true" signature="556:604" ph="..." /> - <marker date="1538386992227" expanded="true" signature="702:750" ph="..." /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/manage.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="195"> + <caret line="14" column="39" selection-start-line="14" selection-start-column="39" selection-end-line="14" selection-end-column="39" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/PMPBackend/settings.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-106"> + <caret line="42" lean-forward="true" selection-start-line="42" selection-end-line="42" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/cargo/models.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="90"> + <caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/PMPBackend/urls.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="375"> + <caret line="25" column="54" selection-start-line="25" selection-start-column="54" selection-end-line="25" selection-end-column="54" /> + <folding> + <element signature="e#635#667#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/cargo/views.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="376"> + <caret line="77" column="32" lean-forward="true" selection-start-line="77" selection-start-column="32" selection-end-line="77" selection-end-column="32" /> + <folding> + <element signature="e#0#45#0" expanded="true" /> + <marker date="1538741737406" expanded="true" signature="674:1340" ph="..." /> + <marker date="1538741737406" expanded="true" signature="3852:5054" ph="..." /> + <marker date="1538741737406" expanded="true" signature="5769:6475" ph="..." /> </folding> </state> </provider> diff --git a/PMPBackend/__pycache__/settings.cpython-37.pyc b/PMPBackend/__pycache__/settings.cpython-37.pyc index c967042f833771514f9819f3b9136e876ddfd935..8617d40c248557a2f35b7cf5c8571dde80319b2d 100644 Binary files a/PMPBackend/__pycache__/settings.cpython-37.pyc and b/PMPBackend/__pycache__/settings.cpython-37.pyc differ diff --git a/PMPBackend/__pycache__/urls.cpython-37.pyc b/PMPBackend/__pycache__/urls.cpython-37.pyc index af9d35153d71dab7ad39345d15ee345ace37d15b..6136e6f4b4699f6022f4f9ebeb8f7e3d456a341f 100644 Binary files a/PMPBackend/__pycache__/urls.cpython-37.pyc and b/PMPBackend/__pycache__/urls.cpython-37.pyc differ diff --git a/PMPBackend/__pycache__/views.cpython-37.pyc b/PMPBackend/__pycache__/views.cpython-37.pyc index 1ffbf6a09262a8c3d90d9e636cb38d90b73c7477..a30f6e801cc757af695bc0ade8d814982e1870d7 100644 Binary files a/PMPBackend/__pycache__/views.cpython-37.pyc and b/PMPBackend/__pycache__/views.cpython-37.pyc differ diff --git a/PMPBackend/settings.py b/PMPBackend/settings.py index 64766d70e51635a2965ea527eeaa7a2664063d81..1a807e4cd16a7757ff89a03d89b56339c0a242be 100644 --- a/PMPBackend/settings.py +++ b/PMPBackend/settings.py @@ -25,7 +25,7 @@ SECRET_KEY = '84rci9)9prwn$cd!gv2g3^7s0)^a9_o30!k6iwy=wdav9+p7g#' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = ['10.13.105.80'] # Application definition @@ -37,13 +37,15 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'rest_framework', + 'cargo', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', + #'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', @@ -70,14 +72,18 @@ TEMPLATES = [ WSGI_APPLICATION = 'PMPBackend.wsgi.application' - -# Database -# https://docs.djangoproject.com/en/2.1/ref/settings/#databases - DATABASES = { + # 'default': { + # 'ENGINE': 'django.db.backends.sqlite3', + # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + # } 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'lihuanz', + 'USER': 'lihuanz', + 'HOST': 'info20003db.eng.unimelb.edu.au', + 'PASSWORD': 'zlh2005zlh', + 'PORT': 3306, } } diff --git a/PMPBackend/urls.py b/PMPBackend/urls.py index 7c03c40fd594c3fd79cd628600a418c25a1adf6b..a62a4772dfc51f61878927b86e1727c3c89d2bd2 100644 --- a/PMPBackend/urls.py +++ b/PMPBackend/urls.py @@ -16,18 +16,17 @@ Including another URLconf from django.contrib import admin from django.urls import path -from PMPBackend import views +from cargo import views as cargoViews urlpatterns = [ - path('', views.homepage), - path('user/login', views.signin), - path('user/signup', views.signup), - path('user/profile', views.userprofile), - path('user/updateprofile', views.userprofile), - path('booking/booklookup', views.lookupbook), - path('booking/makebooking', views.newbook), - path('booking/updatebooking', views.updatebook), - path('admin/', admin.site.urls), + path('api/user/profile', cargoViews.profile), + path('api/user/update', cargoViews.updateprofile), + path('api/user/signin', cargoViews.signIn), + path('api/user/signup', cargoViews.signUp), + path('api/booking/check', cargoViews.displaybook), + path('api/booking/create', cargoViews.newbook), + path('api/booking/update', cargoViews.updatebook), + path('api/shipInfo', cargoViews.shipInfo), ] diff --git a/cargo/__init__.py b/cargo/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/cargo/__pycache__/__init__.cpython-37.pyc b/cargo/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c00edd3425d1db03025622df32c27973a1d219a6 Binary files /dev/null and b/cargo/__pycache__/__init__.cpython-37.pyc differ diff --git a/cargo/__pycache__/admin.cpython-37.pyc b/cargo/__pycache__/admin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0be9f2f83db4ecb506c6ad230410ef34be78467c Binary files /dev/null and b/cargo/__pycache__/admin.cpython-37.pyc differ diff --git a/cargo/__pycache__/models.cpython-37.pyc b/cargo/__pycache__/models.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f64e7da019efcf49d04224047c52b157bcbdbd3c Binary files /dev/null and b/cargo/__pycache__/models.cpython-37.pyc differ diff --git a/cargo/__pycache__/views.cpython-37.pyc b/cargo/__pycache__/views.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d6ed7e014f08d9b91e1c82f70bdda25e25c1666 Binary files /dev/null and b/cargo/__pycache__/views.cpython-37.pyc differ diff --git a/cargo/admin.py b/cargo/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/cargo/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/cargo/apps.py b/cargo/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..4e0480a0b464c2111af295ba8eb5eaa93f92f9a7 --- /dev/null +++ b/cargo/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class CargoConfig(AppConfig): + name = 'cargo' diff --git a/cargo/migrations/0001_initial.py b/cargo/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..0010817cf1c91e97e8df18eebaa8334e9104e17b --- /dev/null +++ b/cargo/migrations/0001_initial.py @@ -0,0 +1,60 @@ +# Generated by Django 2.1.1 on 2018-10-05 05:42 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='request', + fields=[ + ('bookID', models.AutoField(primary_key=True, serialize=False)), + ('boxNumber', models.IntegerField()), + ('destination', models.CharField(max_length=150)), + ('pickup', models.CharField(max_length=150)), + ('customerMessage', models.TextField(null=True)), + ('status', models.IntegerField(default=0, max_length=1)), + ('cost', models.IntegerField(null=True)), + ('pickupDate', models.DateTimeField(null=True)), + ('HBL', models.CharField(max_length=30, null=True)), + ('shiperMessage', models.TextField(null=True)), + ], + ), + migrations.CreateModel( + name='shipment', + fields=[ + ('shipmentID', models.AutoField(primary_key=True, serialize=False)), + ('leaveDate', models.DateField()), + ('arriveDate', models.DateField()), + ], + ), + migrations.CreateModel( + name='user', + fields=[ + ('userID', models.AutoField(primary_key=True, serialize=False)), + ('email', models.CharField(max_length=50)), + ('password', models.CharField(max_length=20)), + ('userType', models.IntegerField(default=0, max_length=1)), + ('userName', models.CharField(max_length=30)), + ('phoneNumber', models.CharField(max_length=20)), + ('homeAddress', models.CharField(max_length=150)), + ], + ), + migrations.AddField( + model_name='request', + name='shipmentID', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cargo.shipment'), + ), + migrations.AddField( + model_name='request', + name='userID', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cargo.user'), + ), + ] diff --git a/cargo/migrations/0002_auto_20181005_0611.py b/cargo/migrations/0002_auto_20181005_0611.py new file mode 100644 index 0000000000000000000000000000000000000000..36016858da90cbd2b6d84b6e4395281a471e733e --- /dev/null +++ b/cargo/migrations/0002_auto_20181005_0611.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.1 on 2018-10-05 06:11 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('cargo', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='request', + name='status', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='user', + name='userType', + field=models.IntegerField(default=0), + ), + ] diff --git a/cargo/migrations/0003_auto_20181005_0942.py b/cargo/migrations/0003_auto_20181005_0942.py new file mode 100644 index 0000000000000000000000000000000000000000..ae01614f3f3c315a0fb4d00c290a9c10d2b63d7f --- /dev/null +++ b/cargo/migrations/0003_auto_20181005_0942.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.1 on 2018-10-05 09:42 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('cargo', '0002_auto_20181005_0611'), + ] + + operations = [ + migrations.RenameModel( + old_name='request', + new_name='requestbook', + ), + ] diff --git a/cargo/migrations/__init__.py b/cargo/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/cargo/migrations/__pycache__/0001_initial.cpython-37.pyc b/cargo/migrations/__pycache__/0001_initial.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..333e6a4e7f02bdb33eebc61f5b46f3155e950b7b Binary files /dev/null and b/cargo/migrations/__pycache__/0001_initial.cpython-37.pyc differ diff --git a/cargo/migrations/__pycache__/0002_auto_20181005_0611.cpython-37.pyc b/cargo/migrations/__pycache__/0002_auto_20181005_0611.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d5010fc29499beeb9e7b69771c69128ee52d193 Binary files /dev/null and b/cargo/migrations/__pycache__/0002_auto_20181005_0611.cpython-37.pyc differ diff --git a/cargo/migrations/__pycache__/0003_auto_20181005_0942.cpython-37.pyc b/cargo/migrations/__pycache__/0003_auto_20181005_0942.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42d2036524668946e59506700688b146e4574835 Binary files /dev/null and b/cargo/migrations/__pycache__/0003_auto_20181005_0942.cpython-37.pyc differ diff --git a/cargo/migrations/__pycache__/__init__.cpython-37.pyc b/cargo/migrations/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..384dd58025beed8d8f708f54e9809b9fd40cabc0 Binary files /dev/null and b/cargo/migrations/__pycache__/__init__.cpython-37.pyc differ diff --git a/cargo/models.py b/cargo/models.py new file mode 100644 index 0000000000000000000000000000000000000000..d2150d1830117c88f5a63200f635a16d3a542eb0 --- /dev/null +++ b/cargo/models.py @@ -0,0 +1,34 @@ +from django.db import models + +# Create your models here. +class user(models.Model): + userID = models.AutoField(primary_key=True) + email = models.CharField(max_length=50) + password = models.CharField(max_length=20) + userType = models.IntegerField(default=0) + userName = models.CharField(max_length=30) + phoneNumber = models.CharField(max_length=20) + homeAddress = models.CharField(max_length=150) + + +# Create your models here. +class shipment(models.Model): + shipmentID = models.AutoField(primary_key=True) + leaveDate = models.DateField() + arriveDate = models.DateField() + + +# Create your models here. +class requestbook(models.Model): + bookID = models.AutoField(primary_key=True) + userID = models.ForeignKey('user', on_delete=models.CASCADE) + shipmentID = models.ForeignKey('shipment', on_delete=models.CASCADE) + boxNumber = models.IntegerField() + destination = models.CharField(max_length=150) + pickup = models.CharField(max_length=150) + customerMessage = models.TextField(null=True) + status = models.IntegerField(default=0) + cost = models.IntegerField(null=True) + pickupDate = models.DateTimeField(null=True) + HBL = models.CharField(max_length=30, null=True) + shiperMessage = models.TextField(null=True) diff --git a/cargo/tests.py b/cargo/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/cargo/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/cargo/views.py b/cargo/views.py new file mode 100644 index 0000000000000000000000000000000000000000..f1c5ae97b96b1e30fbc0bb23d756beb2a65fb94a --- /dev/null +++ b/cargo/views.py @@ -0,0 +1,210 @@ +from django.shortcuts import render, redirect +import datetime +from cargo.models import user, shipment, requestbook +import json +from django.http import HttpResponse +import sys + +# Create your views here. + + +def shipInfo(request): + if request.method == 'GET': + today = datetime.date.today() + shipmentInfo = shipment.objects.all() + s = [] + for i in shipmentInfo: + s.append([i.shipmentID, 'From ' + i.leaveDate.__str__() + ' To ' + i.arriveDate.__str__()]) + + res = { + 'shipInfo': s, + 'status': '0' + } + + return HttpResponse(json.dumps(res), content_type="application/json") + + +def signIn(request): + if request.method == 'GET': + #print(request.get_full_path(), file=sys.stderr) + + passwordNow = request.GET['password'] + emailNow = request.GET['email'] + + #print(passwordNow, file=sys.stderr) + #print(emailNow, file=sys.stderr) + + check = user.objects.get(email=emailNow) + + if (check.password == passwordNow): + res = { + 'status': '0', + 'userid': check.userID, + 'usertype': check.userType + } + else: + res = { + 'status': '1' + } + return HttpResponse(json.dumps(res), content_type="application/json") + + +def signUp(request): + if request.method == 'POST': + req = json.loads(request.body.decode()) + + newUser = user() + newUser.email = req.get('email') + newUser.password = req.get('password') + newUser.userName = req.get('realname') + newUser.phoneNumber = req.get('phonenumber') + newUser.homeAddress = req.get('address') + + check = user.objects.filter(email=newUser.email) + + if (check): + res = { + 'status': 1, + 'msg':'email exist' + } + return HttpResponse(json.dumps(res), content_type="application/json") + + else: + newUser.save() + res = { + 'status': '0', + 'usertype': '0', + 'userid': newUser.userID, + 'msg': 'success' + } + return HttpResponse(json.dumps(res), content_type="application/json") + else: + res = { + 'status': '0', + 'msg': 'error access' + } + return HttpResponse(json.dumps(res), content_type="application/json") + + +def profile(request): + if request.method == 'GET': + useridNow = int(request.GET['userid']) + userNow = user.objects.get(userID=useridNow) + + if (userNow): + res = { + 'status': '0', + 'email': userNow.email, + 'password': userNow.password, + 'realname': userNow.userName, + 'phonenumber': userNow.phoneNumber, + 'address': userNow.homeAddress + } + return HttpResponse(json.dumps(res), content_type="application/json") + else: + res = { + 'status': '1', + 'msg': 'user not exist' + } + return HttpResponse(json.dumps(res), content_type="application/json") + + +def updateprofile(request): + if request.method == 'POST': + req = json.loads(request.body.decode()) + + useridNow = int(req.get('userid')) + userNow = user.objects.get(userID=useridNow) + + userNow.email = req.get('email') + userNow.password = req.get('password') + userNow.userName = req.get('realname') + userNow.phoneNumber = req.get('phonenumber') + userNow.homeAddress = req.get('address') + + userNow.save() + + res = { + 'status': '0', + 'msg': 'success' + } + return HttpResponse(json.dumps(res), content_type="application/json") + +def displaybook(request): + if request.method == 'GET': + useridNow = int(request.GET['userid']) + if (int(user.objects.get(userID=useridNow).userType) > 0): + booklist = requestbook.objects.all() + else: + booklist = requestbook.objects.filter(userID_id=useridNow) + + res = [] + + for i in booklist: + select = shipment.objects.get(shipmentID=int(i.shipmentID_id)) + str = 'From ' + select.leaveDate.__str__() + ' To ' + select.arriveDate.__str__() + + res.append({ + 'bookingNumber': i.bookID, + 'bookingStatus': i.status, + 'HBLNumber': i.HBL, + 'boxNumber': i.boxNumber, + 'destination': i.destination, + 'pickupAddress': i.pickup, + 'pickupDate': i.pickupDate.__str__().split(' ')[0], + 'selectDate': str, + 'optionalInformationCustomer': i.customerMessage, + 'optionalInformationShipper': i.shiperMessage, + 'cost': i.cost}) + + res = { + 'booklist': res, + 'status': '0' + } + return HttpResponse(json.dumps(res), content_type="application/json") + + +def newbook(request): + if request.method == 'POST': + req = json.loads(request.body.decode()) + newbook = requestbook() + + newbook.boxNumber = int(req.get('boxnumber')) + newbook.cost = newbook.boxNumber * 35 + newbook.shipmentID_id = int(req.get('shipmentid')) + newbook.userID_id = int(req.get('userid')) + newbook.destination = req.get('destination') + newbook.pickup = req.get('pickupaddress') + newbook.customerMessage = req.get('cutomermsg') + newbook.save() + + res = { + 'status': '0', + 'msg': 'success' + } + return HttpResponse(json.dumps(res), content_type="application/json") + + +def updatebook(request): + if request.method == 'POST': + req = json.loads(request.body.decode()) + + bookidNow = int(req.get('bookingNumber')) + bookCur = requestbook.objects.get(bookID=bookidNow) + + bookCur.HBL = req.get('bookingHBL') + print(bookCur.HBL, file=sys.stderr) + bookCur.status = req.get('bookingStatus', bookCur.status) + bookCur.pickupDate = req.get('bookingPickupDate', bookCur.pickupDate) + bookCur.shiperMessage = req.get('bookingInformationShipper', bookCur.shiperMessage) + + bookCur.save() + + res = { + 'status': '0', + 'msg': 'success' + } + return HttpResponse(json.dumps(res), content_type="application/json") + + +