Module: Dscf::Core::ReviewableModel

Extended by:
ActiveSupport::Concern
Included in:
Business
Defined in:
app/models/concerns/dscf/core/reviewable_model.rb

Instance Method Summary collapse

Instance Method Details

#approved?(context = :default) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 39

def approved?(context = :default)
  current_status_for(context) == "approved"
end

#build_review_for(context = :default) ⇒ Object



26
27
28
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 26

def build_review_for(context = :default)
  reviews.build(context: context.to_s)
end

#current_review_for(context = :default) ⇒ Object



14
15
16
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 14

def current_review_for(context = :default)
  review_for(context).first
end

#current_status_for(context = :default) ⇒ Object



18
19
20
21
22
23
24
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 18

def current_status_for(context = :default)
  current_review = current_review_for(context)
  return current_review.status if current_review

  # Return default initial status for zero-config
  "draft"
end

#draft?(context = :default) ⇒ Boolean

Helper methods for common status checks

Returns:

  • (Boolean)


31
32
33
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 31

def draft?(context = :default)
  current_status_for(context) == "draft"
end

#editable?(context = :default) ⇒ Boolean

Check if resource can be edited via regular update endpoint Only draft records can be edited freely For modify status, use resubmit action with update_model: true

Returns:

  • (Boolean)


54
55
56
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 54

def editable?(context = :default)
  draft?(context)
end

#modification_requested?(context = :default) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 47

def modification_requested?(context = :default)
  current_status_for(context) == "modify"
end

#pending?(context = :default) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 35

def pending?(context = :default)
  current_status_for(context) == "pending"
end

#rejected?(context = :default) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 43

def rejected?(context = :default)
  current_status_for(context) == "rejected"
end

#review_for(context = :default) ⇒ Object



10
11
12
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 10

def review_for(context = :default)
  reviews.with_context(context).order(created_at: :desc)
end

#submitted?(context = :default) ⇒ Boolean

Check if resource has been submitted

Returns:

  • (Boolean)


59
60
61
# File 'app/models/concerns/dscf/core/reviewable_model.rb', line 59

def (context = :default)
  !draft?(context)
end