def render_macro(self, req, name, content): args,kwargs = parse_args(content) if len(args) == 0: ul = tag.ul(class_="mailinglistlist") for mailinglist in Mailinglist.select(self.env): if "MAILINGLIST_VIEW" in req.perm(mailinglist.resource): ul.append(tag.li(tag.a(mailinglist.name, href=get_resource_url(self.env, mailinglist.resource, req.href)))) return ul if kwargs.has_key('limit'): limit = int(kwargs['limit']) elif len(args) > 1: limit = int(args[1]) else: limit = 10 resource = Resource("mailinglist",args[0]) instance = MailinglistSystem(self.env).get_instance_for_resource(resource) if isinstance(instance, Mailinglist): if not req.perm(instance.resource).has_permission('MAILINGLIST_VIEW'): return system_message("Permission denied viewing mailinglist: %s" % instance.name) ul = tag.ul() for message in instance.messages(limit=limit, insubject=kwargs.get('insubject', None),desc=True): ul.append(tag.li( tag.a(tag.span(message.subject, class_="messagesubject"), href=get_resource_url(self.env, message.resource, req.href)), " (", dateinfo(message.date), ")", )) ul.append(tag.li(tag.a("(%d messages...)" % instance.count_messages(insubject=kwargs.get('insubject', None)), href=get_resource_url(self.env, instance.resource, req.href)))) return tag.div("Mailinglist: ", tag.a(instance.name, href=get_resource_url(self.env, instance.resource, req.href)), ul, class_="mailinglistfeed") elif isinstance(instance, MailinglistMessage): if not req.perm(instance.resource).has_permission('MAILINGLIST_VIEW'): return system_message("Permission denied viewing mail.") else: limit = None text = wrap_and_quote(instance.body, 78)[0] if limit: text = "\n".join(text.split("\n")[0:limit]) textelement = tag.pre(text) + tag.a(tag.pre("(More...)"), href=get_resource_url(self.env, instance.resource, req.href)) else: textelement = tag.pre(text) return tag.div( tag.div("Mailinglist: ", tag.a(instance.conversation.mailinglist.name, href=get_resource_url(self.env, instance.conversation.mailinglist.resource, req.href))), tag.div("Subject: ", tag.a(instance.subject, href=get_resource_url(self.env, instance.resource, req.href))), tag.div("From: ", tag.a(instance.from_name, href="mailto:%s" % instance.from_email)), tag.div("To: ", instance.to_header), tag.div("Date: ", dateinfo(instance.date)), tag.div(textelement), class_="mailinglistmessage") return system_message("Unknown Mailinglist: %s" % content)
def get_split_body(self): return wrap_and_quote(self.body, 78)