Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -103,24 +103,18 @@ def get_projects_for_supervisor(supervisor_name):
|
|
103 |
print(f"⚠️ Error fetching project: {e}")
|
104 |
return ""
|
105 |
|
106 |
-
def field_exists(sf, object_name, field_name):
|
107 |
-
try:
|
108 |
-
obj_desc = getattr(sf, object_name).describe()
|
109 |
-
return field_name in [field['name'] for field in obj_desc['fields']]
|
110 |
-
except Exception as e:
|
111 |
-
print(f"⚠️ Error checking field {field_name}: {e}")
|
112 |
-
return False
|
113 |
-
|
114 |
-
# New function to generate Salesforce dashboard URL (Visualforce Page)
|
115 |
def generate_salesforce_dashboard_url(supervisor_name, project_id):
|
116 |
# Use the provided Salesforce Visualforce URL with supervisorName and projectId as parameters
|
117 |
return f"https://aicoachforsitesupervisors-dev-ed--c.develop.vf.force.com/apex/DashboardPage?supervisorName={supervisor_name}&projectId={project_id}"
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
124 |
|
125 |
# Generate function
|
126 |
def generate_outputs(role, supervisor_name, project_id, milestones, reflection):
|
@@ -216,10 +210,12 @@ def create_interface():
|
|
216 |
clear = gr.Button("Clear")
|
217 |
refresh = gr.Button("🔄 Refresh Roles")
|
218 |
dashboard_btn = gr.Button("Dashboard")
|
|
|
219 |
|
220 |
checklist_output = gr.Textbox(label="✅ Daily Checklist")
|
221 |
suggestions_output = gr.Textbox(label="💡 Focus Suggestions")
|
222 |
dashboard_link = gr.HTML("")
|
|
|
223 |
|
224 |
role.change(fn=lambda r: gr.update(choices=get_supervisor_name_by_role(r)), inputs=role, outputs=supervisor_name)
|
225 |
supervisor_name.change(fn=get_projects_for_supervisor, inputs=supervisor_name, outputs=project_id)
|
@@ -234,10 +230,10 @@ def create_interface():
|
|
234 |
refresh.click(fn=lambda: gr.update(choices=get_roles_from_salesforce()), outputs=role)
|
235 |
|
236 |
dashboard_btn.click(fn=open_dashboard, inputs=[role, supervisor_name, project_id], outputs=dashboard_link)
|
|
|
237 |
|
238 |
return demo
|
239 |
|
240 |
if __name__ == "__main__":
|
241 |
app = create_interface()
|
242 |
app.launch()
|
243 |
-
|
|
|
103 |
print(f"⚠️ Error fetching project: {e}")
|
104 |
return ""
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
def generate_salesforce_dashboard_url(supervisor_name, project_id):
|
107 |
# Use the provided Salesforce Visualforce URL with supervisorName and projectId as parameters
|
108 |
return f"https://aicoachforsitesupervisors-dev-ed--c.develop.vf.force.com/apex/DashboardPage?supervisorName={supervisor_name}&projectId={project_id}"
|
109 |
|
110 |
+
def generate_salesforce_report_url(supervisor_name, project_id):
|
111 |
+
# Similar function to generate a report URL for supervisor and project
|
112 |
+
return f"https://aicoachforsitesupervisors-dev-ed--c.develop.vf.force.com/apex/ReportPage?supervisorName={supervisor_name}&projectId={project_id}"
|
113 |
+
|
114 |
+
# New function to open the report page
|
115 |
+
def open_report_page(role, supervisor_name, project_id):
|
116 |
+
report_url = generate_salesforce_report_url(supervisor_name, project_id)
|
117 |
+
return f'<a href="{report_url}" target="_blank" rel="noopener noreferrer" style="font-size:16px;">Open Supervisor Report</a>'
|
118 |
|
119 |
# Generate function
|
120 |
def generate_outputs(role, supervisor_name, project_id, milestones, reflection):
|
|
|
210 |
clear = gr.Button("Clear")
|
211 |
refresh = gr.Button("🔄 Refresh Roles")
|
212 |
dashboard_btn = gr.Button("Dashboard")
|
213 |
+
report_btn = gr.Button("Report")
|
214 |
|
215 |
checklist_output = gr.Textbox(label="✅ Daily Checklist")
|
216 |
suggestions_output = gr.Textbox(label="💡 Focus Suggestions")
|
217 |
dashboard_link = gr.HTML("")
|
218 |
+
report_link = gr.HTML("")
|
219 |
|
220 |
role.change(fn=lambda r: gr.update(choices=get_supervisor_name_by_role(r)), inputs=role, outputs=supervisor_name)
|
221 |
supervisor_name.change(fn=get_projects_for_supervisor, inputs=supervisor_name, outputs=project_id)
|
|
|
230 |
refresh.click(fn=lambda: gr.update(choices=get_roles_from_salesforce()), outputs=role)
|
231 |
|
232 |
dashboard_btn.click(fn=open_dashboard, inputs=[role, supervisor_name, project_id], outputs=dashboard_link)
|
233 |
+
report_btn.click(fn=open_report_page, inputs=[role, supervisor_name, project_id], outputs=report_link)
|
234 |
|
235 |
return demo
|
236 |
|
237 |
if __name__ == "__main__":
|
238 |
app = create_interface()
|
239 |
app.launch()
|
|