seungmin lee

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

1차완성
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4"> 2 <project version="4">
3 <component name="VcsDirectoryMappings"> 3 <component name="VcsDirectoryMappings">
4 - <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> 4 + <mapping directory="$PROJECT_DIR$" vcs="Git" />
5 </component> 5 </component>
6 </project> 6 </project>
...\ No newline at end of file ...\ No newline at end of file
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4"> 2 <project version="4">
3 <component name="ChangeListManager"> 3 <component name="ChangeListManager">
4 - <list default="true" id="efd4cd4c-5994-4e53-bf2d-b3eae70066e8" name="Default Changelist" comment="" /> 4 + <list default="true" id="efd4cd4c-5994-4e53-bf2d-b3eae70066e8" name="Default Changelist" comment="">
5 + <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
6 + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
7 + <change beforePath="$PROJECT_DIR$/ReservationControl.py" beforeDir="false" afterPath="$PROJECT_DIR$/ReservationControl.py" afterDir="false" />
8 + <change beforePath="$PROJECT_DIR$/app.py" beforeDir="false" afterPath="$PROJECT_DIR$/app.py" afterDir="false" />
9 + <change beforePath="$PROJECT_DIR$/templates/join.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/join.html" afterDir="false" />
10 + <change beforePath="$PROJECT_DIR$/templates/login.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/login.html" afterDir="false" />
11 + <change beforePath="$PROJECT_DIR$/templates/main.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/main.html" afterDir="false" />
12 + <change beforePath="$PROJECT_DIR$/templates/resv_sch.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/resv_sch.html" afterDir="false" />
13 + <change beforePath="$PROJECT_DIR$/templates/resv_view.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/resv_view.html" afterDir="false" />
14 + <change beforePath="$PROJECT_DIR$/templates/searchresult.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/searchresult.html" afterDir="false" />
15 + <change beforePath="$PROJECT_DIR$/user_info.py" beforeDir="false" afterPath="$PROJECT_DIR$/user_info.py" afterDir="false" />
16 + </list>
5 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> 17 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
6 <option name="SHOW_DIALOG" value="false" /> 18 <option name="SHOW_DIALOG" value="false" />
7 <option name="HIGHLIGHT_CONFLICTS" value="true" /> 19 <option name="HIGHLIGHT_CONFLICTS" value="true" />
...@@ -9,7 +21,7 @@ ...@@ -9,7 +21,7 @@
9 <option name="LAST_RESOLUTION" value="IGNORE" /> 21 <option name="LAST_RESOLUTION" value="IGNORE" />
10 </component> 22 </component>
11 <component name="CoverageDataManager"> 23 <component name="CoverageDataManager">
12 - <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$" /> 24 + <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$" />
13 </component> 25 </component>
14 <component name="FUSProjectUsageTrigger"> 26 <component name="FUSProjectUsageTrigger">
15 <session id="1222273241"> 27 <session id="1222273241">
...@@ -19,8 +31,8 @@ ...@@ -19,8 +31,8 @@
19 <entry key="project.open.time.0" value="1" /> 31 <entry key="project.open.time.0" value="1" />
20 <entry key="project.open.time.13" value="2" /> 32 <entry key="project.open.time.13" value="2" />
21 <entry key="project.open.time.14" value="1" /> 33 <entry key="project.open.time.14" value="1" />
22 - <entry key="project.open.time.20" value="1" /> 34 + <entry key="project.open.time.20" value="2" />
23 - <entry key="project.opened" value="5" /> 35 + <entry key="project.opened" value="6" />
24 </counts> 36 </counts>
25 </usages-collector> 37 </usages-collector>
26 <usages-collector id="statistics.file.extensions.open"> 38 <usages-collector id="statistics.file.extensions.open">
...@@ -28,7 +40,7 @@ ...@@ -28,7 +40,7 @@
28 <entry key="css" value="2" /> 40 <entry key="css" value="2" />
29 <entry key="html" value="20" /> 41 <entry key="html" value="20" />
30 <entry key="js" value="1" /> 42 <entry key="js" value="1" />
31 - <entry key="py" value="6" /> 43 + <entry key="py" value="7" />
32 </counts> 44 </counts>
33 </usages-collector> 45 </usages-collector>
34 <usages-collector id="statistics.file.types.open"> 46 <usages-collector id="statistics.file.types.open">
...@@ -36,37 +48,50 @@ ...@@ -36,37 +48,50 @@
36 <entry key="CSS" value="2" /> 48 <entry key="CSS" value="2" />
37 <entry key="HTML" value="20" /> 49 <entry key="HTML" value="20" />
38 <entry key="JavaScript" value="1" /> 50 <entry key="JavaScript" value="1" />
39 - <entry key="Python" value="6" /> 51 + <entry key="Python" value="7" />
40 </counts> 52 </counts>
41 </usages-collector> 53 </usages-collector>
42 <usages-collector id="statistics.file.extensions.edit"> 54 <usages-collector id="statistics.file.extensions.edit">
43 <counts> 55 <counts>
44 <entry key="Python Console" value="3" /> 56 <entry key="Python Console" value="3" />
45 - <entry key="html" value="1830" /> 57 + <entry key="html" value="2025" />
46 - <entry key="py" value="1121" /> 58 + <entry key="py" value="1612" />
47 </counts> 59 </counts>
48 </usages-collector> 60 </usages-collector>
49 <usages-collector id="statistics.file.types.edit"> 61 <usages-collector id="statistics.file.types.edit">
50 <counts> 62 <counts>
51 - <entry key="HTML" value="1830" /> 63 + <entry key="HTML" value="2025" />
52 - <entry key="Python" value="1124" /> 64 + <entry key="Python" value="1615" />
53 </counts> 65 </counts>
54 </usages-collector> 66 </usages-collector>
55 </session> 67 </session>
56 </component> 68 </component>
57 <component name="FileEditorManager"> 69 <component name="FileEditorManager">
58 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> 70 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
59 - <file pinned="false" current-in-tab="true"> 71 + <file pinned="false" current-in-tab="false">
60 <entry file="file://$PROJECT_DIR$/app.py"> 72 <entry file="file://$PROJECT_DIR$/app.py">
61 <provider selected="true" editor-type-id="text-editor"> 73 <provider selected="true" editor-type-id="text-editor">
62 - <state relative-caret-position="138"> 74 + <state relative-caret-position="213">
63 - <caret line="79" column="20" lean-forward="true" selection-start-line="79" selection-start-column="20" selection-end-line="79" selection-end-column="20" /> 75 + <caret line="90" lean-forward="true" selection-start-line="90" selection-end-line="90" />
64 <folding> 76 <folding>
65 <element signature="e#1#76#0" expanded="true" /> 77 <element signature="e#1#76#0" expanded="true" />
66 - <marker date="1544196188397" expanded="true" signature="737:1057" ph="..." /> 78 + <marker date="1544235014976" expanded="true" signature="737:1057" ph="..." />
67 - <marker date="1544196188397" expanded="true" signature="1547:1930" ph="..." /> 79 + <marker date="1544235014976" expanded="true" signature="1547:1930" ph="..." />
68 - <marker date="1544196188397" expanded="true" signature="1926:1930" ph="..." /> 80 + <marker date="1544235014976" expanded="true" signature="1926:1930" ph="..." />
69 - <marker date="1544196188397" expanded="true" signature="2706:2709" ph="..." /> 81 + <marker date="1544235014976" expanded="true" signature="2741:3173" ph="..." />
82 + <marker date="1544235014976" expanded="true" signature="3170:3173" ph="..." />
83 + </folding>
84 + </state>
85 + </provider>
86 + </entry>
87 + </file>
88 + <file pinned="false" current-in-tab="false">
89 + <entry file="file://$PROJECT_DIR$/ReservationControl.py">
90 + <provider selected="true" editor-type-id="text-editor">
91 + <state relative-caret-position="415">
92 + <caret line="151" column="43" selection-start-line="151" selection-start-column="22" selection-end-line="151" selection-end-column="43" />
93 + <folding>
94 + <element signature="e#255#269#0" expanded="true" />
70 </folding> 95 </folding>
71 </state> 96 </state>
72 </provider> 97 </provider>
...@@ -75,8 +100,8 @@ ...@@ -75,8 +100,8 @@
75 <file pinned="false" current-in-tab="false"> 100 <file pinned="false" current-in-tab="false">
76 <entry file="file://$PROJECT_DIR$/templates/searchresult.html"> 101 <entry file="file://$PROJECT_DIR$/templates/searchresult.html">
77 <provider selected="true" editor-type-id="text-editor"> 102 <provider selected="true" editor-type-id="text-editor">
78 - <state relative-caret-position="846"> 103 + <state relative-caret-position="213">
79 - <caret line="47" column="55" selection-start-line="47" selection-start-column="55" selection-end-line="47" selection-end-column="55" /> 104 + <caret line="39" column="20" selection-start-line="39" selection-start-column="20" selection-end-line="39" selection-end-column="20" />
80 </state> 105 </state>
81 </provider> 106 </provider>
82 </entry> 107 </entry>
...@@ -84,70 +109,61 @@ ...@@ -84,70 +109,61 @@
84 <file pinned="false" current-in-tab="false"> 109 <file pinned="false" current-in-tab="false">
85 <entry file="file://$PROJECT_DIR$/templates/resv_sch.html"> 110 <entry file="file://$PROJECT_DIR$/templates/resv_sch.html">
86 <provider selected="true" editor-type-id="text-editor"> 111 <provider selected="true" editor-type-id="text-editor">
87 - <state relative-caret-position="359"> 112 + <state relative-caret-position="-651">
88 - <caret line="197" column="55" selection-start-line="197" selection-start-column="55" selection-end-line="197" selection-end-column="55" /> 113 + <caret line="128" column="16" selection-start-line="128" selection-start-column="11" selection-end-line="128" selection-end-column="16" />
89 - <folding>
90 - <element signature="n#style#0;n#img#0;n#body#0;n#html#0;n#!!top" expanded="true" />
91 - </folding>
92 </state> 114 </state>
93 </provider> 115 </provider>
94 </entry> 116 </entry>
95 </file> 117 </file>
96 - <file pinned="false" current-in-tab="false"> 118 + <file pinned="false" current-in-tab="true">
97 - <entry file="file://$PROJECT_DIR$/Users.py"> 119 + <entry file="file://$PROJECT_DIR$/templates/login.html">
98 <provider selected="true" editor-type-id="text-editor"> 120 <provider selected="true" editor-type-id="text-editor">
99 - <state relative-caret-position="1206"> 121 + <state relative-caret-position="180">
100 - <caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" /> 122 + <caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
101 <folding> 123 <folding>
102 - <element signature="e#223#237#0" expanded="true" /> 124 + <element signature="e#1423#1429#0#HTML" expanded="true" />
125 + <element signature="e#1429#1435#0#HTML" expanded="true" />
126 + <element signature="e#1554#1560#0#HTML" expanded="true" />
103 </folding> 127 </folding>
104 </state> 128 </state>
105 </provider> 129 </provider>
106 </entry> 130 </entry>
107 </file> 131 </file>
108 <file pinned="false" current-in-tab="false"> 132 <file pinned="false" current-in-tab="false">
109 - <entry file="file://$PROJECT_DIR$/ReservationControl.py"> 133 + <entry file="file://$PROJECT_DIR$/user_info.py">
110 <provider selected="true" editor-type-id="text-editor"> 134 <provider selected="true" editor-type-id="text-editor">
111 - <state relative-caret-position="288"> 135 + <state relative-caret-position="18">
112 - <caret line="97" column="40" selection-start-line="97" selection-start-column="29" selection-end-line="97" selection-end-column="40" /> 136 + <caret line="1" column="26" selection-start-line="1" selection-start-column="26" selection-end-line="1" selection-end-column="26" />
113 - <folding>
114 - <element signature="e#255#269#0" expanded="true" />
115 - </folding>
116 </state> 137 </state>
117 </provider> 138 </provider>
118 </entry> 139 </entry>
119 </file> 140 </file>
120 <file pinned="false" current-in-tab="false"> 141 <file pinned="false" current-in-tab="false">
121 - <entry file="file://$PROJECT_DIR$/templates/join.html"> 142 + <entry file="file://$PROJECT_DIR$/Users.py">
122 <provider selected="true" editor-type-id="text-editor"> 143 <provider selected="true" editor-type-id="text-editor">
123 - <state relative-caret-position="629"> 144 + <state relative-caret-position="1206">
124 - <caret line="102" column="58" selection-start-line="102" selection-start-column="58" selection-end-line="102" selection-end-column="58" /> 145 + <caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" />
125 <folding> 146 <folding>
126 - <element signature="e#174#201#0#HTML" expanded="true" /> 147 + <element signature="e#223#237#0" expanded="true" />
127 - <element signature="e#321#348#0#HTML" expanded="true" />
128 - <element signature="e#488#515#0#HTML" expanded="true" />
129 - <element signature="e#661#688#0#HTML" expanded="true" />
130 - <element signature="e#794#821#0#HTML" expanded="true" />
131 - <element signature="e#2068#2095#0#HTML" expanded="true" />
132 </folding> 148 </folding>
133 </state> 149 </state>
134 </provider> 150 </provider>
135 </entry> 151 </entry>
136 </file> 152 </file>
137 <file pinned="false" current-in-tab="false"> 153 <file pinned="false" current-in-tab="false">
138 - <entry file="file://$PROJECT_DIR$/templates/resv_view.html"> 154 + <entry file="file://$PROJECT_DIR$/templates/join.html">
139 <provider selected="true" editor-type-id="text-editor"> 155 <provider selected="true" editor-type-id="text-editor">
140 - <state> 156 + <state relative-caret-position="123">
141 - <caret selection-end-line="48" selection-end-column="14" /> 157 + <caret line="79" column="10" selection-start-line="79" selection-start-column="10" selection-end-line="79" selection-end-column="10" />
142 </state> 158 </state>
143 </provider> 159 </provider>
144 </entry> 160 </entry>
145 </file> 161 </file>
146 <file pinned="false" current-in-tab="false"> 162 <file pinned="false" current-in-tab="false">
147 - <entry file="file://$PROJECT_DIR$/templates/login.html"> 163 + <entry file="file://$PROJECT_DIR$/templates/resv_view.html">
148 <provider selected="true" editor-type-id="text-editor"> 164 <provider selected="true" editor-type-id="text-editor">
149 - <state relative-caret-position="449"> 165 + <state relative-caret-position="253">
150 - <caret line="83" column="91" selection-start-line="83" selection-start-column="91" selection-end-line="83" selection-end-column="91" /> 166 + <caret line="37" column="19" lean-forward="true" selection-start-line="37" selection-start-column="19" selection-end-line="37" selection-end-column="19" />
151 </state> 167 </state>
152 </provider> 168 </provider>
153 </entry> 169 </entry>
...@@ -155,8 +171,8 @@ ...@@ -155,8 +171,8 @@
155 <file pinned="false" current-in-tab="false"> 171 <file pinned="false" current-in-tab="false">
156 <entry file="file://$PROJECT_DIR$/templates/main.html"> 172 <entry file="file://$PROJECT_DIR$/templates/main.html">
157 <provider selected="true" editor-type-id="text-editor"> 173 <provider selected="true" editor-type-id="text-editor">
158 - <state relative-caret-position="270"> 174 + <state relative-caret-position="180">
159 - <caret line="18" column="29" selection-start-line="18" selection-start-column="29" selection-end-line="18" selection-end-column="29" /> 175 + <caret line="67" column="27" selection-start-line="67" selection-start-column="27" selection-end-line="67" selection-end-column="27" />
160 </state> 176 </state>
161 </provider> 177 </provider>
162 </entry> 178 </entry>
...@@ -173,28 +189,28 @@ ...@@ -173,28 +189,28 @@
173 </option> 189 </option>
174 </component> 190 </component>
175 <component name="Git.Settings"> 191 <component name="Git.Settings">
176 - <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." /> 192 + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
177 </component> 193 </component>
178 <component name="IdeDocumentHistory"> 194 <component name="IdeDocumentHistory">
179 <option name="CHANGED_PATHS"> 195 <option name="CHANGED_PATHS">
180 <list> 196 <list>
181 <option value="$PROJECT_DIR$/templates/user_info.py" /> 197 <option value="$PROJECT_DIR$/templates/user_info.py" />
182 <option value="$PROJECT_DIR$/Users.py" /> 198 <option value="$PROJECT_DIR$/Users.py" />
183 - <option value="$PROJECT_DIR$/user_info.py" />
184 <option value="$PROJECT_DIR$/static/font.css" /> 199 <option value="$PROJECT_DIR$/static/font.css" />
185 <option value="$PROJECT_DIR$/templates/대여화면1.html" /> 200 <option value="$PROJECT_DIR$/templates/대여화면1.html" />
186 - <option value="$PROJECT_DIR$/ReservationControl.py" />
187 <option value="$PROJECT_DIR$/static/join.html" /> 201 <option value="$PROJECT_DIR$/static/join.html" />
188 <option value="$PROJECT_DIR$/templates/로그인화면.html" /> 202 <option value="$PROJECT_DIR$/templates/로그인화면.html" />
189 - <option value="$PROJECT_DIR$/templates/join.html" />
190 - <option value="$PROJECT_DIR$/templates/main.html" />
191 <option value="$PROJECT_DIR$/templates/myhome.html" /> 203 <option value="$PROJECT_DIR$/templates/myhome.html" />
192 - <option value="$PROJECT_DIR$/templates/resv_view.html" />
193 - <option value="$PROJECT_DIR$/templates/login.html" />
194 - <option value="$PROJECT_DIR$/templates/resv_sch.html" />
195 <option value="$PROJECT_DIR$/templates/search/result.html" /> 204 <option value="$PROJECT_DIR$/templates/search/result.html" />
196 - <option value="$PROJECT_DIR$/templates/searchresult.html" /> 205 + <option value="$PROJECT_DIR$/user_info.py" />
206 + <option value="$PROJECT_DIR$/templates/main.html" />
197 <option value="$PROJECT_DIR$/app.py" /> 207 <option value="$PROJECT_DIR$/app.py" />
208 + <option value="$PROJECT_DIR$/ReservationControl.py" />
209 + <option value="$PROJECT_DIR$/templates/resv_view.html" />
210 + <option value="$PROJECT_DIR$/templates/join.html" />
211 + <option value="$PROJECT_DIR$/templates/searchresult.html" />
212 + <option value="$PROJECT_DIR$/templates/resv_sch.html" />
213 + <option value="$PROJECT_DIR$/templates/login.html" />
198 </list> 214 </list>
199 </option> 215 </option>
200 </component> 216 </component>
...@@ -211,7 +227,7 @@ ...@@ -211,7 +227,7 @@
211 </component> 227 </component>
212 <component name="ProjectFrameBounds"> 228 <component name="ProjectFrameBounds">
213 <option name="x" value="-7" /> 229 <option name="x" value="-7" />
214 - <option name="width" value="974" /> 230 + <option name="width" value="917" />
215 <option name="height" value="1057" /> 231 <option name="height" value="1057" />
216 </component> 232 </component>
217 <component name="ProjectInspectionProfilesVisibleTreeState"> 233 <component name="ProjectInspectionProfilesVisibleTreeState">
...@@ -236,7 +252,6 @@ ...@@ -236,7 +252,6 @@
236 <foldersAlwaysOnTop value="true" /> 252 <foldersAlwaysOnTop value="true" />
237 </navigator> 253 </navigator>
238 <panes> 254 <panes>
239 - <pane id="Scope" />
240 <pane id="ProjectPane"> 255 <pane id="ProjectPane">
241 <subPane> 256 <subPane>
242 <expand> 257 <expand>
...@@ -264,6 +279,7 @@ ...@@ -264,6 +279,7 @@
264 <select /> 279 <select />
265 </subPane> 280 </subPane>
266 </pane> 281 </pane>
282 + <pane id="Scope" />
267 </panes> 283 </panes>
268 </component> 284 </component>
269 <component name="PropertiesComponent"> 285 <component name="PropertiesComponent">
...@@ -273,6 +289,7 @@ ...@@ -273,6 +289,7 @@
273 <property name="list.type.of.created.stylesheet" value="CSS" /> 289 <property name="list.type.of.created.stylesheet" value="CSS" />
274 <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> 290 <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
275 <property name="nodejs_npm_path_reset_for_default_project" value="true" /> 291 <property name="nodejs_npm_path_reset_for_default_project" value="true" />
292 + <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
276 </component> 293 </component>
277 <component name="RecentsManager"> 294 <component name="RecentsManager">
278 <key name="MoveFile.RECENT_KEYS"> 295 <key name="MoveFile.RECENT_KEYS">
...@@ -326,21 +343,21 @@ ...@@ -326,21 +343,21 @@
326 <servers /> 343 <servers />
327 </component> 344 </component>
328 <component name="ToolWindowManager"> 345 <component name="ToolWindowManager">
329 - <frame x="-7" y="0" width="974" height="1057" extended-state="0" /> 346 + <frame x="-7" y="0" width="917" height="1057" extended-state="0" />
330 <editor active="true" /> 347 <editor active="true" />
331 <layout> 348 <layout>
332 <window_info id="Favorites" order="0" side_tool="true" /> 349 <window_info id="Favorites" order="0" side_tool="true" />
333 - <window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.24617068" /> 350 + <window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.26837805" />
334 <window_info id="Structure" order="2" side_tool="true" weight="0.25" /> 351 <window_info id="Structure" order="2" side_tool="true" weight="0.25" />
335 <window_info anchor="bottom" id="Database Changes" order="0" show_stripe_button="false" /> 352 <window_info anchor="bottom" id="Database Changes" order="0" show_stripe_button="false" />
336 <window_info anchor="bottom" id="Terminal" order="1" weight="0.311493" /> 353 <window_info anchor="bottom" id="Terminal" order="1" weight="0.311493" />
337 - <window_info anchor="bottom" id="Event Log" order="2" sideWeight="0.50053304" side_tool="true" weight="0.32975295" /> 354 + <window_info anchor="bottom" id="Event Log" order="2" sideWeight="0.50053304" side_tool="true" weight="0.32867885" />
338 <window_info anchor="bottom" id="Version Control" order="3" show_stripe_button="false" /> 355 <window_info anchor="bottom" id="Version Control" order="3" show_stripe_button="false" />
339 - <window_info anchor="bottom" id="Python Console" order="4" weight="0.32954547" /> 356 + <window_info anchor="bottom" id="Python Console" order="4" sideWeight="0.49946696" weight="0.32867885" />
340 <window_info anchor="bottom" id="Docker" order="5" show_stripe_button="false" /> 357 <window_info anchor="bottom" id="Docker" order="5" show_stripe_button="false" />
341 <window_info anchor="bottom" id="Message" order="6" /> 358 <window_info anchor="bottom" id="Message" order="6" />
342 <window_info anchor="bottom" id="Find" order="7" /> 359 <window_info anchor="bottom" id="Find" order="7" />
343 - <window_info anchor="bottom" id="Run" order="8" sideWeight="0.49946696" weight="0.33188722" /> 360 + <window_info active="true" anchor="bottom" id="Run" order="8" sideWeight="0.49946696" visible="true" weight="0.3340564" />
344 <window_info anchor="bottom" id="Debug" order="9" weight="0.4" /> 361 <window_info anchor="bottom" id="Debug" order="9" weight="0.4" />
345 <window_info anchor="bottom" id="Cvs" order="10" weight="0.25" /> 362 <window_info anchor="bottom" id="Cvs" order="10" weight="0.25" />
346 <window_info anchor="bottom" id="Inspection" order="11" weight="0.4" /> 363 <window_info anchor="bottom" id="Inspection" order="11" weight="0.4" />
...@@ -358,14 +375,12 @@ ...@@ -358,14 +375,12 @@
358 <component name="VcsContentAnnotationSettings"> 375 <component name="VcsContentAnnotationSettings">
359 <option name="myLimit" value="2678400000" /> 376 <option name="myLimit" value="2678400000" />
360 </component> 377 </component>
378 + <component name="VcsManagerConfiguration">
379 + <ignored-roots>
380 + <path value="$PROJECT_DIR$/.." />
381 + </ignored-roots>
382 + </component>
361 <component name="editorHistoryManager"> 383 <component name="editorHistoryManager">
362 - <entry file="file://$PROJECT_DIR$/user_info.py">
363 - <provider selected="true" editor-type-id="text-editor">
364 - <state relative-caret-position="18">
365 - <caret line="1" column="27" selection-start-line="1" selection-start-column="27" selection-end-line="1" selection-end-column="27" />
366 - </state>
367 - </provider>
368 - </entry>
369 <entry file="file://$PROJECT_DIR$/static/font.css"> 384 <entry file="file://$PROJECT_DIR$/static/font.css">
370 <provider selected="true" editor-type-id="text-editor"> 385 <provider selected="true" editor-type-id="text-editor">
371 <state relative-caret-position="18"> 386 <state relative-caret-position="18">
...@@ -380,13 +395,7 @@ ...@@ -380,13 +395,7 @@
380 </state> 395 </state>
381 </provider> 396 </provider>
382 </entry> 397 </entry>
383 - <entry file="file://$PROJECT_DIR$/templates/대여화면2.html"> 398 + <entry file="file://$PROJECT_DIR$/templates/대여화면2.html" />
384 - <provider selected="true" editor-type-id="text-editor">
385 - <state relative-caret-position="-468">
386 - <caret line="7" selection-start-line="7" selection-end-line="39" selection-end-column="23" />
387 - </state>
388 - </provider>
389 - </entry>
390 <entry file="file://$PROJECT_DIR$/static/toast/toast.css"> 399 <entry file="file://$PROJECT_DIR$/static/toast/toast.css">
391 <provider selected="true" editor-type-id="text-editor"> 400 <provider selected="true" editor-type-id="text-editor">
392 <state relative-caret-position="108"> 401 <state relative-caret-position="108">
...@@ -401,13 +410,7 @@ ...@@ -401,13 +410,7 @@
401 </state> 410 </state>
402 </provider> 411 </provider>
403 </entry> 412 </entry>
404 - <entry file="file://$PROJECT_DIR$/templates/대여화면1.html"> 413 + <entry file="file://$PROJECT_DIR$/templates/대여화면1.html" />
405 - <provider selected="true" editor-type-id="text-editor">
406 - <state relative-caret-position="180">
407 - <caret line="10" column="5" lean-forward="true" selection-start-line="10" selection-start-column="5" selection-end-line="10" selection-end-column="5" />
408 - </state>
409 - </provider>
410 - </entry>
411 <entry file="file://$PROJECT_DIR$/templates/myhome.html"> 414 <entry file="file://$PROJECT_DIR$/templates/myhome.html">
412 <provider selected="true" editor-type-id="text-editor"> 415 <provider selected="true" editor-type-id="text-editor">
413 <state relative-caret-position="72"> 416 <state relative-caret-position="72">
...@@ -415,110 +418,94 @@ ...@@ -415,110 +418,94 @@
415 </state> 418 </state>
416 </provider> 419 </provider>
417 </entry> 420 </entry>
418 - <entry file="file://$PROJECT_DIR$/templates/로그인화면.html"> 421 + <entry file="file://$PROJECT_DIR$/templates/로그인화면.html" />
422 + <entry file="file://$PROJECT_DIR$/templates/search/result.html" />
423 + <entry file="file://$PROJECT_DIR$/templates/search.html" />
424 + <entry file="file://$PROJECT_DIR$/templates/main.html">
419 <provider selected="true" editor-type-id="text-editor"> 425 <provider selected="true" editor-type-id="text-editor">
420 - <state relative-caret-position="377"> 426 + <state relative-caret-position="180">
421 - <caret line="84" column="91" lean-forward="true" selection-start-line="73" selection-end-line="84" selection-end-column="91" /> 427 + <caret line="67" column="27" selection-start-line="67" selection-start-column="27" selection-end-line="67" selection-end-column="27" />
422 </state> 428 </state>
423 </provider> 429 </provider>
424 </entry> 430 </entry>
425 - <entry file="file://$PROJECT_DIR$/templates/login.html"> 431 + <entry file="file://$PROJECT_DIR$/templates/resv_view.html">
426 <provider selected="true" editor-type-id="text-editor"> 432 <provider selected="true" editor-type-id="text-editor">
427 - <state relative-caret-position="449"> 433 + <state relative-caret-position="253">
428 - <caret line="83" column="91" selection-start-line="83" selection-start-column="91" selection-end-line="83" selection-end-column="91" /> 434 + <caret line="37" column="19" lean-forward="true" selection-start-line="37" selection-start-column="19" selection-end-line="37" selection-end-column="19" />
429 </state> 435 </state>
430 </provider> 436 </provider>
431 </entry> 437 </entry>
432 - <entry file="file://$PROJECT_DIR$/templates/main.html"> 438 + <entry file="file://$PROJECT_DIR$/templates/join.html">
433 <provider selected="true" editor-type-id="text-editor"> 439 <provider selected="true" editor-type-id="text-editor">
434 - <state relative-caret-position="270"> 440 + <state relative-caret-position="123">
435 - <caret line="18" column="29" selection-start-line="18" selection-start-column="29" selection-end-line="18" selection-end-column="29" /> 441 + <caret line="79" column="10" selection-start-line="79" selection-start-column="10" selection-end-line="79" selection-end-column="10" />
436 </state> 442 </state>
437 </provider> 443 </provider>
438 </entry> 444 </entry>
439 - <entry file="file://$PROJECT_DIR$/templates/join.html"> 445 + <entry file="file://$PROJECT_DIR$/Users.py">
440 <provider selected="true" editor-type-id="text-editor"> 446 <provider selected="true" editor-type-id="text-editor">
441 - <state relative-caret-position="629"> 447 + <state relative-caret-position="1206">
442 - <caret line="102" column="58" selection-start-line="102" selection-start-column="58" selection-end-line="102" selection-end-column="58" /> 448 + <caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" />
443 <folding> 449 <folding>
444 - <element signature="e#174#201#0#HTML" expanded="true" /> 450 + <element signature="e#223#237#0" expanded="true" />
445 - <element signature="e#321#348#0#HTML" expanded="true" />
446 - <element signature="e#488#515#0#HTML" expanded="true" />
447 - <element signature="e#661#688#0#HTML" expanded="true" />
448 - <element signature="e#794#821#0#HTML" expanded="true" />
449 - <element signature="e#2068#2095#0#HTML" expanded="true" />
450 </folding> 451 </folding>
451 </state> 452 </state>
452 </provider> 453 </provider>
453 </entry> 454 </entry>
454 - <entry file="file://$PROJECT_DIR$/templates/resv_view.html"> 455 + <entry file="file://$PROJECT_DIR$/user_info.py">
455 - <provider selected="true" editor-type-id="text-editor">
456 - <state>
457 - <caret selection-end-line="48" selection-end-column="14" />
458 - </state>
459 - </provider>
460 - </entry>
461 - <entry file="file://$PROJECT_DIR$/templates/search/result.html">
462 <provider selected="true" editor-type-id="text-editor"> 456 <provider selected="true" editor-type-id="text-editor">
463 - <state relative-caret-position="72"> 457 + <state relative-caret-position="18">
464 - <caret line="4" column="16" selection-start-line="4" selection-start-column="11" selection-end-line="4" selection-end-column="16" /> 458 + <caret line="1" column="26" selection-start-line="1" selection-start-column="26" selection-end-line="1" selection-end-column="26" />
465 </state> 459 </state>
466 </provider> 460 </provider>
467 </entry> 461 </entry>
468 - <entry file="file://$PROJECT_DIR$/templates/search.html"> 462 + <entry file="file://$PROJECT_DIR$/templates/searchresult.html">
469 <provider selected="true" editor-type-id="text-editor"> 463 <provider selected="true" editor-type-id="text-editor">
470 - <state relative-caret-position="252"> 464 + <state relative-caret-position="213">
471 - <caret line="14" column="14" lean-forward="true" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" /> 465 + <caret line="39" column="20" selection-start-line="39" selection-start-column="20" selection-end-line="39" selection-end-column="20" />
472 </state> 466 </state>
473 </provider> 467 </provider>
474 </entry> 468 </entry>
475 <entry file="file://$PROJECT_DIR$/ReservationControl.py"> 469 <entry file="file://$PROJECT_DIR$/ReservationControl.py">
476 <provider selected="true" editor-type-id="text-editor"> 470 <provider selected="true" editor-type-id="text-editor">
477 - <state relative-caret-position="288"> 471 + <state relative-caret-position="415">
478 - <caret line="97" column="40" selection-start-line="97" selection-start-column="29" selection-end-line="97" selection-end-column="40" /> 472 + <caret line="151" column="43" selection-start-line="151" selection-start-column="22" selection-end-line="151" selection-end-column="43" />
479 <folding> 473 <folding>
480 <element signature="e#255#269#0" expanded="true" /> 474 <element signature="e#255#269#0" expanded="true" />
481 </folding> 475 </folding>
482 </state> 476 </state>
483 </provider> 477 </provider>
484 </entry> 478 </entry>
485 - <entry file="file://$PROJECT_DIR$/Users.py"> 479 + <entry file="file://$PROJECT_DIR$/app.py">
486 <provider selected="true" editor-type-id="text-editor"> 480 <provider selected="true" editor-type-id="text-editor">
487 - <state relative-caret-position="1206"> 481 + <state relative-caret-position="213">
488 - <caret line="67" column="50" selection-start-line="67" selection-start-column="50" selection-end-line="67" selection-end-column="50" /> 482 + <caret line="90" lean-forward="true" selection-start-line="90" selection-end-line="90" />
489 <folding> 483 <folding>
490 - <element signature="e#223#237#0" expanded="true" /> 484 + <element signature="e#1#76#0" expanded="true" />
485 + <marker date="1544235014976" expanded="true" signature="737:1057" ph="..." />
486 + <marker date="1544235014976" expanded="true" signature="1547:1930" ph="..." />
487 + <marker date="1544235014976" expanded="true" signature="1926:1930" ph="..." />
488 + <marker date="1544235014976" expanded="true" signature="2741:3173" ph="..." />
489 + <marker date="1544235014976" expanded="true" signature="3170:3173" ph="..." />
491 </folding> 490 </folding>
492 </state> 491 </state>
493 </provider> 492 </provider>
494 </entry> 493 </entry>
495 <entry file="file://$PROJECT_DIR$/templates/resv_sch.html"> 494 <entry file="file://$PROJECT_DIR$/templates/resv_sch.html">
496 <provider selected="true" editor-type-id="text-editor"> 495 <provider selected="true" editor-type-id="text-editor">
497 - <state relative-caret-position="359"> 496 + <state relative-caret-position="-651">
498 - <caret line="197" column="55" selection-start-line="197" selection-start-column="55" selection-end-line="197" selection-end-column="55" /> 497 + <caret line="128" column="16" selection-start-line="128" selection-start-column="11" selection-end-line="128" selection-end-column="16" />
499 - <folding>
500 - <element signature="n#style#0;n#img#0;n#body#0;n#html#0;n#!!top" expanded="true" />
501 - </folding>
502 </state> 498 </state>
503 </provider> 499 </provider>
504 </entry> 500 </entry>
505 - <entry file="file://$PROJECT_DIR$/templates/searchresult.html"> 501 + <entry file="file://$PROJECT_DIR$/templates/login.html">
506 - <provider selected="true" editor-type-id="text-editor">
507 - <state relative-caret-position="846">
508 - <caret line="47" column="55" selection-start-line="47" selection-start-column="55" selection-end-line="47" selection-end-column="55" />
509 - </state>
510 - </provider>
511 - </entry>
512 - <entry file="file://$PROJECT_DIR$/app.py">
513 <provider selected="true" editor-type-id="text-editor"> 502 <provider selected="true" editor-type-id="text-editor">
514 - <state relative-caret-position="138"> 503 + <state relative-caret-position="180">
515 - <caret line="79" column="20" lean-forward="true" selection-start-line="79" selection-start-column="20" selection-end-line="79" selection-end-column="20" /> 504 + <caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
516 <folding> 505 <folding>
517 - <element signature="e#1#76#0" expanded="true" /> 506 + <element signature="e#1423#1429#0#HTML" expanded="true" />
518 - <marker date="1544196188397" expanded="true" signature="737:1057" ph="..." /> 507 + <element signature="e#1429#1435#0#HTML" expanded="true" />
519 - <marker date="1544196188397" expanded="true" signature="1547:1930" ph="..." /> 508 + <element signature="e#1554#1560#0#HTML" expanded="true" />
520 - <marker date="1544196188397" expanded="true" signature="1926:1930" ph="..." />
521 - <marker date="1544196188397" expanded="true" signature="2706:2709" ph="..." />
522 </folding> 509 </folding>
523 </state> 510 </state>
524 </provider> 511 </provider>
......
1 -#-*- coding: utf-8 -*- 1 +# -*- coding: utf-8 -*-
2 # 한글 인코딩을 위한 주석입니다. 2 # 한글 인코딩을 위한 주석입니다.
3 3
4 # 사전설정: 4 # 사전설정:
5 - # pymysql 패키지가 있어야 합니다. 5 +# pymysql 패키지가 있어야 합니다.
6 - # pip install pymysql 6 +# pip install pymysql
7 - # 보안상 user_info에서 DB id, password를 가져옵니다. 7 +# 보안상 user_info에서 DB id, password를 가져옵니다.
8 - # user_info.py에서 DB id, password를 설정하고 사용해주세요. 8 +# user_info.py에서 DB id, password를 설정하고 사용해주세요.
9 # 외부에서 사용법: 9 # 외부에서 사용법:
10 - # from ReservationControl import * 10 +# from ReservationControl import *
11 11
12 import pymysql 12 import pymysql
13 import user_info 13 import user_info
14 import datetime 14 import datetime
15 15
16 16
17 -
18 -
19 -
20 -
21 -
22 -
23 # getReservations - 대여현황반환 함수 17 # getReservations - 대여현황반환 함수
24 # input: 18 # input:
25 - # string user_id 19 +# string user_id
26 # output: 20 # output:
27 - # 성공시 : tuple형태로 반환 => ( (1 ,"steven123", 7, "전자정보대학", "136호", 10, datetime.datetime(2018,12,5,12,0,0), datetime.datetime(2018,12,5,12,10,0), ), ) 21 +# 성공시 : tuple형태로 반환 => ( (1 ,"steven123", 7, "전자정보대학", "136호", 10, datetime.datetime(2018,12,5,12,0,0), datetime.datetime(2018,12,5,12,10,0), ), )
28 - # 순서 : reservations_id, user_id, facility_id, location, location_detail, capacity, start_time, end_time 22 +# 순서 : reservations_id, user_id, facility_id, location, location_detail, capacity, start_time, end_time
29 23
30 - # 실패시 : tuple형태로 반환 => ( ("SQL Error!", ), ) 24 +# 실패시 : result[0][0]="SQL Error!"인 tuple 반환 => ( ("SQL Error!", ), )
31 # 사용예: 25 # 사용예:
32 - # result = getReservations("khucse123") 26 +# result = getReservations("khucse123")
33 - # reservation_start_time = result[0][3] 27 +# reservation_start_time = result[0][3]
34 28
35 def getReservations(user_id): 29 def getReservations(user_id):
36 try: 30 try:
37 - db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd, db='FRS', charset='utf8') 31 + db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
32 + db='FRS', charset='utf8')
38 curs = db.cursor() 33 curs = db.cursor()
39 34
40 - #curs.execute("select * from reservations where user_id=%s", user_id) 35 + # curs.execute("select * from reservations where user_id=%s", user_id)
41 - 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) 36 + curs.execute(
37 + "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;",
38 + user_id)
42 result = curs.fetchall() 39 result = curs.fetchall()
43 print("Fetch Success!") 40 print("Fetch Success!")
44 return result 41 return result
...@@ -52,18 +49,19 @@ def getReservations(user_id): ...@@ -52,18 +49,19 @@ def getReservations(user_id):
52 49
53 # deleteReservations - 대여현황삭제 함수 50 # deleteReservations - 대여현황삭제 함수
54 # input: 51 # input:
55 - # int reservations_id 52 +# int reservations_id
56 # output: 53 # output:
57 - # 성공시 : True 54 +# 성공시 : True
58 - # 실패시 : False 55 +# 실패시 : False
59 # 사용예: 56 # 사용예:
60 - # deleteReservations(5) 57 +# deleteReservations(5)
61 # 주의사항: 58 # 주의사항:
62 - # 테스트환경에서 없는 reservations_id를 넣으면 에러가 날 수 있음 59 +# 테스트환경에서 없는 reservations_id를 넣으면 에러가 날 수 있음
63 60
64 def deleteReservations(reservations_id): 61 def deleteReservations(reservations_id):
65 try: 62 try:
66 - db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd, db='FRS', charset='utf8') 63 + db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
64 + db='FRS', charset='utf8')
67 curs = db.cursor() 65 curs = db.cursor()
68 66
69 curs.execute("delete from reservations where reservations_id=%s", reservations_id) 67 curs.execute("delete from reservations where reservations_id=%s", reservations_id)
...@@ -80,27 +78,29 @@ def deleteReservations(reservations_id): ...@@ -80,27 +78,29 @@ def deleteReservations(reservations_id):
80 78
81 # addReservations - 대여현황추가 함수 79 # addReservations - 대여현황추가 함수
82 # input: 80 # input:
83 - # string user_id 81 +# string user_id
84 - # int facility_id 82 +# int facility_id
85 - # datetime.datetime start_time 83 +# datetime.datetime start_time
86 - # datetime.datetime end_time 84 +# datetime.datetime end_time
87 # output: 85 # output:
88 - # 성공시 : True 86 +# 성공시 : True
89 - # 실패시 : False 87 +# 실패시 : False
90 # 사용예: 88 # 사용예:
91 - # tstart = datetime.datetime(2018,12,5,0,11,12) 89 +# tstart = datetime.datetime(2018,12,5,0,11,12)
92 - # tend = datetime.datetime(2018,12,5,0,20,12) 90 +# tend = datetime.datetime(2018,12,5,0,20,12)
93 - # addReservations("khucse123", 6, tstart, tend) 91 +# addReservations("khucse123", 6, tstart, tend)
94 # 주의사항: 92 # 주의사항:
95 - # 테스트환경에서 없는 user_id를 넣으면 에러가 날 수 있음 93 +# 테스트환경에서 없는 user_id를 넣으면 에러가 날 수 있음
96 - # 테스트환경에서 없는 facility_id를 넣으면 에러가 날 수 있음 94 +# 테스트환경에서 없는 facility_id를 넣으면 에러가 날 수 있음
97 95
98 def addReservations(user_id, facility_id, start_time, end_time): 96 def addReservations(user_id, facility_id, start_time, end_time):
99 try: 97 try:
100 - db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd, db='FRS', charset='utf8') 98 + db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
99 + db='FRS', charset='utf8')
101 curs = db.cursor() 100 curs = db.cursor()
102 101
103 - 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)) 102 + curs.execute("insert into reservations (user_id, facility_id, start_time, end_time) values (%s,%s,%s,%s)",
103 + (user_id, facility_id, start_time, end_time))
104 db.commit() 104 db.commit()
105 print("Add Reservation Success!") 105 print("Add Reservation Success!")
106 return True 106 return True
...@@ -111,3 +111,49 @@ def addReservations(user_id, facility_id, start_time, end_time): ...@@ -111,3 +111,49 @@ def addReservations(user_id, facility_id, start_time, end_time):
111 finally: 111 finally:
112 db.close() 112 db.close()
113 113
114 +
115 +# getAvailableFacilities - 사용가능시설물 반환함수
116 +# input:
117 +# string location
118 +# int capacity
119 +# datetime.datetime start_time
120 +# datetime.datetime end_time
121 +# output:
122 +# 성공시 : tuple형태로 반환 => ( (1, "전자정보대학", "B01호", 40, "강의실", "빔프로젝터", ), )
123 +# 순서 : facility_id, location, location_detail, capacity, facility_type, equipment
124 +# 사용가능한 시설물이 없을 시 : result[0][0]="NoAvailableFacilites"인 tuple 반환 => ( ("NoAvailableFacilites", ), )
125 +
126 +# 실패시 : result[0][0]="SQL Error!"인 tuple 반환 => ( ("SQL Error!", ), )
127 +# 사용예:
128 +# tstart = datetime.datetime(2018,12,5,12,11,12)
129 +# tend = datetime.datetime(2018,12,5,14,20,12)
130 +# result = getAvailableFacilities("전자정보대학", 40, tstart, tend)
131 +# facility_id = result[0][0]
132 +
133 +def getAvailableFacilities(location, capacity, start_time, end_time):
134 + try:
135 + db = pymysql.connect(host='1.201.139.92', port=3306, user=user_info.user_id, password=user_info.user_passwd,
136 + db='FRS', charset='utf8')
137 + curs = db.cursor()
138 +
139 + curs.execute(
140 + "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;",
141 + (start_time, start_time, end_time, end_time, start_time, end_time, location, capacity))
142 +
143 + result = curs.fetchall()
144 + print("Fetch Success!")
145 +
146 + # 사용 가능한 시설물이 있을 경우
147 + if (len(result) != 0):
148 + return result
149 + # 사용 가능한 시설물이 없을 경우
150 + else:
151 + print("No Available Facilities")
152 + return (("NoAvailableFacilities",),)
153 +
154 + except:
155 + print("SQL Error!")
156 + return (("SQL Error!",),)
157 +
158 + finally:
159 + db.close()
......
...@@ -79,22 +79,30 @@ def book(): ...@@ -79,22 +79,30 @@ def book():
79 @app.route('/search/result', methods=['POST']) 79 @app.route('/search/result', methods=['POST'])
80 def search_result(): 80 def search_result():
81 searchdata = request.form 81 searchdata = request.form
82 - print(searchdata)
83 starttime = datetime.strptime(searchdata.get('starttime'),'%Y-%m-%dT%H:%M') 82 starttime = datetime.strptime(searchdata.get('starttime'),'%Y-%m-%dT%H:%M')
84 endtime = datetime.strptime(searchdata.get('endtime'),'%Y-%m-%dT%H:%M') 83 endtime = datetime.strptime(searchdata.get('endtime'),'%Y-%m-%dT%H:%M')
85 - print(starttime,endtime) 84 + if(starttime.strftime('%Y%m%d') == endtime.strftime('%Y%m%d')):
86 - if searchdata.get('search'): 85 + result = getAvailableFacilities(searchdata.get('deptid'),searchdata.get('capacity'),starttime,endtime)
87 - # searchdata.get('searchinput') 얻어와서 sql 검색 쿼리 86 + print(result)
88 - pass 87 + return render_template("searchresult.html", resv_list=result, starttime=starttime, endtime=endtime)
89 - elif searchdata.get('cat'): 88 + else:
90 - # searchdata.get('searchinput') 얻어와서 sql 검색 쿼리 89 + flash("2일 이상의 일정으로 예약 불가합니다")
91 - pass 90 + return redirect("/search")
92 - return render_template("searchresult.html", result) 91 +
93 92
94 93
95 @app.route('/search/resv', methods=['POST']) 94 @app.route('/search/resv', methods=['POST'])
96 def book_confirm(): 95 def book_confirm():
97 - pass #search_result 페이지에서 JS로든 요청 보내면 예약 처리 96 + book_query=request.form
97 + print(book_query)
98 + starttime = datetime.strptime(book_query.get('start_time'), '%Y-%m-%d%H:%M')
99 + endtime = datetime.strptime(book_query.get('end_time'), '%Y-%m-%d%H:%M')
100 + if addReservations(session['ID'],book_query.get('fac_id'),starttime,endtime):
101 + flash("예약에 성공했습니다")
102 + return redirect('/myhome')
103 + else:
104 + flash("예약에 실패했습니다.")
105 + return redirect('/search')
98 106
99 107
100 108
......
...@@ -77,7 +77,7 @@ input{ ...@@ -77,7 +77,7 @@ input{
77 </style> 77 </style>
78 {% endblock %} 78 {% endblock %}
79 {% block content %} 79 {% block content %}
80 -<img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/> 80 +<a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a>
81 <form action="/join/confirm" method="post"> 81 <form action="/join/confirm" method="post">
82 82
83 <br><br> 83 <br><br>
......
...@@ -22,6 +22,7 @@ input[type=text] { ...@@ -22,6 +22,7 @@ input[type=text] {
22 transition: 0.5s; 22 transition: 0.5s;
23 outline: none; 23 outline: none;
24 font-family: 'MyWebFont'; 24 font-family: 'MyWebFont';
25 + min-width: 200px;
25 } 26 }
26 input[type=text]:focus { 27 input[type=text]:focus {
27 border: 3px solid #555; 28 border: 3px solid #555;
...@@ -37,6 +38,7 @@ input[type=password] { ...@@ -37,6 +38,7 @@ input[type=password] {
37 outline: none; 38 outline: none;
38 margin-right: 7px; 39 margin-right: 7px;
39 font-family: 'MyWebFont'; 40 font-family: 'MyWebFont';
41 + min-width: 200px;
40 } 42 }
41 input[type=password]:focus { 43 input[type=password]:focus {
42 border: 3px solid #555; 44 border: 3px solid #555;
......
...@@ -64,7 +64,7 @@ img { ...@@ -64,7 +64,7 @@ img {
64 </style> 64 </style>
65 {% block style %}{% endblock %} 65 {% block style %}{% endblock %}
66 66
67 -<body > 67 +<body>
68 {% with messages = get_flashed_messages(with_categories=true) %} 68 {% with messages = get_flashed_messages(with_categories=true) %}
69 {% if messages %} 69 {% if messages %}
70 {% for category, message in messages %} 70 {% for category, message in messages %}
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
6 <style> 6 <style>
7 body { 7 body {
8 background-color: rgb(230, 243, 255); 8 background-color: rgb(230, 243, 255);
9 - text-align: center;
10 } 9 }
11 10
12 #select1 { 11 #select1 {
...@@ -146,7 +145,7 @@ select{ ...@@ -146,7 +145,7 @@ select{
146 border-radius: 5px; 145 border-radius: 5px;
147 } 146 }
148 #maxpeople{ 147 #maxpeople{
149 - width: 55%; 148 + width: 60%;
150 padding: 12px 20px; 149 padding: 12px 20px;
151 box-sizing: border-box; 150 box-sizing: border-box;
152 border: 3px solid #ccc; 151 border: 3px solid #ccc;
...@@ -169,29 +168,38 @@ h3 { ...@@ -169,29 +168,38 @@ h3 {
169 margin-top: 15px; 168 margin-top: 15px;
170 169
171 } 170 }
171 +</style>
172 {% endblock %} 172 {% endblock %}
173 {% block content %} 173 {% block content %}
174 -</style>
175 174
176 -<body> 175 +
177 176
178 <br> 177 <br>
179 -<img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/> 178 +<a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a>
180 <div id="wrapper"> 179 <div id="wrapper">
181 <form action="/search/result" method="post"> 180 <form action="/search/result" method="post">
182 181
183 <br><br> 182 <br><br>
184 183
185 -<div class="item"><H3>부서 ID</H3> 184 +<div class="item"><H3>건물</H3>
186 - <select name="deptid" required><option value="1">전자정보대학</option> 185 + <select name="deptid" required><option value="전자정보대학">전자정보대학</option>
187 - <option value="2">외국어대학</option> 186 + <option value="외국어대학">외국어대학</option>
188 - <option value="3">공과대학</option> 187 + <option value="공과대학">공과대학</option>
189 - <option value="4">예술디자인대학</option> 188 + <option value="예술,디자인대학">예술,디자인대학</option>
190 - <option value="5">체육대학</option> 189 + <option value="체육대학">체육대학</option>
191 - <option value="6">국제대학</option> 190 + <option value="국제대학">국제대학</option>
192 - <option value="7">대학본부</option></select> 191 + <option value="1호관 테니스장">1호관 테니스장</option>
192 + <option value="3호관 운동장">3호관 운동장</option>
193 + <option value="3호관 테니스장">3호관 테니스장</option>
194 + <option value="6호관 야구장">6호관 야구장</option>
195 + <option value="6호관 운동장">6호관 운동장</option>
196 + <option value="골프 연습장">골프 연습장</option>
197 + <option value="6호관 운동장">6호관 운동장</option>
198 + <option value="수영장">수영장</option>
199 + <option value="필드 하키장(공과대학 앞)">필드 하키장(공과대학 앞)</option>
200 + <option value="학생회관">학생회관</option></select>
193 <br></div> 201 <br></div>
194 - <center><div class="item"><H3>사용 인원 수</H3><input type="number" id="maxpeople" name="quantity" min="1" max="200"></div></center><br> 202 + <center><div class="item"><H3>사용 인원 수</H3><input type="number" id="maxpeople" name="capacity" min="1" max="200"></div></center><br>
195 203
196 204
197 <center>시작 시간<br><br><input type="datetime-local" name="starttime"></center><br> 205 <center>시작 시간<br><br><input type="datetime-local" name="starttime"></center><br>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
36 </style> 36 </style>
37 {% endblock %} 37 {% endblock %}
38 {% block content %} 38 {% block content %}
39 - <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/><br> 39 + <a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a>
40 <h1>예약 현황</h1> 40 <h1>예약 현황</h1>
41 {% if not resv_list %} 41 {% if not resv_list %}
42 <p>예약 데이터가 없습니다.</p> 42 <p>예약 데이터가 없습니다.</p>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
6 {% block style %} 6 {% block style %}
7 <style> 7 <style>
8 #list_item{ 8 #list_item{
9 - width: 275px; 9 + width: 263px;
10 height: 100px; 10 height: 100px;
11 font-size:20px; 11 font-size:20px;
12 font-family: '배달의민족 도현'; 12 font-family: '배달의민족 도현';
...@@ -17,17 +17,18 @@ ...@@ -17,17 +17,18 @@
17 vertical-align: bottom; 17 vertical-align: bottom;
18 line-height: 150%; 18 line-height: 150%;
19 display: inline-block; 19 display: inline-block;
20 + padding-left: 7px;
20 } 21 }
21 #delete_btn{ 22 #delete_btn{
22 - width: 47px; 23 + width: 60px;
23 height: 110px; 24 height: 110px;
24 box-sizing: border-box; 25 box-sizing: border-box;
25 font-size: 20px; 26 font-size: 20px;
26 font-family: '배달의민족 도현'; 27 font-family: '배달의민족 도현';
27 - background-color: rgb(255, 101, 101); 28 + background-color: rgb(90, 200, 90);
28 color: white; 29 color: white;
29 border-radius:5px; 30 border-radius:5px;
30 - border: solid 5px rgb(255, 101, 101); 31 + border: solid 5px rgb(90, 200, 90);
31 float: right; 32 float: right;
32 display: inline-block; 33 display: inline-block;
33 34
...@@ -36,18 +37,20 @@ ...@@ -36,18 +37,20 @@
36 </style> 37 </style>
37 {% endblock %} 38 {% endblock %}
38 {% block content %} 39 {% block content %}
39 - <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/><br> 40 + <a href="/myhome"> <img style="border-radius:15px;" width="300px;" src="{{ url_for('static', filename = '캡처6.png') }}"/></a><br>
40 <h1>검색 결과</h1> 41 <h1>검색 결과</h1>
41 - {% if not resv_list %} 42 + {% if resv_list[0][0] == "NoAvailableFacilities" %}
42 <p>가능한 강의실이 없습니다.</p> 43 <p>가능한 강의실이 없습니다.</p>
43 -{% endif %} 44 +{% else %}
44 <table> 45 <table>
45 {% for resv_item in resv_list %} 46 {% for resv_item in resv_list %}
46 - <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') }} 47 + <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') }}
47 - <form method="post" action="/deleteresv"> 48 + <input type="hidden" name="fac_id" value="{{ resv_item[0] }}">
48 - <input type="hidden" name="resv_id" value="{{ 강의실ID }}"> 49 + <input type="hidden" name="start_time" value="{{ starttime.strftime('%Y-%m-%d%H:%M') }}">
50 + <input type="hidden" name="end_time" value="{{ endtime.strftime('%Y-%m-%d%H:%M') }}">
49 </div><input type="submit" id="delete_btn" value="예약"></form></td></tr> 51 </div><input type="submit" id="delete_btn" value="예약"></form></td></tr>
50 {% endfor %} 52 {% endfor %}
51 </table> 53 </table>
54 + {% endif %}
52 {% endblock %} 55 {% endblock %}
53 56
......