Class: Presenters::GroupedPipelineInboxPresenter
- Inherits:
-
Object
- Object
- Presenters::GroupedPipelineInboxPresenter
- Defined in:
- app/models/presenters/grouped_pipeline_inbox_presenter.rb
Overview
rubocop:todo Style/Documentation
Constant Summary collapse
- ALL_STATES =
%w[pending hold].freeze
- VISIBLE_STATES =
'pending'.freeze
Instance Attribute Summary collapse
-
#pipeline ⇒ Object
readonly
Returns the value of attribute pipeline.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
Class Method Summary collapse
Instance Method Summary collapse
- #each_field_header ⇒ Object
-
#each_line ⇒ Object
Yields a line presenter.
- #each_method ⇒ Object
- #field_count ⇒ Object
-
#initialize(pipeline, user, show_held_requests = false) ⇒ GroupedPipelineInboxPresenter
constructor
A new instance of GroupedPipelineInboxPresenter.
- #purpose_important? ⇒ Boolean
- #requests_waiting ⇒ Object
Constructor Details
#initialize(pipeline, user, show_held_requests = false) ⇒ GroupedPipelineInboxPresenter
Returns a new instance of GroupedPipelineInboxPresenter.
32 33 34 35 36 37 38 39 40 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 32 def initialize(pipeline, user, show_held_requests = false) @pipeline = pipeline @user = user @show_held_requests = show_held_requests # We shouldn't trigger this, as we explicitly detect the group by status unless pipeline.group_by_parent? raise "Pipeline #{pipeline.name} is incompatible with GroupedPipelineInboxPresenter" end end |
Instance Attribute Details
#pipeline ⇒ Object (readonly)
Returns the value of attribute pipeline
28 29 30 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 28 def pipeline @pipeline end |
#user ⇒ Object (readonly)
Returns the value of attribute user
28 29 30 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 28 def user @user end |
Class Method Details
.add_field(name, method, options = {}) ⇒ Object
8 9 10 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 8 def add_field(name, method, = {}) fields << [name, method, [:if]] end |
.fields ⇒ Object
4 5 6 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 4 def fields @fields ||= [] end |
Instance Method Details
#each_field_header ⇒ Object
50 51 52 53 54 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 50 def each_field_header valid_fields.each do |field, _method, _condition| yield field end end |
#each_line ⇒ Object
Yields a line presenter
63 64 65 66 67 68 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 63 def each_line grouped_requests.each_with_index do |request, index| group = [request.labware_id, request.submission_id] yield GroupLinePresenter.new(group, request, index, pipeline, self) end end |
#each_method ⇒ Object
56 57 58 59 60 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 56 def each_method valid_fields.each do |_field, method, _condition| yield method end end |
#field_count ⇒ Object
70 71 72 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 70 def field_count valid_fields.size end |
#purpose_important? ⇒ Boolean
46 47 48 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 46 def purpose_important? purpose_information? end |
#requests_waiting ⇒ Object
42 43 44 |
# File 'app/models/presenters/grouped_pipeline_inbox_presenter.rb', line 42 def requests_waiting @pipeline.requests.unbatched.where(state: ALL_STATES).count end |