Class: Spina::Admin::Journal::Article

Inherits:
ApplicationRecord
  • Object
show all
Includes:
AttrJson::NestedAttributes, AttrJson::Record, Partable, TranslatedContent
Defined in:
app/models/spina/admin/journal/article.rb

Overview

Record for an individual article.

Validators

Presence

#number, #title

Uniqueness

#number (scope: issue) #status

URI

#url

Scopes

sorted_asc

sorted in order of increasing number

sorted_desc

sorted highest number first

visible

articles that should be visible to the public

See Also:

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#affiliationsActiveRecord::Relation

Returns The authors of the article.

Returns:

  • (ActiveRecord::Relation)

    The authors of the article.



42
# File 'app/models/spina/admin/journal/article.rb', line 42

has_many :affiliations, through: :authorships

#authorshipsObject



39
# File 'app/models/spina/admin/journal/article.rb', line 39

has_many :authorships, dependent: :destroy

#doiString

Returns A digital object intentifier for the article.

Returns:

  • (String)

    A digital object intentifier for the article.



36
# File 'app/models/spina/admin/journal/article.rb', line 36

belongs_to :issue

#issueIssue

Returns The issue that contains this article.

Returns:

  • (Issue)

    The issue that contains this article.



36
# File 'app/models/spina/admin/journal/article.rb', line 36

belongs_to :issue

#numberInteger

Returns The position of the article within its issue.

Returns:

  • (Integer)

    The position of the article within its issue.



36
# File 'app/models/spina/admin/journal/article.rb', line 36

belongs_to :issue

#statusInteger

Returns the current status of the article.

Returns:

  • (Integer)

    the current status of the article



46
# File 'app/models/spina/admin/journal/article.rb', line 46

enum status: { published: 0, draft: 1, meta: 2 }

#titleString

Returns The article’s title.

Returns:

  • (String)

    The article’s title.



36
# File 'app/models/spina/admin/journal/article.rb', line 36

belongs_to :issue

#urlString

Returns An external link to the article.

Returns:

  • (String)

    An external link to the article.



36
# File 'app/models/spina/admin/journal/article.rb', line 36

belongs_to :issue

Instance Method Details

#visible?Boolean

Returns true if the article should be visible to end users (i.e. is not a draft).

Returns:

  • (Boolean)


58
59
60
# File 'app/models/spina/admin/journal/article.rb', line 58

def visible?
  published? || meta?
end