ElmiraManavi commited on
Commit
ce835ea
·
1 Parent(s): bc9097a

^refactoring

Browse files
Files changed (1) hide show
  1. src/pages/Eventportal.py +59 -39
src/pages/Eventportal.py CHANGED
@@ -8,7 +8,20 @@ from dotenv import load_dotenv
8
  from pymongo import MongoClient
9
  from itertools import batched
10
 
11
-
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  @st.cache_resource
13
  def init_connection():
14
  load_dotenv()
@@ -67,7 +80,6 @@ def update_valid_flag(flag_tag, id):
67
 
68
  if value:
69
  flag_valid = not bool(options.index(value))
70
- print(review_field)
71
  db.events.update_one(
72
  {"_id": ObjectId(id)},
73
  {"$set": {review_field: flag_valid}}
@@ -85,7 +97,10 @@ def display_event(event_data):
85
 
86
  title_valid = reviews.get("title_valid", None)
87
  address_valid = reviews.get("address_valid", None)
88
- schedule_valid = reviews.get("schedule_valid", None)
 
 
 
89
  category_valid = reviews.get("category_valid", None)
90
  format_valid = reviews.get("format_valid", None)
91
 
@@ -121,8 +136,8 @@ def display_event(event_data):
121
  end_time = end_time.strftime("%H:%M")
122
 
123
  st.write(
124
- f"🗓️ Start: {render_string(schedule_valid, (start_date or '') + " " + (start_time or ''))} | "
125
- f"Ende: {render_string(schedule_valid, end_date or '' + " " + end_time or '')}"
126
  )
127
  else:
128
  st.write(f"🗓️ - ")
@@ -136,40 +151,45 @@ def display_event(event_data):
136
  st.link_button("Mehr Infos", url=url)
137
 
138
  if st.session_state.review_mode:
139
- col1, col2, col3, col4, col5 = st.columns(5)
140
- with col1:
141
- title_valid_control = st.segmented_control("Titel", key="title_valid" + str(event_data.get("_id")),
142
- options=options,
143
- default=None if title_valid is None else options[
144
- 0] if title_valid else options[1],
145
- on_change=update_valid_flag,
146
- args=("title_valid", str(event_data.get("_id")),))
147
- with col2:
148
- st.segmented_control("Adresse", key="address_valid" + str(event_data.get("_id")), options=options,
149
- default=None if address_valid is None else options[0] if address_valid else options[1],
150
- on_change=update_valid_flag,
151
- args=("address_valid", str(event_data.get("_id")),)
152
- )
153
- with col3:
154
- st.segmented_control("Schedule", key="schedule_valid" + str(event_data.get("_id")), options=options,
155
- default=None if schedule_valid is None else options[0] if schedule_valid else options[
156
- 1],
157
- on_change=update_valid_flag,
158
- args=("schedule_valid", str(event_data.get("_id")),)
159
- )
160
- with col4:
161
- st.segmented_control("Kategorie", key="category_valid" + str(event_data.get("_id")), options=options,
162
- default=None if category_valid is None else options[0] if category_valid else options[
163
- 1],
164
- on_change=update_valid_flag,
165
- args=("category_valid", str(event_data.get("_id")),)
166
- )
167
- with col5:
168
- st.segmented_control("Format", key="format_valid" + str(event_data.get("_id")), options=options,
169
- default=None if format_valid is None else options[0] if format_valid else options[1],
170
- on_change=update_valid_flag,
171
- args=("format_valid", str(event_data.get("_id")),)
172
- )
 
 
 
 
 
173
 
174
 
175
  def fetch_events():
 
8
  from pymongo import MongoClient
9
  from itertools import batched
10
 
11
+ st.set_page_config(layout="wide")
12
+
13
+ st.markdown(
14
+ """
15
+ <style>
16
+ .block-container {
17
+ width: 80vw;
18
+ max-width: 1400px;
19
+ margin: 0 auto;
20
+ }
21
+ </style>
22
+ """,
23
+ unsafe_allow_html=True,
24
+ )
25
  @st.cache_resource
26
  def init_connection():
27
  load_dotenv()
 
80
 
81
  if value:
82
  flag_valid = not bool(options.index(value))
 
83
  db.events.update_one(
84
  {"_id": ObjectId(id)},
85
  {"$set": {review_field: flag_valid}}
 
97
 
98
  title_valid = reviews.get("title_valid", None)
99
  address_valid = reviews.get("address_valid", None)
100
+ startdate_valid = reviews.get("startdate_valid", None)
101
+ starttime_valid = reviews.get("starttime_valid", None)
102
+ enddate_valid = reviews.get("enddate_valid", None)
103
+ endtime_valid = reviews.get("endtime_valid", None)
104
  category_valid = reviews.get("category_valid", None)
105
  format_valid = reviews.get("format_valid", None)
106
 
 
136
  end_time = end_time.strftime("%H:%M")
137
 
138
  st.write(
139
+ f"🗓️ Start: {render_string(startdate_valid, (start_date or ''))} {render_string(starttime_valid, (start_time or ''))} | "
140
+ f"Ende: {render_string(enddate_valid, end_date or '')} {render_string(endtime_valid, end_time or '')}"
141
  )
142
  else:
143
  st.write(f"🗓️ - ")
 
151
  st.link_button("Mehr Infos", url=url)
152
 
153
  if st.session_state.review_mode:
154
+
155
+ render_review_controls(event_data)
156
+
157
+ def render_review_controls(event_data):
158
+ """Erzeugt dynamisch alle Review-Segmented-Controls für ein Event."""
159
+
160
+ fields = [
161
+ ("Titel", "title_valid"),
162
+ ("Kategorie", "category_valid"),
163
+ ("Format", "format_valid"),
164
+ ("Startdatum", "startdate_valid"),
165
+ ("Startzeit", "starttime_valid"),
166
+ ("Enddatum", "enddate_valid"),
167
+ ("Endzeit", "endtime_valid"),
168
+ ("Adresse", "address_valid"),
169
+ ]
170
+
171
+ # Dynamisch Spalten erzeugen
172
+ cols = st.columns(len(fields))
173
+
174
+ for (label, key_field), col in zip(fields, cols):
175
+ valid_value = event_data.get("reviews", {}).get(key_field)
176
+ control_key = f"{key_field}{event_data.get('_id')}"
177
+
178
+ default_value = (
179
+ None
180
+ if valid_value is None
181
+ else options[0] if valid_value else options[1]
182
+ )
183
+
184
+ with col:
185
+ st.segmented_control(
186
+ label,
187
+ key=control_key,
188
+ options=options,
189
+ default=default_value,
190
+ on_change=update_valid_flag,
191
+ args=(key_field, str(event_data.get("_id")),),
192
+ )
193
 
194
 
195
  def fetch_events():