Harshal Vhatkar commited on
Commit
fb298f6
·
1 Parent(s): 1d8204c

add web resource

Browse files
Files changed (1) hide show
  1. session_page.py +94 -1
session_page.py CHANGED
@@ -235,6 +235,28 @@ def display_preclass_content(session, student_id, course_id):
235
  )
236
  if st.button("Mark PowerPoint as Read", key=f"pptx_{material['_id']}"):
237
  create_notification("PowerPoint presentation marked as read!", "success")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
238
 
239
 
240
  # Initialize 'messages' in session_state if it doesn't exist
@@ -754,7 +776,7 @@ def upload_preclass_materials(session_id, course_id):
754
  st.subheader("Pre-class Materials Management")
755
 
756
  # Create tabs for different functionalities
757
- upload_tab, videos_tab, external_tab= st.tabs(["Upload Materials","Upload Video Sources","External Resources"])
758
 
759
  with upload_tab:
760
  # Original file upload functionality
@@ -778,6 +800,77 @@ def upload_preclass_materials(session_id, course_id):
778
  # if video_resource_id:
779
  # st.success("Video source uploaded successfully!")
780
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
781
  with external_tab:
782
  # Fetch and display external resources
783
  session_data = courses_collection.find_one(
 
235
  )
236
  if st.button("Mark PowerPoint as Read", key=f"pptx_{material['_id']}"):
237
  create_notification("PowerPoint presentation marked as read!", "success")
238
+
239
+ elif file_type == 'web_resource':
240
+ # Display resource details
241
+ st.markdown(f"**Type:** {material['material_type']}")
242
+ if material.get('description'):
243
+ st.markdown(f"**Description:** {material['description']}")
244
+
245
+ # Display resource link
246
+ st.markdown(f"**Resource Link:** [{material['file_name']}]({material['source_url']})")
247
+
248
+ # Add "Open in New Tab" button
249
+ if st.button("Open in New Tab", key=f"open_{material['_id']}"):
250
+ # Use JavaScript to open in new tab
251
+ st.markdown(f"""
252
+ <script>
253
+ window.open('{material['source_url']}', '_blank');
254
+ </script>
255
+ """, unsafe_allow_html=True)
256
+
257
+ # Add "Mark as Read" functionality
258
+ if st.button("Mark as Read", key=f"read_{material['_id']}"):
259
+ create_notification(f"{material['material_type']} marked as read!", "success")
260
 
261
 
262
  # Initialize 'messages' in session_state if it doesn't exist
 
776
  st.subheader("Pre-class Materials Management")
777
 
778
  # Create tabs for different functionalities
779
+ upload_tab, videos_tab, web_resources ,external_tab= st.tabs(["Upload Materials","Upload Video Sources","Web Resources", "Resources by Perplexity"])
780
 
781
  with upload_tab:
782
  # Original file upload functionality
 
800
  # if video_resource_id:
801
  # st.success("Video source uploaded successfully!")
802
 
803
+ with web_resources:
804
+ st.markdown("##### Upload Web Resource Links")
805
+ st.info("""
806
+ Share online resources with your students. Supported links include:
807
+ - Google Colab notebooks
808
+ - Google Slides presentations
809
+ - Online documentation
810
+ - Educational websites
811
+ - Any web-based learning resource
812
+ """)
813
+
814
+ # Form for adding web resource
815
+ with st.form("web_resource_form"):
816
+ resource_title = st.text_input("Resource Title",
817
+ placeholder="e.g., Python Basics Notebook, Data Visualization Tutorial")
818
+ resource_url = st.text_input("Resource URL",
819
+ placeholder="https://colab.research.google.com/... or other web resource")
820
+ resource_type = st.selectbox("Resource Type",
821
+ ["Jupyter Notebook", "Presentation", "Documentation", "Tutorial", "Other"])
822
+ resource_description = st.text_area("Description (Optional)",
823
+ placeholder="Brief description of the resource")
824
+
825
+ submit_resource = st.form_submit_button("Add Resource")
826
+
827
+ if submit_resource:
828
+ if not resource_title or not resource_url:
829
+ st.error("Please provide both a title and URL.")
830
+ else:
831
+ try:
832
+ # Create resource document
833
+ resource_data = {
834
+ "_id": ObjectId(),
835
+ "course_id": course_id,
836
+ "session_id": session_id,
837
+ "file_name": resource_title,
838
+ "file_type": "web_resource",
839
+ "material_type": resource_type,
840
+ "source_url": resource_url,
841
+ "description": resource_description,
842
+ "uploaded_at": datetime.utcnow()
843
+ }
844
+
845
+ # Check if resource already exists
846
+ existing_resource = resources_collection.find_one({
847
+ "session_id": session_id,
848
+ "source_url": resource_url
849
+ })
850
+ if existing_resource:
851
+ st.warning("This resource has already been added.")
852
+ else:
853
+ # Insert new resource
854
+ resources_collection.insert_one(resource_data)
855
+ resource_id = resource_data["_id"]
856
+
857
+ # Update course document
858
+ courses_collection.update_one(
859
+ {
860
+ "course_id": course_id,
861
+ "sessions.session_id": session_id
862
+ },
863
+ {
864
+ "$push": {"sessions.$.pre_class.resources": resource_id}
865
+ }
866
+ )
867
+ st.success(f"✅ Resource '{resource_title}' added successfully!")
868
+
869
+ except Exception as e:
870
+ st.error(f"Error adding resource: {str(e)}")
871
+
872
+
873
+
874
  with external_tab:
875
  # Fetch and display external resources
876
  session_data = courses_collection.find_one(