RathodHarish commited on
Commit
7ec4995
·
verified ·
1 Parent(s): e0e576d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -6
app.py CHANGED
@@ -100,12 +100,14 @@ def get_folder_id(folder_name):
100
  LABOPS_REPORTS_FOLDER_ID = get_folder_id('LabOps Reports')
101
 
102
  # Salesforce report creation
103
- def create_salesforce_reports(df):
104
  if sf is None or not LABOPS_REPORTS_FOLDER_ID:
105
  logging.error("Cannot create Salesforce reports: No connection or folder ID")
106
  return
107
  try:
108
  timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
 
 
109
  reports = [
110
  {
111
  "reportMetadata": {
@@ -126,7 +128,10 @@ def create_salesforce_reports(df):
126
  "reportType": {"type": "CustomEntity", "value": "SmartLog__c"},
127
  "reportFormat": "TABULAR",
128
  "reportBooleanFilter": None,
129
- "reportFilters": [],
 
 
 
130
  "detailColumns": ["SmartLog__c.Device_Id__c", "SmartLog__c.AMC_Date__c"],
131
  "folderId": LABOPS_REPORTS_FOLDER_ID
132
  }
@@ -134,7 +139,7 @@ def create_salesforce_reports(df):
134
  ]
135
  for report in reports:
136
  sf.restful('analytics/reports', method='POST', json=report)
137
- logging.info("Salesforce reports created successfully")
138
  except Exception as e:
139
  logging.error(f"Failed to create Salesforce reports: {str(e)}")
140
 
@@ -401,7 +406,7 @@ def create_anomaly_alerts_chart(anomalies_df):
401
  x='date',
402
  y='anomaly_count',
403
  title="Anomaly Alerts Over Time",
404
- labels={"date": "Date", "anomaly_count": "Number of Anomalies"}
405
  )
406
  fig.update_layout(title_font_size=16, margin=dict(l=20, r=20, t=40, b=20))
407
  return fig
@@ -606,9 +611,9 @@ async def process_logs(file_obj, lab_site_filter, equipment_type_filter, date_ra
606
  anomaly_alerts_chart = create_anomaly_alerts_chart(anomalies_df)
607
  device_cards = generate_device_cards(filtered_df)
608
 
609
- # Save to Salesforce after all other processing
610
  save_to_salesforce(filtered_df, reminders_df)
611
- create_salesforce_reports(filtered_df)
612
 
613
  elapsed_time = time.time() - start_time
614
  logging.info(f"Processing completed in {elapsed_time:.2f} seconds")
 
100
  LABOPS_REPORTS_FOLDER_ID = get_folder_id('LabOps Reports')
101
 
102
  # Salesforce report creation
103
+ def create_salesforce_reports(df, reminders_df):
104
  if sf is None or not LABOPS_REPORTS_FOLDER_ID:
105
  logging.error("Cannot create Salesforce reports: No connection or folder ID")
106
  return
107
  try:
108
  timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
109
+ current_date = datetime.now()
110
+ next_30_days = current_date + timedelta(days=30)
111
  reports = [
112
  {
113
  "reportMetadata": {
 
128
  "reportType": {"type": "CustomEntity", "value": "SmartLog__c"},
129
  "reportFormat": "TABULAR",
130
  "reportBooleanFilter": None,
131
+ "reportFilters": [
132
+ {"column": "AMC_Date__c", "operator": "greaterOrEqual", "value": current_date.strftime('%Y-%m-%d')},
133
+ {"column": "AMC_Date__c", "operator": "lessOrEqual", "value": next_30_days.strftime('%Y-%m-%d')}
134
+ ],
135
  "detailColumns": ["SmartLog__c.Device_Id__c", "SmartLog__c.AMC_Date__c"],
136
  "folderId": LABOPS_REPORTS_FOLDER_ID
137
  }
 
139
  ]
140
  for report in reports:
141
  sf.restful('analytics/reports', method='POST', json=report)
142
+ logging.info("Salesforce reports created successfully with AMC reminders filter")
143
  except Exception as e:
144
  logging.error(f"Failed to create Salesforce reports: {str(e)}")
145
 
 
406
  x='date',
407
  y='anomaly_count',
408
  title="Anomaly Alerts Over Time",
409
+ labels{"date": "Date", "anomaly_count": "Number of Anomalies"}
410
  )
411
  fig.update_layout(title_font_size=16, margin=dict(l=20, r=20, t=40, b=20))
412
  return fig
 
611
  anomaly_alerts_chart = create_anomaly_alerts_chart(anomalies_df)
612
  device_cards = generate_device_cards(filtered_df)
613
 
614
+ # Save to Salesforce and create reports
615
  save_to_salesforce(filtered_df, reminders_df)
616
+ create_salesforce_reports(filtered_df, reminders_df)
617
 
618
  elapsed_time = time.time() - start_time
619
  logging.info(f"Processing completed in {elapsed_time:.2f} seconds")