Spaces:
Build error
Build error
File size: 5,738 Bytes
fc6f62e |
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 144 145 146 147 148 149 150 151 |
import streamlit as st
import datetime
def main():
# Creating the Contract Creation Workflow Screen
st.title("1 - Contract Creation Workflow")
# Contract Details Section
st.header("Contract Details")
contract_type = st.selectbox("Contract Type", ["","Type 1", "Type 2", "Type 3"])
start_date = st.date_input("Start Date", datetime.date.today())
end_date = st.date_input("End Date", datetime.date.today())
parties_involved = st.text_input("Parties Involved", help="Separate multiple parties with commas")
# Rich Text Editor for Contract Terms and Conditions
st.header("Contract Terms and Conditions")
contract_terms = st.text_area("Terms and Conditions")
# Supporting Documents Section
st.header("Supporting Documents")
uploaded_files = st.file_uploader("Attach Supporting Documents", accept_multiple_files=True)
# Displaying Contract Details
st.header("Contract Details Summary")
st.write(f"Contract Number:")
st.write(f"Contract Type: {contract_type}")
st.write(f"Start Date: {start_date}")
st.write(f"End Date: {end_date}")
st.write(f"Parties Involved: {parties_involved}")
# Displaying Contract Terms and Conditions
st.header("Contract Terms and Conditions Summary")
st.write(contract_terms)
# Displaying Attached Supporting Documents
if uploaded_files:
st.header("Attached Documents")
for file in uploaded_files:
st.write(file.name)
# Contract Approval Screen
st.title("2 - Contract Approval")
user_role = st.radio("User Role", ("Contract Approver", "Manager"))
contract_details = {
"Contract Type": contract_type,
"Start Date": start_date,
"End Date": end_date,
"Parties Involved": parties_involved,
}
st.header("Contract Details")
for key, value in contract_details.items():
st.write(f"{key}: {value}")
# Highlight pending approvals with color coding
if user_role == "Contract Approver":
st.error("Pending Approval: Contract Approver action required!")
elif user_role == "Manager":
st.warning("Pending Approval: Manager action required!")
# Comments Section
st.header("Comments Section")
comments = st.text_area("Comments")
# Screen for searching and retrieving contracts
st.title("3 - Contract Search and Retrieval")
# Search Criteria Fields
st.header("Search Criteria")
contract_number = st.text_input("Contract Number (Exact Match)")
vendor = st.text_input("Vendor", help="Enter vendor name or id")
contract_status = st.selectbox("Contract Status", ["","Approved", "Approval in process", "On hold"])
start_date_range = st.date_input("Start Date Range", help="Select the start date")
end_date_range = st.date_input("End Date Range", help="Select the end date")
# Export Options for Search Results
st.header("Export Options")
export_format = st.selectbox("Export Format", ["CSV", "PDF"])
# Simulated Search Results
st.header("Search Results")
# ... (Add simulated search results here)
# Exporting Search Results
if st.button("Export Results"):
if export_format == "CSV":
# ... (Add CSV export functionality here)
st.write("Exporting to CSV...")
elif export_format == "PDF":
# ... (Add PDF export functionality here)
st.write("Exporting to PDF...")
# Contract Amendment Workflow
st.title("4 - Contract Amendment Workflow")
# Trigger Condition - Change in Contract Scope
st.header("Trigger")
change_in_scope = st.checkbox("Change in Contract Scope")
# Display fields if change_in_scope is True
if change_in_scope:
# Fields for Describing Proposed Amendments
st.header("Proposed Amendments")
description = st.text_area("Description", "Enter the description of the proposed amendments here.")
reason = st.text_area("Reason", "Enter the reason for the proposed amendments here.")
# Approval Process for Amendments
st.header("Amendment Approval Process")
amendment_roles = ["Amendment Initiator", "Contract Approver", "Manager"]
current_role_index = amendment_roles.index(st.selectbox("Current Role", amendment_roles))
st.write(f"Current Role: {amendment_roles[current_role_index]}")
# Version Control to Track Changes
st.header("Version Control")
st.write("Implement version control to track changes during the approval process.")
# Contract renewal management
st.title("5 - Contract Renewal Management")
# Renewal Triggers - Time-based Alerts
st.header("Renewal Triggers")
days_before_expiration = st.slider("Days Before Expiration", min_value=0, max_value=365, step=1, value=30)
# Dashboard for Contracts Approaching Expiration
st.header("Contracts Approaching Expiration")
# Simulated display of contracts approaching expiration
contracts = [
{"Contract Type": "Type 1", "Parties Involved": "Party 1, Party 2", "Renewal Status": "Pending"},
{"Contract Type": "Type 2", "Parties Involved": "Party 3, Party 4", "Renewal Status": "Negotiation"},
]
for i, contract in enumerate(contracts):
st.write(f"Contract Type: {contract['Contract Type']}")
st.write(f"Parties Involved: {contract['Parties Involved']}")
st.write(f"Renewal Status: {contract['Renewal Status']}")
st.button(f"Renew_{i}")
# Tracking Renewal History
st.header("Renewal History")
st.write("Track renewal history and view details for each contract renewal.")
st.button("View History")
if __name__ == "__main__":
main()
|