seungmin lee

현황보기, 검색하기, 예약하기 구현.

1차완성
<?xml version="1.0" encoding="UTF-8"?>
<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
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="efd4cd4c-5994-4e53-bf2d-b3eae70066e8" name="Default Changelist" comment="" />
<list default="true" id="efd4cd4c-5994-4e53-bf2d-b3eae70066e8" name="Default Changelist" comment="">
<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$/ReservationControl.py" beforeDir="false" afterPath="$PROJECT_DIR$/ReservationControl.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app.py" beforeDir="false" afterPath="$PROJECT_DIR$/app.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/join.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/join.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/login.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/login.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/main.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/main.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/resv_sch.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/resv_sch.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/resv_view.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/resv_view.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/searchresult.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/searchresult.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/user_info.py" beforeDir="false" afterPath="$PROJECT_DIR$/user_info.py" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......@@ -9,7 +21,7 @@
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/helloworld$helloworld.coverage" NAME="helloworld Coverage Results" MODIFIED="1544183214108" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/helloworld$helloworld.coverage" NAME="helloworld Coverage Results" MODIFIED="1544235307417" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
</component>
<component name="FUSProjectUsageTrigger">
<session id="1222273241">
......@@ -19,8 +31,8 @@
<entry key="project.open.time.0" value="1" />
<entry key="project.open.time.13" value="2" />
<entry key="project.open.time.14" value="1" />
<entry key="project.open.time.20" value="1" />
<entry key="project.opened" value="5" />
<entry key="project.open.time.20" value="2" />
<entry key="project.opened" value="6" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
......@@ -28,7 +40,7 @@
<entry key="css" value="2" />
<entry key="html" value="20" />
<entry key="js" value="1" />
<entry key="py" value="6" />
<entry key="py" value="7" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.open">
......@@ -36,37 +48,50 @@
<entry key="CSS" value="2" />
<entry key="HTML" value="20" />
<entry key="JavaScript" value="1" />
<entry key="Python" value="6" />
<entry key="Python" value="7" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="Python Console" value="3" />
<entry key="html" value="1830" />
<entry key="py" value="1121" />
<entry key="html" value="2025" />
<entry key="py" value="1612" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="HTML" value="1830" />
<entry key="Python" value="1124" />
<entry key="HTML" value="2025" />
<entry key="Python" value="1615" />
</counts>
</usages-collector>
</session>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="138">
<caret line="79" column="20" lean-forward="true" selection-start-line="79" selection-start-column="20" selection-end-line="79" selection-end-column="20" />
<state relative-caret-position="213">
<caret line="90" lean-forward="true" selection-start-line="90" selection-end-line="90" />
<folding>
<element signature="e#1#76#0" expanded="true" />
<marker date="1544196188397" expanded="true" signature="737:1057" ph="..." />
<marker date="1544196188397" expanded="true" signature="1547:1930" ph="..." />
<marker date="1544196188397" expanded="true" signature="1926:1930" ph="..." />
<marker date="1544196188397" expanded="true" signature="2706:2709" ph="..." />
<marker date="1544235014976" expanded="true" signature="737:1057" ph="..." />
<marker date="1544235014976" expanded="true" signature="1547:1930" ph="..." />
<marker date="1544235014976" expanded="true" signature="1926:1930" ph="..." />
<marker date="1544235014976" expanded="true" signature="2741:3173" ph="..." />
<marker date="1544235014976" expanded="true" signature="3170:3173" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ReservationControl.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="415">
<caret line="151" column="43" selection-start-line="151" selection-start-column="22" selection-end-line="151" selection-end-column="43" />
<folding>
<element signature="e#255#269#0" expanded="true" />
</folding>
</state>
</provider>
......@@ -75,8 +100,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/searchresult.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="846">
<caret line="47" column="55" selection-start-line="47" selection-start-column="55" selection-end-line="47" selection-end-column="55" />
<state relative-caret-position="213">
<caret line="39" column="20" selection-start-line="39" selection-start-column="20" selection-end-line="39" selection-end-column="20" />
</state>
</provider>
</entry>
......@@ -84,70 +109,61 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/resv_sch.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="359">
<caret line="197" column="55" selection-start-line="197" selection-start-column="55" selection-end-line="197" selection-end-column="55" />
<folding>
<element signature="n#style#0;n#img#0;n#body#0;n#html#0;n#!!top" expanded="true" />
</folding>
<state relative-caret-position="-651">
<caret line="128" column="16" selection-start-line="128" selection-start-column="11" selection-end-line="128" selection-end-column="16" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Users.py">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/templates/login.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1206">
<caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" />
<state relative-caret-position="180">
<caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
<folding>
<element signature="e#223#237#0" expanded="true" />
<element signature="e#1423#1429#0#HTML" expanded="true" />
<element signature="e#1429#1435#0#HTML" expanded="true" />
<element signature="e#1554#1560#0#HTML" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ReservationControl.py">
<entry file="file://$PROJECT_DIR$/user_info.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="97" column="40" selection-start-line="97" selection-start-column="29" selection-end-line="97" selection-end-column="40" />
<folding>
<element signature="e#255#269#0" expanded="true" />
</folding>
<state relative-caret-position="18">
<caret line="1" column="26" selection-start-line="1" selection-start-column="26" selection-end-line="1" selection-end-column="26" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/join.html">
<entry file="file://$PROJECT_DIR$/Users.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="629">
<caret line="102" column="58" selection-start-line="102" selection-start-column="58" selection-end-line="102" selection-end-column="58" />
<state relative-caret-position="1206">
<caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" />
<folding>
<element signature="e#174#201#0#HTML" expanded="true" />
<element signature="e#321#348#0#HTML" expanded="true" />
<element signature="e#488#515#0#HTML" expanded="true" />
<element signature="e#661#688#0#HTML" expanded="true" />
<element signature="e#794#821#0#HTML" expanded="true" />
<element signature="e#2068#2095#0#HTML" expanded="true" />
<element signature="e#223#237#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/resv_view.html">
<entry file="file://$PROJECT_DIR$/templates/join.html">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret selection-end-line="48" selection-end-column="14" />
<state relative-caret-position="123">
<caret line="79" column="10" selection-start-line="79" selection-start-column="10" selection-end-line="79" selection-end-column="10" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/login.html">
<entry file="file://$PROJECT_DIR$/templates/resv_view.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="449">
<caret line="83" column="91" selection-start-line="83" selection-start-column="91" selection-end-line="83" selection-end-column="91" />
<state relative-caret-position="253">
<caret line="37" column="19" lean-forward="true" selection-start-line="37" selection-start-column="19" selection-end-line="37" selection-end-column="19" />
</state>
</provider>
</entry>
......@@ -155,8 +171,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/main.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="18" column="29" selection-start-line="18" selection-start-column="29" selection-end-line="18" selection-end-column="29" />
<state relative-caret-position="180">
<caret line="67" column="27" selection-start-line="67" selection-start-column="27" selection-end-line="67" selection-end-column="27" />
</state>
</provider>
</entry>
......@@ -173,28 +189,28 @@
</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$/templates/user_info.py" />
<option value="$PROJECT_DIR$/Users.py" />
<option value="$PROJECT_DIR$/user_info.py" />
<option value="$PROJECT_DIR$/static/font.css" />
<option value="$PROJECT_DIR$/templates/대여화면1.html" />
<option value="$PROJECT_DIR$/ReservationControl.py" />
<option value="$PROJECT_DIR$/static/join.html" />
<option value="$PROJECT_DIR$/templates/로그인화면.html" />
<option value="$PROJECT_DIR$/templates/join.html" />
<option value="$PROJECT_DIR$/templates/main.html" />
<option value="$PROJECT_DIR$/templates/myhome.html" />
<option value="$PROJECT_DIR$/templates/resv_view.html" />
<option value="$PROJECT_DIR$/templates/login.html" />
<option value="$PROJECT_DIR$/templates/resv_sch.html" />
<option value="$PROJECT_DIR$/templates/search/result.html" />
<option value="$PROJECT_DIR$/templates/searchresult.html" />
<option value="$PROJECT_DIR$/user_info.py" />
<option value="$PROJECT_DIR$/templates/main.html" />
<option value="$PROJECT_DIR$/app.py" />
<option value="$PROJECT_DIR$/ReservationControl.py" />
<option value="$PROJECT_DIR$/templates/resv_view.html" />
<option value="$PROJECT_DIR$/templates/join.html" />
<option value="$PROJECT_DIR$/templates/searchresult.html" />
<option value="$PROJECT_DIR$/templates/resv_sch.html" />
<option value="$PROJECT_DIR$/templates/login.html" />
</list>
</option>
</component>
......@@ -211,7 +227,7 @@
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-7" />
<option name="width" value="974" />
<option name="width" value="917" />
<option name="height" value="1057" />
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
......@@ -236,7 +252,6 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
......@@ -264,6 +279,7 @@
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
......@@ -273,6 +289,7 @@
<property name="list.type.of.created.stylesheet" value="CSS" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
......@@ -326,21 +343,21 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="-7" y="0" width="974" height="1057" extended-state="0" />
<frame x="-7" y="0" width="917" height="1057" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Favorites" order="0" side_tool="true" />
<window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.24617068" />
<window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.26837805" />
<window_info id="Structure" order="2" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Database Changes" order="0" show_stripe_button="false" />
<window_info anchor="bottom" id="Terminal" order="1" weight="0.311493" />
<window_info anchor="bottom" id="Event Log" order="2" sideWeight="0.50053304" side_tool="true" weight="0.32975295" />
<window_info anchor="bottom" id="Event Log" order="2" sideWeight="0.50053304" side_tool="true" weight="0.32867885" />
<window_info anchor="bottom" id="Version Control" order="3" show_stripe_button="false" />
<window_info anchor="bottom" id="Python Console" order="4" weight="0.32954547" />
<window_info anchor="bottom" id="Python Console" order="4" sideWeight="0.49946696" weight="0.32867885" />
<window_info anchor="bottom" id="Docker" order="5" show_stripe_button="false" />
<window_info anchor="bottom" id="Message" order="6" />
<window_info anchor="bottom" id="Find" order="7" />
<window_info anchor="bottom" id="Run" order="8" sideWeight="0.49946696" weight="0.33188722" />
<window_info active="true" anchor="bottom" id="Run" order="8" sideWeight="0.49946696" visible="true" weight="0.3340564" />
<window_info anchor="bottom" id="Debug" order="9" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="10" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="11" weight="0.4" />
......@@ -358,14 +375,12 @@
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<ignored-roots>
<path value="$PROJECT_DIR$/.." />
</ignored-roots>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/user_info.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="27" selection-start-line="1" selection-start-column="27" selection-end-line="1" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/static/font.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
......@@ -380,13 +395,7 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/대여화면2.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-468">
<caret line="7" selection-start-line="7" selection-end-line="39" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/대여화면2.html" />
<entry file="file://$PROJECT_DIR$/static/toast/toast.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
......@@ -401,13 +410,7 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/대여화면1.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="10" column="5" lean-forward="true" selection-start-line="10" selection-start-column="5" selection-end-line="10" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/대여화면1.html" />
<entry file="file://$PROJECT_DIR$/templates/myhome.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
......@@ -415,110 +418,94 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/로그인화면.html">
<entry file="file://$PROJECT_DIR$/templates/로그인화면.html" />
<entry file="file://$PROJECT_DIR$/templates/search/result.html" />
<entry file="file://$PROJECT_DIR$/templates/search.html" />
<entry file="file://$PROJECT_DIR$/templates/main.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="377">
<caret line="84" column="91" lean-forward="true" selection-start-line="73" selection-end-line="84" selection-end-column="91" />
<state relative-caret-position="180">
<caret line="67" column="27" selection-start-line="67" selection-start-column="27" selection-end-line="67" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/login.html">
<entry file="file://$PROJECT_DIR$/templates/resv_view.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="449">
<caret line="83" column="91" selection-start-line="83" selection-start-column="91" selection-end-line="83" selection-end-column="91" />
<state relative-caret-position="253">
<caret line="37" column="19" lean-forward="true" selection-start-line="37" selection-start-column="19" selection-end-line="37" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/main.html">
<entry file="file://$PROJECT_DIR$/templates/join.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="18" column="29" selection-start-line="18" selection-start-column="29" selection-end-line="18" selection-end-column="29" />
<state relative-caret-position="123">
<caret line="79" column="10" selection-start-line="79" selection-start-column="10" selection-end-line="79" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/join.html">
<entry file="file://$PROJECT_DIR$/Users.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="629">
<caret line="102" column="58" selection-start-line="102" selection-start-column="58" selection-end-line="102" selection-end-column="58" />
<state relative-caret-position="1206">
<caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" />
<folding>
<element signature="e#174#201#0#HTML" expanded="true" />
<element signature="e#321#348#0#HTML" expanded="true" />
<element signature="e#488#515#0#HTML" expanded="true" />
<element signature="e#661#688#0#HTML" expanded="true" />
<element signature="e#794#821#0#HTML" expanded="true" />
<element signature="e#2068#2095#0#HTML" expanded="true" />
<element signature="e#223#237#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/resv_view.html">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret selection-end-line="48" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/search/result.html">
<entry file="file://$PROJECT_DIR$/user_info.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="16" selection-start-line="4" selection-start-column="11" selection-end-line="4" selection-end-column="16" />
<state relative-caret-position="18">
<caret line="1" column="26" selection-start-line="1" selection-start-column="26" selection-end-line="1" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/search.html">
<entry file="file://$PROJECT_DIR$/templates/searchresult.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" column="14" lean-forward="true" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
<state relative-caret-position="213">
<caret line="39" column="20" selection-start-line="39" selection-start-column="20" selection-end-line="39" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ReservationControl.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="97" column="40" selection-start-line="97" selection-start-column="29" selection-end-line="97" selection-end-column="40" />
<state relative-caret-position="415">
<caret line="151" column="43" selection-start-line="151" selection-start-column="22" selection-end-line="151" selection-end-column="43" />
<folding>
<element signature="e#255#269#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Users.py">
<entry file="file://$PROJECT_DIR$/app.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1206">
<caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" />
<state relative-caret-position="213">
<caret line="90" lean-forward="true" selection-start-line="90" selection-end-line="90" />
<folding>
<element signature="e#223#237#0" expanded="true" />
<element signature="e#1#76#0" expanded="true" />
<marker date="1544235014976" expanded="true" signature="737:1057" ph="..." />
<marker date="1544235014976" expanded="true" signature="1547:1930" ph="..." />
<marker date="1544235014976" expanded="true" signature="1926:1930" ph="..." />
<marker date="1544235014976" expanded="true" signature="2741:3173" ph="..." />
<marker date="1544235014976" expanded="true" signature="3170:3173" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/resv_sch.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="359">
<caret line="197" column="55" selection-start-line="197" selection-start-column="55" selection-end-line="197" selection-end-column="55" />
<folding>
<element signature="n#style#0;n#img#0;n#body#0;n#html#0;n#!!top" expanded="true" />
</folding>
<state relative-caret-position="-651">
<caret line="128" column="16" selection-start-line="128" selection-start-column="11" selection-end-line="128" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/searchresult.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="846">
<caret line="47" column="55" selection-start-line="47" selection-start-column="55" selection-end-line="47" selection-end-column="55" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app.py">
<entry file="file://$PROJECT_DIR$/templates/login.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="138">
<caret line="79" column="20" lean-forward="true" selection-start-line="79" selection-start-column="20" selection-end-line="79" selection-end-column="20" />
<state relative-caret-position="180">
<caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
<folding>
<element signature="e#1#76#0" expanded="true" />
<marker date="1544196188397" expanded="true" signature="737:1057" ph="..." />
<marker date="1544196188397" expanded="true" signature="1547:1930" ph="..." />
<marker date="1544196188397" expanded="true" signature="1926:1930" ph="..." />
<marker date="1544196188397" expanded="true" signature="2706:2709" ph="..." />
<element signature="e#1423#1429#0#HTML" expanded="true" />
<element signature="e#1429#1435#0#HTML" expanded="true" />
<element signature="e#1554#1560#0#HTML" expanded="true" />
</folding>
</state>
</provider>
......
#-*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
# 한글 인코딩을 위한 주석입니다.
# 사전설정:
# pymysql 패키지가 있어야 합니다.
# pip install pymysql
# 보안상 user_info에서 DB id, password를 가져옵니다.
# user_info.py에서 DB id, password를 설정하고 사용해주세요.
# pymysql 패키지가 있어야 합니다.
# pip install pymysql
# 보안상 user_info에서 DB id, password를 가져옵니다.
# user_info.py에서 DB id, password를 설정하고 사용해주세요.
# 외부에서 사용법:
# from ReservationControl import *
# from ReservationControl import *
import pymysql
import user_info
import datetime
# getReservations - 대여현황반환 함수
# input:
# string user_id
# string user_id
# output:
# 성공시 : tuple형태로 반환 => ( (1 ,"steven123", 7, "전자정보대학", "136호", 10, datetime.datetime(2018,12,5,12,0,0), datetime.datetime(2018,12,5,12,10,0), ), )
# 순서 : reservations_id, user_id, facility_id, location, location_detail, capacity, start_time, end_time
# 성공시 : tuple형태로 반환 => ( (1 ,"steven123", 7, "전자정보대학", "136호", 10, datetime.datetime(2018,12,5,12,0,0), datetime.datetime(2018,12,5,12,10,0), ), )
# 순서 : reservations_id, user_id, facility_id, location, location_detail, capacity, start_time, end_time
# 실패시 : tuple형태로 반환 => ( ("SQL Error!", ), )
# 실패시 : result[0][0]="SQL Error!"인 tuple 반환 => ( ("SQL Error!", ), )
# 사용예:
# result = getReservations("khucse123")
# reservation_start_time = result[0][3]
# result = getReservations("khucse123")
# reservation_start_time = result[0][3]
def getReservations(user_id):
try:
db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd, db='FRS', charset='utf8')
db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
db='FRS', charset='utf8')
curs = db.cursor()
#curs.execute("select * from reservations where user_id=%s", user_id)
curs.execute("select r.reservations_id, r.user_id, r.facility_id, f.location, f.location_detail, f.capacity, r.start_time, r.end_time from reservations r, facilities f where r.user_id=%s AND r.facility_id=f.facility_id;", user_id)
# curs.execute("select * from reservations where user_id=%s", user_id)
curs.execute(
"select r.reservations_id, r.user_id, r.facility_id, f.location, f.location_detail, f.capacity, r.start_time, r.end_time from reservations r, facilities f where r.user_id=%s AND r.facility_id=f.facility_id;",
user_id)
result = curs.fetchall()
print("Fetch Success!")
return result
......@@ -52,18 +49,19 @@ def getReservations(user_id):
# deleteReservations - 대여현황삭제 함수
# input:
# int reservations_id
# int reservations_id
# output:
# 성공시 : True
# 실패시 : False
# 성공시 : True
# 실패시 : False
# 사용예:
# deleteReservations(5)
# deleteReservations(5)
# 주의사항:
# 테스트환경에서 없는 reservations_id를 넣으면 에러가 날 수 있음
# 테스트환경에서 없는 reservations_id를 넣으면 에러가 날 수 있음
def deleteReservations(reservations_id):
try:
db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd, db='FRS', charset='utf8')
db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
db='FRS', charset='utf8')
curs = db.cursor()
curs.execute("delete from reservations where reservations_id=%s", reservations_id)
......@@ -80,27 +78,29 @@ def deleteReservations(reservations_id):
# addReservations - 대여현황추가 함수
# input:
# string user_id
# int facility_id
# datetime.datetime start_time
# datetime.datetime end_time
# string user_id
# int facility_id
# datetime.datetime start_time
# datetime.datetime end_time
# output:
# 성공시 : True
# 실패시 : False
# 성공시 : True
# 실패시 : False
# 사용예:
# tstart = datetime.datetime(2018,12,5,0,11,12)
# tend = datetime.datetime(2018,12,5,0,20,12)
# addReservations("khucse123", 6, tstart, tend)
# tstart = datetime.datetime(2018,12,5,0,11,12)
# tend = datetime.datetime(2018,12,5,0,20,12)
# addReservations("khucse123", 6, tstart, tend)
# 주의사항:
# 테스트환경에서 없는 user_id를 넣으면 에러가 날 수 있음
# 테스트환경에서 없는 facility_id를 넣으면 에러가 날 수 있음
# 테스트환경에서 없는 user_id를 넣으면 에러가 날 수 있음
# 테스트환경에서 없는 facility_id를 넣으면 에러가 날 수 있음
def addReservations(user_id, facility_id, start_time, end_time):
try:
db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd, db='FRS', charset='utf8')
db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
db='FRS', charset='utf8')
curs = db.cursor()
curs.execute("insert into reservations (user_id, facility_id, start_time, end_time) values (%s,%s,%s,%s)", (user_id, facility_id, start_time, end_time))
curs.execute("insert into reservations (user_id, facility_id, start_time, end_time) values (%s,%s,%s,%s)",
(user_id, facility_id, start_time, end_time))
db.commit()
print("Add Reservation Success!")
return True
......@@ -111,3 +111,49 @@ def addReservations(user_id, facility_id, start_time, end_time):
finally:
db.close()
# getAvailableFacilities - 사용가능시설물 반환함수
# input:
# string location
# int capacity
# datetime.datetime start_time
# datetime.datetime end_time
# output:
# 성공시 : tuple형태로 반환 => ( (1, "전자정보대학", "B01호", 40, "강의실", "빔프로젝터", ), )
# 순서 : facility_id, location, location_detail, capacity, facility_type, equipment
# 사용가능한 시설물이 없을 시 : result[0][0]="NoAvailableFacilites"인 tuple 반환 => ( ("NoAvailableFacilites", ), )
# 실패시 : result[0][0]="SQL Error!"인 tuple 반환 => ( ("SQL Error!", ), )
# 사용예:
# tstart = datetime.datetime(2018,12,5,12,11,12)
# tend = datetime.datetime(2018,12,5,14,20,12)
# result = getAvailableFacilities("전자정보대학", 40, tstart, tend)
# facility_id = result[0][0]
def getAvailableFacilities(location, capacity, start_time, end_time):
try:
db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
db='FRS', charset='utf8')
curs = db.cursor()
curs.execute(
"select facility_id, location, location_detail, capacity, facility_type, equipment from facilities where (facility_id not in(select facility_id from reservations where (start_time<=%s AND %s<end_time) OR (start_time<%s AND %s<=end_time) OR (%s<=start_time AND end_time<=%s))) AND location=%s AND %s<=capacity;",
(start_time, start_time, end_time, end_time, start_time, end_time, location, capacity))
result = curs.fetchall()
print("Fetch Success!")
# 사용 가능한 시설물이 있을 경우
if (len(result) != 0):
return result
# 사용 가능한 시설물이 없을 경우
else:
print("No Available Facilities")
return (("NoAvailableFacilities",),)
except:
print("SQL Error!")
return (("SQL Error!",),)
finally:
db.close()
......
......@@ -79,22 +79,30 @@ def book():
@app.route('/search/result', methods=['POST'])
def search_result():
searchdata = request.form
print(searchdata)
starttime = datetime.strptime(searchdata.get('starttime'),'%Y-%m-%dT%H:%M')
endtime = datetime.strptime(searchdata.get('endtime'),'%Y-%m-%dT%H:%M')
print(starttime,endtime)
if searchdata.get('search'):
# searchdata.get('searchinput') 얻어와서 sql 검색 쿼리
pass
elif searchdata.get('cat'):
# searchdata.get('searchinput') 얻어와서 sql 검색 쿼리
pass
return render_template("searchresult.html", result)
if(starttime.strftime('%Y%m%d') == endtime.strftime('%Y%m%d')):
result = getAvailableFacilities(searchdata.get('deptid'),searchdata.get('capacity'),starttime,endtime)
print(result)
return render_template("searchresult.html", resv_list=result, starttime=starttime, endtime=endtime)
else:
flash("2일 이상의 일정으로 예약 불가합니다")
return redirect("/search")
@app.route('/search/resv', methods=['POST'])
def book_confirm():
pass #search_result 페이지에서 JS로든 요청 보내면 예약 처리
book_query=request.form
print(book_query)
starttime = datetime.strptime(book_query.get('start_time'), '%Y-%m-%d%H:%M')
endtime = datetime.strptime(book_query.get('end_time'), '%Y-%m-%d%H:%M')
if addReservations(session['ID'],book_query.get('fac_id'),starttime,endtime):
flash("예약에 성공했습니다")
return redirect('/myhome')
else:
flash("예약에 실패했습니다.")
return redirect('/search')
......
......@@ -77,7 +77,7 @@ input{
</style>
{% endblock %}
{% block content %}
<img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/>
<a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a>
<form action="/join/confirm" method="post">
<br><br>
......
......@@ -22,6 +22,7 @@ input[type=text] {
transition: 0.5s;
outline: none;
font-family: 'MyWebFont';
min-width: 200px;
}
input[type=text]:focus {
border: 3px solid #555;
......@@ -37,6 +38,7 @@ input[type=password] {
outline: none;
margin-right: 7px;
font-family: 'MyWebFont';
min-width: 200px;
}
input[type=password]:focus {
border: 3px solid #555;
......
......@@ -64,7 +64,7 @@ img {
</style>
{% block style %}{% endblock %}
<body >
<body>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
......
......@@ -6,7 +6,6 @@
<style>
body {
background-color: rgb(230, 243, 255);
text-align: center;
}
#select1 {
......@@ -146,7 +145,7 @@ select{
border-radius: 5px;
}
#maxpeople{
width: 55%;
width: 60%;
padding: 12px 20px;
box-sizing: border-box;
border: 3px solid #ccc;
......@@ -169,29 +168,38 @@ h3 {
margin-top: 15px;
}
</style>
{% endblock %}
{% block content %}
</style>
<body>
<br>
<img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/>
<a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a>
<div id="wrapper">
<form action="/search/result" method="post">
<br><br>
<div class="item"><H3>부서 ID</H3>
<select name="deptid" required><option value="1">전자정보대학</option>
<option value="2">외국어대학</option>
<option value="3">공과대학</option>
<option value="4">예술디자인대학</option>
<option value="5">체육대학</option>
<option value="6">국제대학</option>
<option value="7">대학본부</option></select>
<div class="item"><H3>건물</H3>
<select name="deptid" required><option value="전자정보대학">전자정보대학</option>
<option value="외국어대학">외국어대학</option>
<option value="공과대학">공과대학</option>
<option value="예술,디자인대학">예술,디자인대학</option>
<option value="체육대학">체육대학</option>
<option value="국제대학">국제대학</option>
<option value="1호관 테니스장">1호관 테니스장</option>
<option value="3호관 운동장">3호관 운동장</option>
<option value="3호관 테니스장">3호관 테니스장</option>
<option value="6호관 야구장">6호관 야구장</option>
<option value="6호관 운동장">6호관 운동장</option>
<option value="골프 연습장">골프 연습장</option>
<option value="6호관 운동장">6호관 운동장</option>
<option value="수영장">수영장</option>
<option value="필드 하키장(공과대학 앞)">필드 하키장(공과대학 앞)</option>
<option value="학생회관">학생회관</option></select>
<br></div>
<center><div class="item"><H3>사용 인원 수</H3><input type="number" id="maxpeople" name="quantity" min="1" max="200"></div></center><br>
<center><div class="item"><H3>사용 인원 수</H3><input type="number" id="maxpeople" name="capacity" min="1" max="200"></div></center><br>
<center>시작 시간<br><br><input type="datetime-local" name="starttime"></center><br>
......
......@@ -36,7 +36,7 @@
</style>
{% endblock %}
{% block content %}
<img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/><br>
<a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a>
<h1>예약 현황</h1>
{% if not resv_list %}
<p>예약 데이터가 없습니다.</p>
......
......@@ -6,7 +6,7 @@
{% block style %}
<style>
#list_item{
width: 275px;
width: 263px;
height: 100px;
font-size:20px;
font-family: '배달의민족 도현';
......@@ -17,17 +17,18 @@
vertical-align: bottom;
line-height: 150%;
display: inline-block;
padding-left: 7px;
}
#delete_btn{
width: 47px;
width: 60px;
height: 110px;
box-sizing: border-box;
font-size: 20px;
font-family: '배달의민족 도현';
background-color: rgb(255, 101, 101);
background-color: rgb(90, 200, 90);
color: white;
border-radius:5px;
border: solid 5px rgb(255, 101, 101);
border: solid 5px rgb(90, 200, 90);
float: right;
display: inline-block;
......@@ -36,18 +37,20 @@
</style>
{% endblock %}
{% block content %}
<img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/><br>
<a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a><br>
<h1>검색 결과</h1>
{% if not resv_list %}
{% if resv_list[0][0] == "NoAvailableFacilities" %}
<p>가능한 강의실이 없습니다.</p>
{% endif %}
{% else %}
<table>
{% for resv_item in resv_list %}
<tr><td><form method="post" action="/search/resv"><div id="list_item">{{ resv_item[3] }} {{ resv_item[4] }}<br>{{ resv_item[6].strftime('%Y-%m-%d') }}<br>{{ resv_item[6].strftime('%H:%M') }} ~ {{ resv_item[7].strftime('%H:%M') }}
<form method="post" action="/deleteresv">
<input type="hidden" name="resv_id" value="{{ 강의실ID }}">
<tr><td><form method="post" action="/search/resv"><div id="list_item">{{ resv_item[1] }} {{ resv_item[2] }}<br>{{ starttime.strftime('%Y-%m-%d') }}<br>{{ starttime.strftime('%H:%M') }} ~ {{ endtime.strftime('%H:%M') }}
<input type="hidden" name="fac_id" value="{{ resv_item[0] }}">
<input type="hidden" name="start_time" value="{{ starttime.strftime('%Y-%m-%d%H:%M') }}">
<input type="hidden" name="end_time" value="{{ endtime.strftime('%Y-%m-%d%H:%M') }}">
</div><input type="submit" id="delete_btn" value="예약"></form></td></tr>
{% endfor %}
</table>
{% endif %}
{% endblock %}
......