Dineshpopuri commited on
Commit
29109f8
·
verified ·
1 Parent(s): 9172d5c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -6
app.py CHANGED
@@ -6,13 +6,13 @@ import bleach
6
  from simple_salesforce import Salesforce, SalesforceError
7
  import os
8
 
9
- # Salesforce configuration (loaded from environment variables for potential future use)
10
  SF_USERNAME = os.getenv("SF_USERNAME")
11
  SF_PASSWORD = os.getenv("SF_PASSWORD")
12
  SF_SECURITY_TOKEN = os.getenv("SF_SECURITY_TOKEN")
13
  SF_INSTANCE_URL = os.getenv("SF_INSTANCE_URL")
14
 
15
- # Initialize Salesforce connection (for potential future use)
16
  def init_salesforce():
17
  try:
18
  sf = Salesforce(
@@ -25,7 +25,7 @@ def init_salesforce():
25
  except SalesforceError as e:
26
  return None, f"Salesforce connection failed: {str(e)}"
27
 
28
- # Create Salesforce record (for potential future use)
29
  def create_salesforce_record(score, checklist_summary, missing_summary, status):
30
  sf, connection_message = init_salesforce()
31
  if not sf:
@@ -37,12 +37,13 @@ def create_salesforce_record(score, checklist_summary, missing_summary, status):
37
  sf_status = "Closed"
38
 
39
  try:
 
40
  record = {
41
  "Subject": "Project Readiness Evaluation",
42
  "Description": f"Readiness Score: {score}%\nChecklist Summary:\n{checklist_summary}\nMissing Items: {missing_summary}",
43
  "Status": sf_status,
44
- "Origin": "Web",
45
- "Priority": "Medium"
46
  }
47
  result = sf.Case.create(record)
48
  return f"Case record created successfully in Salesforce. Case ID: {result['id']}"
@@ -133,7 +134,7 @@ with gr.Blocks(css="""progress { background-color: #f0f0f0; } .red { background-
133
  gr.Markdown(
134
  """
135
  # Project Closure Readiness Evaluator
136
- Evaluate project readiness and generate a PDF report.
137
  """
138
  )
139
  with gr.Row():
@@ -148,6 +149,8 @@ with gr.Blocks(css="""progress { background-color: #f0f0f0; } .red { background-
148
  status_output = gr.Textbox(label="Overall Status")
149
  checklist_output = gr.Textbox(label="Checklist Summary")
150
  missing_output = gr.Textbox(label="Missing Items")
 
 
151
  pdf_btn = gr.Button("Download PDF Report")
152
  pdf_output = gr.File(label="PDF Report")
153
 
@@ -158,6 +161,13 @@ with gr.Blocks(css="""progress { background-color: #f0f0f0; } .red { background-
158
  outputs=[score_output, checklist_output, missing_output, status_output, progress_output]
159
  )
160
 
 
 
 
 
 
 
 
161
  # Connect PDF button to generate_pdf
162
  pdf_btn.click(
163
  fn=generate_pdf,
 
6
  from simple_salesforce import Salesforce, SalesforceError
7
  import os
8
 
9
+ # Salesforce configuration (loaded from environment variables for security)
10
  SF_USERNAME = os.getenv("SF_USERNAME")
11
  SF_PASSWORD = os.getenv("SF_PASSWORD")
12
  SF_SECURITY_TOKEN = os.getenv("SF_SECURITY_TOKEN")
13
  SF_INSTANCE_URL = os.getenv("SF_INSTANCE_URL")
14
 
15
+ # Initialize Salesforce connection
16
  def init_salesforce():
17
  try:
18
  sf = Salesforce(
 
25
  except SalesforceError as e:
26
  return None, f"Salesforce connection failed: {str(e)}"
27
 
28
+ # Create Salesforce record using Case object
29
  def create_salesforce_record(score, checklist_summary, missing_summary, status):
30
  sf, connection_message = init_salesforce()
31
  if not sf:
 
37
  sf_status = "Closed"
38
 
39
  try:
40
+ # Create a Case record in Salesforce with required fields
41
  record = {
42
  "Subject": "Project Readiness Evaluation",
43
  "Description": f"Readiness Score: {score}%\nChecklist Summary:\n{checklist_summary}\nMissing Items: {missing_summary}",
44
  "Status": sf_status,
45
+ "Origin": "Web", # Required field in many Salesforce orgs
46
+ "Priority": "Medium" # Required field in many Salesforce orgs
47
  }
48
  result = sf.Case.create(record)
49
  return f"Case record created successfully in Salesforce. Case ID: {result['id']}"
 
134
  gr.Markdown(
135
  """
136
  # Project Closure Readiness Evaluator
137
+ Evaluate project readiness, save to Salesforce, and generate a PDF report.
138
  """
139
  )
140
  with gr.Row():
 
149
  status_output = gr.Textbox(label="Overall Status")
150
  checklist_output = gr.Textbox(label="Checklist Summary")
151
  missing_output = gr.Textbox(label="Missing Items")
152
+ sf_create_btn = gr.Button("Save to Salesforce")
153
+ sf_output = gr.Textbox(label="Salesforce Status")
154
  pdf_btn = gr.Button("Download PDF Report")
155
  pdf_output = gr.File(label="PDF Report")
156
 
 
161
  outputs=[score_output, checklist_output, missing_output, status_output, progress_output]
162
  )
163
 
164
+ # Connect Salesforce create button to create_salesforce_record
165
+ sf_create_btn.click(
166
+ fn=create_salesforce_record,
167
+ inputs=[score_output, checklist_output, missing_output, status_output],
168
+ outputs=sf_output
169
+ )
170
+
171
  # Connect PDF button to generate_pdf
172
  pdf_btn.click(
173
  fn=generate_pdf,