Linhz commited on
Commit
cb067d1
·
verified ·
1 Parent(s): c722c0a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -20
app.py CHANGED
@@ -2,14 +2,15 @@ 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
@@ -19,8 +20,8 @@ df = pd.DataFrame(data)
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ý")
@@ -29,39 +30,29 @@ name = st.text_input("Người đăng ký")
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!")
 
2
  import pandas as pd
3
  from datetime import datetime
4
 
5
+ # Lấy ngày hiện tại
6
+ today = datetime.today().strftime('%d/%m/%Y')
7
+
8
  # Giả sử đây là dữ liệu ban đầu từ bảng
9
  data = {
10
  'Người đăng ký': [],
11
  'Thời gian bắt đầu': [],
12
  'Thời gian kết thúc': [],
13
+ 'Phòng': [] # Chỉ lưu một phòng
 
 
14
  }
15
 
16
  # Chuyển dữ liệu thành DataFrame
 
20
  def is_time_overlap(start1, end1, start2, end2):
21
  return max(start1, start2) < min(end1, end2)
22
 
23
+ # Tiêu đề của ứng dụng kèm ngày hiện tại
24
+ st.title(f"Đăng ký phòng họp ngày {today}")
25
 
26
  # Nhập thông tin người đăng ký
27
  name = st.text_input("Người đăng ký")
 
30
  start_time = st.time_input("Thời gian bắt đầu")
31
  end_time = st.time_input("Thời gian kết thúc")
32
 
33
+ # Chọn phòng (chỉ một phòng)
34
+ room = st.radio('Chọn phòng', ('Phòng 1', 'Phòng 2', 'Phòng 3'))
 
 
35
 
36
  # Khi người dùng nhấn nút 'Submit'
37
  if st.button("Submit"):
38
  if start_time >= end_time:
39
  st.error("Thời gian bắt đầu phải nhỏ hơn thời gian kết thúc.")
 
 
40
  else:
41
  # Kiểm tra chồng chéo thời gian
42
  overlap = False
43
  for i, row in df.iterrows():
44
+ if row['Phòng'] == room and is_time_overlap(row['Thời gian bắt đầu'], row['Thời gian kết thúc'], start_time, end_time):
 
 
 
 
45
  overlap = True
46
 
47
  if overlap:
48
+ st.error(f"Thời gian bạn chọn cho {room} đã bị trùng lặp với một người đăng ký khác.")
49
  else:
50
  # Thêm thông tin vào DataFrame
51
  new_row = {
52
  'Người đăng ký': name,
53
  'Thời gian bắt đầu': start_time,
54
  'Thời gian kết thúc': end_time,
55
+ 'Phòng': room
 
 
56
  }
57
  df = df.append(new_row, ignore_index=True)
58
  st.success("Đăng ký thành công!")