Exemple #1
0
def print_report(report_class, *args, **kwargs):
    rv = PrintReportEvent.emit(report_class, *args, **kwargs)
    if rv:
        return rv

    filters = kwargs.pop('filters', None)
    if filters:
        kwargs = describe_search_filters_for_reports(filters, **kwargs)

    tmp = tempfile.mktemp(suffix='.pdf', prefix='stoqlib-reporting')
    report = report_class(tmp, *args, **kwargs)
    report.filename = tmp
    if _system == "Windows":
        report.save()
        log.info("Starting PDF reader for %r" % (report.filename, ))
        # Simply execute the file
        os.startfile(report.filename)
        return

    if isinstance(report, HTMLReport):
        op = PrintOperationWEasyPrint(report)
        op.set_threaded()
    else:
        op = PrintOperationPoppler(report)

    rv = op.run()
    return rv
Exemple #2
0
def print_report(report_class, *args, **kwargs):
    rv = PrintReportEvent.emit(report_class, *args, **kwargs)
    if rv:
        return rv

    filters = kwargs.pop('filters', None)
    if filters:
        kwargs = describe_search_filters_for_reports(filters, **kwargs)

    tmp = tempfile.mktemp(suffix='.pdf', prefix='stoqlib-reporting')
    report = report_class(tmp, *args, **kwargs)
    report.filename = tmp
    if _system == "Windows":
        report.save()
        log.info("Starting PDF reader for %r" % (report.filename, ))
        # Simply execute the file
        os.startfile(report.filename)
        return

    if isinstance(report, HTMLReport):
        op = PrintOperationWEasyPrint(report)
        op.set_threaded()
    else:
        op = PrintOperationPoppler(report)

    rv = op.run()
    return rv
    def test_print_report_event(self, print_report):
        # We need the UI for the events setup
        ui = BikeShopUI()

        # We need to save this in a variable, even though we dont use it,
        # otherwise the callback will not be triggered, since it is a weakref
        ui  # pyflakes

        # Emitting with something different from WorkOrderQuoteReport
        rv = PrintReportEvent.emit(object)
        self.assertFalse(rv)
        self.assertEqual(print_report.call_count, 0)

        # Emitting with a WorkOrderQuoteReport
        order = self.create_workorder()
        rv = PrintReportEvent.emit(WorkOrderQuoteReport, order)
        self.assertTrue(rv)
        print_report.assert_called_once_with(BikeShopWorkOrderQuoteReport,
                                             order)
Exemple #4
0
    def test_print_report_event(self, print_report):
        # We need the UI for the events setup
        ui = BikeShopUI()

        # We need to save this in a variable, even though we dont use it,
        # otherwise the callback will not be triggered, since it is a weakref
        ui  # pyflakes

        # Emitting with something different from WorkOrderQuoteReport
        rv = PrintReportEvent.emit(object)
        self.assertFalse(rv)
        self.assertEqual(print_report.call_count, 0)

        # Emitting with a WorkOrderQuoteReport
        order = self.create_workorder()
        rv = PrintReportEvent.emit(WorkOrderQuoteReport, order)
        self.assertTrue(rv)
        print_report.assert_called_once_with(BikeShopWorkOrderQuoteReport,
                                             order)
Exemple #5
0
    def test_print_report_event(self, print_report):

        # Emitting with something different from SaleOrderReport
        rv = PrintReportEvent.emit(object)
        self.assertFalse(rv)
        self.assertEquals(print_report.call_count, 0)

        # Emitting with SaleOrderReport, but without workorders
        sale = self.create_sale()
        rv = PrintReportEvent.emit(SaleOrderReport, sale)
        self.assertFalse(rv)
        self.assertEquals(print_report.call_count, 0)

        # Emitting with SaleOrderReport and with workorders
        optical_wo = self.create_optical_work_order()
        optical_wo.work_order.sale = sale
        rv = PrintReportEvent.emit(SaleOrderReport, sale)
        self.assertTrue(rv)
        print_report.assert_called_once_with(OpticalWorkOrderReceiptReport,
                                             [optical_wo.work_order])
    def test_print_report_event(self, print_report):

        # Emitting with something different from SaleOrderReport
        rv = PrintReportEvent.emit(object)
        self.assertFalse(rv)
        self.assertEquals(print_report.call_count, 0)

        # Emitting with SaleOrderReport, but without workorders
        sale = self.create_sale()
        rv = PrintReportEvent.emit(SaleOrderReport, sale)
        self.assertFalse(rv)
        self.assertEquals(print_report.call_count, 0)

        # Emitting with SaleOrderReport and with workorders
        optical_wo = self.create_optical_work_order()
        optical_wo.work_order.sale = sale
        rv = PrintReportEvent.emit(SaleOrderReport, sale)
        self.assertTrue(rv)
        print_report.assert_called_once_with(OpticalWorkOrderReceiptReport,
                                             [optical_wo.work_order])