package org.openmrs.module.reporting.web.controller.portlet;
import org.openmrs.api.context.Context;
import org.openmrs.module.reporting.report.ReportRequest;
import org.openmrs.module.reporting.report.ReportRequest.Status;
import org.openmrs.module.reporting.report.service.ReportService;
import org.openmrs.module.reporting.web.renderers.WebReportRenderer;
import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SavedReportsPortletController extends ReportingPortletController {
/**
* @see org.openmrs.module.reporting.web.controller.portlet.ReportingPortletController#populateModel(javax.servlet.http.HttpServletRequest, java.util.Map)
*/
@Override
protected void populateModel(HttpServletRequest request, Map<String, Object> model) {
super.populateModel(request, model);
List<ReportRequest> saved = Context.getService(ReportService.class).getReportRequests(null, null, null, Status.SAVED);
Collections.reverse(saved);
model.put("savedRequests", saved);
Map<ReportRequest, String> shortNames = new HashMap<ReportRequest, String>();
Map<ReportRequest, Boolean> isWebRenderer = new HashMap<ReportRequest, Boolean>();
for (ReportRequest r : saved) {
if (r.getRenderingMode().getRenderer() instanceof WebReportRenderer) {
shortNames.put(r, "Web");
isWebRenderer.put(r, true);
} else {
String filename = r.getRenderingMode().getRenderer().getFilename(r);
try {
filename = filename.substring(filename.lastIndexOf('.') + 1);
filename = filename.toUpperCase();
}
catch (Exception ex) {}
shortNames.put(r, filename);
isWebRenderer.put(r, false);
}
}
model.put("shortNames", shortNames);
model.put("isWebRenderer", isWebRenderer);
}
}