Rammohan0504 commited on
Commit
17c3e28
·
verified ·
1 Parent(s): f5b14a7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -4
app.py CHANGED
@@ -111,16 +111,20 @@ def save_dpr_to_pdf(dpr_text, image_paths, captions, filename):
111
  except Exception as e:
112
  return f"Error saving PDF: {str(e)}", None
113
 
 
114
  # Function to upload a file to Salesforce as ContentVersion and get its download URL
115
  def upload_pdf_to_salesforce(pdf_file, project_title, record_id=None):
116
  try:
117
- sf = get_salesforce_connection()
118
  if not sf:
119
  print("Salesforce connection failed. Cannot upload PDF.")
120
  return None, None
121
 
 
122
  encoded_pdf_data = base64.b64encode(pdf_file.getvalue()).decode('utf-8')
123
  print(f"Uploading PDF for project: {project_title}, record ID: {record_id}")
 
 
124
  content_version_data = {
125
  "Title": f"{project_title} - Gantt Chart PDF",
126
  "PathOnClient": f"{project_title}_Gantt_Chart.pdf",
@@ -130,10 +134,12 @@ def upload_pdf_to_salesforce(pdf_file, project_title, record_id=None):
130
  if record_id:
131
  content_version_data["FirstPublishLocationId"] = record_id
132
 
 
133
  content_version = sf.ContentVersion.create(content_version_data)
134
  content_version_id = content_version["id"]
135
  print(f"PDF uploaded to Salesforce with ContentVersion ID: {content_version_id}")
136
 
 
137
  result = sf.query(f"SELECT Id, ContentDocumentId FROM ContentVersion WHERE Id = '{content_version_id}'")
138
  if not result['records']:
139
  print("No records returned for ContentVersion query")
@@ -147,7 +153,7 @@ def upload_pdf_to_salesforce(pdf_file, project_title, record_id=None):
147
  print(f"Error uploading PDF to Salesforce: {str(e)}", exc_info=True)
148
  return None, None
149
 
150
- # Function to upload files and generate the daily progress report (DPR), save as PDF, and upload to Salesforce
151
  def generate_dpr(files):
152
  dpr_text = []
153
  captions = []
@@ -199,9 +205,9 @@ def generate_dpr(files):
199
  dpr_record_id = dpr_record['id']
200
  salesforce_result += f"Created Daily_Progress_Reports__c record with ID: {dpr_record_id}\n"
201
 
202
- # Upload PDF to Salesforce
203
  pdf_content_document_id, pdf_url, pdf_upload_result = upload_pdf_to_salesforce(
204
- pdf_filepath, pdf_filename, sf, "pdf"
205
  )
206
  salesforce_result += pdf_upload_result + "\n"
207
 
 
111
  except Exception as e:
112
  return f"Error saving PDF: {str(e)}", None
113
 
114
+ # Function to upload a file to Salesforce as ContentVersion and get its download URL
115
  # Function to upload a file to Salesforce as ContentVersion and get its download URL
116
  def upload_pdf_to_salesforce(pdf_file, project_title, record_id=None):
117
  try:
118
+ sf = get_salesforce_connection() # Get Salesforce connection
119
  if not sf:
120
  print("Salesforce connection failed. Cannot upload PDF.")
121
  return None, None
122
 
123
+ # Encoding the file in base64
124
  encoded_pdf_data = base64.b64encode(pdf_file.getvalue()).decode('utf-8')
125
  print(f"Uploading PDF for project: {project_title}, record ID: {record_id}")
126
+
127
+ # Create ContentVersion data to upload to Salesforce
128
  content_version_data = {
129
  "Title": f"{project_title} - Gantt Chart PDF",
130
  "PathOnClient": f"{project_title}_Gantt_Chart.pdf",
 
134
  if record_id:
135
  content_version_data["FirstPublishLocationId"] = record_id
136
 
137
+ # Uploading the PDF to Salesforce
138
  content_version = sf.ContentVersion.create(content_version_data)
139
  content_version_id = content_version["id"]
140
  print(f"PDF uploaded to Salesforce with ContentVersion ID: {content_version_id}")
141
 
142
+ # Querying the ContentDocumentId to get the download URL
143
  result = sf.query(f"SELECT Id, ContentDocumentId FROM ContentVersion WHERE Id = '{content_version_id}'")
144
  if not result['records']:
145
  print("No records returned for ContentVersion query")
 
153
  print(f"Error uploading PDF to Salesforce: {str(e)}", exc_info=True)
154
  return None, None
155
 
156
+ # Correct the call to upload_pdf_to_salesforce() in generate_dpr
157
  def generate_dpr(files):
158
  dpr_text = []
159
  captions = []
 
205
  dpr_record_id = dpr_record['id']
206
  salesforce_result += f"Created Daily_Progress_Reports__c record with ID: {dpr_record_id}\n"
207
 
208
+ # Corrected call to upload_pdf_to_salesforce
209
  pdf_content_document_id, pdf_url, pdf_upload_result = upload_pdf_to_salesforce(
210
+ pdf_filepath, project_title=pdf_filename # Pass project title as the title
211
  )
212
  salesforce_result += pdf_upload_result + "\n"
213