nagasurendra commited on
Commit
bf329cc
·
verified ·
1 Parent(s): 92eae64

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -10
app.py CHANGED
@@ -94,7 +94,7 @@ def save_dpr_to_pdf(dpr_text, filename):
94
  except Exception as e:
95
  return f"Error saving PDF: {str(e)}", None
96
 
97
- # Function to upload a file to Salesforce as ContentVersion
98
  def upload_file_to_salesforce(file_path, filename, sf_connection, field_name):
99
  try:
100
  # Read file content and encode in base64
@@ -117,9 +117,12 @@ def upload_file_to_salesforce(file_path, filename, sf_connection, field_name):
117
  )
118
  content_document_id = content_document['records'][0]['ContentDocumentId']
119
 
120
- return content_document_id, f"File {filename} uploaded successfully for {field_name}"
 
 
 
121
  except Exception as e:
122
- return None, f"Error uploading {filename} to Salesforce for {field_name}: {str(e)}"
123
 
124
  # Function to generate the daily progress report (DPR), save as PDF, and upload to Salesforce
125
  def generate_dpr(files):
@@ -158,12 +161,14 @@ def generate_dpr(files):
158
  # Salesforce upload
159
  salesforce_result = ""
160
  pdf_content_document_id = None
 
 
161
  image_content_document_ids = []
162
 
163
  if sf and pdf_filepath:
164
  try:
165
  # Upload PDF to Salesforce for Report_PDF__c
166
- pdf_content_document_id, pdf_upload_result = upload_file_to_salesforce(
167
  pdf_filepath, pdf_filename, sf, 'Report_PDF__c'
168
  )
169
  salesforce_result += pdf_upload_result + "\n"
@@ -171,20 +176,21 @@ def generate_dpr(files):
171
  # Upload images to Salesforce for Site_Images__c
172
  for file in files:
173
  image_filename = os.path.basename(file.name)
174
- image_content_document_id, image_upload_result = upload_file_to_salesforce(
175
  file.name, image_filename, sf, 'Site_Images__c'
176
  )
177
- if image_content_document_id:
178
  image_content_document_ids.append(image_content_document_id)
 
179
  salesforce_result += image_upload_result + "\n"
180
 
181
- # Create Daily_Progress_Reports__c record with file references
182
  report_description = "; ".join(captions)[:255] # Concatenate captions, limit to 255 chars
183
- images_ids = ";".join(image_content_document_ids) # Semicolon-separated image IDs
184
  dpr_record = sf.Daily_Progress_Reports__c.create({
185
  'Report_Description__c': report_description,
186
- 'Report_PDF__c': pdf_content_document_id if pdf_content_document_id else '',
187
- 'Site_Images__c': images_ids if images_ids else ''
188
  })
189
  dpr_record_id = dpr_record['id']
190
  salesforce_result += f"Created Daily_Progress_Reports__c record with ID: {dpr_record_id}\n"
 
94
  except Exception as e:
95
  return f"Error saving PDF: {str(e)}", None
96
 
97
+ # Function to upload a file to Salesforce as ContentVersion and get its URL
98
  def upload_file_to_salesforce(file_path, filename, sf_connection, field_name):
99
  try:
100
  # Read file content and encode in base64
 
117
  )
118
  content_document_id = content_document['records'][0]['ContentDocumentId']
119
 
120
+ # Construct the file download URL
121
+ file_url = f"/sfc/servlet.shepherd/document/download/{content_document_id}"
122
+
123
+ return content_document_id, file_url, f"File {filename} uploaded successfully for {field_name}"
124
  except Exception as e:
125
+ return None, None, f"Error uploading {filename} to Salesforce for {field_name}: {str(e)}"
126
 
127
  # Function to generate the daily progress report (DPR), save as PDF, and upload to Salesforce
128
  def generate_dpr(files):
 
161
  # Salesforce upload
162
  salesforce_result = ""
163
  pdf_content_document_id = None
164
+ pdf_url = None
165
+ image_urls = []
166
  image_content_document_ids = []
167
 
168
  if sf and pdf_filepath:
169
  try:
170
  # Upload PDF to Salesforce for Report_PDF__c
171
+ pdf_content_document_id, pdf_url, pdf_upload_result = upload_file_to_salesforce(
172
  pdf_filepath, pdf_filename, sf, 'Report_PDF__c'
173
  )
174
  salesforce_result += pdf_upload_result + "\n"
 
176
  # Upload images to Salesforce for Site_Images__c
177
  for file in files:
178
  image_filename = os.path.basename(file.name)
179
+ image_content_document_id, image_url, image_upload_result = upload_file_to_salesforce(
180
  file.name, image_filename, sf, 'Site_Images__c'
181
  )
182
+ if image_content_document_id and image_url:
183
  image_content_document_ids.append(image_content_document_id)
184
+ image_urls.append(image_url)
185
  salesforce_result += image_upload_result + "\n"
186
 
187
+ # Create Daily_Progress_Reports__c record with file URLs
188
  report_description = "; ".join(captions)[:255] # Concatenate captions, limit to 255 chars
189
+ images_urls_str = ";".join(image_urls) # Semicolon-separated image URLs
190
  dpr_record = sf.Daily_Progress_Reports__c.create({
191
  'Report_Description__c': report_description,
192
+ 'Report_PDF__c': pdf_url if pdf_url else '',
193
+ 'Site_Images__c': images_urls_str if images_urls_str else ''
194
  })
195
  dpr_record_id = dpr_record['id']
196
  salesforce_result += f"Created Daily_Progress_Reports__c record with ID: {dpr_record_id}\n"