def status_creation_handler(sender, **kwargs): status = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(status, Status): return # convert status body to markdown and bleachify bl = Bleach() status.status = urlize(status.status) status.status = bl.clean(markdown(status.status), tags=TAGS) status.save() # fire activity activity = Activity( actor=status.author, verb='http://activitystrea.ms/schema/1.0/post', status=status, ) if status.project: activity.target_project = status.project activity.save() # Send notifications. if activity.target_project: activity.target_project.send_update_notification(activity)
def sanitize_html(input): # HTML sanitizer and auto-linker # http://coffeeonthekeyboard.com/bleach-html-sanitizer-and-auto-linker-for-django-344/ bl = Bleach() cleaned_input = bl.clean( input, tags=ALLOWED_TAGS ) cleaned_input = bl.linkify( cleaned_input ) cleaned_input = linebreaks( cleaned_input )# linebreaks converts newlines into <p> and <br />s. return cleaned_input
def project_markdown_handler(sender, **kwargs): project = kwargs.get('instance', None) if not isinstance(project, Project): return log.debug("Creating html project description") if project.detailed_description: bl = Bleach() project.detailed_description_html = bl.clean( markdown(project.detailed_description), tags=TAGS, attributes=ALLOWED_ATTRIBUTES)
def todo_creation_handler(sender, **kwargs): todo = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(todo, Todo): return # convert todo body to markdown and bleachify bl = Bleach() todo.title = urlize(todo.title) todo.description = urlize(todo.description) todo.title = bl.clean(markdown(todo.title), tags=TAGS) todo.description = bl.clean(markdown(todo.description), tags=TAGS) todo.save() # fire activity activity = Activity( actor=todo.author, verb='http://activitystrea.ms/schema/1.0/post', target_todo=todo, ) if todo.project: activity.target_project = todo.project activity.save()
def status_creation_handler(sender, **kwargs): status = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(status, Status): return # convert status body to markdown and bleachify bl = Bleach() status.status = urlize(status.status) status.status = bl.clean(markdown(status.status), tags=TAGS) status.save() # fire activity activity = Activity( actor=status.author, verb='http://activitystrea.ms/schema/1.0/post', status=status, ) if status.project: activity.target_project = status.project activity.save()