Update app.py
Browse files
app.py
CHANGED
|
@@ -613,7 +613,8 @@ def open_task_details_page(task_id):
|
|
| 613 |
st.session_state.selected_task_id = task_id
|
| 614 |
|
| 615 |
# Use query parameters to navigate to the details page
|
| 616 |
-
st.
|
|
|
|
| 617 |
|
| 618 |
# Rerun to reload the page with new query params
|
| 619 |
st.rerun()
|
|
@@ -642,9 +643,8 @@ else:
|
|
| 642 |
# Load assignees
|
| 643 |
assignee_list = load_assignees()
|
| 644 |
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
selected_task_id = query_params.get('task_id', [None])[0]
|
| 648 |
|
| 649 |
if view_mode == 'task_details' and selected_task_id:
|
| 650 |
# Task details page
|
|
@@ -656,8 +656,9 @@ if view_mode == 'task_details' and selected_task_id:
|
|
| 656 |
|
| 657 |
# Back button
|
| 658 |
if st.button("← Back to Board"):
|
| 659 |
-
|
| 660 |
-
|
|
|
|
| 661 |
st.rerun()
|
| 662 |
|
| 663 |
# Display task details in a full page
|
|
@@ -699,21 +700,24 @@ if view_mode == 'task_details' and selected_task_id:
|
|
| 699 |
update_task(task_idx, 'Status', new_status)
|
| 700 |
st.success(f"Updated task status to {new_status}")
|
| 701 |
st.rerun()
|
| 702 |
-
|
| 703 |
with col2:
|
| 704 |
if st.button("Delete Task"):
|
| 705 |
if delete_task(selected_task_id):
|
| 706 |
-
|
| 707 |
-
|
| 708 |
-
|
| 709 |
-
st.
|
| 710 |
-
|
| 711 |
-
|
|
|
|
| 712 |
else:
|
| 713 |
st.error(f"Task {selected_task_id} not found")
|
| 714 |
-
# Return to main board
|
| 715 |
-
st.
|
|
|
|
| 716 |
st.rerun()
|
|
|
|
| 717 |
else:
|
| 718 |
# Display storage status notification if using memory storage
|
| 719 |
if st.session_state.using_memory_storage:
|
|
@@ -905,17 +909,19 @@ else:
|
|
| 905 |
|
| 906 |
# Create the card HTML with inline status dropdown
|
| 907 |
card_html = f"""
|
| 908 |
-
<
|
| 909 |
-
<div class="
|
| 910 |
-
<
|
| 911 |
-
|
| 912 |
-
|
| 913 |
-
|
| 914 |
-
|
| 915 |
-
<
|
| 916 |
-
|
|
|
|
|
|
|
| 917 |
</div>
|
| 918 |
-
</
|
| 919 |
"""
|
| 920 |
|
| 921 |
# Render the card
|
|
|
|
| 613 |
st.session_state.selected_task_id = task_id
|
| 614 |
|
| 615 |
# Use query parameters to navigate to the details page
|
| 616 |
+
st.query_params.view = 'task_details'
|
| 617 |
+
st.query_params.task_id = task_id
|
| 618 |
|
| 619 |
# Rerun to reload the page with new query params
|
| 620 |
st.rerun()
|
|
|
|
| 643 |
# Load assignees
|
| 644 |
assignee_list = load_assignees()
|
| 645 |
|
| 646 |
+
view_mode = st.query_params.get('view', 'main')
|
| 647 |
+
selected_task_id = st.query_params.get('task_id', None)
|
|
|
|
| 648 |
|
| 649 |
if view_mode == 'task_details' and selected_task_id:
|
| 650 |
# Task details page
|
|
|
|
| 656 |
|
| 657 |
# Back button
|
| 658 |
if st.button("← Back to Board"):
|
| 659 |
+
for key in list(st.query_params.keys()):
|
| 660 |
+
del st.query_params[key]
|
| 661 |
+
|
| 662 |
st.rerun()
|
| 663 |
|
| 664 |
# Display task details in a full page
|
|
|
|
| 700 |
update_task(task_idx, 'Status', new_status)
|
| 701 |
st.success(f"Updated task status to {new_status}")
|
| 702 |
st.rerun()
|
| 703 |
+
|
| 704 |
with col2:
|
| 705 |
if st.button("Delete Task"):
|
| 706 |
if delete_task(selected_task_id):
|
| 707 |
+
st.success(f"Task {selected_task_id} deleted!")
|
| 708 |
+
# Return to main board - use new API
|
| 709 |
+
for key in list(st.query_params.keys()):
|
| 710 |
+
del st.query_params[key]
|
| 711 |
+
st.rerun()
|
| 712 |
+
else:
|
| 713 |
+
st.error(f"Failed to delete task {selected_task_id}")
|
| 714 |
else:
|
| 715 |
st.error(f"Task {selected_task_id} not found")
|
| 716 |
+
# Return to main board - use new API
|
| 717 |
+
for key in list(st.query_params.keys()):
|
| 718 |
+
del st.query_params[key]
|
| 719 |
st.rerun()
|
| 720 |
+
|
| 721 |
else:
|
| 722 |
# Display storage status notification if using memory storage
|
| 723 |
if st.session_state.using_memory_storage:
|
|
|
|
| 909 |
|
| 910 |
# Create the card HTML with inline status dropdown
|
| 911 |
card_html = f"""
|
| 912 |
+
<a href="?view=task_details&task_id={task_id}" style="text-decoration:none; color:inherit;">
|
| 913 |
+
<div class="task-card" data-task-id="{task_id}">
|
| 914 |
+
<div class="card-header {status_class}">
|
| 915 |
+
<span class="task-id">{task_id}</span>
|
| 916 |
+
</div>
|
| 917 |
+
<div class="task-title">{task['Title']}</div>
|
| 918 |
+
<div class="task-assignee">{task['Assignee']}</div>
|
| 919 |
+
<div class="task-dates">
|
| 920 |
+
<span class="date-display">Start: {date_started_str}</span>
|
| 921 |
+
<span class="date-display">Finish: {date_to_finish_str}</span>
|
| 922 |
+
</div>
|
| 923 |
</div>
|
| 924 |
+
</a>
|
| 925 |
"""
|
| 926 |
|
| 927 |
# Render the card
|