Example #1
0
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)
Example #2
0
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
Example #3
0
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)
Example #4
0
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()
Example #5
0
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()