Exemplo n.º 1
0
def runTALSnippet(s, context, mask=None):
    if s.find('tal:') < 0:
        return s

    header = '''<?xml version="1.0" encoding="UTF-8" ?>'''
    xmlns = '''<talnamespaces xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">'''
    footer = '''</talnamespaces>'''
    cutter = "----cut-TAL-result-here----\n"

    if mask:
        exportheader = mask.get('exportheader')
        if exportheader.startswith("<?xml"):
            header = exportheader
        else:
            header += exportheader
        footer += mask.get('exportfooter')

    to_be_processed = header + xmlns + cutter + s + cutter + footer
    try:  # normally only encoding errors
        wr_result = tal.getTALstr(to_be_processed, context, mode='xml')
    except:  # try with u2 method
        try:
            wr_result = tal.getTALstr(u2(to_be_processed), context, mode='xml')
        except:
            wr_result = tal.getTALstr(u2(to_be_processed), context)
        #wr_result = tal.getTALstr(u2(to_be_processed), context, mode='xml')

    return wr_result[wr_result.find(cutter) + len(cutter):wr_result.rfind(cutter)]
Exemplo n.º 2
0
def runTALSnippet(s, context, mask=None):
    if s.find('tal:') < 0:
        return s

    header = '''<?xml version="1.0" encoding="UTF-8" ?>'''
    xmlns = '''<talnamespaces xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">'''
    footer = '''</talnamespaces>'''
    cutter = "----cut-TAL-result-here----\n"

    if mask:
        exportheader = mask.get('exportheader')
        if exportheader.startswith("<?xml"):
            header = exportheader
        else:
            header += exportheader
        footer += mask.get('exportfooter')

    to_be_processed = header + xmlns + cutter + s + cutter + footer
    try:  # normally only encoding errors
        wr_result = tal.getTALstr(to_be_processed, context, mode='xml')
    except:  # try with u2 method
        try:
            wr_result = tal.getTALstr(u2(to_be_processed), context, mode='xml')
        except:
            wr_result = tal.getTALstr(u2(to_be_processed), context)
        #wr_result = tal.getTALstr(u2(to_be_processed), context, mode='xml')

    return wr_result[wr_result.find(cutter) +
                     len(cutter):wr_result.rfind(cutter)]
Exemplo n.º 3
0
    def show_workflow_node(self, node, req):
        if "sendout" in req.params:
            del req.params["sendout"]
            if "from" in req.params:
                node.set("system.mailtmp.from", req.params.get("from"))
            if "to" in req.params:
                node.set("system.mailtmp.to", req.params.get("to"))
            if "subject" in req.params:
                node.set("system.mailtmp.subject", req.params.get("subject"))
            if "text" in req.params:
                node.set("system.mailtmp.text", req.params.get("text"))
            db.session.commit()
            if (self.sendOut(node)):
                return self.forwardAndShow(node, True, req)

        if "gofalse" in req.params:
            return self.forwardAndShow(node, False, req)

        elif node.system_attrs.get("mailtmp.talerror", "") != "":
            del node.system_attrs["mailtmp.talerror"]
            db.session.commit()
            self.runAction(node, "true")
            if node.system_attrs.get("mailtmp.talerror", "") != "":
                return """<pre>%s</pre>""" % node.system_attrs.get(
                    "mailtmp.talerror")

        elif node.get("system.mailtmp.error"):
            return '%s<br/><pre>%s</pre><br>&gt;<a href="%s">%s</a>&lt;' % (
                t(lang(req),
                  "workflow_email_msg_1"), node.get("system.mailtmp.error"),
                _makeSelfLink(req, {"sendout": "true"}),
                t(lang(req), "workflow_email_resend"))
        else:
            xfrom = node.get("system.mailtmp.from")
            to = node.get("system.mailtmp.to")
            text = node.get("system.mailtmp.text")
            subject = tal.getTALstr(node.get("system.mailtmp.subject"), {},
                                    language=node.get("system.wflanguage"))
            return req.getTAL(
                "workflow/email.html", {
                    "page": u"node?id={}&obj={}".format(self.id, node.id),
                    "from": xfrom,
                    "to": to,
                    "text": text,
                    "subject": subject,
                    "node": node,
                    "sendcondition": self.get("sendcondition"),
                    "wfnode": self,
                    "pretext": self.getPreText(lang(req)),
                    "posttext": self.getPostText(lang(req)),
                    "csrf": req.csrf_token.current_token,
                },
                macro="sendmail")
Exemplo n.º 4
0
    def show_workflow_node(self, node, req):
        if "sendout" in req.params:
            del req.params["sendout"]
            if "from" in req.params:
                node.set("system.mailtmp.from", req.params.get("from"))
            if "to" in req.params:
                node.set("system.mailtmp.to", req.params.get("to"))
            if "subject" in req.params:
                node.set("system.mailtmp.subject", req.params.get("subject"))
            if "text" in req.params:
                node.set("system.mailtmp.text", req.params.get("text"))
            db.session.commit()
            if(self.sendOut(node)):
                return self.forwardAndShow(node, True, req)

        if "gofalse" in req.params:
            return self.forwardAndShow(node, False, req)

        elif node.system_attrs.get("mailtmp.talerror", "") != "":
            del node.system_attrs["mailtmp.talerror"]
            db.session.commit()
            self.runAction(node, "true")
            if node.system_attrs.get("mailtmp.talerror", "") != "":
                return """<pre>%s</pre>""" % node.system_attrs.get("mailtmp.talerror")

        elif node.get("system.mailtmp.error"):
            return '%s<br/><pre>%s</pre><br>&gt;<a href="%s">%s</a>&lt;' % (t(lang(req), "workflow_email_msg_1"), node.get(
                "system.mailtmp.error"), req.makeSelfLink({"sendout": "true"}), t(lang(req), "workflow_email_resend"))
        else:
            xfrom = node.get("system.mailtmp.from")
            to = node.get("system.mailtmp.to")
            text = node.get("system.mailtmp.text")
            subject = tal.getTALstr(node.get("system.mailtmp.subject"), {}, language=node.get("system.wflanguage"))
            return req.getTAL("workflow/email.html", {"page": u"node?id={}&obj={}".format(self.id, node.id),
                                                      "from": xfrom,
                                                      "to": to,
                                                      "text": text,
                                                      "subject": subject,
                                                      "node": node,
                                                      "sendcondition": self.get("sendcondition"),
                                                      "wfnode": self,
                                                      "pretext": self.getPreText(lang(req)),
                                                      "posttext": self.getPostText(lang(req)),
                                                      "csrf": req.csrf_token.current_token,},
                              macro="sendmail")
Exemplo n.º 5
0
def getTALtext(text, context):
    #text = tal.getTALstr('<body xmlns:tal="http://xml.zope.org/namespaces/tal">%s</body>' %(text), context)
    #text = text.replace("<body>","").replace("</body>","").replace("<body/>","")
    # return text.replace("\n","").strip()
    return tal.getTALstr(text, context).replace('\n', '').strip()
Exemplo n.º 6
0
def getTALtext(text, context):
    #text = tal.getTALstr('<body xmlns:tal="http://xml.zope.org/namespaces/tal">%s</body>' %(text), context)
    #text = text.replace("<body>","").replace("</body>","").replace("<body/>","")
    # return text.replace("\n","").strip()
    return tal.getTALstr(text, context).replace('\n', '').strip()
Exemplo n.º 7
0
def getTALstr(s, context={}, language='en'):
    from mediatumtal import tal
    return tal.getTALstr(s, context, language=language)