Ejemplo n.º 1
0
 def generate_file_data(self):
     template = self.document_operations.get_sablon_template(self.meeting)
     sablon = Sablon(template)
     sablon.process(
         self.document_operations.get_meeting_data(self.meeting).as_json())
     assert sablon.is_processed_successfully(), sablon.stderr
     return sablon.file_data
Ejemplo n.º 2
0
    def __call__(self):
        response = self.request.response
        template = self.model.get_toc_template()
        if not template:
            api.portal.show_message(
                _('msg_no_toc_template',
                  default=u'There is no toc template configured, toc could '
                          'not be generated.'),
                request=self.request,
                type='error')
            response.setHeader('X-ogg-reload-page', "True")
            return

        sablon = Sablon(template)
        try:
            sablon.process(self.get_json_data())
        except SablonProcessingFailed:
            message = _(u'Error while processing Sablon template')
            api.portal.show_message(message, request=self.request, type='error')
            response.setHeader('X-ogg-reload-page', "True")
            return

        filename = self.get_filename().encode('utf-8')
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format(filename))
        return sablon.file_data
Ejemplo n.º 3
0
    def test_sablon_availability(self):
        json_data = json.dumps({'foo': 42})

        sablon = Sablon(MockTemplate())
        sablon.process(json_data)

        self.assertEqual(0, sablon.returncode, msg=sablon.stderr)
    def test_sablon_availability(self):
        json_data = json.dumps({'foo': 42})

        sablon = Sablon(MockTemplate())
        sablon.process(json_data)

        self.assertEqual(0, sablon.returncode, msg=sablon.stderr)
Ejemplo n.º 5
0
    def __call__(self):
        response = self.request.response
        template = self.model.get_toc_template()
        if not template:
            api.portal.show_message(_(
                'msg_no_toc_template',
                default=u'There is no toc template configured, toc could '
                'not be generated.'),
                                    request=self.request,
                                    type='error')
            response.setHeader('X-ogg-reload-page', "True")
            return

        sablon = Sablon(template)
        try:
            sablon.process(self.get_json_data())
        except SablonProcessingFailed:
            message = _(u'Error while processing Sablon template')
            api.portal.show_message(message,
                                    request=self.request,
                                    type='error')
            response.setHeader('X-ogg-reload-page', "True")
            return

        filename = self.get_filename().encode('utf-8')
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format(filename))
        return sablon.file_data
Ejemplo n.º 6
0
    def __call__(self):
        template = self.model.get_toc_template()
        if not template:
            api.portal.show_message(
                _('msg_no_toc_template',
                  default=u'There is no toc template configured, toc could '
                          'not be generated.'),
                request=self.request,
                type='error')

            return self.request.RESPONSE.redirect(
                "{}/#periods".format(self.context.parent.absolute_url()))

        sablon = Sablon(template)
        sablon.process(self.get_json_data())

        assert sablon.is_processed_successfully(), sablon.stderr

        filename = self.get_filename().encode('utf-8')
        response = self.request.response
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format(filename))
        return sablon.file_data
Ejemplo n.º 7
0
    def generate_file_data(self):
        template = self.document_operations.get_sablon_template(self.meeting)
        sablon = Sablon(template)
        sablon.process(
            self.document_operations.get_meeting_data(self.meeting).as_json())

        assert sablon.is_processed_successfully(), sablon.stderr
        return sablon.file_data
Ejemplo n.º 8
0
def sablon_template_is_valid(value):
    # create the sablon template using the blob file
    sablon = Sablon(None)

    for template_type, data in VALIDATION_DATA.items():
        sablon.process(json.dumps(data), namedblobfile=value)
        if sablon.is_processed_successfully():
            return True

    return False
Ejemplo n.º 9
0
def sablon_template_is_valid(value):
    # create the sablon template using the blob file
    sablon = Sablon(None)

    for template_type, data in VALIDATION_DATA.items():
        try:
            sablon.process(json.dumps(data), namedblobfile=value)
            return True
        except SablonProcessingFailed:
            continue
    return False
Ejemplo n.º 10
0
def sablon_template_is_valid(value):
    # create the sablon template using the blob file
    sablon = Sablon(None)

    for template_type, data in VALIDATION_DATA.items():
        try:
            sablon.process(json.dumps(data), namedblobfile=value)
            return True
        except SablonProcessingFailed:
            continue
    return False
Ejemplo n.º 11
0
    def __call__(self):
        sablon = Sablon(self.context)
        sablon.process(json.dumps(SAMPLE_MEETING_DATA))
        assert sablon.is_processed_successfully(), sablon.stderr

        response = self.request.response
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format('template.docx'))
        return sablon.file_data
Ejemplo n.º 12
0
    def render(self):
        sablon = Sablon(self.context)
        sablon.process(json.dumps(SAMPLE_MEETING_DATA))
        assert sablon.is_processed_successfully(), sablon.stderr

        response = self.request.response
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format('template.docx'))
        return sablon.file_data
Ejemplo n.º 13
0
    def __call__(self):
        sablon = Sablon(self.operations.get_sablon_template(self.model))
        sablon.process(self.get_protocol_json())

        assert sablon.is_processed_successfully(), sablon.stderr
        filename = self.operations.get_filename(self.model).encode('utf-8')
        response = self.request.response
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format(filename))
        return sablon.file_data
Ejemplo n.º 14
0
    def __call__(self):
        sablon = Sablon(self.operations.get_sablon_template(self.model))
        sablon.process(self.get_protocol_json())

        assert sablon.is_processed_successfully(), sablon.stderr
        filename = self.operations.get_filename(self.model).encode('utf-8')
        response = self.request.response
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format(filename))
        return sablon.file_data
Ejemplo n.º 15
0
    def __call__(self):
        sablon = Sablon(self.context)
        try:
            sablon.process(json.dumps(SAMPLE_MEETING_DATA))
        except SablonProcessingFailed as err:
            return safe_unicode(err.message)

        response = self.request.response
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format('template.docx'))
        return sablon.file_data
Ejemplo n.º 16
0
    def __call__(self):
        sablon = Sablon(self.context)
        try:
            sablon.process(json.dumps(SAMPLE_MEETING_DATA))
        except SablonProcessingFailed as err:
            return safe_unicode(err.message)

        response = self.request.response
        response.setHeader('X-Theme-Disabled', 'True')
        response.setHeader('Content-Type', MIME_DOCX)
        response.setHeader("Content-Disposition",
                           'attachment; filename="{}"'.format('template.docx'))
        return sablon.file_data
Ejemplo n.º 17
0
    def generate_file_data(self):
        template = self.document_operations.get_sablon_template(self.meeting)
        sablon = Sablon(template)
        sablon.process(
            self.document_operations.get_meeting_data(self.meeting).as_json())

        tmpdir_path = tempfile.mkdtemp(prefix='opengever.core.doxcmerge_')
        master_path = join(tmpdir_path, 'master.docx')
        output_path = join(tmpdir_path, 'protocol.docx')

        try:
            # XXX: this is a bit dumb since sablon would already have generated
            # a temporary file
            with open(master_path, 'wb') as master_file:
                master_file.write(sablon.file_data)
            composer = Composer(Document(master_path))

            for index, agenda_item in enumerate(self.meeting.agenda_items):
                target_path = join(tmpdir_path,
                                   'agenda_item_{}.docx'.format(index))
                if agenda_item.is_paragraph:
                    self._export_paragraph_as_document(agenda_item,
                                                       target_path)
                    composer.append(Document(target_path))

                elif agenda_item.has_document:
                    self._export_regular_agenda_item_document(
                        agenda_item, target_path)
                    composer.append(Document(target_path))

            composer.save(output_path)
            with open(output_path, 'rb') as merged_file:
                data = merged_file.read()
        finally:
            shutil.rmtree(tmpdir_path)

        return data
Ejemplo n.º 18
0
 def create_agenda_item_list(self):
     template = self.get_sablon_template()
     sablon = Sablon(template)
     sablon.process(self.get_json_data())
     assert sablon.is_processed_successfully(), sablon.stderr
     return sablon.file_data
Ejemplo n.º 19
0
 def _export_paragraph_as_document(self, agenda_item, target_path):
     sablon = Sablon(self._get_paragraph_template())
     sablon.process(ProtocolData(self.meeting, [agenda_item]).as_json())
     with open(target_path, 'wb') as fio:
         fio.write(sablon.file_data)
Ejemplo n.º 20
0
 def generate_file_data(self):
     template = self.document_operations.get_sablon_template(self.meeting)
     sablon = Sablon(template)
     sablon.process(self.document_operations.get_meeting_data(self.meeting).as_json())
     return sablon.file_data
Ejemplo n.º 21
0
 def generate_file_data(self):
     template = self.document_operations.get_sablon_template(self.meeting)
     sablon = Sablon(template)
     sablon.process(
         self.document_operations.get_meeting_data(self.meeting).as_json())
     return sablon.file_data