Spaces:
Sleeping
Sleeping
File size: 5,012 Bytes
81f3f6f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
import streamlit as st
from gpt_method import (
generate_lesson_plan,
generate_objectives,
generate_materials,
generate_steps,
generate_assessment
)
def edit_lesson_plan():
st.title("π Edit Lesson Plan")
# Load existing lesson plan data from session state
if 'lesson_plan' not in st.session_state:
st.error("No lesson plan found. Please create a lesson plan first.")
return
# Create tabs for different sections
tab1, tab2, tab3, tab4, tab5 = st.tabs([
"Basic Info", "Objectives", "Materials", "Steps", "Assessment"
])
with tab1:
st.subheader("Basic Information")
lesson_name = st.text_input(
"Course Name",
value=st.session_state.lesson_plan.get('lesson_name', '')
)
lesson_theme = st.text_input(
"Course Theme",
value=st.session_state.lesson_plan.get('lesson_theme', '')
)
grade_level = st.selectbox(
"Student Level",
["Elementary School", "Middle School", "High School", "College", "Graduate"],
index=["Elementary School", "Middle School", "High School", "College", "Graduate"].index(
st.session_state.lesson_plan.get('grade_level', 'College')
)
)
duration = st.number_input(
"Duration (minutes)",
min_value=15,
step=15,
value=st.session_state.lesson_plan.get('duration', 60)
)
with tab2:
st.subheader("Learning Objectives")
objectives = st.text_area(
"Course Objectives",
value=st.session_state.lesson_plan.get('objectives', ''),
height=200
)
if st.button("Regenerate Objectives"):
with st.spinner("Generating new objectives..."):
objectives = generate_objectives(
lesson_theme,
lesson_name=lesson_name,
lesson_type=grade_level,
existing_goals=objectives
)
st.session_state.lesson_plan['objectives'] = objectives
st.experimental_rerun()
with tab3:
st.subheader("Materials")
materials = st.text_area(
"Required Materials",
value=st.session_state.lesson_plan.get('materials', ''),
height=200
)
if st.button("Regenerate Materials"):
with st.spinner("Generating materials list..."):
materials = generate_materials(lesson_theme, grade_level)
st.session_state.lesson_plan['materials'] = materials
st.experimental_rerun()
with tab4:
st.subheader("Lesson Steps")
steps = st.text_area(
"Lesson Steps",
value=st.session_state.lesson_plan.get('steps', ''),
height=300
)
if st.button("Regenerate Steps"):
with st.spinner("Generating lesson steps..."):
steps = generate_steps(lesson_theme, grade_level, duration)
st.session_state.lesson_plan['steps'] = steps
st.experimental_rerun()
with tab5:
st.subheader("Assessment")
assessment = st.text_area(
"Assessment Methods",
value=st.session_state.lesson_plan.get('assessment', ''),
height=200
)
if st.button("Regenerate Assessment"):
with st.spinner("Generating assessment methods..."):
assessment = generate_assessment(lesson_theme, grade_level)
st.session_state.lesson_plan['assessment'] = assessment
st.experimental_rerun()
# Save changes button
if st.button("Save Changes"):
# Update session state with new values
st.session_state.lesson_plan.update({
'lesson_name': lesson_name,
'lesson_theme': lesson_theme,
'grade_level': grade_level,
'duration': duration,
'objectives': objectives,
'materials': materials,
'steps': steps,
'assessment': assessment
})
# Generate updated lesson plan
updated_plan = generate_lesson_plan(
lesson_name,
lesson_theme,
grade_level,
objectives,
materials,
duration,
steps,
assessment
)
st.session_state.lesson_plan['full_plan'] = updated_plan
st.success("Changes saved successfully!")
# Show preview of updated plan
st.subheader("Updated Lesson Plan Preview")
st.markdown(updated_plan)
# Add download button
st.download_button(
label="Download Updated Lesson Plan",
data=updated_plan,
file_name=f"lesson_plan_{lesson_name.lower().replace(' ', '_')}.txt",
mime="text/plain"
) |