Search in sources :

Example 1 with ReportContext

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContext in project pyramus by otavanopisto.

the class EditReportJSONRequestController method process.

/**
 * Processes the request to edit a report.
 *
 * @param requestContext The JSON request context
 */
public void process(JSONRequestContext requestContext) {
    ReportDAO reportDAO = DAOFactory.getInstance().getReportDAO();
    ReportCategoryDAO categoryDAO = DAOFactory.getInstance().getReportCategoryDAO();
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    Long reportId = requestContext.getLong("reportId");
    Report report = reportDAO.findById(reportId);
    Long reportCategoryId = requestContext.getLong("category");
    ReportCategory category = reportCategoryId == null ? null : categoryDAO.findById(reportCategoryId);
    String name = requestContext.getString("name");
    reportDAO.update(report, name, category);
    for (ReportContextType contextType : ReportContextType.values()) {
        ReportContext context = reportContextDAO.findByReportAndContextType(report, contextType);
        boolean selected = requestContext.getBoolean("context." + contextType.toString());
        if (selected && context == null)
            reportContextDAO.create(report, contextType);
        else if (!selected && context != null)
            reportContextDAO.delete(context);
    }
    requestContext.setRedirectURL(requestContext.getReferer(true));
}
Also used : ReportCategory(fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory) Report(fi.otavanopisto.pyramus.domainmodel.reports.Report) ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ReportCategoryDAO(fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO) ReportContextType(fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType) ReportDAO(fi.otavanopisto.pyramus.dao.reports.ReportDAO) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Example 2 with ReportContext

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContext in project pyramus by otavanopisto.

the class ImportReportViewController method processForm.

@Override
public void processForm(PageRequestContext requestContext) {
    ReportDAO reportDAO = DAOFactory.getInstance().getReportDAO();
    ReportCategoryDAO categoryDAO = DAOFactory.getInstance().getReportCategoryDAO();
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    List<Report> reports = reportDAO.listAll();
    Collections.sort(reports, new StringAttributeComparator("getName"));
    JSONArray contextTypesJSON = new JSONArray();
    List<String> contextTypes = new ArrayList<>();
    for (ReportContextType contextType : ReportContextType.values()) {
        contextTypes.add(contextType.toString());
        contextTypesJSON.add(contextType.toString());
    }
    JSONArray reportsJSON = new JSONArray();
    for (Report report : reports) {
        JSONObject rObj = new JSONObject();
        List<ReportContext> contexts = reportContextDAO.listByReport(report);
        JSONArray rCtxs = new JSONArray();
        for (ReportContext ctx : contexts) {
            rCtxs.add(ctx.getContext().toString());
        }
        rObj.put("id", report.getId().toString());
        rObj.put("name", report.getName());
        rObj.put("category", report.getCategory() != null ? report.getCategory().getId() : "");
        rObj.put("contexts", rCtxs);
        reportsJSON.add(rObj);
    }
    List<ReportCategory> categories = categoryDAO.listAll();
    Collections.sort(categories, new Comparator<ReportCategory>() {

        public int compare(ReportCategory o1, ReportCategory o2) {
            if (o1.getIndexColumn() == o2.getIndexColumn() || o1.getIndexColumn().equals(o2.getIndexColumn())) {
                return o1.getName() == null ? -1 : o2.getName() == null ? 1 : o1.getName().compareTo(o2.getName());
            } else {
                return o1.getIndexColumn() == null ? -1 : o2.getIndexColumn() == null ? 1 : o1.getIndexColumn().compareTo(o2.getIndexColumn());
            }
        }
    });
    setJsDataVariable(requestContext, "reports", reportsJSON.toString());
    setJsDataVariable(requestContext, "contextTypes", contextTypesJSON.toString());
    requestContext.getRequest().setAttribute("reports", reports);
    requestContext.getRequest().setAttribute("reportCategories", categories);
    requestContext.getRequest().setAttribute("contextTypes", contextTypes);
    requestContext.setIncludeJSP("/templates/system/importreport.jsp");
}
Also used : ReportCategory(fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory) Report(fi.otavanopisto.pyramus.domainmodel.reports.Report) ReportCategoryDAO(fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO) StringAttributeComparator(fi.otavanopisto.pyramus.util.StringAttributeComparator) JSONArray(net.sf.json.JSONArray) ArrayList(java.util.ArrayList) ReportContextType(fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType) JSONObject(net.sf.json.JSONObject) ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ReportDAO(fi.otavanopisto.pyramus.dao.reports.ReportDAO) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Example 3 with ReportContext

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContext in project pyramus by otavanopisto.

the class ViewReportViewController method handleContextParameters.

private void handleContextParameters(PageRequestContext pageRequestContext, Report report) {
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    List<ReportContext> contexts = reportContextDAO.listByReport(report);
    List<String> contextStrs = new ArrayList<>();
    for (ReportContext ctx : contexts) {
        contextStrs.add(ctx.getContext().toString());
        switch(ctx.getContext()) {
            case Student:
                Long studentId = pageRequestContext.getLong("studentId");
                if (studentId != null)
                    pageRequestContext.getRequest().setAttribute("studentId", studentId);
                break;
            case Course:
                Long courseId = pageRequestContext.getLong("courseId");
                if (courseId != null)
                    pageRequestContext.getRequest().setAttribute("courseId", courseId);
                break;
            case Common:
                break;
        }
    }
    Long staffMemberId = pageRequestContext.getLong("staffMemberId");
    if (staffMemberId != null) {
        pageRequestContext.getRequest().setAttribute("staffMemberId", staffMemberId);
    }
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    Date startDate = pageRequestContext.getDate("startDate");
    if (startDate != null)
        pageRequestContext.getRequest().setAttribute("startDate", df.format(startDate));
    Date endDate = pageRequestContext.getDate("endDate");
    if (endDate != null)
        pageRequestContext.getRequest().setAttribute("endDate", df.format(endDate));
    pageRequestContext.getRequest().setAttribute("reportContexts", contextStrs);
}
Also used : ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ArrayList(java.util.ArrayList) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 4 with ReportContext

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContext in project pyramus by otavanopisto.

the class EditReportViewController method process.

/**
 * Processes the page request by including the corresponding JSP page to the response.
 *
 * @param pageRequestContext Page request context
 */
public void process(PageRequestContext pageRequestContext) {
    ReportDAO reportDAO = DAOFactory.getInstance().getReportDAO();
    ReportCategoryDAO categoryDAO = DAOFactory.getInstance().getReportCategoryDAO();
    ReportContextDAO reportContextDAO = DAOFactory.getInstance().getReportContextDAO();
    Long reportId = pageRequestContext.getLong("reportId");
    Report report = reportDAO.findById(reportId);
    List<ReportCategory> categories = categoryDAO.listAll();
    List<ReportContext> reportContexts = reportContextDAO.listByReport(report);
    Collections.sort(categories, new Comparator<ReportCategory>() {

        public int compare(ReportCategory o1, ReportCategory o2) {
            if (o1.getIndexColumn() == o2.getIndexColumn() || o1.getIndexColumn().equals(o2.getIndexColumn())) {
                return o1.getName() == null ? -1 : o2.getName() == null ? 1 : o1.getName().compareTo(o2.getName());
            } else {
                return o1.getIndexColumn() == null ? -1 : o2.getIndexColumn() == null ? 1 : o1.getIndexColumn().compareTo(o2.getIndexColumn());
            }
        }
    });
    Map<String, Boolean> selectedContexts = new HashMap<>();
    for (ReportContext context : reportContexts) selectedContexts.put(context.getContext().toString(), Boolean.TRUE);
    List<String> contextTypes = new ArrayList<>();
    for (ReportContextType contextType : ReportContextType.values()) contextTypes.add(contextType.toString());
    pageRequestContext.getRequest().setAttribute("report", report);
    pageRequestContext.getRequest().setAttribute("reportCategories", categories);
    pageRequestContext.getRequest().setAttribute("reportContexts", selectedContexts);
    pageRequestContext.getRequest().setAttribute("contextTypes", contextTypes);
    pageRequestContext.setIncludeJSP("/templates/reports/editreport.jsp");
}
Also used : ReportCategory(fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory) Report(fi.otavanopisto.pyramus.domainmodel.reports.Report) HashMap(java.util.HashMap) ReportCategoryDAO(fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO) ArrayList(java.util.ArrayList) ReportContextType(fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType) ReportContextDAO(fi.otavanopisto.pyramus.dao.reports.ReportContextDAO) ReportDAO(fi.otavanopisto.pyramus.dao.reports.ReportDAO) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Example 5 with ReportContext

use of fi.otavanopisto.pyramus.domainmodel.reports.ReportContext in project pyramus by otavanopisto.

the class ReportContextDAO method listByReport.

public List<ReportContext> listByReport(Report report) {
    EntityManager entityManager = getEntityManager();
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<ReportContext> criteria = criteriaBuilder.createQuery(ReportContext.class);
    Root<ReportContext> root = criteria.from(ReportContext.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.equal(root.get(ReportContext_.report), report));
    return entityManager.createQuery(criteria).getResultList();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EntityManager(javax.persistence.EntityManager) ReportContext(fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)

Aggregations

ReportContext (fi.otavanopisto.pyramus.domainmodel.reports.ReportContext)10 ReportContextDAO (fi.otavanopisto.pyramus.dao.reports.ReportContextDAO)6 Report (fi.otavanopisto.pyramus.domainmodel.reports.Report)4 ReportContextType (fi.otavanopisto.pyramus.domainmodel.reports.ReportContextType)4 EntityManager (javax.persistence.EntityManager)4 ReportCategoryDAO (fi.otavanopisto.pyramus.dao.reports.ReportCategoryDAO)3 ReportDAO (fi.otavanopisto.pyramus.dao.reports.ReportDAO)3 ReportCategory (fi.otavanopisto.pyramus.domainmodel.reports.ReportCategory)3 ArrayList (java.util.ArrayList)3 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)3 SimpleDateFormat (java.text.SimpleDateFormat)2 Date (java.util.Date)2 StringAttributeComparator (fi.otavanopisto.pyramus.util.StringAttributeComparator)1 HashMap (java.util.HashMap)1 JSONArray (net.sf.json.JSONArray)1 JSONObject (net.sf.json.JSONObject)1