🔍 Code Extractor

function controlled_docs_navigation

Maturity: 48

Navigation controller for a Streamlit-based controlled documents module that manages document and review dashboards with URL parameter-based routing.

File:
/tf/active/vicechatdev/datacapture_integrated.py
Lines:
4216 - 4275
Complexity:
moderate

Purpose

This function serves as the main navigation hub for a controlled documents management system built with Streamlit. It provides a sidebar navigation menu with four options: viewing document dashboard, review dashboard, creating new documents, and returning to main menu. The function handles URL query parameters to enable deep linking to specific documents or reviews, and manages the routing logic to render appropriate UI components based on user selection and URL parameters.

Source Code

def controlled_docs_navigation():
    """Navigation for the controlled documents module."""
    st.sidebar.title("Controlled Documents")
    
    # Sidebar navigation
    nav_option = st.sidebar.radio(
        "Navigation",
        options=[
            "Document Dashboard", 
            "Review Dashboard",
            "Create New Document",
            "Return to Main Menu"
        ]
    )
    
    # Process navigation selection
    if nav_option == "Document Dashboard":
        # Check URL parameters for document ID
        params = st.experimental_get_query_params()
        document_id = params.get("document_id", [None])[0]
        mode = params.get("mode", ["view"])[0]
        
        if document_id:
            # Render document form in requested mode
            render_document_form(document_id=document_id, mode=mode)
        else:
            # Render document dashboard
            render_document_dashboard()
    
    elif nav_option == "Review Dashboard":
        # Check URL parameters for review ID
        params = st.experimental_get_query_params()
        review_id = params.get("review_id", [None])[0]
        
        if review_id:
            # Handle specific review
            st.write(f"Viewing review: {review_id}")
            # This would call a specific review component
        else:
            # Render review dashboard
            render_review_dashboard()
    
    elif nav_option == "Create New Document":
        # Render document form in create mode
        params = st.experimental_get_query_params()
        template_id = params.get("template_id", [None])[0]
        department_id = params.get("department_id", [None])[0]
        doc_type = params.get("doc_type", [None])[0]
        
        render_document_form(
            mode="create",
            template_id=template_id,
            department_id=department_id,
            doc_type=doc_type
        )
    
    elif nav_option == "Return to Main Menu":
        # Clear module selection and return to main menu
        st.session_state['current_module'] = None
        st.experimental_rerun()

Return Value

This function does not return any value (implicitly returns None). It operates by side effects, rendering Streamlit UI components and managing application state through st.session_state and URL parameters.

Dependencies

  • streamlit
  • controlled_doc_system.ui.document_dashboard
  • controlled_doc_system.ui.review_dashboard
  • controlled_doc_system.ui.document_form

Required Imports

import streamlit as st
from controlled_doc_system.ui.document_dashboard import render_document_dashboard
from controlled_doc_system.ui.review_dashboard import render_review_dashboard
from controlled_doc_system.ui.document_form import render_document_form

Usage Example

import streamlit as st
from controlled_doc_system.ui.document_dashboard import render_document_dashboard
from controlled_doc_system.ui.review_dashboard import render_review_dashboard
from controlled_doc_system.ui.document_form import render_document_form

# Initialize session state if needed
if 'current_module' not in st.session_state:
    st.session_state['current_module'] = 'controlled_docs'

# Call the navigation function
controlled_docs_navigation()

# Example URL parameters for deep linking:
# ?document_id=123&mode=edit - Opens document 123 in edit mode
# ?review_id=456 - Opens review 456
# ?template_id=789&department_id=10&doc_type=SOP - Creates new document with template

Best Practices

  • Ensure all required render functions (render_document_dashboard, render_review_dashboard, render_document_form) are properly implemented before calling this function
  • Initialize st.session_state['current_module'] before calling this function to avoid KeyError
  • Use st.experimental_get_query_params() for URL parameter handling, but note this is deprecated in newer Streamlit versions (use st.query_params instead)
  • The function uses st.experimental_rerun() which is deprecated; consider using st.rerun() in newer Streamlit versions
  • URL parameters are extracted as lists, so always use indexing [0] to get the first value
  • Default values are provided for all URL parameters to handle cases where they are not present
  • The mode parameter defaults to 'view' for document dashboard, and 'create' is explicitly set for new documents
  • Consider implementing proper error handling for invalid document_id or review_id values
  • The review_id handling is incomplete (only shows a placeholder st.write), ensure proper implementation before production use

Similar Components

AI-powered semantic similarity - components with related functionality:

  • function main_page 67.7% similar

    Renders the main navigation page for the FileCloud Data Processor application, providing authenticated users with access to various modules including document audit, controlled documents, settings, and reports.

    From: /tf/active/vicechatdev/datacapture_integrated.py
  • function main_v13 66.8% similar

    Main entry point for a Streamlit-based FileCloud Data Processor application that handles authentication, session state management, and navigation between multiple modules including document audit, controlled documents, settings, and reports.

    From: /tf/active/vicechatdev/datacapture_integrated.py
  • class DocumentDashboard 63.4% similar

    Dashboard for viewing and managing controlled documents.

    From: /tf/active/vicechatdev/CDocs/ui/document_dashboard.py
  • class ControlledDocApp 61.5% similar

    A standalone Panel web application class that provides a complete controlled document management system with user authentication, navigation, and document lifecycle management features.

    From: /tf/active/vicechatdev/panel_app.py
  • function create_document 56.7% similar

    Creates a new controlled document in a document management system with versioning, audit trails, and optional initial content.

    From: /tf/active/vicechatdev/document_controller_backup.py
← Back to Browse