Update app.py
Browse files
app.py
CHANGED
|
@@ -54,7 +54,6 @@ class VendorLog(BaseModel):
|
|
| 54 |
vendorLogName: str
|
| 55 |
delayDays: int
|
| 56 |
project: str
|
| 57 |
-
project_name: str # Added new field for Project Name
|
| 58 |
|
| 59 |
# Store vendor logs for display
|
| 60 |
vendor_logs = []
|
|
@@ -63,7 +62,7 @@ def fetch_vendor_logs_from_salesforce():
|
|
| 63 |
try:
|
| 64 |
query = """
|
| 65 |
SELECT Id, Name, Vendor__c, Work_Completion_Percentage__c, Quality_Percentage__c, Incident_Severity__c,
|
| 66 |
-
Work_Completion_Date__c, Actual_Completion_Date__c, Delay_Days__c, Project__c
|
| 67 |
FROM Vendor_Log__c
|
| 68 |
"""
|
| 69 |
result = sf.query_all(query)
|
|
@@ -80,8 +79,7 @@ def fetch_vendor_logs_from_salesforce():
|
|
| 80 |
actualCompletionDate=record['Actual_Completion_Date__c'] or "N/A",
|
| 81 |
vendorLogName=record['Name'] or "Unknown",
|
| 82 |
delayDays=int(record['Delay_Days__c'] or 0),
|
| 83 |
-
project=record['Project__c'] or "Unknown"
|
| 84 |
-
project_name=record['Project__r']['Name'] if record['Project__r'] else "Unknown" # Fetch Project Name
|
| 85 |
)
|
| 86 |
logs.append(log)
|
| 87 |
return logs
|
|
@@ -118,7 +116,7 @@ def calculate_scores(log: VendorLog):
|
|
| 118 |
logger.error(f"Error calculating scores: {str(e)}")
|
| 119 |
raise
|
| 120 |
|
| 121 |
-
def get_feedback(score: float, metric
|
| 122 |
try:
|
| 123 |
if score >= 90:
|
| 124 |
return "Excellent: Maintain this standard"
|
|
@@ -252,7 +250,6 @@ async def score_vendor(log: VendorLog, authorization: str = Header(...)):
|
|
| 252 |
'actualCompletionDate': log.actualCompletionDate,
|
| 253 |
'delayDays': log.delayDays,
|
| 254 |
'project': log.project,
|
| 255 |
-
'project_name': log.project_name, # Include project_name
|
| 256 |
'scores': scores,
|
| 257 |
'extracted': True
|
| 258 |
})
|
|
@@ -295,7 +292,6 @@ async def get_dashboard():
|
|
| 295 |
'actualCompletionDate': log.actualCompletionDate,
|
| 296 |
'delayDays': log.delayDays,
|
| 297 |
'project': log.project,
|
| 298 |
-
'project_name': log.project_name, # Include project_name
|
| 299 |
'scores': scores,
|
| 300 |
'extracted': True
|
| 301 |
})
|
|
@@ -363,7 +359,7 @@ async def get_dashboard():
|
|
| 363 |
<tr>
|
| 364 |
<td>{log['vendorId']}</td>
|
| 365 |
<td>{log['vendorLogName']}</td>
|
| 366 |
-
<td>{log['
|
| 367 |
<td>{log['workDetails']}</td>
|
| 368 |
<td>{log['qualityReport']}</td>
|
| 369 |
<td>{log['incidentLog']}</td>
|
|
@@ -404,7 +400,7 @@ async def get_dashboard():
|
|
| 404 |
<tr>
|
| 405 |
<td>{log['vendorId']}</td>
|
| 406 |
<td>{log['vendorLogName']}</td>
|
| 407 |
-
<td>{log['
|
| 408 |
<td>{scores['qualityScore']}%</td>
|
| 409 |
<td>{scores['timelinessScore']}%</td>
|
| 410 |
<td>{scores['safetyScore']}%</td>
|
|
@@ -446,7 +442,6 @@ async def generate_scores():
|
|
| 446 |
'actualCompletionDate': log.actualCompletionDate,
|
| 447 |
'delayDays': log.delayDays,
|
| 448 |
'project': log.project,
|
| 449 |
-
'project_name': log.project_name, # Include project_name
|
| 450 |
'scores': scores,
|
| 451 |
'extracted': True
|
| 452 |
})
|
|
|
|
| 54 |
vendorLogName: str
|
| 55 |
delayDays: int
|
| 56 |
project: str
|
|
|
|
| 57 |
|
| 58 |
# Store vendor logs for display
|
| 59 |
vendor_logs = []
|
|
|
|
| 62 |
try:
|
| 63 |
query = """
|
| 64 |
SELECT Id, Name, Vendor__c, Work_Completion_Percentage__c, Quality_Percentage__c, Incident_Severity__c,
|
| 65 |
+
Work_Completion_Date__c, Actual_Completion_Date__c, Delay_Days__c, Project__c
|
| 66 |
FROM Vendor_Log__c
|
| 67 |
"""
|
| 68 |
result = sf.query_all(query)
|
|
|
|
| 79 |
actualCompletionDate=record['Actual_Completion_Date__c'] or "N/A",
|
| 80 |
vendorLogName=record['Name'] or "Unknown",
|
| 81 |
delayDays=int(record['Delay_Days__c'] or 0),
|
| 82 |
+
project=record['Project__c'] or "Unknown"
|
|
|
|
| 83 |
)
|
| 84 |
logs.append(log)
|
| 85 |
return logs
|
|
|
|
| 116 |
logger.error(f"Error calculating scores: {str(e)}")
|
| 117 |
raise
|
| 118 |
|
| 119 |
+
def get_feedback(score: float, metric scum:
|
| 120 |
try:
|
| 121 |
if score >= 90:
|
| 122 |
return "Excellent: Maintain this standard"
|
|
|
|
| 250 |
'actualCompletionDate': log.actualCompletionDate,
|
| 251 |
'delayDays': log.delayDays,
|
| 252 |
'project': log.project,
|
|
|
|
| 253 |
'scores': scores,
|
| 254 |
'extracted': True
|
| 255 |
})
|
|
|
|
| 292 |
'actualCompletionDate': log.actualCompletionDate,
|
| 293 |
'delayDays': log.delayDays,
|
| 294 |
'project': log.project,
|
|
|
|
| 295 |
'scores': scores,
|
| 296 |
'extracted': True
|
| 297 |
})
|
|
|
|
| 359 |
<tr>
|
| 360 |
<td>{log['vendorId']}</td>
|
| 361 |
<td>{log['vendorLogName']}</td>
|
| 362 |
+
<td>{log['project']}</td>
|
| 363 |
<td>{log['workDetails']}</td>
|
| 364 |
<td>{log['qualityReport']}</td>
|
| 365 |
<td>{log['incidentLog']}</td>
|
|
|
|
| 400 |
<tr>
|
| 401 |
<td>{log['vendorId']}</td>
|
| 402 |
<td>{log['vendorLogName']}</td>
|
| 403 |
+
<td>{log['project']}</td>
|
| 404 |
<td>{scores['qualityScore']}%</td>
|
| 405 |
<td>{scores['timelinessScore']}%</td>
|
| 406 |
<td>{scores['safetyScore']}%</td>
|
|
|
|
| 442 |
'actualCompletionDate': log.actualCompletionDate,
|
| 443 |
'delayDays': log.delayDays,
|
| 444 |
'project': log.project,
|
|
|
|
| 445 |
'scores': scores,
|
| 446 |
'extracted': True
|
| 447 |
})
|