Noosfero/noosfero

View on GitHub
plugins/work_assignment/lib/work_assignment_plugin/work_assignment.rb

Summary

Maintainability
A
0 mins
Test Coverage
class WorkAssignmentPlugin::WorkAssignment < Folder
  settings_items :publish_submissions, type: :boolean, default: false
  settings_items :default_email, type: :string, default: ""
  settings_items :allow_visibility_edition, type: :boolean, default: false

  attr_accessible :publish_submissions
  attr_accessible :default_email
  attr_accessible :allow_visibility_edition

  def self.icon_name(article = nil)
    "work-assignment"
  end

  def self.short_description
    _("Work Assignment")
  end

  def self.description
    _("Defines a work to be done by the members and receives their submissions about this work.")
  end

  def self.versioned_name(submission, folder)
    "(V#{folder.children.count + 1}) #{submission.name}"
  end

  def accept_comments?
    true
  end

  def allow_create?(user)
    profile.members.include?(user)
  end

  def to_html(options = {})
    ->context { render file: "content_viewer/work_assignment.html.erb" }
  end

  def find_or_create_author_folder(author)
    children.find_by(slug: author.name.to_slug) || Folder.create!(
      {
        name: author.name,
        parent: self,
        profile: profile,
        author: author,
        published: publish_submissions,
      },
      { without_protection: true }
    )
  end

  def submissions
    children.map(&:children).flatten.compact
  end

  def accept_uploads?
    false
  end
end