From 070b12f04a108ee23ea9c1dcca1ec335e30d0ec5 Mon Sep 17 00:00:00 2001
From: Benjamin Choi
Date: Tue, 22 Apr 2014 23:01:33 -0400
Subject: [PATCH 1/7] [#1877] [Ben] Set up Enquiries controller, enquiries
listing and view single enquiry
---
app/controllers/enquiries_controller.rb | 126 ++++++++++++++++++
app/helpers/enquiries_helper.rb | 11 ++
app/models/field.rb | 10 +-
.../enquiries/_field_display_basic.html.erb | 6 +
.../enquiries/_field_display_photo.html.erb | 22 +++
app/views/enquiries/_header.html.erb | 4 +
app/views/enquiries/_summary_row.html.erb | 33 +++++
app/views/enquiries/index.html.erb | 10 ++
app/views/enquiries/show.html.erb | 19 +++
app/views/layouts/application.html.erb | 3 +
config/locales/en.yml | 13 ++
config/routes.rb | 7 +
12 files changed, 261 insertions(+), 3 deletions(-)
create mode 100644 app/controllers/enquiries_controller.rb
create mode 100644 app/helpers/enquiries_helper.rb
create mode 100644 app/views/enquiries/_field_display_basic.html.erb
create mode 100644 app/views/enquiries/_field_display_photo.html.erb
create mode 100644 app/views/enquiries/_header.html.erb
create mode 100644 app/views/enquiries/_summary_row.html.erb
create mode 100644 app/views/enquiries/index.html.erb
create mode 100644 app/views/enquiries/show.html.erb
diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb
new file mode 100644
index 000000000..e3369fbf3
--- /dev/null
+++ b/app/controllers/enquiries_controller.rb
@@ -0,0 +1,126 @@
+class EnquiriesController < ApplicationController
+ skip_before_filter :verify_authenticity_token
+ skip_before_filter :check_authentication, :only => [:reindex]
+
+ before_filter :load_enquiry_or_redirect, :only => [:show, :edit, :destroy]
+ before_filter :current_user, :except => [:reindex]
+
+ # GET /enquiries
+ def index
+ # Skeleton based on child controller code
+ authorize! :index, Enquiry
+
+ @page_name = t("home.view_enquiries")
+ @aside = 'shared/sidebar_links'
+ @filter = params[:filter] || params[:status] || "all"
+ @order = params[:order_by] || 'enquirer_name'
+ setup_fields!
+ per_page = params[:per_page] || EnquiriesHelper::View::PER_PAGE
+ per_page = per_page.to_i unless per_page == 'all'
+
+ filter_enquiries per_page
+ end
+
+ # GET /enquiries/1
+ def show
+ authorize! :show, @enquiry
+ @page_name = t("enquiry.view")
+ @body_class = 'profile-page'
+ @enquiry = Enquiry.get(params[:id])
+ setup_fields!
+ end
+
+ # GET /enquiries/new
+ def new
+ # Skeleton based on child controller code
+ authorize! :create, Enquiry
+
+ @page_name = t("enquiries.create_new_enquiry")
+ setup_fields!
+ @enquiry = Enquiry.new
+ end
+
+ # GET /enquiries/1/edit
+ def edit
+ # Skeleton based on child controller code
+ authorize! :update, @enquiry
+
+ @page_name = t("enquiry.edit")
+ setup_fields!
+ end
+
+ # POST /enquiries
+ def create
+ # Skeleton based on child controller code
+ authorize! :create, Enquiry
+ params[:enquiry] = JSON.parse(params[:enquiry]) if params[:enquiry].is_a?(String)
+ create_or_update_enquiry(params[:enquiry])
+ if @enquiry.save
+ flash[:notice] = t("enquiry.messages.creation_success")
+ redirect_to(@enquiry)
+ else
+ render :action => "new"
+ end
+ end
+
+ def update
+ # Not yet implemented
+ end
+
+ private
+
+ def load_enquiry_or_redirect
+ @enquiry = Enquiry.get(params[:id])
+
+ if @enquiry.nil?
+ flash[:error] = "Enquiry with the given id is not found"
+ redirect_to :action => :index and return
+ end
+ end
+
+ def filter_enquiries(per_page)
+ total_rows, enquiries = enquiries_by_user_access(@filter, per_page)
+ @enquiries = paginated_collection enquiries, total_rows
+ end
+
+ def enquiries_by_user_access(filter_option, per_page)
+ # Skeleton based on child controller code
+ keys = [filter_option] # Not currently using keys
+ options = {}
+ all_rows = Enquiry.view("all")
+ return all_rows.length, all_rows
+ end
+
+ def paginated_collection instances, total_rows
+ page = params[:page] || 1
+ WillPaginate::Collection.create(page, EnquiriesHelper::View::PER_PAGE, total_rows) do |pager|
+ pager.replace(instances)
+ end
+ end
+
+ def setup_fields!
+ @form_sections = get_form_sections
+ field_hash_list = @form_sections.collect{ |section| section["fields"] }.flatten
+ @fields = field_hash_list.collect do |field|
+
+ field["display_name"].each do |lang, str|
+ field["display_name_#{lang}"] = str
+ end
+ field.delete("display_name")
+
+ if field.has_key? "option_strings_text"
+ field["option_strings_text"].each do |lang, arr|
+ field["option_strings_text_#{lang}"] = arr.join("\n")
+ end
+ field.delete("option_strings_text")
+ end
+
+ Field.new(field)
+ end
+ end
+
+ def get_form_sections
+ JSON.parse(File.read(Rails.root.join("config", "enquiry_form_sections.json").to_s))
+ end
+
+end
diff --git a/app/helpers/enquiries_helper.rb b/app/helpers/enquiries_helper.rb
new file mode 100644
index 000000000..7419c6c0c
--- /dev/null
+++ b/app/helpers/enquiries_helper.rb
@@ -0,0 +1,11 @@
+module EnquiriesHelper
+
+ module View
+ PER_PAGE = 20
+ MAX_PER_PAGE = 9999
+ end
+
+ def text_to_identify_enquiry enquiry
+ enquiry['enquirer_name'].blank? ? enquiry.id : "Enquiry by #{enquiry['enquirer_name']}: #{enquiry.id}"
+ end
+end
diff --git a/app/models/field.rb b/app/models/field.rb
index 8b04635fd..1deb212aa 100644
--- a/app/models/field.rb
+++ b/app/models/field.rb
@@ -23,6 +23,7 @@ class Field < Hash
PHOTO_UPLOAD_BOX = "photo_upload_box"
AUDIO_UPLOAD_BOX = "audio_upload_box"
DATE_FIELD = "date_field"
+ LIST_RECORD_FIELD = "list_record_field"
FIELD_FORM_TYPES = { TEXT_FIELD => "basic",
TEXT_AREA => "basic",
@@ -32,7 +33,8 @@ class Field < Hash
PHOTO_UPLOAD_BOX => "basic",
AUDIO_UPLOAD_BOX => "basic",
DATE_FIELD => "basic",
- NUMERIC_FIELD => "basic"}
+ NUMERIC_FIELD => "basic",
+ LIST_RECORD_FIELD => "basic"}
FIELD_DISPLAY_TYPES = {
TEXT_FIELD => "basic",
TEXT_AREA => "basic",
@@ -42,7 +44,8 @@ class Field < Hash
PHOTO_UPLOAD_BOX => "photo",
AUDIO_UPLOAD_BOX => "audio",
DATE_FIELD => "basic",
- NUMERIC_FIELD => "basic"}
+ NUMERIC_FIELD => "basic",
+ LIST_RECORD_FIELD => "basic"}
DEFAULT_VALUES = { TEXT_FIELD => "",
TEXT_AREA => "",
@@ -52,7 +55,8 @@ class Field < Hash
PHOTO_UPLOAD_BOX => nil,
AUDIO_UPLOAD_BOX => nil,
DATE_FIELD => "",
- NUMERIC_FIELD => ""}
+ NUMERIC_FIELD => "",
+ LIST_RECORD_FIELD => []}
validates_presence_of "display_name_#{I18n.default_locale}", :message=> I18n.t("errors.models.field.display_name_presence")
validates_with_method :name, :method => :validate_unique_name
diff --git a/app/views/enquiries/_field_display_basic.html.erb b/app/views/enquiries/_field_display_basic.html.erb
new file mode 100644
index 000000000..a8be8db14
--- /dev/null
+++ b/app/views/enquiries/_field_display_basic.html.erb
@@ -0,0 +1,6 @@
+
+
+ <%= t(field.name, :default => field.display_name) %>:
+ <%= field_value_for_display enquiry[field.name] %>
+
+
diff --git a/app/views/enquiries/_field_display_photo.html.erb b/app/views/enquiries/_field_display_photo.html.erb
new file mode 100644
index 000000000..2082a637a
--- /dev/null
+++ b/app/views/enquiries/_field_display_photo.html.erb
@@ -0,0 +1,22 @@
+
+
+<% content_for :javascript do %>
+
+<% end %>
+
+
+
+ <% # Not yet implemented %>
+
+
\ No newline at end of file
diff --git a/app/views/enquiries/_header.html.erb b/app/views/enquiries/_header.html.erb
new file mode 100644
index 000000000..f48b6c873
--- /dev/null
+++ b/app/views/enquiries/_header.html.erb
@@ -0,0 +1,4 @@
+<%= t("enquiries.label") %>
+<% if can? :create, Enquiry %>
+ <%= link_to content_tag(:span, t("enquiries.create_new_enquiry"), :class => 'create_user'), new_enquiry_path, :class=>'btn' %>
+<% end %>
diff --git a/app/views/enquiries/_summary_row.html.erb b/app/views/enquiries/_summary_row.html.erb
new file mode 100644
index 000000000..b1c1815fc
--- /dev/null
+++ b/app/views/enquiries/_summary_row.html.erb
@@ -0,0 +1,33 @@
+
+
+
+
+
+
<%= link_to text_to_identify_enquiry(enquiry), enquiry_path(enquiry) %>
+
+
+ <% @fields.each do |relevant_field| %>
+ <% if relevant_field.visible? %>
+
+
<%= t(relevant_field.display_name) %>:
+
<%= enquiry[relevant_field[:name]] %>
+
+ <% end %>
+ <% end %>
+
+
+
+
+ <% show_links = true unless local_assigns.has_key? :show_links %>
+ <% if show_links %>
+
+ <% if can?(:update, enquiry) %>
+
+ <%= link_to(t('buttons.edit'), edit_enquiry_path(enquiry), :class=>'edit') %> |
+
+ <% end %>
+
+ <% end %>
+
+
+
diff --git a/app/views/enquiries/index.html.erb b/app/views/enquiries/index.html.erb
new file mode 100644
index 000000000..afbbd05b5
--- /dev/null
+++ b/app/views/enquiries/index.html.erb
@@ -0,0 +1,10 @@
+<%= render :partial => "enquiries/header" %>
+
+
+
+ <%= render :partial => "enquiries/summary_row", :collection => @enquiries, :as => :enquiry %>
+
+ <%= render :partial => 'shared/pagination', :locals => { :results => @enquiries } %>
+
+
+
diff --git a/app/views/enquiries/show.html.erb b/app/views/enquiries/show.html.erb
new file mode 100644
index 000000000..87493019e
--- /dev/null
+++ b/app/views/enquiries/show.html.erb
@@ -0,0 +1,19 @@
+<%= link_to t("enquiries.label"), enquiries_path %> > <%= text_to_identify_enquiry(@enquiry) %>
+
+<% if can? :update, @enquiry %>
+ <%= link_to content_tag(:span, t("buttons.edit"), :class => 'edit'), edit_enquiry_path(@enquiry), :class=>'btn' %>
+<% end %>
+
+
+ <% content_for :stylesheet do %>
+ <%= stylesheet_link_tag "jquery.lightbox-0.5" %>
+ <% end %>
+
+
+
+
+ <% (@fields.select{|field| field.visible?}).each do |field| %>
+ <%= render :partial => "field_display_#{field.display_type}", :locals=>{:field => field, :enquiry=>@enquiry} %>
+ <% end %>
+
+
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index 181d4e53b..1e6da3ace 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -29,6 +29,9 @@
<% if can? :read, Child %>
<%= link_to t("navigation.children"), children_path %>
<% end %>
+ <% if can? :read, Enquiry %>
+ <%= link_to t("navigation.enquiries"), enquiries_path %>
+ <% end %>
<% if current_user_name==nil or can? :manage, FormSection %>
<%= link_to t("navigation.forms"), form_sections_path %>
<% end %>
diff --git a/config/locales/en.yml b/config/locales/en.yml
index a41dbbb06..944c305a9 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -14,6 +14,7 @@ en:
current_time_zone: "Current time zone"
language: "Language"
view_records: "View Records"
+ view_enquiries: "View Enquiries"
users: "Manage Users"
manage_system_users: "Manage Server Synchronisation Users"
records_need_attention: "Records need Attention"
@@ -67,6 +68,7 @@ en:
navigation:
children: "CHILDREN"
+ enquiries: "ENQUIRIES"
forms: "FORMS"
users: "USERS"
devices: "DEVICES"
@@ -201,6 +203,17 @@ en:
one: "child"
other: "children"
+ enquiries:
+ label: "Enquiries"
+ create_new_enquiry: "Create New Enquiry"
+
+ enquiry:
+ view: "View Enquiry"
+ edit: "Edit Enquiry"
+
+ messages:
+ creation_success: "Enquiry successfully created."
+
users:
unverified: "Unverified Users"
select_role: "Please select a role before verifying the user"
diff --git a/config/routes.rb b/config/routes.rb
index 76ebb788e..bcaef5392 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -65,6 +65,13 @@
match '/children' => 'children#index', :as => :child_filter
+#######################
+# ENQUIRY URLS
+#######################
+
+ resources :enquiries
+
+
#######################
# API URLS
#######################
From f242ea14447b1e5cb8c91fde218f72dddbfbb02b Mon Sep 17 00:00:00 2001
From: Benjamin Choi
Date: Tue, 29 Apr 2014 21:34:39 -0400
Subject: [PATCH 2/7] [#1877] [Ben] Modified view single enquiry to use tabs
---
app/controllers/enquiries_controller.rb | 39 +-
.../enquiries/_form_section_info.html.erb | 15 +
.../enquiries/_show_form_section.html.erb | 13 +
app/views/enquiries/_tabs.html.erb | 13 +
app/views/enquiries/show.html.erb | 10 +-
config/enquiry_form_sections.json | 1832 +++++++++--------
6 files changed, 1025 insertions(+), 897 deletions(-)
create mode 100644 app/views/enquiries/_form_section_info.html.erb
create mode 100644 app/views/enquiries/_show_form_section.html.erb
create mode 100644 app/views/enquiries/_tabs.html.erb
diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb
index e3369fbf3..f9871c53f 100644
--- a/app/controllers/enquiries_controller.rb
+++ b/app/controllers/enquiries_controller.rb
@@ -100,27 +100,36 @@ def paginated_collection instances, total_rows
def setup_fields!
@form_sections = get_form_sections
- field_hash_list = @form_sections.collect{ |section| section["fields"] }.flatten
- @fields = field_hash_list.collect do |field|
-
- field["display_name"].each do |lang, str|
- field["display_name_#{lang}"] = str
+ @fields = @form_sections.collect{ |section| section["fields"] }.flatten
+ end
+
+ def get_form_sections
+ JSON.parse(File.read(Rails.root.join("config", "enquiry_form_sections.json").to_s)).collect do |form_section|
+ form_section["fields"].each do |field|
+ field["display_name"].each do |lang, str|
+ field["display_name_#{lang}"] = str
+ end
+ field.delete("display_name")
+
+ if field.has_key? "option_strings_text"
+ field["option_strings_text"].each do |lang, arr|
+ field["option_strings_text_#{lang}"] = arr.join("\n")
+ end
+ field.delete("option_strings_text")
+ end
+
+ Field.new(field)
end
- field.delete("display_name")
- if field.has_key? "option_strings_text"
- field["option_strings_text"].each do |lang, arr|
- field["option_strings_text_#{lang}"] = arr.join("\n")
+ ["name", "help_text", "description"].each do |property|
+ form_section[property].each do |lang, str|
+ form_section["#{property}_#{lang}"] = str
end
- field.delete("option_strings_text")
+ form_section.delete(property)
end
- Field.new(field)
+ FormSection.new(form_section)
end
end
- def get_form_sections
- JSON.parse(File.read(Rails.root.join("config", "enquiry_form_sections.json").to_s))
- end
-
end
diff --git a/app/views/enquiries/_form_section_info.html.erb b/app/views/enquiries/_form_section_info.html.erb
new file mode 100644
index 000000000..ccc5a7fc4
--- /dev/null
+++ b/app/views/enquiries/_form_section_info.html.erb
@@ -0,0 +1,15 @@
+<%= t(form_section.unique_id,:default => form_section.name) %>
+
+
+
diff --git a/app/views/enquiries/_show_form_section.html.erb b/app/views/enquiries/_show_form_section.html.erb
new file mode 100644
index 000000000..12182bb69
--- /dev/null
+++ b/app/views/enquiries/_show_form_section.html.erb
@@ -0,0 +1,13 @@
+<% @form_sections.each do |section| %>
+
+
+
+
+ <%= render :partial => "form_section_info", :locals => {:form_section => section} %>
+
+ <% (section.fields.select{|field| field.visible?}).each do |field| %>
+ <%= render :partial => "field_display_#{field.display_type}", :locals=>{:field => field, :enquiry=>@enquiry} %>
+ <% end %>
+
+
+<% end %>
diff --git a/app/views/enquiries/_tabs.html.erb b/app/views/enquiries/_tabs.html.erb
new file mode 100644
index 000000000..763c714a8
--- /dev/null
+++ b/app/views/enquiries/_tabs.html.erb
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/app/views/enquiries/show.html.erb b/app/views/enquiries/show.html.erb
index 87493019e..88eee72a7 100644
--- a/app/views/enquiries/show.html.erb
+++ b/app/views/enquiries/show.html.erb
@@ -10,10 +10,14 @@
<% end %>
+
+
+ <%= render :partial => "tabs", :object => @form_sections %>
+
+
- <% (@fields.select{|field| field.visible?}).each do |field| %>
- <%= render :partial => "field_display_#{field.display_type}", :locals=>{:field => field, :enquiry=>@enquiry} %>
- <% end %>
+ <%= render :partial => "show_form_section" %>
+
diff --git a/config/enquiry_form_sections.json b/config/enquiry_form_sections.json
index 0ee96a091..1ba617b59 100644
--- a/config/enquiry_form_sections.json
+++ b/config/enquiry_form_sections.json
@@ -1,880 +1,954 @@
-[ {
- "name": {
- "en": "Potential matches"
- },
- "help_text": {
- "en": ""
- },
- "description": {
- "en": ""
- },
- "unique_id": "e98c765c",
- "visible": "true",
- "order": 1,
- "fields": [{
- "name": "91aec05e",
- "visible": "true",
- "type": "list_record_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": false,
- "display_name": {
- "en": "List of matching child records"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }],
- "editable": false,
- "base_language": "en"
- },{
- "name": {
- "en": "Enquirer Details"
- },
- "help_text": {
- "en": ""
- },
- "description": {
- "en": "Details of the enquirer looking for child"
- },
- "unique_id": "5aaeeac6",
- "visible": "true",
- "order": 2,
- "fields": [{
- "name": "enquirer_name",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Name"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "7b8124c6",
- "visible": "true",
- "type": "select_box",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Sex"
- },
- "help_text": {
- "en": ""
- },
- "option_strings_text": {
- "en": ["Male", "Female"]
- },
- "base_language": "en"
- }, {
- "name": "f9e9ad8c",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Date of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "012dea68",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Place of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "0b4e5d02",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Address"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "1196a106",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Telephone number"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "19925d50",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Ethnic group/tribe"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "2087940e",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Nationality"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "39ef5e2c",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Relationship to child"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "4d64922e",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Message for the child"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }],
- "editable": true,
- "base_language": "en"
-}, {
- "name": {
- "en": "Child Details"
- },
- "help_text": {
- "en": ""
- },
- "description": {
- "en": "Details of the child"
- },
- "unique_id": "6fd43e0e",
- "visible": "true",
- "order": 3,
- "fields": [{
- "name": "e078c116",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Name"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "ec630b8a",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Also known as(nickname)"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "000dbeb4",
- "visible": "true",
- "type": "select_box",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Sex"
- },
- "help_text": {
- "en": ""
- },
- "option_strings_text": {
- "en": ["Male", "Female"]
- },
- "base_language": "en"
- }, {
- "name": "11dea89c",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Date of birth/age"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "1927505e",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Languages spoken"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "1e8ca2ba",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Nationality"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "27923c80",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Ethnic group/tribe"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "2e494f78",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Distinguishing physical characteristics"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }],
- "editable": true,
- "base_language": "en"
-}, {
- "name": {
- "en": "Family Details"
- },
- "help_text": {
- "en": ""
- },
- "description": {
- "en": "Family details of child"
- },
- "unique_id": "3b92cdc6",
- "visible": "true",
- "order": 4,
- "fields": [{
- "name": "42f16c80",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Father's name"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "68af5f5e",
- "visible": "true",
- "type": "select_box",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Is father alive?"
- },
- "help_text": {
- "en": ""
- },
- "option_strings_text": {
- "en": ["Yes", "No"]
- },
- "base_language": "en"
- }, {
- "name": "71e51c62",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "If father dead, please provide details"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "7bb943da",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Mother's name"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "8bfc073c",
- "visible": "true",
- "type": "select_box",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Is mother alive?"
- },
- "help_text": {
- "en": ""
- },
- "option_strings_text": {
- "en": ["Yes", "No"]
- },
- "base_language": "en"
- }, {
- "name": "95f98cbe",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "If mother dead please provide details"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "9a04f5d2",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Address of child before separation"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }],
- "editable": true,
- "base_language": "en"
-}, {
- "name": {
- "en": "Siblings Details"
- },
- "help_text": {
- "en": ""
- },
- "description": {
- "en": "Child's siblings details"
- },
- "unique_id": "c5b7c470",
- "visible": "true",
- "order": 5,
- "fields": [{
- "name": "cc937e6a",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "1) Name of sibling or other child accompanying the child"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "ddf329b2",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Relationship"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "e687920c",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Date of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "ebcd630e",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Place of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "02995c28",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Current address"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "0797bcce",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Telephone"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "10810aa2",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "2) Name of sibling or other child accompanying the child"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "19bbeb0a",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Relationship"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "230f18b2",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Date of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "40e98016",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Place of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "49cf0ebc",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Current address"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "5a0237fa",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Telephone"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "64594b8a",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "3) Name of sibling or other child accompanying the child"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "68eb61c4",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Relationship"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "6ee93600",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Date of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "73c6a09a",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Place of birth"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "7d07c094",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Current address"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "8375bae4",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Telephone"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }],
- "editable": true,
- "base_language": "en"
-}, {
- "name": {
- "en": "Separation History"
- },
- "help_text": {
- "en": ""
- },
- "description": {
- "en": "Separation History of child"
- },
- "unique_id": "988771d4",
- "visible": "true",
- "order": 6,
- "fields": [{
- "name": "9f1a1a9c",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Date of separation"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "acb62664",
- "visible": "true",
- "type": "text_field",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Place of separation"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }, {
- "name": "d168820e",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Circumstances of separation"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }],
- "editable": true,
- "base_language": "en"
-}, {
- "name": {
- "en": "Tracing Information"
- },
- "help_text": {
- "en": ""
- },
- "description": {
- "en": "Other information to assist in tracing the child"
- },
- "unique_id": "e803e21a",
- "visible": "true",
- "order": 7,
- "fields": [{
- "name": "fa2f96fa",
- "visible": "true",
- "type": "textarea",
- "highlight_information": {
- "highlighted": false
- },
- "editable": true,
- "display_name": {
- "en": "Latest news received"
- },
- "help_text": {
- "en": ""
- },
- "base_language": "en"
- }],
- "editable": true,
- "base_language": "en"
-},
-{
-"name": {
-"en": "Photo"
-},
-"help_text": {
-"en": ""
-},
-"description": {
-"en": "Photo of the enquirer"
-},
-"unique_id": "1e1198ae",
-"visible": "true",
-"order": 8,
-"fields": [
-{
-"name": "current_photo_key",
-"visible": "true",
-"type": "photo_upload_box",
-"highlight_information": {
-"highlighted": false
-},
-"editable": true,
-"display_name": {
-"en": "Photo"
-},
-"help_text": {
-"en": ""
-},
-"base_language": "en"
-}
-],
-"editable": true,
-"base_language": "en"
-}
+[
+ {
+ "name":{
+ "en":"Potential matches"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":""
+ },
+ "unique_id":"e98c765c",
+ "visible":"true",
+ "order":1,
+ "fields":[
+ {
+ "name":"91aec05e",
+ "visible":"true",
+ "type":"list_record_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":false,
+ "display_name":{
+ "en":"List of matching child records"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":false,
+ "base_language":"en"
+ },
+ {
+ "name":{
+ "en":"Enquirer Details"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":"Details of the enquirer looking for child"
+ },
+ "unique_id":"5aaeeac6",
+ "visible":"true",
+ "order":2,
+ "fields":[
+ {
+ "name":"enquirer_name",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Name"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"7b8124c6",
+ "visible":"true",
+ "type":"select_box",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Sex"
+ },
+ "help_text":{
+ "en":""
+ },
+ "option_strings_text":{
+ "en":[
+ "Male",
+ "Female"
+ ]
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"f9e9ad8c",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Date of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"012dea68",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Place of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"0b4e5d02",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Address"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"1196a106",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Telephone number"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"19925d50",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Ethnic group/tribe"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"2087940e",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Nationality"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"39ef5e2c",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Relationship to child"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"4d64922e",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Message for the child"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":true,
+ "base_language":"en"
+ },
+ {
+ "name":{
+ "en":"Child Details"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":"Details of the child"
+ },
+ "unique_id":"6fd43e0e",
+ "visible":"true",
+ "order":3,
+ "fields":[
+ {
+ "name":"e078c116",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Name"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"ec630b8a",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Also known as(nickname)"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"000dbeb4",
+ "visible":"true",
+ "type":"select_box",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Sex"
+ },
+ "help_text":{
+ "en":""
+ },
+ "option_strings_text":{
+ "en":[
+ "Male",
+ "Female"
+ ]
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"11dea89c",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Date of birth/age"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"1927505e",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Languages spoken"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"1e8ca2ba",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Nationality"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"27923c80",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Ethnic group/tribe"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"2e494f78",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Distinguishing physical characteristics"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":true,
+ "base_language":"en"
+ },
+ {
+ "name":{
+ "en":"Family Details"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":"Family details of child"
+ },
+ "unique_id":"3b92cdc6",
+ "visible":"true",
+ "order":4,
+ "fields":[
+ {
+ "name":"42f16c80",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Father's name"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"68af5f5e",
+ "visible":"true",
+ "type":"select_box",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Is father alive?"
+ },
+ "help_text":{
+ "en":""
+ },
+ "option_strings_text":{
+ "en":[
+ "Yes",
+ "No"
+ ]
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"71e51c62",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"If father dead, please provide details"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"7bb943da",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Mother's name"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"8bfc073c",
+ "visible":"true",
+ "type":"select_box",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Is mother alive?"
+ },
+ "help_text":{
+ "en":""
+ },
+ "option_strings_text":{
+ "en":[
+ "Yes",
+ "No"
+ ]
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"95f98cbe",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"If mother dead please provide details"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"9a04f5d2",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Address of child before separation"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":true,
+ "base_language":"en"
+ },
+ {
+ "name":{
+ "en":"Siblings Details"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":"Child's siblings details"
+ },
+ "unique_id":"c5b7c470",
+ "visible":"true",
+ "order":5,
+ "fields":[
+ {
+ "name":"cc937e6a",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"1) Name of sibling or other child accompanying the child"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"ddf329b2",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Relationship"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"e687920c",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Date of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"ebcd630e",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Place of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"02995c28",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Current address"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"0797bcce",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Telephone"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"10810aa2",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"2) Name of sibling or other child accompanying the child"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"19bbeb0a",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Relationship"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"230f18b2",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Date of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"40e98016",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Place of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"49cf0ebc",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Current address"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"5a0237fa",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Telephone"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"64594b8a",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"3) Name of sibling or other child accompanying the child"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"68eb61c4",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Relationship"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"6ee93600",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Date of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"73c6a09a",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Place of birth"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"7d07c094",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Current address"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"8375bae4",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Telephone"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":true,
+ "base_language":"en"
+ },
+ {
+ "name":{
+ "en":"Separation History"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":"Separation History of child"
+ },
+ "unique_id":"988771d4",
+ "visible":"true",
+ "order":6,
+ "fields":[
+ {
+ "name":"9f1a1a9c",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Date of separation"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"acb62664",
+ "visible":"true",
+ "type":"text_field",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Place of separation"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ },
+ {
+ "name":"d168820e",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Circumstances of separation"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":true,
+ "base_language":"en"
+ },
+ {
+ "name":{
+ "en":"Tracing Information"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":"Other information to assist in tracing the child"
+ },
+ "unique_id":"e803e21a",
+ "visible":"true",
+ "order":7,
+ "fields":[
+ {
+ "name":"fa2f96fa",
+ "visible":"true",
+ "type":"textarea",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Latest news received"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":true,
+ "base_language":"en"
+ },
+ {
+ "name":{
+ "en":"Photo"
+ },
+ "help_text":{
+ "en":""
+ },
+ "description":{
+ "en":"Photo of the enquirer"
+ },
+ "unique_id":"1e1198ae",
+ "visible":"true",
+ "order":8,
+ "fields":[
+ {
+ "name":"current_photo_key",
+ "visible":"true",
+ "type":"photo_upload_box",
+ "highlight_information":{
+ "highlighted":false
+ },
+ "editable":true,
+ "display_name":{
+ "en":"Photo"
+ },
+ "help_text":{
+ "en":""
+ },
+ "base_language":"en"
+ }
+ ],
+ "editable":true,
+ "base_language":"en"
+ }
]
\ No newline at end of file
From ea9f03701a4d99910d93ef2b66b00a1fe0d3a255 Mon Sep 17 00:00:00 2001
From: Your Name Here
Date: Mon, 5 May 2014 14:11:03 -0400
Subject: [PATCH 3/7] [#1925] Added Create New Enquiry view and edited
enquiries controller to add functionality
---
app/controllers/enquiries_controller.rb | 33 +++++++++++++++----
app/views/enquiries/_form_section.html.erb | 11 +++++++
.../enquiries/_list_record_field.html.erb | 0
.../enquiries/_photo_upload_box.html.erb | 22 +++++++++++++
app/views/enquiries/_select_box.html.erb | 8 +++++
app/views/enquiries/_tabs.html.erb | 16 +++++----
app/views/enquiries/_text_field.html.erb | 8 +++++
app/views/enquiries/_textarea.html.erb | 7 ++++
app/views/enquiries/new.html.erb | 21 ++++++++++++
9 files changed, 112 insertions(+), 14 deletions(-)
create mode 100644 app/views/enquiries/_form_section.html.erb
create mode 100644 app/views/enquiries/_list_record_field.html.erb
create mode 100644 app/views/enquiries/_photo_upload_box.html.erb
create mode 100644 app/views/enquiries/_select_box.html.erb
create mode 100644 app/views/enquiries/_text_field.html.erb
create mode 100644 app/views/enquiries/_textarea.html.erb
create mode 100644 app/views/enquiries/new.html.erb
diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb
index f9871c53f..66d64ad27 100644
--- a/app/controllers/enquiries_controller.rb
+++ b/app/controllers/enquiries_controller.rb
@@ -37,7 +37,7 @@ def new
@page_name = t("enquiries.create_new_enquiry")
setup_fields!
- @enquiry = Enquiry.new
+ @enquiry = Enquiry.new
end
# GET /enquiries/1/edit
@@ -53,13 +53,24 @@ def edit
def create
# Skeleton based on child controller code
authorize! :create, Enquiry
- params[:enquiry] = JSON.parse(params[:enquiry]) if params[:enquiry].is_a?(String)
+ params[:enquiry] = params[:child]
+ params[:enquiry][:criteria] = params[:child]
create_or_update_enquiry(params[:enquiry])
- if @enquiry.save
- flash[:notice] = t("enquiry.messages.creation_success")
- redirect_to(@enquiry)
- else
- render :action => "new"
+ @enquiry['created_by_full_name'] = current_user_full_name
+ respond_to do |format|
+ if @enquiry.save!
+ format.html { redirect_to(@enquiry) }
+ format.xml { render :xml => @enquiry, :status => :created, :location => @enquiry }
+ format.json {
+ render :json => @enquiry.compact.to_json
+ }
+ else
+ format.html {
+ @form_sections = get_form_sections
+ render :action => "new"
+ }
+ format.xml { render :xml => @enquiry.errors, :status => :unprocessable_entity }
+ end
end
end
@@ -132,4 +143,12 @@ def get_form_sections
end
end
+ def create_or_update_enquiry(enquiry_params)
+ if @enquiry.nil?
+ @enquiry = Enquiry.new_with_user_name(current_user, enquiry_params)
+ else
+ @enquiry = update_from(params)
+ end
+ end
+
end
diff --git a/app/views/enquiries/_form_section.html.erb b/app/views/enquiries/_form_section.html.erb
new file mode 100644
index 000000000..9d51941e2
--- /dev/null
+++ b/app/views/enquiries/_form_section.html.erb
@@ -0,0 +1,11 @@
+<% if form_section.name_en != "Potential matches" %>
+
+ <%= render :partial => "form_section_info", :locals => {:form_section => form_section} %>
+ <% (form_section.fields.select {|field| field.visible? }).each do |field| %>
+ <% if field.type != "list_record_field" && field.type != "photo_upload_box" %>
+ <%= render :partial => field.type, :object => field %>
+ <% end %>
+ <% end %>
+
+
+<% end %>
\ No newline at end of file
diff --git a/app/views/enquiries/_list_record_field.html.erb b/app/views/enquiries/_list_record_field.html.erb
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/views/enquiries/_photo_upload_box.html.erb b/app/views/enquiries/_photo_upload_box.html.erb
new file mode 100644
index 000000000..0510c540c
--- /dev/null
+++ b/app/views/enquiries/_photo_upload_box.html.erb
@@ -0,0 +1,22 @@
+
+ Photos should be no larger than 10mb. Audio files should be no larger than 10mb. The smaller the better.
+
+<% ChildrenHelper::EditView::ONETIME_PHOTOS_UPLOAD_LIMIT.times do |i|%>
+
+
+ <%= label_tag "enquiry[photo]#{i}", "Add Photo", :class=>'key' %>
+
+
+ <%= file_field_tag "enquiry[photo]#{i}" %>
+
+ <%= image_tag "new/icon_help.png", title: photo_upload_box.help_text, class: 'tool-tip-icon vtip' if photo_upload_box.help_text.present? %>
+
+<% end %>
+
+<% @enquiry.photos.each do |photo| %>
+
+ <%= label_tag "delete_enquiry_photo[#{photo.name}]", t("enquiry.actions.delete_photo") %>
+ <%= check_box_tag("delete_enquiry_photo[#{photo.name}]") %>
+ <%= thumbnail_tag(@enquiry, photo.name) %>
+
+<% end %>
diff --git a/app/views/enquiries/_select_box.html.erb b/app/views/enquiries/_select_box.html.erb
new file mode 100644
index 000000000..46d300464
--- /dev/null
+++ b/app/views/enquiries/_select_box.html.erb
@@ -0,0 +1,8 @@
+
+
+ <%= label_tag select_box.tag_name_attribute, t(select_box.name, :default => select_box.display_name), :class=>'key' %>
+
+<%= select_tag select_box.tag_name_attribute, options_for_select(select_box.select_options, (@enquiry[select_box.name] || '')) %>
+
+ <%= image_tag "new/icon_help.png", title: select_box.help_text, class: 'tool-tip-icon vtip' if select_box.help_text.present? %>
+
diff --git a/app/views/enquiries/_tabs.html.erb b/app/views/enquiries/_tabs.html.erb
index 763c714a8..4fd24d45d 100644
--- a/app/views/enquiries/_tabs.html.erb
+++ b/app/views/enquiries/_tabs.html.erb
@@ -1,13 +1,15 @@
\ No newline at end of file
diff --git a/app/views/enquiries/_text_field.html.erb b/app/views/enquiries/_text_field.html.erb
new file mode 100644
index 000000000..35b3d1200
--- /dev/null
+++ b/app/views/enquiries/_text_field.html.erb
@@ -0,0 +1,8 @@
+
+
+ <%= label_tag text_field.tag_name_attribute, t(text_field.name, :default => text_field.display_name), :class=>'key' %>
+
+ <%= text_field_tag text_field.tag_name_attribute, @enquiry[text_field.name] %>
+
+ <%= image_tag "new/icon_help.png", title: text_field.help_text, class: 'tool-tip-icon vtip' if text_field.help_text.present? %>
+
diff --git a/app/views/enquiries/_textarea.html.erb b/app/views/enquiries/_textarea.html.erb
new file mode 100644
index 000000000..14ee60b32
--- /dev/null
+++ b/app/views/enquiries/_textarea.html.erb
@@ -0,0 +1,7 @@
+
+
+ <%= label_tag textarea.tag_name_attribute, t(textarea.name,:default => textarea.display_name), :class=>'key' %>
+
+ <%= text_area_tag textarea.tag_name_attribute, @enquiry[textarea.name]%>
+ <%= image_tag "new/icon_help.png", title: textarea.help_text, class: 'tool-tip-icon vtip' if textarea.help_text.present? %>
+
diff --git a/app/views/enquiries/new.html.erb b/app/views/enquiries/new.html.erb
new file mode 100644
index 000000000..e3dcf575f
--- /dev/null
+++ b/app/views/enquiries/new.html.erb
@@ -0,0 +1,21 @@
+<%= link_to t("enquiries.label"), enquiries_path %> <%= t("enquiries.create_new_enquiry") %>
+
+<%= form_tag enquiries_path, :multipart => true do %>
+
+
+ <%= render :partial => "tabs", :object => @form_sections %>
+
+
+
+ <%= render :partial => "form_section", :collection => @form_sections %>
+
+ <%= discard_button :back %>
+ <%= submit_button %>
+
+
+
+
+<% end %>
+
+
+
From 2af7188b19350a3c80b97b6727304361006f0bdc Mon Sep 17 00:00:00 2001
From: Benjamin Choi
Date: Wed, 7 May 2014 02:48:15 -0400
Subject: [PATCH 4/7] Minor fixes to ensure Potential Matches tab only shows up
in View not Create
---
app/controllers/enquiries_controller.rb | 4 ++++
app/models/enquiry.rb | 2 +-
app/views/enquiries/_form_section.html.erb | 2 +-
app/views/enquiries/_summary_row.html.erb | 22 ++++++++++++++--------
app/views/enquiries/_tabs.html.erb | 2 +-
app/views/enquiries/new.html.erb | 4 ++--
config/enquiry_form_sections.json | 4 ++--
config/locales/en.yml | 1 +
8 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb
index 66d64ad27..82d757ae9 100644
--- a/app/controllers/enquiries_controller.rb
+++ b/app/controllers/enquiries_controller.rb
@@ -24,6 +24,7 @@ def index
# GET /enquiries/1
def show
authorize! :show, @enquiry
+
@page_name = t("enquiry.view")
@body_class = 'profile-page'
@enquiry = Enquiry.get(params[:id])
@@ -37,6 +38,7 @@ def new
@page_name = t("enquiries.create_new_enquiry")
setup_fields!
+ @exclude_tabs = ["e98c765c"]
@enquiry = Enquiry.new
end
@@ -53,6 +55,7 @@ def edit
def create
# Skeleton based on child controller code
authorize! :create, Enquiry
+
params[:enquiry] = params[:child]
params[:enquiry][:criteria] = params[:child]
create_or_update_enquiry(params[:enquiry])
@@ -112,6 +115,7 @@ def paginated_collection instances, total_rows
def setup_fields!
@form_sections = get_form_sections
@fields = @form_sections.collect{ |section| section["fields"] }.flatten
+ @exclude_tabs = []
end
def get_form_sections
diff --git a/app/models/enquiry.rb b/app/models/enquiry.rb
index ef0613cd6..abff3f5d6 100644
--- a/app/models/enquiry.rb
+++ b/app/models/enquiry.rb
@@ -37,7 +37,7 @@ def find_matching_children
self.potential_matches = children.map { |child| child.id }
verify_format_of(previous_matches)
- unless previous_matches.eql?(self.potential_matches)
+ if previous_matches.empty? or not previous_matches.eql?(self.potential_matches)
self.match_updated_at = Clock.now.to_s
end
end
diff --git a/app/views/enquiries/_form_section.html.erb b/app/views/enquiries/_form_section.html.erb
index 9d51941e2..01021d172 100644
--- a/app/views/enquiries/_form_section.html.erb
+++ b/app/views/enquiries/_form_section.html.erb
@@ -1,4 +1,4 @@
-<% if form_section.name_en != "Potential matches" %>
+<% unless @exclude_tabs.include?(form_section.unique_id) %>
<%= render :partial => "form_section_info", :locals => {:form_section => form_section} %>
<% (form_section.fields.select {|field| field.visible? }).each do |field| %>
diff --git a/app/views/enquiries/_summary_row.html.erb b/app/views/enquiries/_summary_row.html.erb
index b1c1815fc..6468fc0ca 100644
--- a/app/views/enquiries/_summary_row.html.erb
+++ b/app/views/enquiries/_summary_row.html.erb
@@ -6,14 +6,20 @@
<%= link_to text_to_identify_enquiry(enquiry), enquiry_path(enquiry) %>
- <% @fields.each do |relevant_field| %>
- <% if relevant_field.visible? %>
-
-
<%= t(relevant_field.display_name) %>:
-
<%= enquiry[relevant_field[:name]] %>
-
- <% end %>
- <% end %>
+ <% @fields.each do |relevant_field| %>
+ <% if relevant_field.visible? and relevant_field.is_highlighted? %>
+
+
<%= t(relevant_field.display_name) %>:
+
<%= enquiry[relevant_field[:name]] %>
+
+ <% end %>
+ <% end %>
+ <% if enquiry.match_updated_at %>
+
+
<%= t("enquiry.match_updated") %>:
+
<%= current_user.localize_date(enquiry.match_updated_at) %>
+
+ <% end %>
diff --git a/app/views/enquiries/_tabs.html.erb b/app/views/enquiries/_tabs.html.erb
index 4fd24d45d..cf45ee24d 100644
--- a/app/views/enquiries/_tabs.html.erb
+++ b/app/views/enquiries/_tabs.html.erb
@@ -1,7 +1,7 @@
diff --git a/app/views/enquiries/_textarea.html.erb b/app/views/enquiries/_textarea.html.erb
index 14ee60b32..15bdefa7b 100644
--- a/app/views/enquiries/_textarea.html.erb
+++ b/app/views/enquiries/_textarea.html.erb
@@ -2,6 +2,8 @@
<%= label_tag textarea.tag_name_attribute, t(textarea.name,:default => textarea.display_name), :class=>'key' %>
- <%= text_area_tag textarea.tag_name_attribute, @enquiry[textarea.name]%>
+ <%= text_area_tag textarea.tag_name_attribute,
+ (@enquiry[textarea.name] ? @enquiry[textarea.name] :
+ (@enquiry[:criteria] || @enquiry)[textarea.name]) %>
<%= image_tag "new/icon_help.png", title: textarea.help_text, class: 'tool-tip-icon vtip' if textarea.help_text.present? %>