Class: Ecoportal::API::V2::Page

Inherits:
Common::Content::DoubleModel show all
Defined in:
lib/ecoportal/api/v2/page.rb,
lib/ecoportal/api/v2/page/force.rb,
lib/ecoportal/api/v2/page/stage.rb,
lib/ecoportal/api/v2/page/forces.rb,
lib/ecoportal/api/v2/page/permit.rb,
lib/ecoportal/api/v2/page/stages.rb,
lib/ecoportal/api/v2/page/section.rb,
lib/ecoportal/api/v2/page/sections.rb,
lib/ecoportal/api/v2/page/component.rb,
lib/ecoportal/api/v2/page/components.rb,
lib/ecoportal/api/v2/page/force/helper.rb,
lib/ecoportal/api/v2/page/component/law.rb,
lib/ecoportal/api/v2/page/force/binding.rb,
lib/ecoportal/api/v2/page/mould_counter.rb,
lib/ecoportal/api/v2/page/component/file.rb,
lib/ecoportal/api/v2/page/force/bindings.rb,
lib/ecoportal/api/v2/page/component/image.rb,
lib/ecoportal/api/v2/page/component/action.rb,
lib/ecoportal/api/v2/page/permission_flags.rb,
lib/ecoportal/api/v2/page/component/geo_field.rb,
lib/ecoportal/api/v2/page/component/law_field.rb,
lib/ecoportal/api/v2/page/component/tag_field.rb,
lib/ecoportal/api/v2/page/component/date_field.rb,
lib/ecoportal/api/v2/page/component/gauge_stop.rb,
lib/ecoportal/api/v2/page/component/chart_field.rb,
lib/ecoportal/api/v2/page/component/files_field.rb,
lib/ecoportal/api/v2/page/component/gauge_field.rb,
lib/ecoportal/api/v2/page/component/action_field.rb,
lib/ecoportal/api/v2/page/component/images_field.rb,
lib/ecoportal/api/v2/page/component/number_field.rb,
lib/ecoportal/api/v2/page/component/people_field.rb,
lib/ecoportal/api/v2/page/component/chart_fr_field.rb,
lib/ecoportal/api/v2/page/component/checklist_item.rb,
lib/ecoportal/api/v2/page/component/checklist_field.rb,
lib/ecoportal/api/v2/page/component/geo_coordinates.rb,
lib/ecoportal/api/v2/page/component/reference_field.rb,
lib/ecoportal/api/v2/page/component/rich_text_field.rb,
lib/ecoportal/api/v2/page/component/selection_field.rb,
lib/ecoportal/api/v2/page/component/signature_field.rb,
lib/ecoportal/api/v2/page/component/plain_text_field.rb,
lib/ecoportal/api/v2/page/component/selection_option.rb,
lib/ecoportal/api/v2/page/component/chart_field/serie.rb,
lib/ecoportal/api/v2/page/component/chart_field/config.rb,
lib/ecoportal/api/v2/page/component/chart_field/sankey.rb,
lib/ecoportal/api/v2/page/component/chart_field/heatmap.rb,
lib/ecoportal/api/v2/page/component/chart_field/benchmark.rb,
lib/ecoportal/api/v2/page/component/chart_field/frequency.rb,
lib/ecoportal/api/v2/page/component/chart_field/indicator.rb,
lib/ecoportal/api/v2/page/component/people_viewable_field.rb,
lib/ecoportal/api/v2/page/component/chart_field/multiseries.rb,
lib/ecoportal/api/v2/page/component/chart_field/series_config.rb

Direct Known Subclasses

Ecoportal::API::V2::Pages::PageStage

Defined Under Namespace

Classes: Component, Components, Force, Forces, MouldCounter, PermissionFlags, Permit, Section, Sections, Stage, Stages

Constant Summary collapse

ALLOWED_KEYS =
[
  "id", "patch_ver", "name", "template_id",
  "base_tags", "tags",
  "time_zone", "created_at", "updated_at",
  "components", "sections", "stages",
  "permits", "mould_counter", "mould",
  "state", "task_priority",
  "votes_enabled", "upvotes", "downvotes",
  "forces", "force_errors", "subtags"
]

Constants inherited from Common::Content::DoubleModel

Common::Content::DoubleModel::NOT_USED

Constants included from Common::Content::ClassHelpers

Common::Content::ClassHelpers::NOT_USED

Instance Attribute Summary

Attributes inherited from Common::Content::DoubleModel

#_key, #_parent

Instance Method Summary collapse

Methods inherited from Common::Content::DoubleModel

#_doc_key, #as_json, #consolidate!, #dirty?, #doc, embeds_many, embeds_one, enforce!, #key, #key=, key?, new_uuid, #original_doc, pass_reader, pass_writer, passarray, passboolean, passdate, passforced, passkey, passthrough, #print_pretty, #replace_doc, #reset!, #root, #to_json

Methods included from Common::Content::ClassHelpers

#inheritable_attrs, #inheritable_class_vars, #inherited, #instance_variable_name, #new_class, #resolve_class, #to_constant, #to_time, #uid, #used_param?

Constructor Details

#initialize(doc = [], parent: self, key: nil) ⇒ Page

Returns a new instance of Page.



34
35
36
# File 'lib/ecoportal/api/v2/page.rb', line 34

def initialize(doc = [], parent: self, key: nil)
  super(_doc_bug_fix(doc), parent: parent, key: key)
end

Instance Method Details

#as_updateObject



42
43
44
45
46
47
48
49
50
51
# File 'lib/ecoportal/api/v2/page.rb', line 42

def as_update
  super.tap do |hash|
    unless !hash
      hash["data"].select! do |key, value|
        ALLOWED_KEYS.include?(key)
      end
      return nil if (hash["data"].keys - ["patch_ver"]).empty?
    end
  end
end

#oozeObject



38
39
40
# File 'lib/ecoportal/api/v2/page.rb', line 38

def ooze
  self
end

#stages?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/ecoportal/api/v2/page.rb', line 53

def stages?
  self.doc["stages"] && (self.stages.count > 0)
end

#validateString

Returns with feedback, if for this page instance, there are any of:

  1. components multi-section (fields belonging to more than one section).

Returns:

  • (String)

    with feedback, if for this page instance, there are any of:

    1. components multi-section (fields belonging to more than one section)


59
60
61
62
63
64
65
66
67
68
69
# File 'lib/ecoportal/api/v2/page.rb', line 59

def validate
  msg = ""
  if (multi = components.multi_section).length > 0
    msg += "There are fields attached to more than one section:\n  • "
    msg += multi.map do |fld|
      fld.label
    end.join("\n  • ") + "\n"
  end

  msg.empty?? true : msg
end