%li{ class: "todo todo-#{todo.done? ? 'done' : 'pending'}", id: dom_id(todo), data: { url: todo_target_path(todo) } }
  .todo-avatar
    = author_avatar(todo, size: 40)

  .todo-item.todo-block
    .todo-title.title
      - unless todo.build_failed? || todo.unmergeable?
        = todo_target_state_pill(todo)

        .title-item.author-name
          - if todo.author
            = link_to_author(todo, self_added: todo.self_added?)
          - else
            (removed)

      .title-item.action-name
        = todo_action_name(todo)

      .title-item.todo-label
        - if todo.target
          = todo_target_link(todo)
        - else
          (removed)

      - if todo.self_assigned?
        .title-item.action-name
          to yourself

      .title-item
        &middot;

      .title-item
        #{time_ago_with_tooltip(todo.created_at)}
        = todo_due_date(todo)

    .todo-body
      .todo-note
        .md
          = event_note(todo.body, project: todo.project)

  - if todo.pending?
    .todo-actions
      = link_to dashboard_todo_path(todo), method: :delete, class: 'btn btn-loading js-done-todo', data: { href: dashboard_todo_path(todo) } do
        Done
        = icon('spinner spin')
      = link_to restore_dashboard_todo_path(todo), method: :patch, class: 'btn btn-loading js-undo-todo hidden', data: { href: restore_dashboard_todo_path(todo) } do
        Undo
        = icon('spinner spin')
  - else
    .todo-actions
      = link_to restore_dashboard_todo_path(todo), method: :patch, class: 'btn btn-loading js-add-todo', data: { href: restore_dashboard_todo_path(todo) } do
        Add todo
        = icon('spinner spin')
