Search in sources :

Example 16 with Report

use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.

the class ReportMailerTest method testEmail.

private void testEmail(String locale) {
    User user = new User();
    user.setEmail("akbertram@gmail.com");
    user.setName("alex");
    user.setLocale(locale);
    ReportSubscription sub = new ReportSubscription();
    sub.setTemplate(new ReportDefinition());
    sub.getTemplate().setId(5040);
    sub.setUser(user);
    sub.setEmailDelivery(EmailDelivery.WEEKLY);
    sub.setEmailDay(1);
    Report report = new Report();
    report.setTitle("Rapport RRM Mensuelle");
    String text = ReportMailerHelper.composeTextEmail(sub, report);
    System.out.println(text);
    Assert.assertTrue("user name is present", text.contains(user.getName()));
    Assert.assertTrue("link is correct without comma", text.contains("#report/5040"));
}
Also used : User(org.activityinfo.server.database.hibernate.entity.User) Report(org.activityinfo.shared.report.model.Report) ReportSubscription(org.activityinfo.server.database.hibernate.entity.ReportSubscription) ReportDefinition(org.activityinfo.server.database.hibernate.entity.ReportDefinition)

Example 17 with Report

use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.

the class ReportJsonFactory method deserialize.

@Override
public Report deserialize(String json) {
    if (json == null || json.length() < 1) {
        return null;
    }
    JsonObject jsonObject = (JsonObject) parser.parse(json);
    Report report = new Report();
    report.setId(jsonObject.get("id").getAsInt());
    JsonElement title = jsonObject.get("title");
    if (title != null) {
        report.setTitle(title.getAsString());
    }
    JsonElement sheetTitle = jsonObject.get("sheetTitle");
    if (sheetTitle != null) {
        report.setSheetTitle(sheetTitle.getAsString());
    }
    JsonElement description = jsonObject.get("description");
    if (description != null) {
        report.setDescription(description.getAsString());
    }
    JsonElement fileName = jsonObject.get("fileName");
    if (fileName != null) {
        report.setFileName(fileName.getAsString());
    }
    JsonObject filter = jsonObject.get("filter").getAsJsonObject();
    if (filter != null) {
        report.setFilter(decodeFilter(filter));
    }
    JsonArray elements = jsonObject.get("elements").getAsJsonArray();
    if (elements.size() > 0) {
        report.setElements(decodeElements(elements));
    }
    return report;
}
Also used : JsonArray(com.google.gson.JsonArray) Report(org.activityinfo.shared.report.model.Report) JsonElement(com.google.gson.JsonElement) JsonObject(com.google.gson.JsonObject)

Example 18 with Report

use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.

the class ReportServlet method doGet.

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // first, authenticate the response
    AuthenticationDAO authDAO = injector.getInstance(AuthenticationDAO.class);
    Authentication auth = authDAO.findById(req.getParameter("auth"));
    if (auth == null) {
        resp.setStatus(500);
        return;
    }
    // now apply the user filters
    EntityManager em = injector.getInstance(EntityManager.class);
    DomainFilters.applyUserFilter(auth.getUser(), em);
    // load the report definition by id
    ReportDefinition template = em.find(ReportDefinition.class, Integer.parseInt(req.getParameter("id")));
    Report report = null;
    try {
        report = ReportParserJaxb.parseXml(template.getXml());
    } catch (Exception e) {
        e.printStackTrace();
        resp.setStatus(500);
    }
    // parse parameters
    DateRange dateRange = new DateRange();
    if (req.getParameter("minDate") != null) {
        dateRange.setMinDate(new Date(Long.parseLong(req.getParameter("minDate"))));
    }
    if (req.getParameter("maxDate") != null) {
        dateRange.setMaxDate(new Date(Long.parseLong(req.getParameter("maxDate"))));
    }
    // generate the report content
    ReportGenerator gtor = injector.getInstance(ReportGenerator.class);
    gtor.generate(auth.getUser(), report, null, dateRange);
    // render in the requested format
    RenderElement.Format format = RenderElement.Format.valueOf(req.getParameter("format"));
    RendererFactory factory = injector.getInstance(RendererFactory.class);
    Renderer renderer = factory.get(format);
    // composefile name
    String filename = report.getContent().getFileName() + renderer.getFileSuffix();
    resp.setContentType(renderer.getMimeType());
    resp.addHeader("Content-Disposition", "attachment; filename=" + filename);
    try {
        renderer.render(report, resp.getOutputStream());
    } catch (IOException e) {
        e.printStackTrace();
        resp.setStatus(500);
    }
}
Also used : RenderElement(org.activityinfo.shared.command.RenderElement) Report(org.activityinfo.shared.report.model.Report) AuthenticationDAO(org.activityinfo.server.database.hibernate.dao.AuthenticationDAO) IOException(java.io.IOException) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) Date(java.util.Date) EntityManager(javax.persistence.EntityManager) DateRange(org.activityinfo.shared.report.model.DateRange) ReportGenerator(org.activityinfo.server.report.generator.ReportGenerator) RendererFactory(org.activityinfo.server.report.renderer.RendererFactory) Authentication(org.activityinfo.server.database.hibernate.entity.Authentication) Renderer(org.activityinfo.server.report.renderer.Renderer) ReportDefinition(org.activityinfo.server.database.hibernate.entity.ReportDefinition)

Example 19 with Report

use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.

the class ReportParserJaxb method parseXML.

public static Report parseXML(Reader reader) throws JAXBException {
    Unmarshaller um = CONTEXT.get().createUnmarshaller();
    um.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());
    return (Report) um.unmarshal(reader);
}
Also used : Report(org.activityinfo.shared.report.model.Report) Unmarshaller(javax.xml.bind.Unmarshaller)

Example 20 with Report

use of org.activityinfo.shared.report.model.Report in project activityinfo by bedatadriven.

the class ExcelReportRenderer method render.

@Override
public void render(ReportElement element, OutputStream os) throws IOException {
    HSSFWorkbook book = new HSSFWorkbook();
    if (element instanceof Report) {
        render(book, (Report) element);
    } else if (element instanceof PivotTableReportElement) {
        pivotTableRenderer.render(book, (PivotTableReportElement) element);
    } else if (element instanceof TableElement) {
        tableRenderer.render(book, (TableElement) element);
    } else if (element instanceof PivotChartReportElement) {
        chartRenderer.render(book, (PivotChartReportElement) element);
    }
    book.write(os);
}
Also used : Report(org.activityinfo.shared.report.model.Report) PivotChartReportElement(org.activityinfo.shared.report.model.PivotChartReportElement) PivotTableReportElement(org.activityinfo.shared.report.model.PivotTableReportElement) HSSFWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) TableElement(org.activityinfo.shared.report.model.TableElement)

Aggregations

Report (org.activityinfo.shared.report.model.Report)37 Test (org.junit.Test)22 MapReportElement (org.activityinfo.shared.report.model.MapReportElement)11 ReportContent (org.activityinfo.shared.report.content.ReportContent)9 PivotTableReportElement (org.activityinfo.shared.report.model.PivotTableReportElement)9 PivotChartReportElement (org.activityinfo.shared.report.model.PivotChartReportElement)8 FileOutputStream (java.io.FileOutputStream)5 DummyPivotTableData (org.activityinfo.server.report.DummyPivotTableData)4 TileBaseMap (org.activityinfo.shared.map.TileBaseMap)4 TableElement (org.activityinfo.shared.report.model.TableElement)4 TextReportElement (org.activityinfo.shared.report.model.TextReportElement)4 IOException (java.io.IOException)3 JAXBContext (javax.xml.bind.JAXBContext)3 Unmarshaller (javax.xml.bind.Unmarshaller)3 ReportDefinition (org.activityinfo.server.database.hibernate.entity.ReportDefinition)3 BubbleMapMarker (org.activityinfo.shared.report.content.BubbleMapMarker)3 IconMapMarker (org.activityinfo.shared.report.content.IconMapMarker)3 MapContent (org.activityinfo.shared.report.content.MapContent)3 MapMarker (org.activityinfo.shared.report.content.MapMarker)3 PivotContent (org.activityinfo.shared.report.content.PivotContent)3