Linhz commited on
Commit
d721dc2
·
verified ·
1 Parent(s): 8e20021

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ from datetime import datetime
4
+
5
+ # Giả sử đây là dữ liệu ban đầu từ bảng
6
+ data = {
7
+ 'Người đăng ký': [],
8
+ 'Thời gian bắt đầu': [],
9
+ 'Thời gian kết thúc': [],
10
+ 'Phòng 1': [],
11
+ 'Phòng 2': [],
12
+ 'Phòng 3': []
13
+ }
14
+
15
+ # Chuyển dữ liệu thành DataFrame
16
+ df = pd.DataFrame(data)
17
+
18
+ # Hàm kiểm tra trùng lặp thời gian
19
+ def is_time_overlap(start1, end1, start2, end2):
20
+ return max(start1, start2) < min(end1, end2)
21
+
22
+ # Tiêu đề của ứng dụng
23
+ st.title("Đăng ký phòng họp")
24
+
25
+ # Nhập thông tin người đăng ký
26
+ name = st.text_input("Người đăng ký")
27
+
28
+ # Chọn thời gian bắt đầu và kết thúc
29
+ start_time = st.time_input("Thời gian bắt đầu")
30
+ end_time = st.time_input("Thời gian kết thúc")
31
+
32
+ # Chọn phòng
33
+ room1 = st.checkbox('Phòng 1')
34
+ room2 = st.checkbox('Phòng 2')
35
+ room3 = st.checkbox('Phòng 3')
36
+
37
+ # Khi người dùng nhấn nút 'Submit'
38
+ if st.button("Submit"):
39
+ if start_time >= end_time:
40
+ st.error("Thời gian bắt đầu phải nhỏ hơn thời gian kết thúc.")
41
+ elif not (room1 or room2 or room3):
42
+ st.error("Bạn phải chọn ít nhất một phòng.")
43
+ else:
44
+ # Kiểm tra chồng chéo thời gian
45
+ overlap = False
46
+ for i, row in df.iterrows():
47
+ if room1 and row['Phòng 1'] and is_time_overlap(row['Thời gian bắt đầu'], row['Thời gian kết thúc'], start_time, end_time):
48
+ overlap = True
49
+ if room2 and row['Phòng 2'] and is_time_overlap(row['Thời gian bắt đầu'], row['Thời gian kết thúc'], start_time, end_time):
50
+ overlap = True
51
+ if room3 and row['Phòng 3'] and is_time_overlap(row['Thời gian bắt đầu'], row['Thời gian kết thúc'], start_time, end_time):
52
+ overlap = True
53
+
54
+ if overlap:
55
+ st.error("Thời gian bạn chọn đã bị trùng lặp với một người đăng ký khác.")
56
+ else:
57
+ # Thêm thông tin vào DataFrame
58
+ new_row = {
59
+ 'Người đăng ký': name,
60
+ 'Thời gian bắt đầu': start_time,
61
+ 'Thời gian kết thúc': end_time,
62
+ 'Phòng 1': room1,
63
+ 'Phòng 2': room2,
64
+ 'Phòng 3': room3
65
+ }
66
+ df = df.append(new_row, ignore_index=True)
67
+ st.success("Đăng ký thành công!")
68
+
69
+ # Hiển thị bảng dữ liệu đã đăng ký
70
+ st.write("Danh sách đăng ký:")
71
+ st.dataframe(df)