IAMTFRMZA commited on
Commit
5db7057
·
verified ·
1 Parent(s): 05bbd5c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -13
app.py CHANGED
@@ -16,7 +16,6 @@ creds = ServiceAccountCredentials.from_json_keyfile_name(
16
  )
17
  client = gspread.authorize(creds)
18
 
19
- # YOUR SPREADSHEET URL
20
  SHEET_URL = "https://docs.google.com/spreadsheets/d/1if4KoVQvw5ZbhknfdZbzMkcTiPfsD6bz9V3a1th-bwQ"
21
 
22
  # -------------------- UTILS --------------------
@@ -29,7 +28,6 @@ def load_sheet_df(name):
29
  if not data:
30
  return pd.DataFrame()
31
  raw_header, *rows = data
32
- # make header unique
33
  counts = Counter()
34
  header = []
35
  for col in raw_header:
@@ -167,9 +165,17 @@ def quote_year_choices():
167
 
168
  def quote_month_choices(year=None):
169
  df = get_quotes_df()
170
- if year and "Year" in df.columns and "Month" in df.columns:
171
- months = df[df["Year"].astype(str) == str(year)]["Month"].dropna().unique()
172
- months = [str(int(m)) for m in sorted(pd.to_numeric(months, errors="coerce").dropna().unique())]
 
 
 
 
 
 
 
 
173
  return months
174
  return []
175
 
@@ -259,10 +265,8 @@ with gr.Blocks(title="Graffiti Admin Dashboard") as app:
259
 
260
  # Dynamic month options for summary
261
  def update_month_choices_summary(year):
262
- if year:
263
- return gr.Dropdown.update(choices=[""] + quote_month_choices(year), value="")
264
- else:
265
- return gr.Dropdown.update(choices=[""], value="")
266
  year_qs.change(update_month_choices_summary, year_qs, month_qs)
267
 
268
  def quotes_summary_wrapper(year, month):
@@ -278,10 +282,8 @@ with gr.Blocks(title="Graffiti Admin Dashboard") as app:
278
 
279
  # Dynamic month options for rep quotes
280
  def update_month_choices(year):
281
- if year:
282
- return gr.Dropdown.update(choices=[""] + quote_month_choices(year), value="")
283
- else:
284
- return gr.Dropdown.update(choices=[""], value="")
285
  year_q.change(update_month_choices, year_q, month_q)
286
 
287
  def get_rep_quotes_filtered_wrapper(rep, year, month):
 
16
  )
17
  client = gspread.authorize(creds)
18
 
 
19
  SHEET_URL = "https://docs.google.com/spreadsheets/d/1if4KoVQvw5ZbhknfdZbzMkcTiPfsD6bz9V3a1th-bwQ"
20
 
21
  # -------------------- UTILS --------------------
 
28
  if not data:
29
  return pd.DataFrame()
30
  raw_header, *rows = data
 
31
  counts = Counter()
32
  header = []
33
  for col in raw_header:
 
165
 
166
  def quote_month_choices(year=None):
167
  df = get_quotes_df()
168
+ # Always return a list (possibly empty)
169
+ if (
170
+ year
171
+ and "Year" in df.columns
172
+ and "Month" in df.columns
173
+ and not df.empty
174
+ ):
175
+ subset = df[df["Year"].astype(str) == str(year)]
176
+ months = pd.to_numeric(subset["Month"], errors="coerce").dropna().astype(int).unique()
177
+ # Keep months only 1-12
178
+ months = sorted(set(str(m) for m in months if 1 <= m <= 12))
179
  return months
180
  return []
181
 
 
265
 
266
  # Dynamic month options for summary
267
  def update_month_choices_summary(year):
268
+ months = quote_month_choices(year) if year else []
269
+ return gr.Dropdown.update(choices=[""] + months, value="")
 
 
270
  year_qs.change(update_month_choices_summary, year_qs, month_qs)
271
 
272
  def quotes_summary_wrapper(year, month):
 
282
 
283
  # Dynamic month options for rep quotes
284
  def update_month_choices(year):
285
+ months = quote_month_choices(year) if year else []
286
+ return gr.Dropdown.update(choices=[""] + months, value="")
 
 
287
  year_q.change(update_month_choices, year_q, month_q)
288
 
289
  def get_rep_quotes_filtered_wrapper(rep, year, month):