|
48 | 48 | ui.input_date_range(
|
49 | 49 | "date_range",
|
50 | 50 | "Date range",
|
51 |
| - start=(datetime.now() - timedelta(days=28)).strftime("%Y-%m-%d"), |
52 |
| - end=datetime.now().strftime("%Y-%m-%d"), |
| 51 | + start=(datetime.now() - timedelta(days=28)), |
| 52 | + end=datetime.now() + timedelta(days=1), |
53 | 53 | )
|
54 | 54 | ui.input_action_button("last_7d", "Last 7 days")
|
55 | 55 | ui.input_action_button("last_14d", "Last 14 days")
|
56 | 56 | ui.input_action_button("last_28d", "Last 28 days")
|
57 | 57 | ui.input_action_button("last_91d", "Last 91 days")
|
58 | 58 | ui.input_action_button("last_182d", "Last 182 days")
|
59 | 59 | ui.input_action_button("last_365d", "Last 365 days")
|
| 60 | + ui.input_action_button("last_730d", "Last 730 days") |
60 | 61 | ui.input_action_button("last_all", "All available data")
|
61 | 62 |
|
62 | 63 | with ui.value_box(full_screen=True):
|
|
65 | 66 | @render.express
|
66 | 67 | def total_days():
|
67 | 68 | start_date, end_date = date_range()
|
68 |
| - days = (end_date - start_date).days |
| 69 | + days = (end_date - start_date).days - 1 |
69 | 70 | f"{days:,}"
|
70 | 71 |
|
71 | 72 |
|
@@ -335,64 +336,56 @@ def _downloads_data(downloads_t=downloads_t):
|
335 | 336 | return t
|
336 | 337 |
|
337 | 338 |
|
338 |
| -@reactive.effect |
339 |
| -@reactive.event(input.last_7d) |
340 |
| -def _(): |
| 339 | +def _update_date_range(days): |
| 340 | + start_date = datetime.now() - timedelta(days=days) |
| 341 | + end_date = datetime.now() + timedelta(days=1) |
341 | 342 | ui.update_date_range(
|
342 | 343 | "date_range",
|
343 |
| - start=(datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d"), |
344 |
| - end=datetime.now().strftime("%Y-%m-%d"), |
| 344 | + start=start_date.strftime("%Y-%m-%d"), |
| 345 | + end=end_date.strftime("%Y-%m-%d"), |
345 | 346 | )
|
346 | 347 |
|
347 | 348 |
|
| 349 | +@reactive.effect |
| 350 | +@reactive.event(input.last_7d) |
| 351 | +def _(): |
| 352 | + _update_date_range(days=7) |
| 353 | + |
| 354 | + |
348 | 355 | @reactive.effect
|
349 | 356 | @reactive.event(input.last_14d)
|
350 | 357 | def _():
|
351 |
| - ui.update_date_range( |
352 |
| - "date_range", |
353 |
| - start=(datetime.now() - timedelta(days=14)).strftime("%Y-%m-%d"), |
354 |
| - end=datetime.now().strftime("%Y-%m-%d"), |
355 |
| - ) |
| 358 | + _update_date_range(days=14) |
356 | 359 |
|
357 | 360 |
|
358 | 361 | @reactive.effect
|
359 | 362 | @reactive.event(input.last_28d)
|
360 | 363 | def _():
|
361 |
| - ui.update_date_range( |
362 |
| - "date_range", |
363 |
| - start=(datetime.now() - timedelta(days=28)).strftime("%Y-%m-%d"), |
364 |
| - end=datetime.now().strftime("%Y-%m-%d"), |
365 |
| - ) |
| 364 | + _update_date_range(days=28) |
366 | 365 |
|
367 | 366 |
|
368 | 367 | @reactive.effect
|
369 | 368 | @reactive.event(input.last_91d)
|
370 | 369 | def _():
|
371 |
| - ui.update_date_range( |
372 |
| - "date_range", |
373 |
| - start=(datetime.now() - timedelta(days=91)).strftime("%Y-%m-%d"), |
374 |
| - end=datetime.now().strftime("%Y-%m-%d"), |
375 |
| - ) |
| 370 | + _update_date_range(days=91) |
376 | 371 |
|
377 | 372 |
|
378 | 373 | @reactive.effect
|
379 | 374 | @reactive.event(input.last_182d)
|
380 | 375 | def _():
|
381 |
| - ui.update_date_range( |
382 |
| - "date_range", |
383 |
| - start=(datetime.now() - timedelta(days=182)).strftime("%Y-%m-%d"), |
384 |
| - end=datetime.now().strftime("%Y-%m-%d"), |
385 |
| - ) |
| 376 | + _update_date_range(days=182) |
386 | 377 |
|
387 | 378 |
|
388 | 379 | @reactive.effect
|
389 | 380 | @reactive.event(input.last_365d)
|
390 | 381 | def _():
|
391 |
| - ui.update_date_range( |
392 |
| - "date_range", |
393 |
| - start=(datetime.now() - timedelta(days=365)).strftime("%Y-%m-%d"), |
394 |
| - end=datetime.now().strftime("%Y-%m-%d"), |
395 |
| - ) |
| 382 | + _update_date_range(days=365) |
| 383 | + |
| 384 | + |
| 385 | +@reactive.effect |
| 386 | +@reactive.event(input.last_730d) |
| 387 | +def _(): |
| 388 | + _update_date_range(days=730) |
396 | 389 |
|
397 | 390 |
|
398 | 391 | @reactive.effect
|
|
0 commit comments