diff --git a/composer.json b/composer.json
index 5e5dcb00fc..5ac716376f 100644
--- a/composer.json
+++ b/composer.json
@@ -286,6 +286,10 @@
}
},
"patches": {
+ "drupal/addtocal": {
+ "Patch for Type error DIG-3707 Dec 2023 Stella": "https://www.drupal.org/files/issues/2023-07-07/3372354-fix-addtocal-download.patch",
+ "Part two - menu not opening patch for Type error DIG-3707 - Dec 2023 Stella": "patches/dig-3707a.patch"
+ },
"drupal/core": {
"CoB patch - Fix original node is null on migration.": "patches/cob_migration_missing_original_001.patch",
"Optional end-date in date_range field type": "https://www.drupal.org/files/issues/2020-08-09/2794481-109.patch",
diff --git a/config/default/content_access.settings.yml b/config/default/content_access.settings.yml
index 66e711fbab..bf2fafe15a 100644
--- a/config/default/content_access.settings.yml
+++ b/config/default/content_access.settings.yml
@@ -11,6 +11,7 @@ content_access_roles_gids:
content_reviewer: 7
metrolist_editor: 8
election_editor: 9
+ city_clerk_editor: 10
content_access_node_type:
test_component_page: 'a:2:{s:4:"view";a:1:{i:0;s:13:"authenticated";}s:8:"view own";a:1:{i:0;s:13:"authenticated";}}'
department_profile: 'a:1:{s:8:"view own";a:1:{i:0;s:13:"authenticated";}}'
@@ -44,3 +45,4 @@ content_access_node_type:
node_emergency_alert_new: 'a:1:{s:8:"view own";a:1:{i:0;s:13:"authenticated";}}'
node_neighborhood_lookup: 'a:2:{s:4:"view";a:1:{i:0;s:13:"authenticated";}s:8:"view own";a:1:{i:0;s:13:"authenticated";}}'
election_report: 'a:2:{s:8:"view_own";a:4:{i:0;s:9:"anonymous";i:1;s:13:"authenticated";i:2;s:13:"administrator";i:3;s:18:"site_administrator";}s:4:"view";a:4:{i:0;s:9:"anonymous";i:1;s:13:"authenticated";i:2;s:13:"administrator";i:3;s:18:"site_administrator";}}'
+ roll_call_dockets: 'a:2:{s:8:"view_own";a:3:{i:0;s:17:"city_clerk_editor";i:1;s:13:"administrator";i:2;s:18:"site_administrator";}s:4:"view";a:3:{i:0;s:17:"city_clerk_editor";i:1;s:13:"administrator";i:2;s:18:"site_administrator";}}'
diff --git a/config/default/core.base_field_override.node.roll_call_dockets.promote.yml b/config/default/core.base_field_override.node.roll_call_dockets.promote.yml
new file mode 100644
index 0000000000..9662ae50d4
--- /dev/null
+++ b/config/default/core.base_field_override.node.roll_call_dockets.promote.yml
@@ -0,0 +1,22 @@
+uuid: d5bd9b32-599a-44d1-a334-4380765b5bc5
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.roll_call_dockets
+id: node.roll_call_dockets.promote
+field_name: promote
+entity_type: node
+bundle: roll_call_dockets
+label: 'Promoted to front page'
+description: ''
+required: false
+translatable: true
+default_value:
+ -
+ value: 0
+default_value_callback: ''
+settings:
+ on_label: 'On'
+ off_label: 'Off'
+field_type: boolean
diff --git a/config/default/core.base_field_override.node.roll_call_dockets.title.yml b/config/default/core.base_field_override.node.roll_call_dockets.title.yml
new file mode 100644
index 0000000000..835e9d57b8
--- /dev/null
+++ b/config/default/core.base_field_override.node.roll_call_dockets.title.yml
@@ -0,0 +1,18 @@
+uuid: 65c05dfc-dc4b-4879-b7cf-10b74c6d450a
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.roll_call_dockets
+id: node.roll_call_dockets.title
+field_name: title
+entity_type: node
+bundle: roll_call_dockets
+label: 'Docket Number'
+description: ''
+required: true
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/default/core.entity_form_display.node.bh_update.default.yml b/config/default/core.entity_form_display.node.bh_update.default.yml
index cc34b0e521..1954d0f34b 100644
--- a/config/default/core.entity_form_display.node.bh_update.default.yml
+++ b/config/default/core.entity_form_display.node.bh_update.default.yml
@@ -5,6 +5,7 @@ dependencies:
config:
- field.field.node.bh_update.body
- field.field.node.bh_update.field_bh_attachment
+ - field.field.node.bh_update.field_bh_banner_status
- field.field.node.bh_update.field_bh_boston_based_business
- field.field.node.bh_update.field_bh_developer_name
- field.field.node.bh_update.field_bh_developer_website
@@ -92,6 +93,7 @@ third_party_settings:
group_project:
children:
- field_bh_project_ref
+ - field_bh_banner_status
- body
- field_bh_image
- field_bh_project_web_link
@@ -150,7 +152,7 @@ mode: default
content:
body:
type: text_textarea_with_summary
- weight: 3
+ weight: 5
region: content
settings:
rows: 9
@@ -160,7 +162,7 @@ content:
third_party_settings: { }
created:
type: datetime_timestamp
- weight: 11
+ weight: 3
region: content
settings: { }
third_party_settings: { }
@@ -171,9 +173,19 @@ content:
settings:
progress_indicator: throbber
third_party_settings: { }
+ field_bh_banner_status:
+ type: entity_reference_autocomplete
+ weight: 4
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
field_bh_boston_based_business:
type: boolean_checkbox
- weight: 6
+ weight: 7
region: content
settings:
display_label: true
@@ -188,7 +200,7 @@ content:
third_party_settings: { }
field_bh_developer_website:
type: string_textfield
- weight: 9
+ weight: 10
region: content
settings:
size: 60
@@ -212,7 +224,7 @@ content:
third_party_settings: { }
field_bh_image:
type: file_generic
- weight: 4
+ weight: 6
region: content
settings:
progress_indicator: throbber
@@ -244,7 +256,7 @@ content:
third_party_settings: { }
field_bh_project_web_link:
type: string_textfield
- weight: 5
+ weight: 7
region: content
settings:
size: 60
@@ -297,46 +309,46 @@ content:
third_party_settings: { }
langcode:
type: language_select
- weight: 9
+ weight: 1
region: content
settings:
include_locked: true
third_party_settings: { }
moderation_state:
type: moderation_state_default
- weight: 18
+ weight: 9
region: content
settings: { }
third_party_settings: { }
path:
type: path
- weight: 16
+ weight: 7
region: content
settings: { }
third_party_settings: { }
promote:
type: boolean_checkbox
- weight: 14
+ weight: 5
region: content
settings:
display_label: true
third_party_settings: { }
published_at:
type: publication_date_timestamp
- weight: 13
+ weight: 4
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
- weight: 19
+ weight: 10
region: content
settings:
display_label: true
third_party_settings: { }
sticky:
type: boolean_checkbox
- weight: 15
+ weight: 6
region: content
settings:
display_label: true
@@ -351,7 +363,7 @@ content:
third_party_settings: { }
uid:
type: entity_reference_autocomplete
- weight: 10
+ weight: 2
region: content
settings:
match_operator: CONTAINS
@@ -360,7 +372,7 @@ content:
placeholder: ''
third_party_settings: { }
url_redirects:
- weight: 17
+ weight: 8
region: content
settings: { }
third_party_settings: { }
diff --git a/config/default/core.entity_form_display.node.roll_call_dockets.default.yml b/config/default/core.entity_form_display.node.roll_call_dockets.default.yml
new file mode 100644
index 0000000000..1af1ead7fd
--- /dev/null
+++ b/config/default/core.entity_form_display.node.roll_call_dockets.default.yml
@@ -0,0 +1,133 @@
+uuid: a54a2432-0677-41f0-9b3a-a89fd253f52f
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.roll_call_dockets.body
+ - field.field.node.roll_call_dockets.field_components
+ - field.field.node.roll_call_dockets.field_meeting_date
+ - node.type.roll_call_dockets
+ - workflows.workflow.managed_workflow
+ module:
+ - content_moderation
+ - datetime
+ - field_group
+ - paragraphs
+ - publication_date
+ - text
+third_party_settings:
+ field_group:
+ group_council_meeting:
+ children:
+ - group_docket
+ label: 'Council Meeting'
+ region: content
+ parent_name: ''
+ weight: 0
+ format_type: tabs
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ direction: vertical
+ width_breakpoint: 640
+ group_docket:
+ children:
+ - title
+ - field_meeting_date
+ - body
+ - field_components
+ label: Docket
+ region: content
+ parent_name: group_council_meeting
+ weight: 20
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
+id: node.roll_call_dockets.default
+targetEntityType: node
+bundle: roll_call_dockets
+mode: default
+content:
+ body:
+ type: text_textarea_with_summary
+ weight: 4
+ region: content
+ settings:
+ rows: 9
+ summary_rows: 3
+ placeholder: ''
+ show_summary: false
+ third_party_settings: { }
+ created:
+ type: datetime_timestamp
+ weight: 3
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_components:
+ type: entity_reference_paragraphs
+ weight: 5
+ region: content
+ settings:
+ title: 'Roll Call Vote'
+ title_plural: 'Roll Call Votes'
+ edit_mode: open
+ add_mode: dropdown
+ form_display_mode: default
+ default_paragraph_type: roll_call_vote
+ third_party_settings: { }
+ field_meeting_date:
+ type: datetime_default
+ weight: 3
+ region: content
+ settings: { }
+ third_party_settings: { }
+ moderation_state:
+ type: moderation_state_default
+ weight: 1
+ region: content
+ settings: { }
+ third_party_settings: { }
+ published_at:
+ type: publication_date_timestamp
+ weight: 4
+ region: content
+ settings: { }
+ third_party_settings: { }
+ status:
+ type: boolean_checkbox
+ weight: 5
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ title:
+ type: string_textfield
+ weight: 2
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ uid:
+ type: entity_reference_autocomplete
+ weight: 2
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ langcode: true
+ path: true
+ promote: true
+ sticky: true
+ url_redirects: true
diff --git a/config/default/core.entity_form_display.paragraph.bos_node_search.default.yml b/config/default/core.entity_form_display.paragraph.bos_node_search.default.yml
new file mode 100644
index 0000000000..fe338de672
--- /dev/null
+++ b/config/default/core.entity_form_display.paragraph.bos_node_search.default.yml
@@ -0,0 +1,59 @@
+uuid: 54b77ab3-d22b-4129-920b-16d686a01426
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.bos_node_search.field_component_title
+ - field.field.paragraph.bos_node_search.field_node_search
+ - field.field.paragraph.bos_node_search.field_search_results
+ - field.field.paragraph.bos_node_search.field_short_title
+ - field.field.paragraph.bos_node_search.field_title
+ - paragraphs.paragraphs_type.bos_node_search
+ module:
+ - viewfield
+id: paragraph.bos_node_search.default
+targetEntityType: paragraph
+bundle: bos_node_search
+mode: default
+content:
+ field_component_title:
+ type: string_textfield
+ weight: 1
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_node_search:
+ type: viewfield_select
+ weight: 2
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_search_results:
+ type: string_textfield
+ weight: 4
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_short_title:
+ type: string_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_title:
+ type: string_textfield
+ weight: 3
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ created: true
+ status: true
diff --git a/config/default/core.entity_form_display.paragraph.roll_call_vote.default.yml b/config/default/core.entity_form_display.paragraph.roll_call_vote.default.yml
new file mode 100644
index 0000000000..cfaa23a86e
--- /dev/null
+++ b/config/default/core.entity_form_display.paragraph.roll_call_vote.default.yml
@@ -0,0 +1,30 @@
+uuid: 0b55669f-8136-4908-b22f-9f8839fb7ee3
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.roll_call_vote.field_councillor
+ - field.field.paragraph.roll_call_vote.field_vote
+ - paragraphs.paragraphs_type.roll_call_vote
+ module:
+ - dynamic_entity_reference
+id: paragraph.roll_call_vote.default
+targetEntityType: paragraph
+bundle: roll_call_vote
+mode: default
+content:
+ field_councillor:
+ type: dynamic_entity_reference_options_select
+ weight: 0
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_vote:
+ type: dynamic_entity_reference_options_select
+ weight: 1
+ region: content
+ settings: { }
+ third_party_settings: { }
+hidden:
+ created: true
+ status: true
diff --git a/config/default/core.entity_form_display.taxonomy_term.city_council_districts.default.yml b/config/default/core.entity_form_display.taxonomy_term.city_council_districts.default.yml
new file mode 100644
index 0000000000..9cac2c904a
--- /dev/null
+++ b/config/default/core.entity_form_display.taxonomy_term.city_council_districts.default.yml
@@ -0,0 +1,24 @@
+uuid: d3e2ad81-6245-4a85-9571-9528e815a84e
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.city_council_districts
+id: taxonomy_term.city_council_districts.default
+targetEntityType: taxonomy_term
+bundle: city_council_districts
+mode: default
+content:
+ name:
+ type: string_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ description: true
+ langcode: true
+ path: true
+ status: true
diff --git a/config/default/core.entity_form_display.taxonomy_term.project_banner_bh_.default.yml b/config/default/core.entity_form_display.taxonomy_term.project_banner_bh_.default.yml
new file mode 100644
index 0000000000..c40d967511
--- /dev/null
+++ b/config/default/core.entity_form_display.taxonomy_term.project_banner_bh_.default.yml
@@ -0,0 +1,110 @@
+uuid: a8a439c6-721a-4e72-aaf4-3832432330b9
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_text
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_title
+ - field.field.taxonomy_term.project_banner_bh_.field_show_banner
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - field_group
+ - text
+third_party_settings:
+ field_group:
+ group_tabs:
+ children:
+ - group_status
+ - group_banner
+ label: tabs
+ region: content
+ parent_name: ''
+ weight: 0
+ format_type: tabs
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ direction: vertical
+ width_breakpoint: 640
+ group_status:
+ children:
+ - name
+ - field_banner_moderation_state
+ label: Status
+ region: content
+ parent_name: group_tabs
+ weight: 22
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ formatter: open
+ description: ''
+ required_fields: true
+ group_banner:
+ children:
+ - field_show_banner
+ - field_banner_title
+ - field_banner_text
+ label: Banner
+ region: content
+ parent_name: group_tabs
+ weight: 23
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
+id: taxonomy_term.project_banner_bh_.default
+targetEntityType: taxonomy_term
+bundle: project_banner_bh_
+mode: default
+content:
+ field_banner_moderation_state:
+ type: options_select
+ weight: 2
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_banner_text:
+ type: text_textfield
+ weight: 8
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_banner_title:
+ type: string_textfield
+ weight: 7
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_show_banner:
+ type: boolean_checkbox
+ weight: 6
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ name:
+ type: string_textfield
+ weight: 1
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ description: true
+ langcode: true
+ path: true
+ status: true
diff --git a/config/default/core.entity_form_display.taxonomy_term.vocab_city_councillors.default.yml b/config/default/core.entity_form_display.taxonomy_term.vocab_city_councillors.default.yml
new file mode 100644
index 0000000000..6bfad2d1a0
--- /dev/null
+++ b/config/default/core.entity_form_display.taxonomy_term.vocab_city_councillors.default.yml
@@ -0,0 +1,68 @@
+uuid: 122dd8c6-417f-4fe4-b8e5-1fccbbed6c88
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.taxonomy_term.vocab_city_councillors.field_active
+ - field.field.taxonomy_term.vocab_city_councillors.field_district
+ - field.field.taxonomy_term.vocab_city_councillors.field_email
+ - field.field.taxonomy_term.vocab_city_councillors.field_first_name
+ - taxonomy.vocabulary.vocab_city_councillors
+ module:
+ - advanced_text_formatter
+ - bos_core
+id: taxonomy_term.vocab_city_councillors.default
+targetEntityType: taxonomy_term
+bundle: vocab_city_councillors
+mode: default
+content:
+ field_active:
+ type: boolean_checkbox
+ weight: 2
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_district:
+ type: entity_reference_autocomplete
+ weight: 3
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_email:
+ type: email_default
+ weight: 4
+ region: content
+ settings:
+ placeholder: ''
+ size: 60
+ third_party_settings: { }
+ field_first_name:
+ type: string_textfield
+ weight: 1
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ name:
+ type: string_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: 'Name to appear in Roll Call results'
+ third_party_settings:
+ advanced_text_formatter:
+ show_token_tree: 0
+ bos_core:
+ show_token_tree: 0
+hidden:
+ description: true
+ langcode: true
+ path: true
+ status: true
diff --git a/config/default/core.entity_form_display.taxonomy_term.vocab_votes.default.yml b/config/default/core.entity_form_display.taxonomy_term.vocab_votes.default.yml
new file mode 100644
index 0000000000..978fdd8eff
--- /dev/null
+++ b/config/default/core.entity_form_display.taxonomy_term.vocab_votes.default.yml
@@ -0,0 +1,24 @@
+uuid: 33e637f1-2418-40bd-a16e-40ec65a97b85
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.vocab_votes
+id: taxonomy_term.vocab_votes.default
+targetEntityType: taxonomy_term
+bundle: vocab_votes
+mode: default
+content:
+ name:
+ type: string_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ description: true
+ langcode: true
+ path: true
+ status: true
diff --git a/config/default/core.entity_view_display.node.bh_project.default.yml b/config/default/core.entity_view_display.node.bh_project.default.yml
index 0a622dbef8..b698799d3b 100644
--- a/config/default/core.entity_view_display.node.bh_project.default.yml
+++ b/config/default/core.entity_view_display.node.bh_project.default.yml
@@ -66,7 +66,7 @@ third_party_settings:
label: Information
parent_name: ''
region: hidden
- weight: 20
+ weight: 25
format_type: tabs
format_settings:
classes: ''
@@ -75,8 +75,8 @@ third_party_settings:
group_dates:
children:
- field_bh_commitment_letter_date
- - field_bh_construction_start_date
- field_bh_construct_complete_date
+ - field_bh_construction_start_date
- field_bh_conveyance_vote_date
- field_bh_dnd_funding_award_date
- field_bh_initial_comm_mtg_date
@@ -141,7 +141,7 @@ third_party_settings:
label: 'Additional Details and Information'
parent_name: ''
region: hidden
- weight: 19
+ weight: 24
format_type: details
format_settings:
classes: m-v400
@@ -167,7 +167,7 @@ third_party_settings:
label: 'Hero Placeholder'
parent_name: ''
region: hidden
- weight: 2
+ weight: 23
format_type: html_element
format_settings:
classes: g--8
@@ -183,6 +183,7 @@ third_party_settings:
children:
- bh_project_bh_homepage_link
- field_bh_project_name
+ - bh_project_banner
- field_bh_project_parcels
- group_header_images_and_map
- group_info_list
@@ -274,7 +275,7 @@ third_party_settings:
label: 'Info List'
parent_name: group_header
region: content
- weight: 106
+ weight: 105
format_type: html_element
format_settings:
classes: ''
@@ -293,7 +294,7 @@ third_party_settings:
label: 'Container - Full Width'
parent_name: ''
region: content
- weight: 1
+ weight: 4
format_type: html_element
format_settings:
classes: 'clearfix b b--fw b--g'
@@ -311,7 +312,7 @@ third_party_settings:
label: 'Header Full Width Container'
parent_name: ''
region: content
- weight: 0
+ weight: 2
format_type: html_element
format_settings:
classes: 'clearfix b b--fw b--w'
@@ -348,7 +349,7 @@ third_party_settings:
label: 'Header Images and Map'
parent_name: group_header
region: content
- weight: 103
+ weight: 104
format_type: html_element
format_settings:
classes: bh-project-header-img-map
@@ -372,6 +373,11 @@ content:
third_party_settings: { }
weight: 3
region: content
+ bh_project_banner:
+ settings: { }
+ third_party_settings: { }
+ weight: 102
+ region: content
bh_project_bh_homepage_link:
settings: { }
third_party_settings: { }
@@ -502,7 +508,7 @@ content:
fences_field_item_classes: fl--l
fences_label_tag: div
fences_label_classes: ''
- weight: 102
+ weight: 103
region: content
field_bh_property_size:
type: number_integer
@@ -566,7 +572,18 @@ content:
fences_label_classes: m-v200
weight: 9
region: content
+ salesforce_id:
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+ salesforce_last_sync:
+ settings: { }
+ third_party_settings: { }
+ weight: 1
+ region: content
hidden:
+ content_moderation_control: true
field_bh_attachment: true
field_bh_attachments: true
field_bh_commitment_letter_date: true
diff --git a/config/default/core.entity_view_display.node.bh_update.default.yml b/config/default/core.entity_view_display.node.bh_update.default.yml
index 1feaff4f85..97f793628f 100644
--- a/config/default/core.entity_view_display.node.bh_update.default.yml
+++ b/config/default/core.entity_view_display.node.bh_update.default.yml
@@ -5,6 +5,7 @@ dependencies:
config:
- field.field.node.bh_update.body
- field.field.node.bh_update.field_bh_attachment
+ - field.field.node.bh_update.field_bh_banner_status
- field.field.node.bh_update.field_bh_boston_based_business
- field.field.node.bh_update.field_bh_developer_name
- field.field.node.bh_update.field_bh_developer_website
@@ -123,6 +124,7 @@ third_party_settings:
children:
- field_bh_project_ref
- body
+ - field_bh_banner
- field_bh_image
- field_bh_project_web_link
label: Project
@@ -142,7 +144,7 @@ third_party_settings:
label: 'Follower emails'
parent_name: group_update
region: content
- weight: 14
+ weight: 26
format_type: fieldset
format_settings:
classes: m-v300
@@ -155,7 +157,7 @@ third_party_settings:
label: Documents
parent_name: group_update
region: content
- weight: 13
+ weight: 25
format_type: fieldset
format_settings:
classes: 'm-v300 ta--l'
@@ -168,7 +170,7 @@ third_party_settings:
label: 'Text Updates'
parent_name: group_update
region: content
- weight: 12
+ weight: 24
format_type: fieldset
format_settings:
classes: ''
@@ -226,7 +228,7 @@ content:
fences_field_item_classes: ''
fences_label_tag: span
fences_label_classes: ''
- weight: 24
+ weight: 25
region: content
field_bh_developer_name:
type: string
@@ -292,7 +294,7 @@ content:
fences_field_item_classes: ''
fences_label_tag: div
fences_label_classes: ''
- weight: 13
+ weight: 14
region: content
field_bh_minority_owned_business:
type: boolean
@@ -331,7 +333,7 @@ content:
fences_field_item_classes: ''
fences_label_tag: div
fences_label_classes: ''
- weight: 15
+ weight: 27
region: content
field_bh_project_ref:
type: entity_reference_label
@@ -361,7 +363,7 @@ content:
fences_field_item_classes: ''
fences_label_tag: div
fences_label_classes: ''
- weight: 14
+ weight: 15
region: content
field_bh_text_updates:
type: basic_string
@@ -416,7 +418,7 @@ content:
fences_field_item_classes: ''
fences_label_tag: span
fences_label_classes: ''
- weight: 23
+ weight: 24
region: content
field_bh_women_owned_business:
type: boolean
@@ -472,6 +474,7 @@ content:
weight: 0
region: content
hidden:
+ field_bh_banner_status: true
langcode: true
links: true
salesforce_id: true
diff --git a/config/default/core.entity_view_display.node.bh_update.teaser.yml b/config/default/core.entity_view_display.node.bh_update.teaser.yml
index 5835614629..1f7f43b6f8 100644
--- a/config/default/core.entity_view_display.node.bh_update.teaser.yml
+++ b/config/default/core.entity_view_display.node.bh_update.teaser.yml
@@ -6,6 +6,7 @@ dependencies:
- core.entity_view_mode.node.teaser
- field.field.node.bh_update.body
- field.field.node.bh_update.field_bh_attachment
+ - field.field.node.bh_update.field_bh_banner_status
- field.field.node.bh_update.field_bh_boston_based_business
- field.field.node.bh_update.field_bh_developer_name
- field.field.node.bh_update.field_bh_developer_website
@@ -56,6 +57,7 @@ content:
region: content
hidden:
field_bh_attachment: true
+ field_bh_banner_status: true
field_bh_boston_based_business: true
field_bh_developer_name: true
field_bh_developer_website: true
diff --git a/config/default/core.entity_view_display.node.roll_call_dockets.default.yml b/config/default/core.entity_view_display.node.roll_call_dockets.default.yml
new file mode 100644
index 0000000000..61701f224e
--- /dev/null
+++ b/config/default/core.entity_view_display.node.roll_call_dockets.default.yml
@@ -0,0 +1,71 @@
+uuid: b8c1ca0e-9408-4323-9c85-36444ce930d2
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.roll_call_dockets.body
+ - field.field.node.roll_call_dockets.field_components
+ - field.field.node.roll_call_dockets.field_meeting_date
+ - node.type.roll_call_dockets
+ module:
+ - datetime
+ - entity_reference_revisions
+ - fences
+ - text
+ - user
+id: node.roll_call_dockets.default
+targetEntityType: node
+bundle: roll_call_dockets
+mode: default
+content:
+ body:
+ type: text_default
+ label: above
+ settings: { }
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: squiggle-border-bottom
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 1
+ region: content
+ field_components:
+ type: entity_reference_revisions_entity_view
+ label: hidden
+ settings:
+ view_mode: default
+ link: ''
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: div
+ fences_field_item_classes: g
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 2
+ region: content
+ field_meeting_date:
+ type: datetime_default
+ label: inline
+ settings:
+ timezone_override: ''
+ format_type: date_format_normal_date
+ third_party_settings:
+ fences:
+ fences_field_tag: span
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: span
+ fences_label_classes: ''
+ weight: 0
+ region: content
+hidden:
+ content_moderation_control: true
+ langcode: true
+ links: true
+ published_at: true
diff --git a/config/default/core.entity_view_display.node.roll_call_dockets.featured_item.yml b/config/default/core.entity_view_display.node.roll_call_dockets.featured_item.yml
new file mode 100644
index 0000000000..bed3b6435a
--- /dev/null
+++ b/config/default/core.entity_view_display.node.roll_call_dockets.featured_item.yml
@@ -0,0 +1,28 @@
+uuid: e808f00d-a7ef-48d4-b901-f56aec06a96f
+langcode: en
+status: false
+dependencies:
+ config:
+ - core.entity_view_mode.node.featured_item
+ - field.field.node.roll_call_dockets.body
+ - field.field.node.roll_call_dockets.field_components
+ - field.field.node.roll_call_dockets.field_meeting_date
+ - node.type.roll_call_dockets
+ module:
+ - user
+id: node.roll_call_dockets.featured_item
+targetEntityType: node
+bundle: roll_call_dockets
+mode: featured_item
+content:
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 100
+ region: content
+hidden:
+ body: true
+ field_components: true
+ field_meeting_date: true
+ langcode: true
+ published_at: true
diff --git a/config/default/core.entity_view_display.node.roll_call_dockets.listing.yml b/config/default/core.entity_view_display.node.roll_call_dockets.listing.yml
new file mode 100644
index 0000000000..822fadc5c4
--- /dev/null
+++ b/config/default/core.entity_view_display.node.roll_call_dockets.listing.yml
@@ -0,0 +1,28 @@
+uuid: 252c5a20-0794-4410-9b50-42810f52034b
+langcode: en
+status: false
+dependencies:
+ config:
+ - core.entity_view_mode.node.listing
+ - field.field.node.roll_call_dockets.body
+ - field.field.node.roll_call_dockets.field_components
+ - field.field.node.roll_call_dockets.field_meeting_date
+ - node.type.roll_call_dockets
+ module:
+ - user
+id: node.roll_call_dockets.listing
+targetEntityType: node
+bundle: roll_call_dockets
+mode: listing
+content:
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 100
+ region: content
+hidden:
+ body: true
+ field_components: true
+ field_meeting_date: true
+ langcode: true
+ published_at: true
diff --git a/config/default/core.entity_view_display.node.roll_call_dockets.roll_call_search.yml b/config/default/core.entity_view_display.node.roll_call_dockets.roll_call_search.yml
new file mode 100644
index 0000000000..4a61f6d50a
--- /dev/null
+++ b/config/default/core.entity_view_display.node.roll_call_dockets.roll_call_search.yml
@@ -0,0 +1,72 @@
+uuid: d97a5076-7043-4b33-afeb-dcabd89767ac
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.node.roll_call_search
+ - field.field.node.roll_call_dockets.body
+ - field.field.node.roll_call_dockets.field_components
+ - field.field.node.roll_call_dockets.field_meeting_date
+ - node.type.roll_call_dockets
+ module:
+ - datetime
+ - entity_reference_revisions
+ - fences
+ - text
+ - user
+id: node.roll_call_dockets.roll_call_search
+targetEntityType: node
+bundle: roll_call_dockets
+mode: roll_call_search
+content:
+ body:
+ type: text_default
+ label: hidden
+ settings: { }
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 1
+ region: content
+ field_components:
+ type: entity_reference_revisions_entity_view
+ label: hidden
+ settings:
+ view_mode: roll_call_search
+ link: ''
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 2
+ region: content
+ field_meeting_date:
+ type: datetime_default
+ label: hidden
+ settings:
+ timezone_override: ''
+ format_type: date_format_normal_date
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 0
+ region: content
+hidden:
+ content_moderation_control: true
+ langcode: true
+ links: true
+ published_at: true
diff --git a/config/default/core.entity_view_display.node.roll_call_dockets.teaser.yml b/config/default/core.entity_view_display.node.roll_call_dockets.teaser.yml
new file mode 100644
index 0000000000..61399d6d35
--- /dev/null
+++ b/config/default/core.entity_view_display.node.roll_call_dockets.teaser.yml
@@ -0,0 +1,36 @@
+uuid: 4b6ad0cd-a7b2-406f-b618-840f165441ec
+langcode: en
+status: false
+dependencies:
+ config:
+ - core.entity_view_mode.node.teaser
+ - field.field.node.roll_call_dockets.body
+ - field.field.node.roll_call_dockets.field_components
+ - field.field.node.roll_call_dockets.field_meeting_date
+ - node.type.roll_call_dockets
+ module:
+ - text
+ - user
+id: node.roll_call_dockets.teaser
+targetEntityType: node
+bundle: roll_call_dockets
+mode: teaser
+content:
+ body:
+ type: text_summary_or_trimmed
+ label: hidden
+ settings:
+ trim_length: 600
+ third_party_settings: { }
+ weight: 101
+ region: content
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 100
+ region: content
+hidden:
+ field_components: true
+ field_meeting_date: true
+ langcode: true
+ published_at: true
diff --git a/config/default/core.entity_view_display.paragraph.bos_node_search.default.yml b/config/default/core.entity_view_display.paragraph.bos_node_search.default.yml
new file mode 100644
index 0000000000..350d74301e
--- /dev/null
+++ b/config/default/core.entity_view_display.paragraph.bos_node_search.default.yml
@@ -0,0 +1,97 @@
+uuid: 8f6c3c2d-661e-45b0-8e9d-325c517082f8
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.bos_node_search.field_component_title
+ - field.field.paragraph.bos_node_search.field_node_search
+ - field.field.paragraph.bos_node_search.field_search_results
+ - field.field.paragraph.bos_node_search.field_short_title
+ - field.field.paragraph.bos_node_search.field_title
+ - paragraphs.paragraphs_type.bos_node_search
+ module:
+ - fences
+ - viewfield
+id: paragraph.bos_node_search.default
+targetEntityType: paragraph
+bundle: bos_node_search
+mode: default
+content:
+ field_component_title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 0
+ region: content
+ field_node_search:
+ type: viewfield_default
+ label: hidden
+ settings:
+ view_title: hidden
+ always_build_output: true
+ empty_view_title: above
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: david1
+ fences_field_item_tag: none
+ fences_field_item_classes: david2
+ fences_label_tag: none
+ fences_label_classes: lcd--sm-t
+ weight: 1
+ region: content
+ field_search_results:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 3
+ region: content
+ field_short_title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 4
+ region: content
+ field_title:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 2
+ region: content
+hidden: { }
diff --git a/config/default/core.entity_view_display.paragraph.branded_links.default.yml b/config/default/core.entity_view_display.paragraph.branded_links.default.yml
index 66a726d227..c5f22d651e 100644
--- a/config/default/core.entity_view_display.paragraph.branded_links.default.yml
+++ b/config/default/core.entity_view_display.paragraph.branded_links.default.yml
@@ -5,8 +5,8 @@ dependencies:
config:
- field.field.paragraph.branded_links.field_component_theme
- field.field.paragraph.branded_links.field_component_title
- - field.field.paragraph.3_column_w_image.field_hide_title_bar
- field.field.paragraph.branded_links.field_contact
+ - field.field.paragraph.branded_links.field_hide_title_bar
- field.field.paragraph.branded_links.field_image
- field.field.paragraph.branded_links.field_links
- field.field.paragraph.branded_links.field_short_title
@@ -29,16 +29,6 @@ content:
third_party_settings: { }
weight: 1
region: content
- field_hide_title_bar:
- type: boolean
- label: hidden
- settings:
- format: default
- format_custom_false: ''
- format_custom_true: ''
- third_party_settings: { }
- weight: 2
- region: content
field_image:
type: entity_reference_entity_view
label: hidden
@@ -69,9 +59,10 @@ content:
fences_field_item_classes: ''
fences_label_tag: div
fences_label_classes: ''
- weight: 4
+ weight: 2
region: content
hidden:
field_component_theme: true
field_contact: true
+ field_hide_title_bar: true
field_short_title: true
diff --git a/config/default/core.entity_view_display.paragraph.roll_call_vote.default.yml b/config/default/core.entity_view_display.paragraph.roll_call_vote.default.yml
new file mode 100644
index 0000000000..bb82bd17eb
--- /dev/null
+++ b/config/default/core.entity_view_display.paragraph.roll_call_vote.default.yml
@@ -0,0 +1,47 @@
+uuid: 492388d7-d7b9-4e94-983f-5567500a8737
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.roll_call_vote.field_councillor
+ - field.field.paragraph.roll_call_vote.field_vote
+ - paragraphs.paragraphs_type.roll_call_vote
+ module:
+ - dynamic_entity_reference
+ - fences
+id: paragraph.roll_call_vote.default
+targetEntityType: paragraph
+bundle: roll_call_vote
+mode: default
+content:
+ field_councillor:
+ type: dynamic_entity_reference_label
+ label: hidden
+ settings:
+ link: true
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: g--4
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 0
+ region: content
+ field_vote:
+ type: dynamic_entity_reference_label
+ label: hidden
+ settings:
+ link: false
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: g--8
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 1
+ region: content
+hidden: { }
diff --git a/config/default/core.entity_view_display.paragraph.roll_call_vote.roll_call_search.yml b/config/default/core.entity_view_display.paragraph.roll_call_vote.roll_call_search.yml
new file mode 100644
index 0000000000..38a5b33074
--- /dev/null
+++ b/config/default/core.entity_view_display.paragraph.roll_call_vote.roll_call_search.yml
@@ -0,0 +1,176 @@
+uuid: 7db75b3c-f3b8-453a-9fd1-4640fe366db0
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.paragraph.roll_call_search
+ - field.field.paragraph.roll_call_vote.field_councillor
+ - field.field.paragraph.roll_call_vote.field_vote
+ - paragraphs.paragraphs_type.roll_call_vote
+ module:
+ - dynamic_entity_reference
+ - fences
+id: paragraph.roll_call_vote.roll_call_search
+targetEntityType: paragraph
+bundle: roll_call_vote
+mode: roll_call_search
+content:
+ field_councillor:
+ type: dynamic_entity_reference_entity_view
+ label: hidden
+ settings:
+ taxonomy_term:
+ view_mode: roll_call_search
+ node:
+ view_mode: default
+ link: false
+ block_content:
+ view_mode: default
+ link: false
+ content_moderation_state:
+ view_mode: default
+ link: false
+ token_custom:
+ view_mode: default
+ link: false
+ menu_link_content:
+ view_mode: default
+ link: false
+ entity_embed_fake_entity:
+ view_mode: default
+ link: false
+ file:
+ view_mode: default
+ link: false
+ media:
+ view_mode: default
+ link: false
+ paragraph:
+ view_mode: default
+ link: false
+ paragraphs_library_item:
+ view_mode: default
+ link: false
+ poll:
+ view_mode: default
+ link: false
+ poll_choice:
+ view_mode: default
+ link: false
+ profile:
+ view_mode: default
+ link: false
+ redirect:
+ view_mode: default
+ link: false
+ salesforce_mapped_object:
+ view_mode: default
+ link: false
+ shortcut:
+ view_mode: default
+ link: false
+ path_alias:
+ view_mode: default
+ link: false
+ user:
+ view_mode: default
+ link: false
+ vote:
+ view_mode: default
+ link: false
+ vote_result:
+ view_mode: default
+ link: false
+ webform_submission:
+ view_mode: default
+ link: false
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 0
+ region: content
+ field_vote:
+ type: dynamic_entity_reference_entity_view
+ label: hidden
+ settings:
+ taxonomy_term:
+ view_mode: roll_call_search
+ node:
+ view_mode: default
+ link: false
+ block_content:
+ view_mode: default
+ link: false
+ content_moderation_state:
+ view_mode: default
+ link: false
+ token_custom:
+ view_mode: default
+ link: false
+ menu_link_content:
+ view_mode: default
+ link: false
+ entity_embed_fake_entity:
+ view_mode: default
+ link: false
+ file:
+ view_mode: default
+ link: false
+ media:
+ view_mode: default
+ link: false
+ paragraph:
+ view_mode: default
+ link: false
+ paragraphs_library_item:
+ view_mode: default
+ link: false
+ poll:
+ view_mode: default
+ link: false
+ poll_choice:
+ view_mode: default
+ link: false
+ profile:
+ view_mode: default
+ link: false
+ redirect:
+ view_mode: default
+ link: false
+ salesforce_mapped_object:
+ view_mode: default
+ link: false
+ shortcut:
+ view_mode: default
+ link: false
+ path_alias:
+ view_mode: default
+ link: false
+ user:
+ view_mode: default
+ link: false
+ vote:
+ view_mode: default
+ link: false
+ vote_result:
+ view_mode: default
+ link: false
+ webform_submission:
+ view_mode: default
+ link: false
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 1
+ region: content
+hidden: { }
diff --git a/config/default/core.entity_view_display.taxonomy_term.city_council_districts.default.yml b/config/default/core.entity_view_display.taxonomy_term.city_council_districts.default.yml
new file mode 100644
index 0000000000..29d0fe46c1
--- /dev/null
+++ b/config/default/core.entity_view_display.taxonomy_term.city_council_districts.default.yml
@@ -0,0 +1,22 @@
+uuid: 30bac352-f5bb-4caa-8e7f-96cf1633ea46
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.city_council_districts
+ module:
+ - text
+id: taxonomy_term.city_council_districts.default
+targetEntityType: taxonomy_term
+bundle: city_council_districts
+mode: default
+content:
+ description:
+ type: text_default
+ label: hidden
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ langcode: true
diff --git a/config/default/core.entity_view_display.taxonomy_term.city_council_districts.roll_call_search.yml b/config/default/core.entity_view_display.taxonomy_term.city_council_districts.roll_call_search.yml
new file mode 100644
index 0000000000..30b4bc4042
--- /dev/null
+++ b/config/default/core.entity_view_display.taxonomy_term.city_council_districts.roll_call_search.yml
@@ -0,0 +1,15 @@
+uuid: db48cd47-e2ab-42cf-b639-71ea257bbe33
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.taxonomy_term.roll_call_search
+ - taxonomy.vocabulary.city_council_districts
+id: taxonomy_term.city_council_districts.roll_call_search
+targetEntityType: taxonomy_term
+bundle: city_council_districts
+mode: roll_call_search
+content: { }
+hidden:
+ description: true
+ langcode: true
diff --git a/config/default/core.entity_view_display.taxonomy_term.project_banner_bh_.default.yml b/config/default/core.entity_view_display.taxonomy_term.project_banner_bh_.default.yml
new file mode 100644
index 0000000000..f7dda2eb23
--- /dev/null
+++ b/config/default/core.entity_view_display.taxonomy_term.project_banner_bh_.default.yml
@@ -0,0 +1,59 @@
+uuid: 4ce2f828-d75c-4b34-ba1f-c1e0037baf6b
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_text
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_title
+ - field.field.taxonomy_term.project_banner_bh_.field_show_banner
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - options
+ - text
+id: taxonomy_term.project_banner_bh_.default
+targetEntityType: taxonomy_term
+bundle: project_banner_bh_
+mode: default
+content:
+ description:
+ type: text_default
+ label: hidden
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+ field_banner_moderation_state:
+ type: list_default
+ label: above
+ settings: { }
+ third_party_settings: { }
+ weight: 3
+ region: content
+ field_banner_text:
+ type: text_default
+ label: above
+ settings: { }
+ third_party_settings: { }
+ weight: 2
+ region: content
+ field_banner_title:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_show_banner:
+ type: boolean
+ label: above
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings: { }
+ weight: 4
+ region: content
+hidden:
+ langcode: true
diff --git a/config/default/core.entity_view_display.taxonomy_term.vocab_city_councillors.default.yml b/config/default/core.entity_view_display.taxonomy_term.vocab_city_councillors.default.yml
new file mode 100644
index 0000000000..09f26682d3
--- /dev/null
+++ b/config/default/core.entity_view_display.taxonomy_term.vocab_city_councillors.default.yml
@@ -0,0 +1,68 @@
+uuid: 22bd4280-1499-4706-9644-db1cc9785e33
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.taxonomy_term.vocab_city_councillors.field_active
+ - field.field.taxonomy_term.vocab_city_councillors.field_district
+ - field.field.taxonomy_term.vocab_city_councillors.field_email
+ - field.field.taxonomy_term.vocab_city_councillors.field_first_name
+ - taxonomy.vocabulary.vocab_city_councillors
+ module:
+ - fences
+id: taxonomy_term.vocab_city_councillors.default
+targetEntityType: taxonomy_term
+bundle: vocab_city_councillors
+mode: default
+content:
+ field_active:
+ type: boolean
+ label: hidden
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 2
+ region: content
+ field_district:
+ type: entity_reference_label
+ label: hidden
+ settings:
+ link: false
+ third_party_settings:
+ fences:
+ fences_field_tag: span
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 1
+ region: content
+ field_first_name:
+ type: string
+ label: hidden
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: span
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 0
+ region: content
+hidden:
+ description: true
+ field_email: true
+ langcode: true
diff --git a/config/default/core.entity_view_display.taxonomy_term.vocab_city_councillors.roll_call_search.yml b/config/default/core.entity_view_display.taxonomy_term.vocab_city_councillors.roll_call_search.yml
new file mode 100644
index 0000000000..7ce937b1e6
--- /dev/null
+++ b/config/default/core.entity_view_display.taxonomy_term.vocab_city_councillors.roll_call_search.yml
@@ -0,0 +1,23 @@
+uuid: cfc0fb9c-0473-41b7-a06e-e52f0b6677ef
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.taxonomy_term.roll_call_search
+ - field.field.taxonomy_term.vocab_city_councillors.field_active
+ - field.field.taxonomy_term.vocab_city_councillors.field_district
+ - field.field.taxonomy_term.vocab_city_councillors.field_email
+ - field.field.taxonomy_term.vocab_city_councillors.field_first_name
+ - taxonomy.vocabulary.vocab_city_councillors
+id: taxonomy_term.vocab_city_councillors.roll_call_search
+targetEntityType: taxonomy_term
+bundle: vocab_city_councillors
+mode: roll_call_search
+content: { }
+hidden:
+ description: true
+ field_active: true
+ field_district: true
+ field_email: true
+ field_first_name: true
+ langcode: true
diff --git a/config/default/core.entity_view_display.taxonomy_term.vocab_votes.default.yml b/config/default/core.entity_view_display.taxonomy_term.vocab_votes.default.yml
new file mode 100644
index 0000000000..266ebe3f2f
--- /dev/null
+++ b/config/default/core.entity_view_display.taxonomy_term.vocab_votes.default.yml
@@ -0,0 +1,30 @@
+uuid: 2ad0dae8-9a7c-461a-9bd9-842d78ee6a35
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.vocab_votes
+ module:
+ - fences
+ - text
+id: taxonomy_term.vocab_votes.default
+targetEntityType: taxonomy_term
+bundle: vocab_votes
+mode: default
+content:
+ description:
+ type: text_default
+ label: hidden
+ settings: { }
+ third_party_settings:
+ fences:
+ fences_field_tag: none
+ fences_field_classes: ''
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 0
+ region: content
+hidden:
+ langcode: true
diff --git a/config/default/core.entity_view_display.taxonomy_term.vocab_votes.roll_call_search.yml b/config/default/core.entity_view_display.taxonomy_term.vocab_votes.roll_call_search.yml
new file mode 100644
index 0000000000..5284dbb5f3
--- /dev/null
+++ b/config/default/core.entity_view_display.taxonomy_term.vocab_votes.roll_call_search.yml
@@ -0,0 +1,15 @@
+uuid: 0d5c3bcf-d665-4133-bf3c-732c7453b45f
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.taxonomy_term.roll_call_search
+ - taxonomy.vocabulary.vocab_votes
+id: taxonomy_term.vocab_votes.roll_call_search
+targetEntityType: taxonomy_term
+bundle: vocab_votes
+mode: roll_call_search
+content: { }
+hidden:
+ description: true
+ langcode: true
diff --git a/config/default/core.entity_view_mode.node.roll_call_search.yml b/config/default/core.entity_view_mode.node.roll_call_search.yml
new file mode 100644
index 0000000000..210e933469
--- /dev/null
+++ b/config/default/core.entity_view_mode.node.roll_call_search.yml
@@ -0,0 +1,14 @@
+uuid: e886699f-91d0-45d9-ab92-48c269bd537e
+langcode: en
+status: true
+dependencies:
+ module:
+ - lightning_core
+ - node
+third_party_settings:
+ lightning_core:
+ description: 'A format optimized for Drawers, displaying the Docket and Voting records.'
+id: node.roll_call_search
+label: 'Roll Call Search'
+targetEntityType: node
+cache: true
diff --git a/config/default/core.entity_view_mode.paragraph.roll_call_search.yml b/config/default/core.entity_view_mode.paragraph.roll_call_search.yml
new file mode 100644
index 0000000000..4ad4c39799
--- /dev/null
+++ b/config/default/core.entity_view_mode.paragraph.roll_call_search.yml
@@ -0,0 +1,14 @@
+uuid: b56fc888-ede3-4bd2-be63-9066cb577ad5
+langcode: en
+status: true
+dependencies:
+ module:
+ - lightning_core
+ - paragraphs
+third_party_settings:
+ lightning_core:
+ description: 'Use to display Councillor Voting inside a Drawer when searching Roll Calls.'
+id: paragraph.roll_call_search
+label: 'Roll Call Search'
+targetEntityType: paragraph
+cache: true
diff --git a/config/default/core.entity_view_mode.taxonomy_term.roll_call_search.yml b/config/default/core.entity_view_mode.taxonomy_term.roll_call_search.yml
new file mode 100644
index 0000000000..d06bf3b0e3
--- /dev/null
+++ b/config/default/core.entity_view_mode.taxonomy_term.roll_call_search.yml
@@ -0,0 +1,14 @@
+uuid: cc97436b-d591-460d-b7af-3cbfa440ab46
+langcode: en
+status: true
+dependencies:
+ module:
+ - lightning_core
+ - taxonomy
+third_party_settings:
+ lightning_core:
+ description: 'Display used for Rollcall Search'
+id: taxonomy_term.roll_call_search
+label: 'Roll Call Search'
+targetEntityType: taxonomy_term
+cache: true
diff --git a/config/default/core.extension.yml b/config/default/core.extension.yml
index 553ac23a76..d764103588 100644
--- a/config/default/core.extension.yml
+++ b/config/default/core.extension.yml
@@ -116,6 +116,7 @@ module:
mysql: 0
node: 0
node_elections: 0
+ node_rollcall: 0
office_hours: 0
options: 0
page_cache: 0
diff --git a/config/default/field.field.node.article.field_components.yml b/config/default/field.field.node.article.field_components.yml
index fd89a3925d..1edff48484 100644
--- a/config/default/field.field.node.article.field_components.yml
+++ b/config/default/field.field.node.article.field_components.yml
@@ -7,6 +7,7 @@ dependencies:
- node.type.article
- paragraphs.paragraphs_type.3_column_w_image
- paragraphs.paragraphs_type.bos311
+ - paragraphs.paragraphs_type.bos_node_search
- paragraphs.paragraphs_type.bos_signup_emergency_alerts
- paragraphs.paragraphs_type.branded_links
- paragraphs.paragraphs_type.cabinet
@@ -84,6 +85,7 @@ settings:
transaction_grid: transaction_grid
video: video
branded_links: branded_links
+ bos_node_search: bos_node_search
from_library: from_library
election_card: election_card
group_of_links_quick_links: group_of_links_quick_links
@@ -100,6 +102,9 @@ settings:
bos311:
weight: -95
enabled: true
+ bos_node_search:
+ weight: 78
+ enabled: true
bos_signup_emergency_alerts:
weight: -47
enabled: true
@@ -262,6 +267,9 @@ settings:
quote:
weight: -70
enabled: false
+ roll_call_vote:
+ weight: 133
+ enabled: false
seamless_doc:
weight: -65
enabled: false
diff --git a/config/default/field.field.node.bh_update.field_bh_banner_status.yml b/config/default/field.field.node.bh_update.field_bh_banner_status.yml
new file mode 100644
index 0000000000..f596649ce4
--- /dev/null
+++ b/config/default/field.field.node.bh_update.field_bh_banner_status.yml
@@ -0,0 +1,33 @@
+uuid: 6122d390-e8e5-45f1-9187-a059af09412c
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_bh_banner_status
+ - node.type.bh_update
+ - taxonomy.vocabulary.project_banner_bh_
+ content:
+ - 'taxonomy_term:project_banner_bh_:058f00a5-9cd5-46ba-a75a-208d0fd9f97f'
+id: node.bh_update.field_bh_banner_status
+field_name: field_bh_banner_status
+entity_type: node
+bundle: bh_update
+label: 'Banner Status'
+description: 'Banners can be managed here'
+required: false
+translatable: false
+default_value:
+ -
+ target_uuid: 058f00a5-9cd5-46ba-a75a-208d0fd9f97f
+default_value_callback: ''
+settings:
+ handler: 'default:taxonomy_term'
+ handler_settings:
+ target_bundles:
+ project_banner_bh_: project_banner_bh_
+ sort:
+ field: name
+ direction: asc
+ auto_create: false
+ auto_create_bundle: ''
+field_type: entity_reference
diff --git a/config/default/field.field.node.roll_call_dockets.body.yml b/config/default/field.field.node.roll_call_dockets.body.yml
new file mode 100644
index 0000000000..ebb2803b24
--- /dev/null
+++ b/config/default/field.field.node.roll_call_dockets.body.yml
@@ -0,0 +1,26 @@
+uuid: 29654c36-c615-471c-91f8-a8f752204d15
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.body
+ - filter.format.plain_text
+ - node.type.roll_call_dockets
+ module:
+ - text
+id: node.roll_call_dockets.body
+field_name: body
+entity_type: node
+bundle: roll_call_dockets
+label: Description
+description: 'This is the description of the Docket.'
+required: true
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings:
+ display_summary: true
+ required_summary: false
+ allowed_formats:
+ - plain_text
+field_type: text_with_summary
diff --git a/config/default/field.field.node.roll_call_dockets.field_components.yml b/config/default/field.field.node.roll_call_dockets.field_components.yml
new file mode 100644
index 0000000000..ed341d4c3b
--- /dev/null
+++ b/config/default/field.field.node.roll_call_dockets.field_components.yml
@@ -0,0 +1,249 @@
+uuid: 52fdeea5-d593-4fba-aea2-d11b9fff68e1
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_components
+ - node.type.roll_call_dockets
+ - paragraphs.paragraphs_type.roll_call_vote
+ - paragraphs.paragraphs_type.text_one_column
+ module:
+ - entity_reference_revisions
+id: node.roll_call_dockets.field_components
+field_name: field_components
+entity_type: node
+bundle: roll_call_dockets
+label: Components
+description: 'Add components to this Docket.'
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:paragraph'
+ handler_settings:
+ target_bundles:
+ text_one_column: text_one_column
+ roll_call_vote: roll_call_vote
+ negate: 0
+ target_bundles_drag_drop:
+ 3_column_w_image:
+ weight: -96
+ enabled: false
+ bid:
+ weight: -36
+ enabled: false
+ bos311:
+ weight: -95
+ enabled: false
+ bos_signup_emergency_alerts:
+ weight: -47
+ enabled: false
+ branded_links:
+ weight: 73
+ enabled: false
+ cabinet:
+ weight: -95
+ enabled: false
+ card:
+ weight: -39
+ enabled: false
+ city_score_dashboard:
+ weight: -68
+ enabled: false
+ columns:
+ weight: -31
+ enabled: false
+ commission_contact_info:
+ weight: -35
+ enabled: false
+ commission_members:
+ weight: -94
+ enabled: false
+ commission_search:
+ weight: 75
+ enabled: false
+ commission_summary:
+ weight: -93
+ enabled: false
+ custom_hours_text:
+ weight: -80
+ enabled: false
+ daily_hours:
+ weight: -79
+ enabled: false
+ discussion_topic:
+ weight: -38
+ enabled: false
+ document:
+ weight: -88
+ enabled: false
+ drawer:
+ weight: -73
+ enabled: false
+ drawers:
+ weight: -85
+ enabled: false
+ election_area_results:
+ weight: 92
+ enabled: false
+ election_candidate_results:
+ weight: 93
+ enabled: false
+ election_card:
+ weight: 94
+ enabled: false
+ election_contest_results:
+ weight: 95
+ enabled: false
+ election_results:
+ weight: -87
+ enabled: false
+ embed_view:
+ weight: 87
+ enabled: false
+ events_and_notices:
+ weight: 125
+ enabled: false
+ external_link:
+ weight: -86
+ enabled: false
+ featured_topics:
+ weight: -84
+ enabled: false
+ from_library:
+ weight: 87
+ enabled: false
+ fyi:
+ weight: -78
+ enabled: false
+ gol_list_links:
+ weight: -77
+ enabled: false
+ grid_links:
+ weight: -29
+ enabled: false
+ grid_of_cards:
+ weight: -62
+ enabled: false
+ grid_of_people:
+ weight: -69
+ enabled: false
+ grid_of_places:
+ weight: -64
+ enabled: false
+ grid_of_programs_initiatives:
+ weight: -60
+ enabled: false
+ grid_of_quotes:
+ weight: -58
+ enabled: false
+ grid_of_topics:
+ weight: -61
+ enabled: false
+ group_of_links_grid:
+ weight: -59
+ enabled: false
+ group_of_links_list:
+ weight: -57
+ enabled: false
+ group_of_links_mini_grid:
+ weight: -56
+ enabled: false
+ group_of_links_quick_links:
+ weight: 104
+ enabled: false
+ header_text:
+ weight: -81
+ enabled: false
+ hero_image:
+ weight: -55
+ enabled: false
+ how_to_contact_step:
+ weight: -76
+ enabled: false
+ how_to_tab:
+ weight: -75
+ enabled: false
+ how_to_text_step:
+ weight: -74
+ enabled: false
+ iframe:
+ weight: -54
+ enabled: false
+ internal_link:
+ weight: -53
+ enabled: false
+ lightbox_link:
+ weight: -28
+ enabled: false
+ list:
+ weight: -52
+ enabled: false
+ map:
+ weight: -51
+ enabled: false
+ message_for_the_day:
+ weight: -72
+ enabled: false
+ news_and_announcements:
+ weight: 111
+ enabled: false
+ newsletter:
+ weight: -49
+ enabled: false
+ photo:
+ weight: -48
+ enabled: false
+ quote:
+ weight: -70
+ enabled: false
+ roll_call_vote:
+ weight: 131
+ enabled: true
+ seamless_doc:
+ weight: -65
+ enabled: false
+ sidebar_item:
+ weight: -90
+ enabled: false
+ sidebar_item_w_icon:
+ weight: -89
+ enabled: false
+ social_media_links:
+ weight: -91
+ enabled: false
+ social_networking:
+ weight: -92
+ enabled: false
+ status_overrides:
+ weight: 123
+ enabled: false
+ tabbed_content_tab:
+ weight: 124
+ enabled: false
+ text:
+ weight: -46
+ enabled: false
+ text_one_column:
+ weight: -45
+ enabled: true
+ text_three_column:
+ weight: -43
+ enabled: false
+ text_two_column:
+ weight: -44
+ enabled: false
+ transaction_grid:
+ weight: -42
+ enabled: false
+ transactions:
+ weight: -27
+ enabled: false
+ video:
+ weight: -40
+ enabled: false
+ web_app:
+ weight: 134
+ enabled: false
+field_type: entity_reference_revisions
diff --git a/config/default/field.field.node.roll_call_dockets.field_meeting_date.yml b/config/default/field.field.node.roll_call_dockets.field_meeting_date.yml
new file mode 100644
index 0000000000..fbe41972cb
--- /dev/null
+++ b/config/default/field.field.node.roll_call_dockets.field_meeting_date.yml
@@ -0,0 +1,25 @@
+uuid: 3041785f-23f0-4b45-917a-70e035560fb1
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_meeting_date
+ - node.type.roll_call_dockets
+ module:
+ - datetime
+ - field_display_label
+third_party_settings:
+ field_display_label:
+ display_label: 'Meeting Date'
+id: node.roll_call_dockets.field_meeting_date
+field_name: field_meeting_date
+entity_type: node
+bundle: roll_call_dockets
+label: 'Meeting Date'
+description: ''
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: datetime
diff --git a/config/default/field.field.paragraph.bos_node_search.field_component_title.yml b/config/default/field.field.paragraph.bos_node_search.field_component_title.yml
new file mode 100644
index 0000000000..23557657ea
--- /dev/null
+++ b/config/default/field.field.paragraph.bos_node_search.field_component_title.yml
@@ -0,0 +1,21 @@
+uuid: 5f4c148c-5c38-4f86-91a0-04737012381f
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_component_title
+ - paragraphs.paragraphs_type.bos_node_search
+id: paragraph.bos_node_search.field_component_title
+field_name: field_component_title
+entity_type: paragraph
+bundle: bos_node_search
+label: 'Search Box Title'
+description: 'This label will appear above the search box on the page'
+required: true
+translatable: false
+default_value:
+ -
+ value: Search
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/default/field.field.paragraph.bos_node_search.field_node_search.yml b/config/default/field.field.paragraph.bos_node_search.field_node_search.yml
new file mode 100644
index 0000000000..b065ece6e1
--- /dev/null
+++ b/config/default/field.field.paragraph.bos_node_search.field_node_search.yml
@@ -0,0 +1,99 @@
+uuid: fe05d4ed-8416-455a-8bb5-aa9682f146b3
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_node_search
+ - paragraphs.paragraphs_type.bos_node_search
+ module:
+ - viewfield
+id: paragraph.bos_node_search.field_node_search
+field_name: field_node_search
+entity_type: paragraph
+bundle: bos_node_search
+label: 'Content Search'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ force_default: false
+ allowed_views:
+ roll_call_dockets: roll_call_dockets
+ assessing: '0'
+ bids_rfps: '0'
+ bos_dashboards: '0'
+ building_housing: '0'
+ bhmaps: '0'
+ building_housing_updates: '0'
+ calendar: '0'
+ change: '0'
+ cityscore: '0'
+ content: '0'
+ content_feed: '0'
+ block_content: '0'
+ departments_listing: '0'
+ document_entity_browser_file_: '0'
+ election_reports_2022: '0'
+ emergency_alerts: '0'
+ entity_reference_filters: '0'
+ events_and_notices: '0'
+ file_entity_files: '0'
+ frontpage: '0'
+ poll_list: '0'
+ maillog_overview: '0'
+ media_cob: '0'
+ media_entity_browser: '0'
+ media_library: '0'
+ message_for_the_day: '0'
+ metrolist: '0'
+ metrolist_ami: '0'
+ metrolist_zillow_api: '0'
+ metrolist_affordable_housing: '0'
+ news_and_announcements: '0'
+ news_landing: '0'
+ paragraphs_library: '0'
+ paragraphs_library_browser: '0'
+ user_admin_people: '0'
+ places: '0'
+ poll_admin: '0'
+ profiles: '0'
+ public_notice: '0'
+ content_recent: '0'
+ redirect: '0'
+ roll_call_taxonomy: '0'
+ rss_feeds: '0'
+ salesforce_mapped_objects: '0'
+ samlauth_map: '0'
+ site_alerts: '0'
+ status_items: '0'
+ taxonomy_dashboards: '0'
+ taxonomy_term: '0'
+ topic_landing_page: '0'
+ transactions: '0'
+ watchdog: '0'
+ webform_submissions: '0'
+ who_s_new: '0'
+ who_s_online: '0'
+ workbench_current_user: '0'
+ workbench_edited: '0'
+ workbench_my_edits: '0'
+ workbench_needs_review_cob: '0'
+ workbench_recent_content: '0'
+ wysiwyg_entity_browser: '0'
+ allowed_display_types:
+ block: block
+ attachment: '0'
+ default: '0'
+ embed: '0'
+ entity_browser: '0'
+ entity_reference: '0'
+ feed: '0'
+ geolocation_layer: '0'
+ page: '0'
+ rest_export: '0'
+ rest_export_nested: '0'
+ handler: 'default:view'
+ handler_settings: { }
+field_type: viewfield
diff --git a/config/default/field.field.paragraph.bos_node_search.field_search_results.yml b/config/default/field.field.paragraph.bos_node_search.field_search_results.yml
new file mode 100644
index 0000000000..6138520c10
--- /dev/null
+++ b/config/default/field.field.paragraph.bos_node_search.field_search_results.yml
@@ -0,0 +1,19 @@
+uuid: ecb0423f-d631-461e-9217-267f5745e422
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_search_results
+ - paragraphs.paragraphs_type.bos_node_search
+id: paragraph.bos_node_search.field_search_results
+field_name: field_search_results
+entity_type: paragraph
+bundle: bos_node_search
+label: 'Search Results Title'
+description: "The title above the search results from the view which displays after a search is performed.\r\nLeave blank to omit this title"
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/default/field.field.paragraph.bos_node_search.field_short_title.yml b/config/default/field.field.paragraph.bos_node_search.field_short_title.yml
new file mode 100644
index 0000000000..6c5deaeece
--- /dev/null
+++ b/config/default/field.field.paragraph.bos_node_search.field_short_title.yml
@@ -0,0 +1,19 @@
+uuid: f4e53811-e005-41ae-ba1d-140578b20885
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_short_title
+ - paragraphs.paragraphs_type.bos_node_search
+id: paragraph.bos_node_search.field_short_title
+field_name: field_short_title
+entity_type: paragraph
+bundle: bos_node_search
+label: 'Navigation Title'
+description: 'The nav title is used to populate the in-page navigation. Please keep it short: one to three words is ideal.
Example can be found on boston.gov/winter/.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/default/field.field.paragraph.bos_node_search.field_title.yml b/config/default/field.field.paragraph.bos_node_search.field_title.yml
new file mode 100644
index 0000000000..d5bdac3053
--- /dev/null
+++ b/config/default/field.field.paragraph.bos_node_search.field_title.yml
@@ -0,0 +1,19 @@
+uuid: 1b4f4368-a58b-4d9a-9be7-f553f4cab42b
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_title
+ - paragraphs.paragraphs_type.bos_node_search
+id: paragraph.bos_node_search.field_title
+field_name: field_title
+entity_type: paragraph
+bundle: bos_node_search
+label: 'Initial Results Title'
+description: "The title above the search results from the view which displays for results (if any) before any a search is performed.\r\nLeave blank to omit this title"
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/default/field.field.paragraph.roll_call_vote.field_councillor.yml b/config/default/field.field.paragraph.roll_call_vote.field_councillor.yml
new file mode 100644
index 0000000000..497e199a66
--- /dev/null
+++ b/config/default/field.field.paragraph.roll_call_vote.field_councillor.yml
@@ -0,0 +1,95 @@
+uuid: 4a5555f1-e62f-42c2-a012-a358cabb8fe0
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_councillor
+ - paragraphs.paragraphs_type.roll_call_vote
+ - taxonomy.vocabulary.vocab_city_councillors
+ module:
+ - dynamic_entity_reference
+id: paragraph.roll_call_vote.field_councillor
+field_name: field_councillor
+entity_type: paragraph
+bundle: roll_call_vote
+label: Councillor
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ taxonomy_term:
+ handler: 'default:taxonomy_term'
+ handler_settings:
+ target_bundles:
+ vocab_city_councillors: vocab_city_councillors
+ sort:
+ field: name
+ direction: asc
+ auto_create: false
+ auto_create_bundle: ''
+ node:
+ handler: 'default:node'
+ handler_settings: { }
+ block_content:
+ handler: 'default:block_content'
+ handler_settings: { }
+ content_moderation_state:
+ handler: 'default:content_moderation_state'
+ handler_settings: { }
+ token_custom:
+ handler: 'default:token_custom'
+ handler_settings: { }
+ menu_link_content:
+ handler: 'default:menu_link_content'
+ handler_settings: { }
+ entity_embed_fake_entity:
+ handler: 'default:entity_embed_fake_entity'
+ handler_settings: { }
+ file:
+ handler: 'default:file'
+ handler_settings: { }
+ media:
+ handler: 'default:media'
+ handler_settings: { }
+ paragraph:
+ handler: 'default:paragraph'
+ handler_settings: { }
+ paragraphs_library_item:
+ handler: 'default:paragraphs_library_item'
+ handler_settings: { }
+ poll:
+ handler: 'default:poll'
+ handler_settings: { }
+ poll_choice:
+ handler: 'default:poll_choice'
+ handler_settings: { }
+ profile:
+ handler: 'default:profile'
+ handler_settings: { }
+ redirect:
+ handler: 'default:redirect'
+ handler_settings: { }
+ salesforce_mapped_object:
+ handler: 'default:salesforce_mapped_object'
+ handler_settings: { }
+ shortcut:
+ handler: 'default:shortcut'
+ handler_settings: { }
+ path_alias:
+ handler: 'default:path_alias'
+ handler_settings: { }
+ user:
+ handler: 'default:user'
+ handler_settings: { }
+ vote:
+ handler: 'default:vote'
+ handler_settings: { }
+ vote_result:
+ handler: 'default:vote_result'
+ handler_settings: { }
+ webform_submission:
+ handler: 'default:webform_submission'
+ handler_settings: { }
+field_type: dynamic_entity_reference
diff --git a/config/default/field.field.paragraph.roll_call_vote.field_vote.yml b/config/default/field.field.paragraph.roll_call_vote.field_vote.yml
new file mode 100644
index 0000000000..97e590fcbd
--- /dev/null
+++ b/config/default/field.field.paragraph.roll_call_vote.field_vote.yml
@@ -0,0 +1,95 @@
+uuid: 7ee3287b-9d99-4128-9769-4ffbed2b2544
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_vote
+ - paragraphs.paragraphs_type.roll_call_vote
+ - taxonomy.vocabulary.vocab_votes
+ module:
+ - dynamic_entity_reference
+id: paragraph.roll_call_vote.field_vote
+field_name: field_vote
+entity_type: paragraph
+bundle: roll_call_vote
+label: Vote
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ taxonomy_term:
+ handler: 'default:taxonomy_term'
+ handler_settings:
+ target_bundles:
+ vocab_votes: vocab_votes
+ sort:
+ field: name
+ direction: asc
+ auto_create: false
+ auto_create_bundle: ''
+ node:
+ handler: 'default:node'
+ handler_settings: { }
+ block_content:
+ handler: 'default:block_content'
+ handler_settings: { }
+ content_moderation_state:
+ handler: 'default:content_moderation_state'
+ handler_settings: { }
+ token_custom:
+ handler: 'default:token_custom'
+ handler_settings: { }
+ menu_link_content:
+ handler: 'default:menu_link_content'
+ handler_settings: { }
+ entity_embed_fake_entity:
+ handler: 'default:entity_embed_fake_entity'
+ handler_settings: { }
+ file:
+ handler: 'default:file'
+ handler_settings: { }
+ media:
+ handler: 'default:media'
+ handler_settings: { }
+ paragraph:
+ handler: 'default:paragraph'
+ handler_settings: { }
+ paragraphs_library_item:
+ handler: 'default:paragraphs_library_item'
+ handler_settings: { }
+ poll:
+ handler: 'default:poll'
+ handler_settings: { }
+ poll_choice:
+ handler: 'default:poll_choice'
+ handler_settings: { }
+ profile:
+ handler: 'default:profile'
+ handler_settings: { }
+ redirect:
+ handler: 'default:redirect'
+ handler_settings: { }
+ salesforce_mapped_object:
+ handler: 'default:salesforce_mapped_object'
+ handler_settings: { }
+ shortcut:
+ handler: 'default:shortcut'
+ handler_settings: { }
+ path_alias:
+ handler: 'default:path_alias'
+ handler_settings: { }
+ user:
+ handler: 'default:user'
+ handler_settings: { }
+ vote:
+ handler: 'default:vote'
+ handler_settings: { }
+ vote_result:
+ handler: 'default:vote_result'
+ handler_settings: { }
+ webform_submission:
+ handler: 'default:webform_submission'
+ handler_settings: { }
+field_type: dynamic_entity_reference
diff --git a/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state.yml b/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state.yml
new file mode 100644
index 0000000000..bf4cad24fe
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state.yml
@@ -0,0 +1,23 @@
+uuid: 19abaa6b-96e0-41da-8bd4-e03805442a6f
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_banner_moderation_state
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - options
+id: taxonomy_term.project_banner_bh_.field_banner_moderation_state
+field_name: field_banner_moderation_state
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Moderation State'
+description: ''
+required: false
+translatable: false
+default_value:
+ -
+ value: Published
+default_value_callback: ''
+settings: { }
+field_type: list_string
diff --git a/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_text.yml b/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_text.yml
new file mode 100644
index 0000000000..f7261d9c80
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_text.yml
@@ -0,0 +1,24 @@
+uuid: 6b715b9a-45b2-427c-a9a9-7242e56834a4
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_banner_text
+ - filter.format.filtered_html
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - text
+id: taxonomy_term.project_banner_bh_.field_banner_text
+field_name: field_banner_text
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Banner Text'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ allowed_formats:
+ - filtered_html
+field_type: text
diff --git a/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_title.yml b/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_title.yml
new file mode 100644
index 0000000000..cfdba6f061
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.project_banner_bh_.field_banner_title.yml
@@ -0,0 +1,19 @@
+uuid: ee2f2083-cab0-4c16-88f4-90dd06ac8c9c
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_banner_title
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_term.project_banner_bh_.field_banner_title
+field_name: field_banner_title
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Banner Title'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/default/field.field.taxonomy_term.project_banner_bh_.field_show_banner.yml b/config/default/field.field.taxonomy_term.project_banner_bh_.field_show_banner.yml
new file mode 100644
index 0000000000..aa9c165a72
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.project_banner_bh_.field_show_banner.yml
@@ -0,0 +1,23 @@
+uuid: 97843634-c409-427c-a568-0e5191c56966
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_show_banner
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_term.project_banner_bh_.field_show_banner
+field_name: field_show_banner
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Show Banner'
+description: 'When selected, a banner will be shown on the Project homepage'
+required: false
+translatable: false
+default_value:
+ -
+ value: 1
+default_value_callback: ''
+settings:
+ on_label: Show
+ off_label: Hide
+field_type: boolean
diff --git a/config/default/field.field.taxonomy_term.vocab_city_councillors.field_active.yml b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_active.yml
new file mode 100644
index 0000000000..e6d5c0d167
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_active.yml
@@ -0,0 +1,23 @@
+uuid: ed49776f-18ee-409d-a73c-fe96978edb7a
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_active
+ - taxonomy.vocabulary.vocab_city_councillors
+id: taxonomy_term.vocab_city_councillors.field_active
+field_name: field_active
+entity_type: taxonomy_term
+bundle: vocab_city_councillors
+label: Active
+description: 'Is this Councillor currently elected ? This field is used to determine voting Councillors when creating new RollCall Dockets.'
+required: false
+translatable: false
+default_value:
+ -
+ value: 1
+default_value_callback: ''
+settings:
+ on_label: Active
+ off_label: Inactive
+field_type: boolean
diff --git a/config/default/field.field.taxonomy_term.vocab_city_councillors.field_district.yml b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_district.yml
new file mode 100644
index 0000000000..0b4b58f655
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_district.yml
@@ -0,0 +1,25 @@
+uuid: a2c94178-6cfe-4964-9649-d7f5804bb4e1
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_district
+ - taxonomy.vocabulary.vocab_city_councillors
+id: taxonomy_term.vocab_city_councillors.field_district
+field_name: field_district
+entity_type: taxonomy_term
+bundle: vocab_city_councillors
+label: District
+description: 'The District this Councillor currently represents.
If the District does not appear in the list, please make the current Councillor for this district inactive, and try again.'
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: views
+ handler_settings:
+ view:
+ view_name: roll_call_taxonomy
+ display_name: unused_districts_filter
+ arguments: { }
+field_type: entity_reference
diff --git a/config/default/field.field.taxonomy_term.vocab_city_councillors.field_email.yml b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_email.yml
new file mode 100644
index 0000000000..aeff646e43
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_email.yml
@@ -0,0 +1,19 @@
+uuid: 3a9b3646-7d5c-45fd-890c-0e581d786207
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_email
+ - taxonomy.vocabulary.vocab_city_councillors
+id: taxonomy_term.vocab_city_councillors.field_email
+field_name: field_email
+entity_type: taxonomy_term
+bundle: vocab_city_councillors
+label: Email
+description: 'The Councillors business email address.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: email
diff --git a/config/default/field.field.taxonomy_term.vocab_city_councillors.field_first_name.yml b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_first_name.yml
new file mode 100644
index 0000000000..5a40c85bdc
--- /dev/null
+++ b/config/default/field.field.taxonomy_term.vocab_city_councillors.field_first_name.yml
@@ -0,0 +1,19 @@
+uuid: 9e68317e-3115-47a0-8db0-9053ad2ada7f
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_first_name
+ - taxonomy.vocabulary.vocab_city_councillors
+id: taxonomy_term.vocab_city_councillors.field_first_name
+field_name: field_first_name
+entity_type: taxonomy_term
+bundle: vocab_city_councillors
+label: 'First Name'
+description: 'Councillors First Name '
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/default/field.storage.node.field_bh_banner_status.yml b/config/default/field.storage.node.field_bh_banner_status.yml
new file mode 100644
index 0000000000..a0287ead03
--- /dev/null
+++ b/config/default/field.storage.node.field_bh_banner_status.yml
@@ -0,0 +1,20 @@
+uuid: 53a9bfda-7526-4905-aba9-b628c6c0d30e
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+ - taxonomy
+id: node.field_bh_banner_status
+field_name: field_bh_banner_status
+entity_type: node
+type: entity_reference
+settings:
+ target_type: taxonomy_term
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.node.field_meeting_date.yml b/config/default/field.storage.node.field_meeting_date.yml
new file mode 100644
index 0000000000..1b0503dfb1
--- /dev/null
+++ b/config/default/field.storage.node.field_meeting_date.yml
@@ -0,0 +1,20 @@
+uuid: 92e13c81-739a-4ea9-a144-cb5b1ff28703
+langcode: en
+status: true
+dependencies:
+ module:
+ - datetime
+ - node
+id: node.field_meeting_date
+field_name: field_meeting_date
+entity_type: node
+type: datetime
+settings:
+ datetime_type: date
+module: datetime
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.paragraph.field_councillor.yml b/config/default/field.storage.paragraph.field_councillor.yml
new file mode 100644
index 0000000000..e2e266eef0
--- /dev/null
+++ b/config/default/field.storage.paragraph.field_councillor.yml
@@ -0,0 +1,23 @@
+uuid: 3fc9fd3b-faa6-482e-b336-202094d937b9
+langcode: en
+status: true
+dependencies:
+ module:
+ - dynamic_entity_reference
+ - paragraphs
+ - taxonomy
+id: paragraph.field_councillor
+field_name: field_councillor
+entity_type: paragraph
+type: dynamic_entity_reference
+settings:
+ exclude_entity_types: false
+ entity_type_ids:
+ taxonomy_term: taxonomy_term
+module: dynamic_entity_reference
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.paragraph.field_node_search.yml b/config/default/field.storage.paragraph.field_node_search.yml
new file mode 100644
index 0000000000..e2b7364a83
--- /dev/null
+++ b/config/default/field.storage.paragraph.field_node_search.yml
@@ -0,0 +1,21 @@
+uuid: ef9d7d52-e0d9-4372-bd64-1760da6b3fcf
+langcode: en
+status: true
+dependencies:
+ module:
+ - paragraphs
+ - viewfield
+ - views
+id: paragraph.field_node_search
+field_name: field_node_search
+entity_type: paragraph
+type: viewfield
+settings:
+ target_type: view
+module: viewfield
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.paragraph.field_search_results.yml b/config/default/field.storage.paragraph.field_search_results.yml
new file mode 100644
index 0000000000..febd8e1d53
--- /dev/null
+++ b/config/default/field.storage.paragraph.field_search_results.yml
@@ -0,0 +1,21 @@
+uuid: e31b3153-b2fd-4a47-a2ea-c0533b55df88
+langcode: en
+status: true
+dependencies:
+ module:
+ - paragraphs
+id: paragraph.field_search_results
+field_name: field_search_results
+entity_type: paragraph
+type: string
+settings:
+ max_length: 255
+ case_sensitive: false
+ is_ascii: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.paragraph.field_vote.yml b/config/default/field.storage.paragraph.field_vote.yml
new file mode 100644
index 0000000000..76f6e8a058
--- /dev/null
+++ b/config/default/field.storage.paragraph.field_vote.yml
@@ -0,0 +1,23 @@
+uuid: 29a29a9a-d900-4e88-a6f4-99ebe0146c3d
+langcode: en
+status: true
+dependencies:
+ module:
+ - dynamic_entity_reference
+ - paragraphs
+ - taxonomy
+id: paragraph.field_vote
+field_name: field_vote
+entity_type: paragraph
+type: dynamic_entity_reference
+settings:
+ exclude_entity_types: false
+ entity_type_ids:
+ taxonomy_term: taxonomy_term
+module: dynamic_entity_reference
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_active.yml b/config/default/field.storage.taxonomy_term.field_active.yml
new file mode 100644
index 0000000000..6b410492cb
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_active.yml
@@ -0,0 +1,18 @@
+uuid: 2c3ee81e-89d7-476b-8f25-61589f62ae80
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_active
+field_name: field_active
+entity_type: taxonomy_term
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_banner_moderation_state.yml b/config/default/field.storage.taxonomy_term.field_banner_moderation_state.yml
new file mode 100644
index 0000000000..a23f947053
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_banner_moderation_state.yml
@@ -0,0 +1,30 @@
+uuid: 878a29c4-ae72-493a-bc5a-916d1c0b79e3
+langcode: en
+status: true
+dependencies:
+ module:
+ - options
+ - taxonomy
+id: taxonomy_term.field_banner_moderation_state
+field_name: field_banner_moderation_state
+entity_type: taxonomy_term
+type: list_string
+settings:
+ allowed_values:
+ -
+ value: Draft
+ label: Draft
+ -
+ value: Published
+ label: Published
+ -
+ value: Archived
+ label: Archived
+ allowed_values_function: ''
+module: options
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_banner_text.yml b/config/default/field.storage.taxonomy_term.field_banner_text.yml
new file mode 100644
index 0000000000..7c97771e67
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_banner_text.yml
@@ -0,0 +1,20 @@
+uuid: 8b7eabe5-8712-4db7-ab4d-92a7ef47a1ad
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+ - text
+id: taxonomy_term.field_banner_text
+field_name: field_banner_text
+entity_type: taxonomy_term
+type: text
+settings:
+ max_length: 255
+module: text
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_banner_title.yml b/config/default/field.storage.taxonomy_term.field_banner_title.yml
new file mode 100644
index 0000000000..392018c8a7
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_banner_title.yml
@@ -0,0 +1,21 @@
+uuid: a423b0c1-fa36-4871-861b-ea69d221c67c
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_banner_title
+field_name: field_banner_title
+entity_type: taxonomy_term
+type: string
+settings:
+ max_length: 255
+ case_sensitive: false
+ is_ascii: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_district.yml b/config/default/field.storage.taxonomy_term.field_district.yml
new file mode 100644
index 0000000000..a59350509a
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_district.yml
@@ -0,0 +1,19 @@
+uuid: b64d00b9-759e-4460-8c0a-b31ea45a1011
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_district
+field_name: field_district
+entity_type: taxonomy_term
+type: entity_reference
+settings:
+ target_type: taxonomy_term
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_email.yml b/config/default/field.storage.taxonomy_term.field_email.yml
new file mode 100644
index 0000000000..502cb761ae
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_email.yml
@@ -0,0 +1,18 @@
+uuid: f9964313-8dbf-45d9-b8a5-349da43858e1
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_email
+field_name: field_email
+entity_type: taxonomy_term
+type: email
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_first_name.yml b/config/default/field.storage.taxonomy_term.field_first_name.yml
new file mode 100644
index 0000000000..39db0405e4
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_first_name.yml
@@ -0,0 +1,21 @@
+uuid: fd59e5c2-2779-43ed-a77a-975a29d2825c
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_first_name
+field_name: field_first_name
+entity_type: taxonomy_term
+type: string
+settings:
+ max_length: 25
+ case_sensitive: false
+ is_ascii: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/field.storage.taxonomy_term.field_show_banner.yml b/config/default/field.storage.taxonomy_term.field_show_banner.yml
new file mode 100644
index 0000000000..ddc342d633
--- /dev/null
+++ b/config/default/field.storage.taxonomy_term.field_show_banner.yml
@@ -0,0 +1,18 @@
+uuid: ada5b953-d880-4d72-aebb-a75cda685f5c
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_show_banner
+field_name: field_show_banner
+entity_type: taxonomy_term
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/default/language.content_settings.node.roll_call_dockets.yml b/config/default/language.content_settings.node.roll_call_dockets.yml
new file mode 100644
index 0000000000..6e647a73ab
--- /dev/null
+++ b/config/default/language.content_settings.node.roll_call_dockets.yml
@@ -0,0 +1,11 @@
+uuid: e197f8fe-0f85-4842-b8a4-33ab32b6a3cc
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.roll_call_dockets
+id: node.roll_call_dockets
+target_entity_type_id: node
+target_bundle: roll_call_dockets
+default_langcode: site_default
+language_alterable: false
diff --git a/config/default/language.content_settings.taxonomy_term.city_council_districts.yml b/config/default/language.content_settings.taxonomy_term.city_council_districts.yml
new file mode 100644
index 0000000000..4be8976e11
--- /dev/null
+++ b/config/default/language.content_settings.taxonomy_term.city_council_districts.yml
@@ -0,0 +1,11 @@
+uuid: 206ad886-b188-403d-84a4-d50a7792e69c
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.city_council_districts
+id: taxonomy_term.city_council_districts
+target_entity_type_id: taxonomy_term
+target_bundle: city_council_districts
+default_langcode: site_default
+language_alterable: false
diff --git a/config/default/language.content_settings.taxonomy_term.project_banner_bh_.yml b/config/default/language.content_settings.taxonomy_term.project_banner_bh_.yml
new file mode 100644
index 0000000000..873cc1e882
--- /dev/null
+++ b/config/default/language.content_settings.taxonomy_term.project_banner_bh_.yml
@@ -0,0 +1,11 @@
+uuid: 40b135c9-abe4-42cc-a973-8a6f940b6f8c
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_term.project_banner_bh_
+target_entity_type_id: taxonomy_term
+target_bundle: project_banner_bh_
+default_langcode: site_default
+language_alterable: false
diff --git a/config/default/language.content_settings.taxonomy_term.vocab_city_councillors.yml b/config/default/language.content_settings.taxonomy_term.vocab_city_councillors.yml
new file mode 100644
index 0000000000..1a07f4c06b
--- /dev/null
+++ b/config/default/language.content_settings.taxonomy_term.vocab_city_councillors.yml
@@ -0,0 +1,11 @@
+uuid: 399c64f9-308c-4edb-88da-cc12ea7c1c44
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.vocab_city_councillors
+id: taxonomy_term.vocab_city_councillors
+target_entity_type_id: taxonomy_term
+target_bundle: vocab_city_councillors
+default_langcode: site_default
+language_alterable: false
diff --git a/config/default/language.content_settings.taxonomy_term.vocab_votes.yml b/config/default/language.content_settings.taxonomy_term.vocab_votes.yml
new file mode 100644
index 0000000000..5b18b6fca7
--- /dev/null
+++ b/config/default/language.content_settings.taxonomy_term.vocab_votes.yml
@@ -0,0 +1,11 @@
+uuid: 23f5ce7f-a912-4db5-b185-8206d3750a7e
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.vocab_votes
+id: taxonomy_term.vocab_votes
+target_entity_type_id: taxonomy_term
+target_bundle: vocab_votes
+default_langcode: site_default
+language_alterable: false
diff --git a/config/default/language.types.yml b/config/default/language.types.yml
index 545179cab4..de0e4cd24f 100644
--- a/config/default/language.types.yml
+++ b/config/default/language.types.yml
@@ -9,7 +9,7 @@ configurable:
negotiation:
language_content:
enabled:
- language-interface: 9
+ language-interface: 0
method_weights:
language-content-entity: -9
language-url: -8
diff --git a/config/default/node.type.roll_call_dockets.yml b/config/default/node.type.roll_call_dockets.yml
new file mode 100644
index 0000000000..c56ac8a5d9
--- /dev/null
+++ b/config/default/node.type.roll_call_dockets.yml
@@ -0,0 +1,18 @@
+uuid: b2ffee1d-229c-4017-b45a-7c3374560cff
+langcode: en
+status: true
+dependencies:
+ module:
+ - menu_ui
+third_party_settings:
+ menu_ui:
+ available_menus:
+ - main
+ parent: 'main:'
+name: 'Roll Call Dockets'
+type: roll_call_dockets
+description: 'RollCall: This is a single record for a Docket which was voted upon in a Council Meeting.'
+help: ''
+new_revision: true
+preview_mode: 1
+display_submitted: true
diff --git a/config/default/node_elections.settings.yml b/config/default/node_elections.settings.yml
index 7eb2926570..a251f34c67 100644
--- a/config/default/node_elections.settings.yml
+++ b/config/default/node_elections.settings.yml
@@ -1,19 +1,83 @@
upload_directory: 'public://election_results'
history:
-
- generate_date: 1636159532
- upload_date: 1667423430
- file: '374657'
+ generate_date: 1694569052
+ upload_date: 1694569267
+ file: 438391
+ result: Success
+ election: '41751'
+ revision: '18794186'
+ result_comment: 'Processed OK'
+ -
+ generate_date: 1694570120
+ upload_date: 1694570336
+ file: 438396
+ result: Success
+ election: '41751'
+ revision: '18794191'
+ result_comment: 'Processed OK'
+ -
+ generate_date: 1694570671
+ upload_date: 1694570884
+ file: 438401
+ result: Success
+ election: '41751'
+ revision: '18794196'
+ result_comment: 'Processed OK'
+ -
+ generate_date: 1694572371
+ upload_date: 1694572592
+ file: 438406
+ result: Success
+ election: '41751'
+ revision: '18794226'
+ result_comment: 'Processed OK'
+ -
+ generate_date: 1694574160
+ upload_date: 1694574824
+ file: 438411
+ result: Success
+ election: '41751'
+ revision: '18794241'
+ result_comment: 'Processed OK'
+ -
+ generate_date: 1694574160
+ upload_date: 1694576835
+ file: '438416'
+ result: Failed
+ election: '41751'
+ revision: ''
+ result_comment: 'An election with this timestamp (2023-09-12T23:02:40) has already been processed.
This file will not be processed.
Error 9026.'
+ -
+ generate_date: 1694574160
+ upload_date: 1694576885
+ file: '438421'
+ result: Failed
+ election: '41751'
+ revision: ''
+ result_comment: 'An election with this timestamp (2023-09-12T23:02:40) has already been processed.
This file will not be processed.
Error 9026.'
+ -
+ generate_date: 1694574160
+ upload_date: 1694576961
+ file: '438426'
+ result: Failed
+ election: '41751'
+ revision: ''
+ result_comment: 'An election with this timestamp (2023-09-12T23:02:40) has already been processed.
This file will not be processed.
Error 9026.'
+ -
+ generate_date: 1694574160
+ upload_date: 1694576986
+ file: '438431'
result: Failed
- election: '34921'
+ election: '41751'
revision: ''
- result_comment: 'This file is out of sequence.
This file has a timestamp 2021-11-05T20:45:32 but the last file uploaded for this election had a timestamp 2021-11-05T23:07:10.
This file will not be processed.
Error 9027.'
+ result_comment: 'An election with this timestamp (2023-09-12T23:02:40) has already been processed.
This file will not be processed.
Error 9026.'
-
- generate_date: 1692981369
- upload_date: 1692984562
- file: 386301
+ generate_date: 1694578707
+ upload_date: 1694579038
+ file: 438436
result: Success
- election: '40790'
- revision: '18610394'
+ election: '41751'
+ revision: '18794246'
result_comment: 'Processed OK'
-last-run: 1692984562
+last-run: 1694579038
diff --git a/config/default/paragraphs.paragraphs_type.bos_node_search.yml b/config/default/paragraphs.paragraphs_type.bos_node_search.yml
new file mode 100644
index 0000000000..0792266d5c
--- /dev/null
+++ b/config/default/paragraphs.paragraphs_type.bos_node_search.yml
@@ -0,0 +1,10 @@
+uuid: 0b839099-dc49-483c-926a-dc6d5fe16e82
+langcode: en
+status: true
+dependencies: { }
+id: bos_node_search
+label: Search
+icon_uuid: null
+icon_default: null
+description: 'A component to embed views blocks configured to search content-type data. (see RollCall Search example)'
+behavior_plugins: { }
diff --git a/config/default/paragraphs.paragraphs_type.roll_call_vote.yml b/config/default/paragraphs.paragraphs_type.roll_call_vote.yml
new file mode 100644
index 0000000000..f049b7e778
--- /dev/null
+++ b/config/default/paragraphs.paragraphs_type.roll_call_vote.yml
@@ -0,0 +1,11 @@
+uuid: f644ee79-31c9-4bf6-a80d-90e4ab47c186
+langcode: en
+status: true
+dependencies:
+ content: { }
+id: roll_call_vote
+label: 'Roll Call Vote'
+icon_uuid: null
+icon_default: null
+description: 'Records a Councillors vote on a Docket during a Council Meeting.'
+behavior_plugins: { }
diff --git a/config/default/rabbit_hole.behavior_settings.node_type_roll_call_dockets.yml b/config/default/rabbit_hole.behavior_settings.node_type_roll_call_dockets.yml
new file mode 100644
index 0000000000..bdcb372738
--- /dev/null
+++ b/config/default/rabbit_hole.behavior_settings.node_type_roll_call_dockets.yml
@@ -0,0 +1,14 @@
+uuid: e8cb8ecf-f2de-4bc2-b48d-6da5d9c31439
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.roll_call_dockets
+id: node_type_roll_call_dockets
+entity_type_id: node_type
+entity_id: roll_call_dockets
+action: page_not_found
+allow_override: 0
+redirect: ''
+redirect_code: 301
+redirect_fallback_action: access_denied
diff --git a/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_city_council_districts.yml b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_city_council_districts.yml
new file mode 100644
index 0000000000..ce14c20fc4
--- /dev/null
+++ b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_city_council_districts.yml
@@ -0,0 +1,14 @@
+uuid: c5339a4e-01af-49e7-bf29-09ac638bad95
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.city_council_districts
+id: taxonomy_vocabulary_city_council_districts
+entity_type_id: taxonomy_vocabulary
+entity_id: city_council_districts
+action: display_page
+allow_override: 1
+redirect: ''
+redirect_code: 301
+redirect_fallback_action: access_denied
diff --git a/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_project_banner_bh_.yml b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_project_banner_bh_.yml
new file mode 100644
index 0000000000..ff6c356b94
--- /dev/null
+++ b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_project_banner_bh_.yml
@@ -0,0 +1,14 @@
+uuid: 1abbea09-1167-435c-9cd1-bd7b56042f2c
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_vocabulary_project_banner_bh_
+entity_type_id: taxonomy_vocabulary
+entity_id: project_banner_bh_
+action: page_not_found
+allow_override: 0
+redirect: ''
+redirect_code: 301
+redirect_fallback_action: access_denied
diff --git a/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_vocab_city_councillors.yml b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_vocab_city_councillors.yml
new file mode 100644
index 0000000000..814cad8585
--- /dev/null
+++ b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_vocab_city_councillors.yml
@@ -0,0 +1,14 @@
+uuid: 08360463-9462-4e6c-80ea-4ba59e058008
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.vocab_city_councillors
+id: taxonomy_vocabulary_vocab_city_councillors
+entity_type_id: taxonomy_vocabulary
+entity_id: vocab_city_councillors
+action: display_page
+allow_override: 0
+redirect: ''
+redirect_code: 301
+redirect_fallback_action: access_denied
diff --git a/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_vocab_votes.yml b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_vocab_votes.yml
new file mode 100644
index 0000000000..998e84af8c
--- /dev/null
+++ b/config/default/rabbit_hole.behavior_settings.taxonomy_vocabulary_vocab_votes.yml
@@ -0,0 +1,14 @@
+uuid: 17a8a6bd-d710-420f-af55-14303ef052f0
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.vocab_votes
+id: taxonomy_vocabulary_vocab_votes
+entity_type_id: taxonomy_vocabulary
+entity_id: vocab_votes
+action: display_page
+allow_override: 1
+redirect: ''
+redirect_code: 301
+redirect_fallback_action: access_denied
diff --git a/config/default/salesforce_mapping.salesforce_mapping.bh_website_update.yml b/config/default/salesforce_mapping.salesforce_mapping.bh_website_update.yml
index deaf4eb19f..5f5671d7b8 100644
--- a/config/default/salesforce_mapping.salesforce_mapping.bh_website_update.yml
+++ b/config/default/salesforce_mapping.salesforce_mapping.bh_website_update.yml
@@ -14,6 +14,8 @@ push_frequency: 0
push_limit: 0
push_retries: 3
pull_where_clause: ''
+pull_record_type_filter:
+ Master: 0
sync_triggers:
push_create: false
push_update: true
diff --git a/config/default/salesforce_mapping.salesforce_mapping.building_housing_projects.yml b/config/default/salesforce_mapping.salesforce_mapping.building_housing_projects.yml
index d3954fe2a6..2128aaf6f5 100644
--- a/config/default/salesforce_mapping.salesforce_mapping.building_housing_projects.yml
+++ b/config/default/salesforce_mapping.salesforce_mapping.building_housing_projects.yml
@@ -14,6 +14,7 @@ push_frequency: 0
push_limit: 0
push_retries: 3
pull_where_clause: "RecordTypeID IN ('0120y0000007rw7', '012C0000000Hqw0')"
+pull_record_type_filter: { }
sync_triggers:
push_create: false
push_update: true
diff --git a/config/default/system.action.user_add_role_action.city_clerk_editor.yml b/config/default/system.action.user_add_role_action.city_clerk_editor.yml
new file mode 100644
index 0000000000..865f050cbc
--- /dev/null
+++ b/config/default/system.action.user_add_role_action.city_clerk_editor.yml
@@ -0,0 +1,14 @@
+uuid: e374aff8-0058-4133-a48c-12943f114ff6
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.city_clerk_editor
+ module:
+ - user
+id: user_add_role_action.city_clerk_editor
+label: 'Add the City Clerk Editor role to the selected user(s)'
+type: user
+plugin: user_add_role_action
+configuration:
+ rid: city_clerk_editor
diff --git a/config/default/system.action.user_remove_role_action.city_clerk_editor.yml b/config/default/system.action.user_remove_role_action.city_clerk_editor.yml
new file mode 100644
index 0000000000..8deee24bcc
--- /dev/null
+++ b/config/default/system.action.user_remove_role_action.city_clerk_editor.yml
@@ -0,0 +1,14 @@
+uuid: 6d3f61b4-4780-42eb-a37e-60b285ec0a95
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.city_clerk_editor
+ module:
+ - user
+id: user_remove_role_action.city_clerk_editor
+label: 'Remove the City Clerk Editor role from the selected user(s)'
+type: user
+plugin: user_remove_role_action
+configuration:
+ rid: city_clerk_editor
diff --git a/config/default/taxonomy.vocabulary.city_council_districts.yml b/config/default/taxonomy.vocabulary.city_council_districts.yml
new file mode 100644
index 0000000000..83b2f507bd
--- /dev/null
+++ b/config/default/taxonomy.vocabulary.city_council_districts.yml
@@ -0,0 +1,8 @@
+uuid: 1d74e468-a481-47f3-a6a2-87948626721f
+langcode: en
+status: true
+dependencies: { }
+name: 'City Council Districts'
+vid: city_council_districts
+description: 'RollCall: City Council representative Districts'
+weight: 0
diff --git a/config/default/taxonomy.vocabulary.project_banner_bh_.yml b/config/default/taxonomy.vocabulary.project_banner_bh_.yml
new file mode 100644
index 0000000000..2ad1eb5c81
--- /dev/null
+++ b/config/default/taxonomy.vocabulary.project_banner_bh_.yml
@@ -0,0 +1,8 @@
+uuid: a8d20aba-ed51-4fdc-aafa-ea820d56bf15
+langcode: en
+status: true
+dependencies: { }
+name: 'Project Banner (BH)'
+vid: project_banner_bh_
+description: "Controls the Property's visibility and banner on boston.gov."
+weight: 0
diff --git a/config/default/taxonomy.vocabulary.vocab_city_councillors.yml b/config/default/taxonomy.vocabulary.vocab_city_councillors.yml
new file mode 100644
index 0000000000..f85c1f711c
--- /dev/null
+++ b/config/default/taxonomy.vocabulary.vocab_city_councillors.yml
@@ -0,0 +1,8 @@
+uuid: 3a69b8e9-80dd-4b4e-9597-d55261d1eaf4
+langcode: en
+status: true
+dependencies: { }
+name: 'City Councillors'
+vid: vocab_city_councillors
+description: 'Roll Call: List of Current and Past City Councillors'
+weight: 0
diff --git a/config/default/taxonomy.vocabulary.vocab_votes.yml b/config/default/taxonomy.vocabulary.vocab_votes.yml
new file mode 100644
index 0000000000..0900ab0387
--- /dev/null
+++ b/config/default/taxonomy.vocabulary.vocab_votes.yml
@@ -0,0 +1,8 @@
+uuid: b27e64ff-7f39-4277-9a88-9c22d14343f9
+langcode: en
+status: true
+dependencies: { }
+name: 'Vote Types'
+vid: vocab_votes
+description: 'RollCall: The types of vote (on a Docket) recorded during a Council Meeting.'
+weight: 0
diff --git a/config/default/user.role.anonymous.yml b/config/default/user.role.anonymous.yml
index beed7e0a84..4a057323ba 100644
--- a/config/default/user.role.anonymous.yml
+++ b/config/default/user.role.anonymous.yml
@@ -25,6 +25,7 @@ permissions:
- 'view paragraph content 3_column_w_image'
- 'view paragraph content bid'
- 'view paragraph content bos311'
+ - 'view paragraph content bos_node_search'
- 'view paragraph content bos_signup_emergency_alerts'
- 'view paragraph content branded_links'
- 'view paragraph content cabinet'
@@ -79,6 +80,7 @@ permissions:
- 'view paragraph content newsletter'
- 'view paragraph content photo'
- 'view paragraph content quote'
+ - 'view paragraph content roll_call_vote'
- 'view paragraph content seamless_doc'
- 'view paragraph content sidebar_item'
- 'view paragraph content sidebar_item_w_icon'
diff --git a/config/default/user.role.city_clerk_editor.yml b/config/default/user.role.city_clerk_editor.yml
new file mode 100644
index 0000000000..ec698ce997
--- /dev/null
+++ b/config/default/user.role.city_clerk_editor.yml
@@ -0,0 +1,78 @@
+uuid: 46bbcb28-ca9f-459c-b861-ae1cd7d25711
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.public_notice
+ - node.type.roll_call_dockets
+ - taxonomy.vocabulary.city_council_districts
+ - taxonomy.vocabulary.vocab_city_councillors
+ - workflows.workflow.city_of_boston_workflows
+ - workflows.workflow.managed_workflow
+ module:
+ - content_moderation
+ - lightning_core
+ - lightning_scheduler
+ - moderation_sidebar
+ - node
+ - paragraphs_type_permissions
+ - taxonomy
+ - toolbar
+ - workbench
+third_party_settings:
+ lightning_core:
+ description: 'Role for managing Roll Calls (and Public Notices).'
+id: city_clerk_editor
+label: 'City Clerk Editor'
+weight: 0
+is_admin: null
+permissions:
+ - 'access toolbar'
+ - 'access workbench'
+ - 'create paragraph content roll_call_vote'
+ - 'create paragraph content text_one_column'
+ - 'create public_notice content'
+ - 'create roll_call_dockets content'
+ - 'create terms in city_council_districts'
+ - 'create terms in vocab_city_councillors'
+ - 'delete own public_notice content'
+ - 'delete own roll_call_dockets content'
+ - 'delete paragraph content roll_call_vote'
+ - 'delete paragraph content text_one_column'
+ - 'delete public_notice revisions'
+ - 'delete roll_call_dockets revisions'
+ - 'edit any public_notice content'
+ - 'edit any roll_call_dockets content'
+ - 'edit terms in city_council_districts'
+ - 'edit terms in vocab_city_councillors'
+ - 'revert public_notice revisions'
+ - 'revert roll_call_dockets revisions'
+ - 'schedule city_of_boston_workflows transition archived'
+ - 'schedule city_of_boston_workflows transition draft_from_archived'
+ - 'schedule city_of_boston_workflows transition draft_from_published'
+ - 'schedule city_of_boston_workflows transition publish'
+ - 'schedule city_of_boston_workflows transition publish_new_content'
+ - 'schedule city_of_boston_workflows transition reject'
+ - 'schedule city_of_boston_workflows transition submit_for_review'
+ - 'schedule city_of_boston_workflows transition update_draft'
+ - 'schedule city_of_boston_workflows transition update_published'
+ - 'schedule managed_workflow transition create_new_draft'
+ - 'schedule managed_workflow transition publish'
+ - 'update paragraph content roll_call_vote'
+ - 'update paragraph content text_one_column'
+ - 'use city_of_boston_workflows transition archived'
+ - 'use city_of_boston_workflows transition draft_from_archived'
+ - 'use city_of_boston_workflows transition draft_from_published'
+ - 'use city_of_boston_workflows transition publish'
+ - 'use city_of_boston_workflows transition publish_new_content'
+ - 'use city_of_boston_workflows transition reject'
+ - 'use city_of_boston_workflows transition submit_for_review'
+ - 'use city_of_boston_workflows transition update_draft'
+ - 'use city_of_boston_workflows transition update_published'
+ - 'use managed_workflow transition create_new_draft'
+ - 'use managed_workflow transition publish'
+ - 'use moderation sidebar'
+ - 'view paragraph content roll_call_vote'
+ - 'view paragraph content text_one_column'
+ - 'view public_notice revisions'
+ - 'view roll_call_dockets revisions'
diff --git a/config/default/user.role.content_editor.yml b/config/default/user.role.content_editor.yml
index 72f00c1c23..2d44a1934a 100644
--- a/config/default/user.role.content_editor.yml
+++ b/config/default/user.role.content_editor.yml
@@ -29,6 +29,7 @@ dependencies:
- taxonomy.vocabulary.311_request
- taxonomy.vocabulary.bid_offering
- taxonomy.vocabulary.bid_type
+ - taxonomy.vocabulary.city_council_districts
- taxonomy.vocabulary.cityscore_metrics
- taxonomy.vocabulary.commissions
- taxonomy.vocabulary.contact
@@ -46,8 +47,11 @@ dependencies:
- taxonomy.vocabulary.procurement_type
- taxonomy.vocabulary.profile_type
- taxonomy.vocabulary.program_type
+ - taxonomy.vocabulary.project_banner_bh_
- taxonomy.vocabulary.tags
- taxonomy.vocabulary.topic_category
+ - taxonomy.vocabulary.vocab_city_councillors
+ - taxonomy.vocabulary.vocab_votes
- workflows.workflow.city_of_boston_workflows
- workflows.workflow.unmanaged_workflow
module:
@@ -125,8 +129,10 @@ permissions:
- 'create terms in procurement_type'
- 'create terms in profile_type'
- 'create terms in program_type'
+ - 'create terms in project_banner_bh_'
- 'create terms in tags'
- 'create terms in topic_category'
+ - 'create terms in vocab_city_councillors'
- 'create url aliases'
- 'date_recur_modular use sierra form'
- 'delete any audio files'
@@ -164,6 +170,7 @@ permissions:
- 'edit terms in 311_request'
- 'edit terms in bid_offering'
- 'edit terms in bid_type'
+ - 'edit terms in city_council_districts'
- 'edit terms in cityscore_metrics'
- 'edit terms in commissions'
- 'edit terms in contact'
@@ -181,8 +188,11 @@ permissions:
- 'edit terms in procurement_type'
- 'edit terms in profile_type'
- 'edit terms in program_type'
+ - 'edit terms in project_banner_bh_'
- 'edit terms in tags'
- 'edit terms in topic_category'
+ - 'edit terms in vocab_city_councillors'
+ - 'edit terms in vocab_votes'
- 'rabbit hole bypass node'
- 'revert all revisions'
- 'revert article revisions'
diff --git a/config/default/user.role.developer.yml b/config/default/user.role.developer.yml
index c4ed44d06a..cb9c90a0bf 100644
--- a/config/default/user.role.developer.yml
+++ b/config/default/user.role.developer.yml
@@ -7,6 +7,7 @@ dependencies:
- media.type.icon
- media.type.image
- node.type.change
+ - taxonomy.vocabulary.project_banner_bh_
module:
- ape
- block
@@ -134,6 +135,7 @@ permissions:
- 'create icon media'
- 'create image media'
- 'create media'
+ - 'create terms in project_banner_bh_'
- 'delete any document media'
- 'delete any icon media'
- 'delete any image media'
@@ -144,6 +146,7 @@ permissions:
- 'edit any icon media'
- 'edit any image media'
- 'edit behavior plugin settings'
+ - 'edit terms in project_banner_bh_'
- 'export configuration'
- 'grant content access'
- 'import configuration'
diff --git a/config/default/user.role.metrolist_editor.yml b/config/default/user.role.metrolist_editor.yml
index 9b5974cb4e..9d22df2b1d 100644
--- a/config/default/user.role.metrolist_editor.yml
+++ b/config/default/user.role.metrolist_editor.yml
@@ -33,6 +33,7 @@ dependencies:
- taxonomy.vocabulary.ml_neighborhood
- taxonomy.vocabulary.ml_occupancy_type
- taxonomy.vocabulary.ml_rent_type
+ - taxonomy.vocabulary.project_banner_bh_
- taxonomy.vocabulary.region
- taxonomy.vocabulary.unit_type
- taxonomy.vocabulary.utilities_included
@@ -81,6 +82,7 @@ permissions:
- 'create terms in ml_neighborhood'
- 'create terms in ml_occupancy_type'
- 'create terms in ml_rent_type'
+ - 'create terms in project_banner_bh_'
- 'create terms in region'
- 'create terms in unit_type'
- 'create terms in utilities_included'
@@ -90,7 +92,6 @@ permissions:
- 'delete any bh_parcel content'
- 'delete any bh_parcel_project_assoc content'
- 'delete any bh_project content'
- - 'delete any bh_update content'
- 'delete any metrolist_affordable_housing content'
- 'delete any metrolist_development content'
- 'delete any metrolist_unit content'
@@ -100,7 +101,6 @@ permissions:
- 'delete bh_meeting revisions'
- 'delete bh_parcel revisions'
- 'delete bh_parcel_project_assoc revisions'
- - 'delete bh_update revisions'
- 'delete metrolist_affordable_housing revisions'
- 'delete metrolist_development revisions'
- 'delete metrolist_unit revisions'
@@ -109,7 +109,6 @@ permissions:
- 'delete own bh_meeting content'
- 'delete own bh_parcel content'
- 'delete own bh_parcel_project_assoc content'
- - 'delete own bh_update content'
- 'delete own metrolist_affordable_housing content'
- 'delete own metrolist_development content'
- 'delete own metrolist_unit content'
@@ -153,6 +152,7 @@ permissions:
- 'edit terms in ml_neighborhood'
- 'edit terms in ml_occupancy_type'
- 'edit terms in ml_rent_type'
+ - 'edit terms in project_banner_bh_'
- 'edit terms in region'
- 'edit terms in unit_type'
- 'edit terms in utilities_included'
diff --git a/config/default/user.role.site_administrator.yml b/config/default/user.role.site_administrator.yml
index 846726d769..757a50cfcc 100644
--- a/config/default/user.role.site_administrator.yml
+++ b/config/default/user.role.site_administrator.yml
@@ -23,6 +23,7 @@ dependencies:
- node.type.procurement_advertisement
- node.type.program_initiative_profile
- node.type.public_notice
+ - node.type.roll_call_dockets
- node.type.script_page
- node.type.site_alert
- node.type.status_item
@@ -32,6 +33,7 @@ dependencies:
- taxonomy.vocabulary.311_request
- taxonomy.vocabulary.bid_offering
- taxonomy.vocabulary.bid_type
+ - taxonomy.vocabulary.city_council_districts
- taxonomy.vocabulary.cityscore_metrics
- taxonomy.vocabulary.commissions
- taxonomy.vocabulary.contact
@@ -53,8 +55,11 @@ dependencies:
- taxonomy.vocabulary.procurement_type
- taxonomy.vocabulary.profile_type
- taxonomy.vocabulary.program_type
+ - taxonomy.vocabulary.project_banner_bh_
- taxonomy.vocabulary.tags
- taxonomy.vocabulary.topic_category
+ - taxonomy.vocabulary.vocab_city_councillors
+ - taxonomy.vocabulary.vocab_votes
module:
- ban
- bos_core
@@ -171,10 +176,14 @@ permissions:
- 'create icon media'
- 'create image media'
- 'create media'
+ - 'create terms in city_council_districts'
- 'create terms in election_areas'
- 'create terms in election_candidates'
- 'create terms in election_contests'
- 'create terms in elections'
+ - 'create terms in project_banner_bh_'
+ - 'create terms in vocab_city_councillors'
+ - 'create terms in vocab_votes'
- 'customize shortcut links'
- 'delete all revisions'
- 'delete any article content'
@@ -197,6 +206,7 @@ permissions:
- 'delete any procurement_advertisement content'
- 'delete any program_initiative_profile content'
- 'delete any public_notice content'
+ - 'delete any roll_call_dockets content'
- 'delete any script_page content'
- 'delete any site_alert content'
- 'delete any status_item content'
@@ -214,6 +224,7 @@ permissions:
- 'delete listing_page revisions'
- 'delete metrolist_affordable_housing revisions'
- 'delete own election_report content'
+ - 'delete own roll_call_dockets content'
- 'delete person_profile revisions'
- 'delete place_profile revisions'
- 'delete post revisions'
@@ -257,11 +268,17 @@ permissions:
- 'edit any election_report content'
- 'edit any icon media'
- 'edit any image media'
+ - 'edit any roll_call_dockets content'
- 'edit own election_report content'
+ - 'edit own roll_call_dockets content'
+ - 'edit terms in city_council_districts'
- 'edit terms in election_areas'
- 'edit terms in election_candidates'
- 'edit terms in election_contests'
- 'edit terms in elections'
+ - 'edit terms in project_banner_bh_'
+ - 'edit terms in vocab_city_councillors'
+ - 'edit terms in vocab_votes'
- 'rabbit hole bypass node'
- 'rabbit hole bypass taxonomy_term'
- 'revert change revisions'
diff --git a/config/default/views.view.roll_call_dockets.yml b/config/default/views.view.roll_call_dockets.yml
new file mode 100644
index 0000000000..8b5b24a3b9
--- /dev/null
+++ b/config/default/views.view.roll_call_dockets.yml
@@ -0,0 +1,1449 @@
+uuid: 3e421274-7aa5-4106-95b5-ee7ceef0ecbc
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.node.roll_call_search
+ - field.storage.node.body
+ - field.storage.node.field_meeting_date
+ - field.storage.paragraph.field_councillor
+ - field.storage.paragraph.field_vote
+ - node.type.roll_call_dockets
+ module:
+ - better_exposed_filters
+ - datetime
+ - dynamic_entity_reference
+ - node
+ - node_rollcall
+ - paragraphs
+ - rest
+ - serialization
+ - taxonomy
+ - text
+ - user
+id: roll_call_dockets
+label: 'Roll Call Dockets'
+module: views
+description: ''
+tag: ''
+base_table: node_field_data
+base_field: nid
+display:
+ default:
+ id: default
+ display_title: Default
+ display_plugin: default
+ position: 0
+ display_options:
+ title: 'Download rollcalls with filters'
+ fields:
+ nid:
+ id: nid
+ table: node_field_data
+ field: nid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: nid
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: number_unformatted
+ settings: { }
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ title:
+ id: title
+ table: node_field_data
+ field: title
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: title
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: false
+ ellipsis: false
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: string
+ settings:
+ link_to_entity: false
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ field_meeting_date:
+ id: field_meeting_date
+ table: node__field_meeting_date
+ field: field_meeting_date
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: unk
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: false
+ click_sort_column: value
+ type: datetime_plain
+ settings:
+ timezone_override: ''
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ body:
+ id: body
+ table: node__body
+ field: body
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: true
+ text: "{{ body__value | replace({'\\r\\n':' ', '\\t':' ', '\\n': ' '}) | replace({' ':' '}) | replace({' ':' '}) }}\r\n"
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: true
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: true
+ trim: false
+ preserve_tags: '
'
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: false
+ click_sort_column: value
+ type: text_default
+ settings: { }
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ field_councillor:
+ id: field_councillor
+ table: paragraph__field_councillor
+ field: field_councillor
+ relationship: field_components
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: target_id
+ type: dynamic_entity_reference_label
+ settings:
+ link: false
+ group_column: entity_id
+ group_columns:
+ entity_id: entity_id
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ field_vote:
+ id: field_vote
+ table: paragraph__field_vote
+ field: field_vote
+ relationship: field_components
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: target_id
+ type: dynamic_entity_reference_label
+ settings:
+ link: false
+ group_column: ''
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ pager:
+ type: mini
+ options:
+ offset: 0
+ items_per_page: 10
+ total_pages: null
+ id: 0
+ tags:
+ next: ››
+ previous: ‹‹
+ expose:
+ items_per_page: false
+ items_per_page_label: 'Items per page'
+ items_per_page_options: '5, 10, 25, 50'
+ items_per_page_options_all: false
+ items_per_page_options_all_label: '- All -'
+ offset: false
+ offset_label: Offset
+ exposed_form:
+ type: basic
+ options:
+ submit_button: Apply
+ reset_button: false
+ reset_button_label: Reset
+ exposed_sorts_label: 'Sort by'
+ expose_sort_order: true
+ sort_asc_label: Asc
+ sort_desc_label: Desc
+ access:
+ type: perm
+ options:
+ perm: 'access content'
+ cache:
+ type: none
+ options: { }
+ empty: { }
+ sorts:
+ field_meeting_date_value:
+ id: field_meeting_date_value
+ table: node__field_meeting_date
+ field: field_meeting_date_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: datetime
+ order: ASC
+ expose:
+ label: ''
+ field_identifier: ''
+ exposed: false
+ granularity: day
+ nid:
+ id: nid
+ table: node_field_revision
+ field: nid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: nid
+ plugin_id: standard
+ order: ASC
+ expose:
+ label: ''
+ field_identifier: ''
+ exposed: false
+ arguments: { }
+ filters:
+ status:
+ id: status
+ table: node_field_data
+ field: status
+ entity_type: node
+ entity_field: status
+ plugin_id: boolean
+ value: '1'
+ group: 1
+ expose:
+ operator: ''
+ type:
+ id: type
+ table: node_field_data
+ field: type
+ entity_type: node
+ entity_field: type
+ plugin_id: bundle
+ value:
+ roll_call_dockets: roll_call_dockets
+ group: 1
+ field_meeting_date_value:
+ id: field_meeting_date_value
+ table: node__field_meeting_date
+ field: field_meeting_date_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: datetime
+ operator: '>'
+ value:
+ min: ''
+ max: ''
+ value: ''
+ type: date
+ group: 2
+ exposed: true
+ expose:
+ operator_id: field_meeting_date_value_op
+ label: 'Meeting Date (field_meeting_date)'
+ description: ''
+ use_operator: false
+ operator: field_meeting_date_value_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: date
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ min_placeholder: ''
+ max_placeholder: ''
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ nid:
+ id: nid
+ table: node_field_data
+ field: nid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: nid
+ plugin_id: numeric
+ operator: '>'
+ value:
+ min: ''
+ max: ''
+ value: ''
+ group: 2
+ exposed: true
+ expose:
+ operator_id: nid_op
+ label: ID
+ description: ''
+ use_operator: false
+ operator: nid_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: nid
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ min_placeholder: ''
+ max_placeholder: ''
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ filter_groups:
+ operator: AND
+ groups:
+ 1: AND
+ 2: OR
+ style:
+ type: serializer
+ row:
+ type: fields
+ options:
+ default_field_elements: true
+ inline: { }
+ separator: ''
+ hide_empty: false
+ query:
+ type: views_query
+ options:
+ query_comment: ''
+ disable_sql_rewrite: false
+ distinct: false
+ replica: false
+ query_tags: { }
+ relationships:
+ field_components:
+ id: field_components
+ table: node__field_components
+ field: field_components
+ relationship: none
+ group_type: group
+ admin_label: 'field_components: Paragraph'
+ plugin_id: standard
+ required: false
+ taxonomy_term__field_councillor:
+ id: taxonomy_term__field_councillor
+ table: paragraph__field_councillor
+ field: taxonomy_term__field_councillor
+ relationship: field_components
+ group_type: group
+ admin_label: 'field_councillor: Taxonomy term'
+ plugin_id: standard
+ required: true
+ taxonomy_term__field_vote:
+ id: taxonomy_term__field_vote
+ table: paragraph__field_vote
+ field: taxonomy_term__field_vote
+ relationship: field_components
+ group_type: group
+ admin_label: 'field_vote: Taxonomy term'
+ plugin_id: standard
+ required: true
+ group_by: false
+ header: { }
+ footer: { }
+ display_extenders: { }
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - request_format
+ - url
+ - url.query_args
+ - 'user.node_grants:view'
+ - user.permissions
+ tags:
+ - 'config:field.storage.node.body'
+ - 'config:field.storage.node.field_meeting_date'
+ - 'config:field.storage.paragraph.field_councillor'
+ - 'config:field.storage.paragraph.field_vote'
+ rest_export_1:
+ id: rest_export_1
+ display_title: 'Rollcall Export API'
+ display_plugin: rest_export
+ position: 1
+ display_options:
+ pager:
+ type: some
+ options:
+ offset: 0
+ items_per_page: 0
+ filters:
+ type:
+ id: type
+ table: node_field_data
+ field: type
+ entity_type: node
+ entity_field: type
+ plugin_id: bundle
+ value:
+ roll_call_dockets: roll_call_dockets
+ group: 1
+ field_meeting_date_value:
+ id: field_meeting_date_value
+ table: node__field_meeting_date
+ field: field_meeting_date_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: datetime
+ operator: '>'
+ value:
+ min: ''
+ max: ''
+ value: ''
+ type: date
+ group: 2
+ exposed: true
+ expose:
+ operator_id: field_meeting_date_value_op
+ label: 'Meeting Date (field_meeting_date)'
+ description: ''
+ use_operator: false
+ operator: field_meeting_date_value_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: date
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ min_placeholder: ''
+ max_placeholder: ''
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ nid:
+ id: nid
+ table: node_field_data
+ field: nid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: nid
+ plugin_id: numeric
+ operator: '>'
+ value:
+ min: ''
+ max: ''
+ value: ''
+ group: 2
+ exposed: true
+ expose:
+ operator_id: nid_op
+ label: ID
+ description: ''
+ use_operator: false
+ operator: nid_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: nid
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ min_placeholder: ''
+ max_placeholder: ''
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ filter_groups:
+ operator: AND
+ groups:
+ 1: AND
+ 2: OR
+ style:
+ type: node_rollcall
+ options:
+ formats:
+ json: json
+ row:
+ type: data_field
+ options:
+ field_options:
+ nid:
+ alias: id
+ raw_output: false
+ title:
+ alias: docket
+ raw_output: false
+ field_meeting_date:
+ alias: date
+ raw_output: false
+ body:
+ alias: subject
+ raw_output: false
+ field_councillor:
+ alias: councillor
+ raw_output: false
+ field_vote:
+ alias: vote
+ raw_output: false
+ query:
+ type: views_query
+ options:
+ query_comment: ''
+ disable_sql_rewrite: true
+ distinct: false
+ replica: false
+ query_tags: { }
+ defaults:
+ query: false
+ filters: false
+ filter_groups: false
+ display_description: ''
+ display_extenders: { }
+ path: rollcall/api/v1
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - request_format
+ - url
+ - 'user.node_grants:view'
+ - user.permissions
+ tags:
+ - 'config:field.storage.node.body'
+ - 'config:field.storage.node.field_meeting_date'
+ - 'config:field.storage.paragraph.field_councillor'
+ - 'config:field.storage.paragraph.field_vote'
+ rollcall_search_block:
+ id: rollcall_search_block
+ display_title: 'Rollcall Search Block'
+ display_plugin: block
+ position: 2
+ display_options:
+ title: ''
+ fields:
+ nid:
+ id: nid
+ table: node_field_data
+ field: nid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: nid
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: number_unformatted
+ settings: { }
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ title:
+ id: title
+ table: node_field_data
+ field: title
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: title
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: false
+ ellipsis: false
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: string
+ settings:
+ link_to_entity: false
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ field_meeting_date:
+ id: field_meeting_date
+ table: node__field_meeting_date
+ field: field_meeting_date
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: unk
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: false
+ click_sort_column: value
+ type: datetime_plain
+ settings:
+ timezone_override: ''
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ body:
+ id: body
+ table: node__body
+ field: body
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: true
+ text: "{{ body__value | replace({'\\r\\n':' ', '\\t':' ', '\\n': ' '}) | replace({' ':' '}) | replace({' ':' '}) }}\r\n"
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: true
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: true
+ trim: false
+ preserve_tags: '
'
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: false
+ click_sort_column: value
+ type: text_default
+ settings: { }
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ pager:
+ type: full
+ options:
+ offset: 0
+ items_per_page: 10
+ total_pages: null
+ id: 0
+ tags:
+ next: ››
+ previous: ‹‹
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: false
+ items_per_page_label: 'Items per page'
+ items_per_page_options: '5, 10, 25, 50'
+ items_per_page_options_all: false
+ items_per_page_options_all_label: '- All -'
+ offset: false
+ offset_label: Offset
+ quantity: 9
+ exposed_form:
+ type: bef
+ options:
+ submit_button: Search
+ reset_button: true
+ reset_button_label: Reset
+ exposed_sorts_label: 'Sort by'
+ expose_sort_order: false
+ sort_asc_label: Asc
+ sort_desc_label: Desc
+ text_input_required: 'Select any filter and click on Apply to see results'
+ text_input_required_format: filtered_html
+ bef:
+ general:
+ autosubmit: false
+ autosubmit_exclude_textfield: false
+ autosubmit_textfield_delay: 500
+ autosubmit_hide: false
+ input_required: false
+ allow_secondary: false
+ secondary_label: 'Advanced options'
+ secondary_open: false
+ reset_button_always_show: false
+ filter:
+ body_value:
+ plugin_id: default
+ advanced:
+ placeholder_text: ''
+ collapsible: false
+ is_secondary: false
+ field_meeting_date_value:
+ plugin_id: bef_datepicker
+ advanced:
+ collapsible: false
+ is_secondary: false
+ empty:
+ area:
+ id: area
+ table: views
+ field: area
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: text
+ empty: true
+ content:
+ value: 'Sorry, no matching dockets found.'
+ format: full_html
+ tokenize: false
+ sorts:
+ field_meeting_date_value:
+ id: field_meeting_date_value
+ table: node__field_meeting_date
+ field: field_meeting_date_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: datetime
+ order: DESC
+ expose:
+ label: ''
+ field_identifier: ''
+ exposed: false
+ granularity: day
+ nid:
+ id: nid
+ table: node_field_revision
+ field: nid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: nid
+ plugin_id: standard
+ order: DESC
+ expose:
+ label: ''
+ field_identifier: ''
+ exposed: false
+ filters:
+ type:
+ id: type
+ table: node_field_data
+ field: type
+ entity_type: node
+ entity_field: type
+ plugin_id: bundle
+ value:
+ roll_call_dockets: roll_call_dockets
+ group: 1
+ field_meeting_date_value:
+ id: field_meeting_date_value
+ table: node__field_meeting_date
+ field: field_meeting_date_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: datetime
+ operator: 'not empty'
+ value:
+ min: ''
+ max: ''
+ value: ''
+ type: date
+ group: 1
+ exposed: false
+ expose:
+ operator_id: field_meeting_date_value_op
+ label: 'Meeting Date'
+ description: ''
+ use_operator: false
+ operator: field_meeting_date_value_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: date
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ min_placeholder: ''
+ max_placeholder: ''
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ body_value:
+ id: body_value
+ table: node__body
+ field: body_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: string
+ operator: allwords
+ value: ''
+ group: 2
+ exposed: true
+ expose:
+ operator_id: body_value_op
+ label: ''
+ description: ''
+ use_operator: false
+ operator: body_value_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: search
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ filter_groups:
+ operator: AND
+ groups:
+ 1: AND
+ 2: OR
+ style:
+ type: default
+ options:
+ row_class: ''
+ default_row_class: false
+ uses_fields: false
+ row:
+ type: 'entity:node'
+ options:
+ relationship: none
+ view_mode: roll_call_search
+ query:
+ type: views_query
+ options:
+ query_comment: ''
+ disable_sql_rewrite: true
+ distinct: true
+ replica: false
+ query_tags: { }
+ defaults:
+ empty: false
+ query: false
+ title: false
+ use_ajax: false
+ show_admin_links: false
+ pager: false
+ exposed_form: false
+ group_by: false
+ style: false
+ row: false
+ relationships: false
+ fields: false
+ sorts: false
+ filters: false
+ filter_groups: false
+ header: false
+ relationships:
+ field_components:
+ id: field_components
+ table: node__field_components
+ field: field_components
+ relationship: none
+ group_type: group
+ admin_label: 'field_components: Paragraph'
+ plugin_id: standard
+ required: true
+ taxonomy_term__field_councillor:
+ id: taxonomy_term__field_councillor
+ table: paragraph__field_councillor
+ field: taxonomy_term__field_councillor
+ relationship: field_components
+ group_type: group
+ admin_label: 'field_councillor: Taxonomy term'
+ plugin_id: standard
+ required: true
+ taxonomy_term__field_vote:
+ id: taxonomy_term__field_vote
+ table: paragraph__field_vote
+ field: taxonomy_term__field_vote
+ relationship: field_components
+ group_type: group
+ admin_label: 'field_vote: Taxonomy term'
+ plugin_id: standard
+ required: true
+ use_ajax: true
+ group_by: true
+ display_description: 'This block is incorporated in a RollCall_Search paragraph'
+ show_admin_links: false
+ header: { }
+ display_extenders: { }
+ block_description: 'Rollcall Search'
+ block_category: Paragraph
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - url
+ - url.query_args
+ - 'user.node_grants:view'
+ - user.permissions
+ tags:
+ - 'config:field.storage.node.body'
+ - 'config:field.storage.node.field_meeting_date'
diff --git a/config/default/views.view.roll_call_taxonomy.yml b/config/default/views.view.roll_call_taxonomy.yml
new file mode 100644
index 0000000000..40618ea290
--- /dev/null
+++ b/config/default/views.view.roll_call_taxonomy.yml
@@ -0,0 +1,1326 @@
+uuid: ec2936d9-f992-4074-b532-48b4be4392c4
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_active
+ - field.storage.taxonomy_term.field_district
+ - field.storage.taxonomy_term.field_email
+ - field.storage.taxonomy_term.field_first_name
+ - taxonomy.vocabulary.city_council_districts
+ - taxonomy.vocabulary.vocab_city_councillors
+ content:
+ - 'taxonomy_term:city_council_districts:e2d2d4cf-313f-4efb-8caf-5e2fc4fb8423'
+ module:
+ - entity_reference_revisions
+ - taxonomy
+ - user
+id: roll_call_taxonomy
+label: 'Roll Call Taxonomy'
+module: views
+description: 'Views for the Roll Call modules'
+tag: ''
+base_table: taxonomy_term_field_data
+base_field: tid
+display:
+ default:
+ id: default
+ display_title: Default
+ display_plugin: default
+ position: 0
+ display_options:
+ fields:
+ name:
+ id: name
+ table: taxonomy_term_field_data
+ field: name
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: name
+ plugin_id: term_name
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: false
+ ellipsis: false
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: string
+ settings:
+ link_to_entity: true
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ convert_spaces: false
+ pager:
+ type: mini
+ options:
+ offset: 0
+ items_per_page: 10
+ total_pages: null
+ id: 0
+ tags:
+ next: ››
+ previous: ‹‹
+ expose:
+ items_per_page: false
+ items_per_page_label: 'Items per page'
+ items_per_page_options: '5, 10, 25, 50'
+ items_per_page_options_all: false
+ items_per_page_options_all_label: '- All -'
+ offset: false
+ offset_label: Offset
+ exposed_form:
+ type: basic
+ options:
+ submit_button: Apply
+ reset_button: false
+ reset_button_label: Reset
+ exposed_sorts_label: 'Sort by'
+ expose_sort_order: true
+ sort_asc_label: Asc
+ sort_desc_label: Desc
+ access:
+ type: perm
+ options:
+ perm: 'access content'
+ cache:
+ type: tag
+ options: { }
+ empty: { }
+ sorts:
+ name:
+ id: name
+ table: taxonomy_term_field_data
+ field: name
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: name
+ plugin_id: standard
+ order: ASC
+ expose:
+ label: Name
+ field_identifier: name
+ exposed: true
+ arguments: { }
+ filters:
+ status:
+ id: status
+ table: taxonomy_term_field_data
+ field: status
+ entity_type: taxonomy_term
+ entity_field: status
+ plugin_id: boolean
+ value: '1'
+ group: 1
+ expose:
+ operator: ''
+ vid:
+ id: vid
+ table: taxonomy_term_field_data
+ field: vid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: vid
+ plugin_id: bundle
+ operator: in
+ value:
+ city_council_districts: city_council_districts
+ group: 1
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ argument: null
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ field_district_target_id:
+ id: field_district_target_id
+ table: taxonomy_term__field_district
+ field: field_district_target_id
+ relationship: reverse__taxonomy_term__field_district
+ group_type: group
+ admin_label: ''
+ plugin_id: taxonomy_index_tid
+ operator: empty
+ value: { }
+ group: 2
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ reduce_duplicates: true
+ vid: city_council_districts
+ type: textfield
+ hierarchy: false
+ limit: true
+ error_message: true
+ field_district_target_id_1:
+ id: field_district_target_id_1
+ table: taxonomy_term__field_district
+ field: field_district_target_id
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: taxonomy_index_tid
+ operator: or
+ value:
+ 41935: 41935
+ group: 2
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ reduce_duplicates: false
+ vid: city_council_districts
+ type: select
+ hierarchy: false
+ limit: true
+ error_message: true
+ filter_groups:
+ operator: AND
+ groups:
+ 1: AND
+ 2: OR
+ style:
+ type: default
+ options:
+ grouping: { }
+ row_class: ''
+ default_row_class: true
+ uses_fields: false
+ row:
+ type: fields
+ options:
+ default_field_elements: true
+ inline: { }
+ separator: ''
+ hide_empty: false
+ query:
+ type: views_query
+ options:
+ query_comment: ''
+ disable_sql_rewrite: false
+ distinct: true
+ replica: false
+ query_tags: { }
+ relationships:
+ reverse__taxonomy_term__field_district:
+ id: reverse__taxonomy_term__field_district
+ table: taxonomy_term_field_data
+ field: reverse__taxonomy_term__field_district
+ relationship: none
+ group_type: group
+ admin_label: field_district
+ entity_type: taxonomy_term
+ plugin_id: entity_reverse
+ required: false
+ header: { }
+ footer: { }
+ display_extenders: { }
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - url.query_args
+ - 'url.query_args:sort_by'
+ - 'url.query_args:sort_order'
+ - user
+ - user.permissions
+ tags: { }
+ page_1:
+ id: page_1
+ display_title: 'City Councillors'
+ display_plugin: page
+ position: 2
+ display_options:
+ title: 'City Councillors'
+ fields:
+ name:
+ id: name
+ table: taxonomy_term_field_data
+ field: name
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: name
+ plugin_id: term_name
+ label: Name
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: false
+ ellipsis: false
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: string
+ settings:
+ link_to_entity: true
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ convert_spaces: false
+ field_first_name:
+ id: field_first_name
+ table: taxonomy_term__field_first_name
+ field: field_first_name
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: 'First Name'
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: true
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: string
+ settings:
+ link_to_entity: false
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ field_district:
+ id: field_district
+ table: taxonomy_term__field_district
+ field: field_district
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: District
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: true
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: target_id
+ type: entity_reference_label
+ settings:
+ link: true
+ group_column: target_id
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ field_email:
+ id: field_email
+ table: taxonomy_term__field_email
+ field: field_email
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: Email
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: true
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: basic_string
+ settings: { }
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ field_active:
+ id: field_active
+ table: taxonomy_term__field_active
+ field: field_active
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: field
+ label: Active
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: true
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: boolean
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ status:
+ id: status
+ table: taxonomy_term_field_data
+ field: status
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: status
+ plugin_id: field
+ label: Published
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: true
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: boolean
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ operations:
+ id: operations
+ table: taxonomy_term_data
+ field: operations
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ plugin_id: entity_operations
+ label: 'Operations links'
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: true
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ destination: false
+ access:
+ type: none
+ options: { }
+ cache:
+ type: none
+ options: { }
+ filters:
+ vid:
+ id: vid
+ table: taxonomy_term_field_data
+ field: vid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: vid
+ plugin_id: bundle
+ operator: in
+ value:
+ vocab_city_councillors: vocab_city_councillors
+ group: 1
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ argument: null
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ name:
+ id: name
+ table: taxonomy_term_field_data
+ field: name
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: name
+ plugin_id: string
+ operator: '='
+ value: ''
+ group: 1
+ exposed: true
+ expose:
+ operator_id: name_op
+ label: Name
+ description: ''
+ use_operator: false
+ operator: name_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: name
+ required: false
+ remember: true
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ field_district_target_id_2:
+ id: field_district_target_id_2
+ table: taxonomy_term__field_district
+ field: field_district_target_id
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: taxonomy_index_tid
+ operator: or
+ value: { }
+ group: 1
+ exposed: true
+ expose:
+ operator_id: field_district_target_id_2_op
+ label: District
+ description: ''
+ use_operator: false
+ operator: field_district_target_id_2_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: field_district_target_id_2
+ required: false
+ remember: true
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ reduce_duplicates: false
+ vid: city_council_districts
+ type: textfield
+ hierarchy: false
+ limit: true
+ error_message: true
+ field_active_value:
+ id: field_active_value
+ table: taxonomy_term__field_active
+ field: field_active_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: boolean
+ operator: '='
+ value: All
+ group: 1
+ exposed: true
+ expose:
+ operator_id: ''
+ label: Active
+ description: ''
+ use_operator: false
+ operator: field_active_value_op
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: field_active_value
+ required: false
+ remember: true
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ anonymous: '0'
+ administrator: '0'
+ site_administrator: '0'
+ developer: '0'
+ content_editor: '0'
+ content_reviewer: '0'
+ content_author: '0'
+ metrolist_editor: '0'
+ election_editor: '0'
+ city_clerk_editor: '0'
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ filter_groups:
+ operator: AND
+ groups:
+ 1: AND
+ style:
+ type: table
+ options:
+ grouping: { }
+ row_class: ''
+ default_row_class: true
+ columns:
+ name: name
+ field_first_name: field_first_name
+ field_district: field_district
+ field_email: field_email
+ field_active: field_active
+ status: status
+ operations: operations
+ default: '-1'
+ info:
+ name:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_first_name:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_district:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_email:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ field_active:
+ sortable: true
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ status:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ operations:
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ override: true
+ sticky: false
+ summary: ''
+ empty_table: false
+ caption: ''
+ description: ''
+ row:
+ type: fields
+ options:
+ default_field_elements: true
+ inline: { }
+ separator: ''
+ hide_empty: false
+ defaults:
+ access: false
+ cache: false
+ title: false
+ use_ajax: false
+ show_admin_links: false
+ style: false
+ row: false
+ fields: false
+ filters: false
+ filter_groups: false
+ use_ajax: true
+ display_description: ''
+ show_admin_links: false
+ display_extenders: { }
+ path: admin/structure/taxonomy/vocab_city_councillors/overview/list
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - url
+ - url.query_args
+ - 'url.query_args:sort_by'
+ - 'url.query_args:sort_order'
+ - user
+ tags:
+ - 'config:field.storage.taxonomy_term.field_active'
+ - 'config:field.storage.taxonomy_term.field_district'
+ - 'config:field.storage.taxonomy_term.field_email'
+ - 'config:field.storage.taxonomy_term.field_first_name'
+ unused_districts_filter:
+ id: unused_districts_filter
+ display_title: 'Unused Districts Filter'
+ display_plugin: entity_reference
+ position: 1
+ display_options:
+ pager:
+ type: none
+ options:
+ offset: 0
+ filters:
+ vid:
+ id: vid
+ table: taxonomy_term_field_data
+ field: vid
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: taxonomy_term
+ entity_field: vid
+ plugin_id: bundle
+ operator: in
+ value:
+ city_council_districts: city_council_districts
+ group: 1
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ argument: null
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ field_district_target_id:
+ id: field_district_target_id
+ table: taxonomy_term__field_district
+ field: field_district_target_id
+ relationship: reverse__taxonomy_term__field_district
+ group_type: group
+ admin_label: ''
+ plugin_id: taxonomy_index_tid
+ operator: empty
+ value: { }
+ group: 2
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ reduce_duplicates: true
+ vid: city_council_districts
+ type: textfield
+ hierarchy: false
+ limit: true
+ error_message: true
+ field_district_target_id_1:
+ id: field_district_target_id_1
+ table: taxonomy_term__field_district
+ field: field_district_target_id
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: taxonomy_index_tid
+ operator: or
+ value:
+ 41935: 41935
+ group: 2
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ reduce: false
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ reduce_duplicates: false
+ vid: city_council_districts
+ type: select
+ hierarchy: false
+ limit: true
+ error_message: true
+ field_active_value:
+ id: field_active_value
+ table: taxonomy_term__field_active
+ field: field_active_value
+ relationship: reverse__taxonomy_term__field_district
+ group_type: group
+ admin_label: ''
+ plugin_id: boolean
+ operator: '='
+ value: '1'
+ group: 1
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ filter_groups:
+ operator: AND
+ groups:
+ 1: AND
+ 2: OR
+ style:
+ type: entity_reference
+ options:
+ search_fields:
+ name: name
+ row:
+ type: entity_reference_revisions
+ options:
+ default_field_elements: false
+ inline:
+ name: name
+ separator: '-'
+ hide_empty: true
+ defaults:
+ filters: false
+ filter_groups: false
+ display_description: ''
+ display_comment: "Note: \r\n1. This query is modified in node_rollcall_views_query_alter() and \r\n2. the results are filtered in node_rollcall_views_post_execute()"
+ display_extenders: { }
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - 'url.query_args:sort_by'
+ - 'url.query_args:sort_order'
+ - user
+ - user.permissions
+ tags: { }
diff --git a/config/default/workflows.workflow.managed_workflow.yml b/config/default/workflows.workflow.managed_workflow.yml
index ed8dcd82d9..699a2b7508 100644
--- a/config/default/workflows.workflow.managed_workflow.yml
+++ b/config/default/workflows.workflow.managed_workflow.yml
@@ -4,6 +4,7 @@ status: true
dependencies:
config:
- node.type.bh_project
+ - node.type.roll_call_dockets
module:
- content_moderation
id: managed_workflow
@@ -57,4 +58,5 @@ type_settings:
entity_types:
node:
- bh_project
+ - roll_call_dockets
default_moderation_state: draft
diff --git a/config/local/key.key.iam_dir_sso_test_.yml b/config/local/key.key.iam_dir_sso_test_.yml
deleted file mode 100644
index 686737e867..0000000000
--- a/config/local/key.key.iam_dir_sso_test_.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-uuid: aff067bc-992a-4e71-bdcb-cccee0a697bc
-langcode: en
-status: true
-dependencies:
- module:
- - key_asymmetric
-id: iam_dir_sso_test_
-label: 'IAM-DIR SSO (test)'
-description: 'TEST Environment X509 cert from IAM supplied IDP metadata'
-key_type: asymmetric_public
-key_type_settings: { }
-key_provider: config
-key_provider_settings:
- key_value: ''
-key_input: textarea_field
-key_input_settings: { }
diff --git a/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf.php b/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf.php
index e1b53c4599..e372ef18c0 100644
--- a/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf.php
+++ b/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf.php
@@ -56,13 +56,14 @@ public function __call($name, $arguments) {
* @throws \Exception
*/
public function generate(string $type, string $year, string $parcel_id): Response {
- $path = \Drupal::service('file_system')->realpath("") . "/";
- $path .= \Drupal::service('extension.list.module')->getPath('bos_assessing');
+// $path = \Drupal::service('file_system')->realpath("") . "/";
+// $path .= \Drupal::service('extension.list.module')->getPath('bos_assessing');
$this->id = $parcel_id;
$this->year = strtoupper($year);
$type = strtolower($type);
$pdf_manager = new PdfManager("Helvetica", "12", [0,0,0]);
+ $path = $pdf_manager->getTemplatePath();
$dbdata = $this->fetchDBData($type);
diff --git a/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf2.php b/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf2.php
index 4078a9e126..53f5b32c4b 100644
--- a/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf2.php
+++ b/docroot/modules/custom/bos_components/modules/bos_assessing/src/Controller/Pdf2.php
@@ -15,13 +15,18 @@ public function generate(string $type, string $year, string $parcel_id): Respons
global $base_url;
- $path = \Drupal::service('file_system')->realpath("") . "/";
- $path .= \Drupal::service('extension.list.module')->getPath('bos_assessing');
+ if (str_contains($base_url, "lndo.site")) {
+ $base_url = "https://boston_appserver_1";
+ }
+
+// $path = \Drupal::service('file_system')->realpath("") . "/";
+// $path .= \Drupal::service('extension.list.module')->getPath('bos_assessing');
$this->id = $parcel_id;
$this->year = strtoupper($year);
$type = strtolower($type);
$pdf_manager = new PdfManager();
+ $path = $pdf_manager->getTemplatePath();
$dbdata = $this->fetchDBData($type);
diff --git a/docroot/modules/custom/bos_components/modules/bos_branded_links/bos_branded_links.module b/docroot/modules/custom/bos_components/modules/bos_branded_links/bos_branded_links.module
index 956f6f96e0..0c684ef7d7 100644
--- a/docroot/modules/custom/bos_components/modules/bos_branded_links/bos_branded_links.module
+++ b/docroot/modules/custom/bos_components/modules/bos_branded_links/bos_branded_links.module
@@ -31,8 +31,9 @@ function bos_branded_links_theme() {
*/
function bos_branded_links_preprocess_paragraph__branded_links__full(&$variables) {
_bos_branded_links_add_classes($variables);
- if ($variables["paragraph"]->bundle() == "branded_links__full" && isset($variables['content']['field_hide_title_bar']['#items'])) {
- $variables['hideTitle'] = $variables['content']['field_hide_title_bar']['#items']->value;
+ $variables['hideTitle'] = FALSE;
+ if (isset($variables['paragraph']->field_hide_title_bar)) {
+ $variables['hideTitle'] = ($variables['paragraph']->field_hide_title_bar->value == 1);
}
}
@@ -42,8 +43,9 @@ function bos_branded_links_preprocess_paragraph__branded_links__full(&$variables
*/
function bos_branded_links_preprocess_paragraph__branded_links__default(&$variables) {
_bos_branded_links_add_classes($variables);
- if ($variables["paragraph"]->bundle() == "branded_links__default" && isset($variables['content']['field_hide_title_bar']['#items'])) {
- $variables['hideTitle'] = $variables['content']['field_hide_title_bar']['#items']->value;
+ $variables['hideTitle'] = FALSE;
+ if (isset($variables['paragraph']->field_hide_title_bar)) {
+ $variables['hideTitle'] = ($variables['paragraph']->field_hide_title_bar->value == 1);
}
}
diff --git a/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/Fpdf.php b/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/Fpdf.php
index 702299bea4..2d0f83363f 100644
--- a/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/Fpdf.php
+++ b/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/Fpdf.php
@@ -132,7 +132,7 @@ public function SetSourceFile($file) {
/**
* @inheritDoc
*/
- public function ImportPage($pageNumber, $box = PageBoundaries::CROP_BOX, $groupXObject = TRUE) {
+ public function ImportPage($pageNumber, $box = PageBoundaries::CROP_BOX, $groupXObject = TRUE, $importExternalLinks = FALSE) {
try {
$a = parent::ImportPage($pageNumber);
}
diff --git a/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/PdfManager.php b/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/PdfManager.php
index 8af43e7987..820e9796d9 100644
--- a/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/PdfManager.php
+++ b/docroot/modules/custom/bos_components/modules/bos_pdfmanager/src/Controller/PdfManager.php
@@ -53,6 +53,8 @@ class PdfManager {
protected string $default_size;
protected array $default_color;
+ protected string $template_path;
+
/**
* @var string (typically timestamp) a unique id for filename generation.
*/
@@ -354,6 +356,26 @@ public function generate_fillable() {
return FALSE;
}
+ /**
+ * Returns the template file location, creates folder if it does not exist.
+ *
+ * @return string
+ */
+ public function getTemplatePath(): string {
+ if (empty($this->template_path)) {
+
+ $this->template_path = \Drupal::service('file_system')
+ ->realpath("public://pdf_templates");
+
+ if (!file_exists($this->template_path)) {
+ mkdir($this->template_path);
+ }
+
+ }
+
+ return $this->template_path ?? "";
+ }
+
/**
* Create a PDF with just a barcode in the desired place on each page.
*
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_form_display.node.bh_update.default.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_form_display.node.bh_update.default.yml
index e25ba0068b..1a12d59bc5 100644
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_form_display.node.bh_update.default.yml
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_form_display.node.bh_update.default.yml
@@ -1,60 +1,376 @@
langcode: en
status: true
dependencies:
- config:
- - field.field.node.bh_update.body
- - node.type.bh_update
- module:
- - path
- - text
+ config:
+ - field.field.node.bh_update.body
+ - field.field.node.bh_update.field_bh_attachment
+ - field.field.node.bh_update.field_bh_banner_status
+ - field.field.node.bh_update.field_bh_boston_based_business
+ - field.field.node.bh_update.field_bh_developer_name
+ - field.field.node.bh_update.field_bh_developer_website
+ - field.field.node.bh_update.field_bh_follower_emails
+ - field.field.node.bh_update.field_bh_headline
+ - field.field.node.bh_update.field_bh_image
+ - field.field.node.bh_update.field_bh_minority_owned_business
+ - field.field.node.bh_update.field_bh_project_images
+ - field.field.node.bh_update.field_bh_project_ref
+ - field.field.node.bh_update.field_bh_project_web_link
+ - field.field.node.bh_update.field_bh_text_updates
+ - field.field.node.bh_update.field_bh_update_posted_date
+ - field.field.node.bh_update.field_bh_update_type_ref
+ - field.field.node.bh_update.field_bh_veteran_owned_business
+ - field.field.node.bh_update.field_bh_women_owned_business
+ - field.field.node.bh_update.field_sf_web_update
+ - image.style.thumbnail
+ - node.type.bh_update
+ module:
+ - content_moderation
+ - datetime
+ - field_group
+ - file
+ - path
+ - publication_date
+ - svg_image
+ - text
+third_party_settings:
+ field_group:
+ group_bh_updates:
+ children:
+ - group_basic_information
+ - group_project
+ - group_developer
+ - group_update
+ - group_demographics
+ label: 'BH Updates'
+ region: content
+ parent_name: ''
+ weight: 0
+ format_type: tabs
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ direction: vertical
+ width_breakpoint: 640
+ group_basic_information:
+ children:
+ - field_sf_web_update
+ - field_bh_update_type_ref
+ - title
+ - field_bh_headline
+ - field_bh_update_posted_date
+ label: 'Basic Information'
+ region: content
+ parent_name: group_bh_updates
+ weight: 0
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
+ group_demographics:
+ children:
+ - field_bh_minority_owned_business
+ - field_bh_women_owned_business
+ - field_bh_veteran_owned_business
+ - field_bh_boston_based_business
+ label: Demographics
+ region: content
+ parent_name: group_bh_updates
+ weight: 4
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
+ group_project:
+ children:
+ - field_bh_project_ref
+ - field_bh_banner_status
+ - body
+ - field_bh_image
+ - field_bh_project_web_link
+ label: Project
+ region: content
+ parent_name: group_bh_updates
+ weight: 1
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
+ group_developer:
+ children:
+ - field_bh_developer_name
+ - field_bh_developer_website
+ label: Developer
+ region: content
+ parent_name: group_bh_updates
+ weight: 2
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
+ group_update:
+ children:
+ - field_bh_text_updates
+ - field_bh_follower_emails
+ - field_bh_attachment
+ - field_bh_project_images
+ label: Update
+ region: content
+ parent_name: group_bh_updates
+ weight: 3
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
id: node.bh_update.default
targetEntityType: node
bundle: bh_update
mode: default
content:
- body:
- type: text_textarea_with_summary
- weight: 31
- settings:
- rows: 9
- summary_rows: 3
- placeholder: ''
- third_party_settings: { }
- created:
- type: datetime_timestamp
- weight: 10
- settings: { }
- third_party_settings: { }
- path:
- type: path
- weight: 30
- settings: { }
- third_party_settings: { }
- promote:
- type: boolean_checkbox
- settings:
- display_label: true
- weight: 15
- third_party_settings: { }
- sticky:
- type: boolean_checkbox
- settings:
- display_label: true
- weight: 16
- third_party_settings: { }
- title:
- type: string_textfield
- weight: -5
- settings:
- size: 60
- placeholder: ''
- third_party_settings: { }
- uid:
- type: entity_reference_autocomplete
- weight: 5
- settings:
- match_operator: CONTAINS
- size: 60
- placeholder: ''
- third_party_settings: { }
+ body:
+ type: text_textarea_with_summary
+ weight: 5
+ region: content
+ settings:
+ rows: 9
+ summary_rows: 3
+ placeholder: ''
+ show_summary: false
+ third_party_settings: { }
+ created:
+ type: datetime_timestamp
+ weight: 3
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_bh_attachment:
+ type: file_generic
+ weight: 11
+ region: content
+ settings:
+ progress_indicator: throbber
+ third_party_settings: { }
+ field_bh_banner_status:
+ type: entity_reference_autocomplete
+ weight: 4
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_boston_based_business:
+ type: boolean_checkbox
+ weight: 7
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_bh_developer_name:
+ type: string_textfield
+ weight: 8
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_developer_website:
+ type: string_textfield
+ weight: 10
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_follower_emails:
+ type: string_textarea
+ weight: 10
+ region: content
+ settings:
+ rows: 5
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_headline:
+ type: text_textfield
+ weight: 6
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_image:
+ type: file_generic
+ weight: 6
+ region: content
+ settings:
+ progress_indicator: throbber
+ third_party_settings: { }
+ field_bh_minority_owned_business:
+ type: boolean_checkbox
+ weight: 3
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_bh_project_images:
+ type: image_image
+ weight: 13
+ region: content
+ settings:
+ progress_indicator: throbber
+ preview_image_style: thumbnail
+ third_party_settings: { }
+ field_bh_project_ref:
+ type: entity_reference_autocomplete
+ weight: 2
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_project_web_link:
+ type: string_textfield
+ weight: 7
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_text_updates:
+ type: string_textarea
+ weight: 9
+ region: content
+ settings:
+ rows: 5
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_update_posted_date:
+ type: datetime_default
+ weight: 8
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_bh_update_type_ref:
+ type: entity_reference_autocomplete
+ weight: 4
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_bh_veteran_owned_business:
+ type: boolean_checkbox
+ weight: 5
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_bh_women_owned_business:
+ type: boolean_checkbox
+ weight: 4
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_sf_web_update:
+ type: boolean_checkbox
+ weight: 3
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ langcode:
+ type: language_select
+ weight: 1
+ region: content
+ settings:
+ include_locked: true
+ third_party_settings: { }
+ moderation_state:
+ type: moderation_state_default
+ weight: 9
+ region: content
+ settings: { }
+ third_party_settings: { }
+ path:
+ type: path
+ weight: 7
+ region: content
+ settings: { }
+ third_party_settings: { }
+ promote:
+ type: boolean_checkbox
+ weight: 5
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ published_at:
+ type: publication_date_timestamp
+ weight: 4
+ region: content
+ settings: { }
+ third_party_settings: { }
+ status:
+ type: boolean_checkbox
+ weight: 10
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ sticky:
+ type: boolean_checkbox
+ weight: 6
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ title:
+ type: string_textfield
+ weight: 5
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ uid:
+ type: entity_reference_autocomplete
+ weight: 2
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ url_redirects:
+ weight: 8
+ region: content
+ settings: { }
+ third_party_settings: { }
hidden: { }
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_form_display.taxonomy_term.project_banner_bh_.default.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_form_display.taxonomy_term.project_banner_bh_.default.yml
new file mode 100644
index 0000000000..8e8b18289c
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_form_display.taxonomy_term.project_banner_bh_.default.yml
@@ -0,0 +1,109 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_text
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_title
+ - field.field.taxonomy_term.project_banner_bh_.field_show_banner
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - field_group
+ - text
+third_party_settings:
+ field_group:
+ group_tabs:
+ children:
+ - group_status
+ - group_banner
+ label: tabs
+ region: content
+ parent_name: ''
+ weight: 0
+ format_type: tabs
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ direction: vertical
+ width_breakpoint: 640
+ group_status:
+ children:
+ - name
+ - field_banner_moderation_state
+ label: Status
+ region: content
+ parent_name: group_tabs
+ weight: 22
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ formatter: open
+ description: ''
+ required_fields: true
+ group_banner:
+ children:
+ - field_show_banner
+ - field_banner_title
+ - field_banner_text
+ label: Banner
+ region: content
+ parent_name: group_tabs
+ weight: 23
+ format_type: tab
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ formatter: closed
+ description: ''
+ required_fields: true
+id: taxonomy_term.project_banner_bh_.default
+targetEntityType: taxonomy_term
+bundle: project_banner_bh_
+mode: default
+content:
+ field_banner_moderation_state:
+ type: options_select
+ weight: 2
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_banner_text:
+ type: text_textfield
+ weight: 8
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_banner_title:
+ type: string_textfield
+ weight: 7
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_show_banner:
+ type: boolean_checkbox
+ weight: 6
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ name:
+ type: string_textfield
+ weight: 1
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ description: true
+ langcode: true
+ path: true
+ status: true
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.default.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.default.yml
index bdeb44f9e0..6901694a12 100644
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.default.yml
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.default.yml
@@ -1,23 +1,478 @@
langcode: en
status: true
dependencies:
- config:
- - field.field.node.bh_update.body
- - node.type.bh_update
- module:
- - text
- - user
+ config:
+ - field.field.node.bh_update.body
+ - field.field.node.bh_update.field_bh_attachment
+ - field.field.node.bh_update.field_bh_banner_status
+ - field.field.node.bh_update.field_bh_boston_based_business
+ - field.field.node.bh_update.field_bh_developer_name
+ - field.field.node.bh_update.field_bh_developer_website
+ - field.field.node.bh_update.field_bh_follower_emails
+ - field.field.node.bh_update.field_bh_headline
+ - field.field.node.bh_update.field_bh_image
+ - field.field.node.bh_update.field_bh_minority_owned_business
+ - field.field.node.bh_update.field_bh_project_images
+ - field.field.node.bh_update.field_bh_project_ref
+ - field.field.node.bh_update.field_bh_project_web_link
+ - field.field.node.bh_update.field_bh_text_updates
+ - field.field.node.bh_update.field_bh_update_posted_date
+ - field.field.node.bh_update.field_bh_update_type_ref
+ - field.field.node.bh_update.field_bh_veteran_owned_business
+ - field.field.node.bh_update.field_bh_women_owned_business
+ - field.field.node.bh_update.field_sf_web_update
+ - image.style.150_embedded_ckeditor
+ - node.type.bh_update
+ module:
+ - datetime
+ - fences
+ - field_group
+ - file
+ - svg_image
+ - text
+ - user
+third_party_settings:
+ field_group:
+ group_wrapper:
+ children:
+ - published_at
+ - field_sf_web_update
+ - field_bh_update_type_ref
+ - field_bh_headline
+ - field_bh_update_posted_date
+ - group_bh_update
+ label: Wrapper
+ parent_name: ''
+ region: content
+ weight: 0
+ format_type: html_element
+ format_settings:
+ classes: m-b300
+ show_empty_fields: true
+ id: ''
+ element: div
+ show_label: false
+ label_element: h3
+ label_element_classes: ''
+ attributes: ''
+ effect: none
+ speed: fast
+ group_bh_update:
+ children:
+ - group_project
+ - group_developer
+ - group_update
+ - group_demographics
+ label: 'BH Update'
+ parent_name: group_wrapper
+ region: content
+ weight: 5
+ format_type: accordion
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ effect: bounceslide
+ group_update:
+ children:
+ - group_text_up
+ - group_documents
+ - group_f
+ - field_bh_project_images
+ label: Update
+ parent_name: group_bh_update
+ region: content
+ weight: 13
+ format_type: accordion_item
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ formatter: closed
+ group_demographics:
+ children:
+ - field_bh_minority_owned_business
+ - field_bh_women_owned_business
+ - field_bh_veteran_owned_business
+ - field_bh_boston_based_business
+ label: Demographics
+ parent_name: group_bh_update
+ region: content
+ weight: 14
+ format_type: accordion_item
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ formatter: closed
+ group_developer:
+ children:
+ - field_bh_developer_name
+ - field_bh_developer_website
+ label: Developer
+ parent_name: group_bh_update
+ region: content
+ weight: 12
+ format_type: accordion_item
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ formatter: closed
+ group_project:
+ children:
+ - field_bh_project_ref
+ - body
+ - field_bh_banner
+ - field_bh_image
+ - field_bh_project_web_link
+ label: Project
+ parent_name: group_bh_update
+ region: content
+ weight: 11
+ format_type: accordion_item
+ format_settings:
+ classes: ''
+ show_empty_fields: true
+ id: ''
+ formatter: closed
+ description: ''
+ group_f:
+ children:
+ - field_bh_follower_emails
+ label: 'Follower emails'
+ parent_name: group_update
+ region: content
+ weight: 26
+ format_type: fieldset
+ format_settings:
+ classes: m-v300
+ show_empty_fields: false
+ id: ''
+ description: ''
+ group_documents:
+ children:
+ - field_bh_attachment
+ label: Documents
+ parent_name: group_update
+ region: content
+ weight: 25
+ format_type: fieldset
+ format_settings:
+ classes: 'm-v300 ta--l'
+ show_empty_fields: false
+ id: ''
+ description: ''
+ group_text_up:
+ children:
+ - field_bh_text_updates
+ label: 'Text Updates'
+ parent_name: group_update
+ region: content
+ weight: 24
+ format_type: fieldset
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ description: ''
id: node.bh_update.default
targetEntityType: node
bundle: bh_update
mode: default
content:
- body:
- label: hidden
- type: text_default
- weight: 101
- settings: { }
- third_party_settings: { }
- links:
- weight: 100
-hidden: { }
+ body:
+ type: text_default
+ label: above
+ settings: { }
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 12
+ region: content
+ field_bh_attachment:
+ type: file_table
+ label: hidden
+ settings:
+ use_description_as_link_text: false
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 11
+ region: content
+ field_bh_boston_based_business:
+ type: boolean
+ label: above
+ settings:
+ format: yes-no
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: span
+ fences_label_classes: ''
+ weight: 25
+ region: content
+ field_bh_developer_name:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 8
+ region: content
+ field_bh_developer_website:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 9
+ region: content
+ field_bh_follower_emails:
+ type: basic_string
+ label: hidden
+ settings: { }
+ third_party_settings:
+ fences:
+ fences_field_tag: ul
+ fences_field_classes: 'm-b300 ul m-v100'
+ fences_field_item_tag: li
+ fences_field_item_classes: t--b
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 14
+ region: content
+ field_bh_headline:
+ type: text_default
+ label: above
+ settings: { }
+ third_party_settings: { }
+ weight: 3
+ region: content
+ field_bh_image:
+ type: file_default
+ label: above
+ settings:
+ use_description_as_link_text: true
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 14
+ region: content
+ field_bh_minority_owned_business:
+ type: boolean
+ label: above
+ settings:
+ format: yes-no
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 21
+ region: content
+ field_bh_project_images:
+ type: image
+ label: above
+ settings:
+ image_link: ''
+ image_style: 150_embedded_ckeditor
+ image_loading:
+ attribute: lazy
+ svg_attributes:
+ width: null
+ height: null
+ svg_render_as_image: true
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 27
+ region: content
+ field_bh_project_ref:
+ type: entity_reference_label
+ label: above
+ settings:
+ link: true
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 11
+ region: content
+ field_bh_project_web_link:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 15
+ region: content
+ field_bh_text_updates:
+ type: basic_string
+ label: hidden
+ settings: { }
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: code
+ fences_field_item_classes: 'lo-t m-b200'
+ fences_label_tag: none
+ fences_label_classes: ''
+ weight: 10
+ region: content
+ field_bh_update_posted_date:
+ type: datetime_default
+ label: above
+ settings:
+ timezone_override: ''
+ format_type: medium
+ third_party_settings: { }
+ weight: 4
+ region: content
+ field_bh_update_type_ref:
+ type: entity_reference_label
+ label: above
+ settings:
+ link: false
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: ''
+ fences_field_item_tag: div
+ fences_field_item_classes: ''
+ fences_label_tag: div
+ fences_label_classes: ''
+ weight: 2
+ region: content
+ field_bh_veteran_owned_business:
+ type: boolean
+ label: above
+ settings:
+ format: yes-no
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: span
+ fences_label_classes: ''
+ weight: 24
+ region: content
+ field_bh_women_owned_business:
+ type: boolean
+ label: above
+ settings:
+ format: yes-no
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-b300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: span
+ fences_label_classes: ''
+ weight: 22
+ region: content
+ field_sf_web_update:
+ type: boolean
+ label: above
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings: { }
+ weight: 1
+ region: content
+ published_at:
+ type: timestamp
+ label: above
+ settings:
+ date_format: medium
+ custom_date_format: ''
+ timezone: ''
+ tooltip:
+ date_format: long
+ custom_date_format: ''
+ time_diff:
+ enabled: false
+ future_format: '@interval hence'
+ past_format: '@interval ago'
+ granularity: 2
+ refresh: 60
+ third_party_settings:
+ fences:
+ fences_field_tag: div
+ fences_field_classes: m-t300
+ fences_field_item_tag: none
+ fences_field_item_classes: ''
+ fences_label_tag: span
+ fences_label_classes: ''
+ weight: 0
+ region: content
+hidden:
+ field_bh_banner_status: true
+ langcode: true
+ links: true
+ salesforce_id: true
+ salesforce_last_sync: true
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.teaser.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.teaser.yml
index e7b7ba5c83..a45664f9d1 100644
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.teaser.yml
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.node.bh_update.teaser.yml
@@ -1,25 +1,75 @@
langcode: en
status: true
dependencies:
- config:
- - core.entity_view_mode.node.teaser
- - field.field.node.bh_update.body
- - node.type.bh_update
- module:
- - text
- - user
+ config:
+ - core.entity_view_mode.node.teaser
+ - field.field.node.bh_update.body
+ - field.field.node.bh_update.field_bh_attachment
+ - field.field.node.bh_update.field_bh_banner_status
+ - field.field.node.bh_update.field_bh_boston_based_business
+ - field.field.node.bh_update.field_bh_developer_name
+ - field.field.node.bh_update.field_bh_developer_website
+ - field.field.node.bh_update.field_bh_follower_emails
+ - field.field.node.bh_update.field_bh_headline
+ - field.field.node.bh_update.field_bh_image
+ - field.field.node.bh_update.field_bh_minority_owned_business
+ - field.field.node.bh_update.field_bh_project_images
+ - field.field.node.bh_update.field_bh_project_ref
+ - field.field.node.bh_update.field_bh_project_web_link
+ - field.field.node.bh_update.field_bh_text_updates
+ - field.field.node.bh_update.field_bh_update_posted_date
+ - field.field.node.bh_update.field_bh_update_type_ref
+ - field.field.node.bh_update.field_bh_veteran_owned_business
+ - field.field.node.bh_update.field_bh_women_owned_business
+ - field.field.node.bh_update.field_sf_web_update
+ - node.type.bh_update
+ module:
+ - text
+ - user
id: node.bh_update.teaser
targetEntityType: node
bundle: bh_update
mode: teaser
content:
- body:
- label: hidden
- type: text_summary_or_trimmed
- weight: 101
- settings:
- trim_length: 600
- third_party_settings: { }
- links:
- weight: 100
-hidden: { }
+ body:
+ type: text_summary_or_trimmed
+ label: hidden
+ settings:
+ trim_length: 600
+ third_party_settings: { }
+ weight: 101
+ region: content
+ links:
+ weight: 100
+ region: content
+ salesforce_id:
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+ salesforce_last_sync:
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ field_bh_attachment: true
+ field_bh_banner_status: true
+ field_bh_boston_based_business: true
+ field_bh_developer_name: true
+ field_bh_developer_website: true
+ field_bh_follower_emails: true
+ field_bh_headline: true
+ field_bh_image: true
+ field_bh_minority_owned_business: true
+ field_bh_project_images: true
+ field_bh_project_ref: true
+ field_bh_project_web_link: true
+ field_bh_text_updates: true
+ field_bh_update_posted_date: true
+ field_bh_update_type_ref: true
+ field_bh_veteran_owned_business: true
+ field_bh_women_owned_business: true
+ field_sf_web_update: true
+ langcode: true
+ published_at: true
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.taxonomy_term.project_banner_bh_.default.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.taxonomy_term.project_banner_bh_.default.yml
new file mode 100644
index 0000000000..d7df0567b3
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/core.entity_view_display.taxonomy_term.project_banner_bh_.default.yml
@@ -0,0 +1,58 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_text
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_title
+ - field.field.taxonomy_term.project_banner_bh_.field_show_banner
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - options
+ - text
+id: taxonomy_term.project_banner_bh_.default
+targetEntityType: taxonomy_term
+bundle: project_banner_bh_
+mode: default
+content:
+ description:
+ type: text_default
+ label: hidden
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+ field_banner_moderation_state:
+ type: list_default
+ label: above
+ settings: { }
+ third_party_settings: { }
+ weight: 3
+ region: content
+ field_banner_text:
+ type: text_default
+ label: above
+ settings: { }
+ third_party_settings: { }
+ weight: 2
+ region: content
+ field_banner_title:
+ type: string
+ label: above
+ settings:
+ link_to_entity: false
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_show_banner:
+ type: boolean
+ label: above
+ settings:
+ format: default
+ format_custom_false: ''
+ format_custom_true: ''
+ third_party_settings: { }
+ weight: 4
+ region: content
+hidden:
+ langcode: true
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.node.bh_update.field_bh_banner_status.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.node.bh_update.field_bh_banner_status.yml
new file mode 100644
index 0000000000..349e765a9a
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.node.bh_update.field_bh_banner_status.yml
@@ -0,0 +1,32 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_bh_banner_status
+ - node.type.bh_update
+ - taxonomy.vocabulary.project_banner_bh_
+ content:
+ - 'taxonomy_term:project_banner_bh_:058f00a5-9cd5-46ba-a75a-208d0fd9f97f'
+id: node.bh_update.field_bh_banner_status
+field_name: field_bh_banner_status
+entity_type: node
+bundle: bh_update
+label: 'Banner Status'
+description: ''
+required: false
+translatable: false
+default_value:
+ -
+ target_uuid: 058f00a5-9cd5-46ba-a75a-208d0fd9f97f
+default_value_callback: ''
+settings:
+ handler: 'default:taxonomy_term'
+ handler_settings:
+ target_bundles:
+ project_banner_bh_: project_banner_bh_
+ sort:
+ field: name
+ direction: asc
+ auto_create: false
+ auto_create_bundle: ''
+field_type: entity_reference
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state.yml
new file mode 100644
index 0000000000..6dba4806db
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_banner_moderation_state
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - options
+id: taxonomy_term.project_banner_bh_.field_banner_moderation_state
+field_name: field_banner_moderation_state
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Moderation State'
+description: ''
+required: false
+translatable: false
+default_value:
+ -
+ value: Published
+default_value_callback: ''
+settings: { }
+field_type: list_string
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_text.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_text.yml
new file mode 100644
index 0000000000..3f36e0aea9
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_text.yml
@@ -0,0 +1,23 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_banner_text
+ - filter.format.filtered_html
+ - taxonomy.vocabulary.project_banner_bh_
+ module:
+ - text
+id: taxonomy_term.project_banner_bh_.field_banner_text
+field_name: field_banner_text
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Banner Text'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ allowed_formats:
+ - filtered_html
+field_type: text
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_title.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_title.yml
new file mode 100644
index 0000000000..8c91026f07
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_banner_title.yml
@@ -0,0 +1,18 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_banner_title
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_term.project_banner_bh_.field_banner_title
+field_name: field_banner_title
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Banner Title'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_show_banner.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_show_banner.yml
new file mode 100644
index 0000000000..4d691c807d
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.field.taxonomy_term.project_banner_bh_.field_show_banner.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.taxonomy_term.field_show_banner
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_term.project_banner_bh_.field_show_banner
+field_name: field_show_banner
+entity_type: taxonomy_term
+bundle: project_banner_bh_
+label: 'Show Banner'
+description: 'When selected, a banner will be shown on the Project homepage'
+required: false
+translatable: false
+default_value:
+ -
+ value: 1
+default_value_callback: ''
+settings:
+ on_label: Show
+ off_label: Hide
+field_type: boolean
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.node.field_bh_banner_status.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.node.field_bh_banner_status.yml
new file mode 100644
index 0000000000..1ff2f259a3
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.node.field_bh_banner_status.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+ - taxonomy
+id: node.field_bh_banner_status
+field_name: field_bh_banner_status
+entity_type: node
+type: entity_reference
+settings:
+ target_type: taxonomy_term
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_moderation_state.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_moderation_state.yml
new file mode 100644
index 0000000000..3a2315ae6a
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_moderation_state.yml
@@ -0,0 +1,29 @@
+langcode: en
+status: true
+dependencies:
+ module:
+ - options
+ - taxonomy
+id: taxonomy_term.field_banner_moderation_state
+field_name: field_banner_moderation_state
+entity_type: taxonomy_term
+type: list_string
+settings:
+ allowed_values:
+ -
+ value: Draft
+ label: Draft
+ -
+ value: Published
+ label: Published
+ -
+ value: Archived
+ label: Archived
+ allowed_values_function: ''
+module: options
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_text.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_text.yml
new file mode 100644
index 0000000000..b55a576fd5
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_text.yml
@@ -0,0 +1,19 @@
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+ - text
+id: taxonomy_term.field_banner_text
+field_name: field_banner_text
+entity_type: taxonomy_term
+type: text
+settings:
+ max_length: 255
+module: text
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_title.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_title.yml
new file mode 100644
index 0000000000..590f5239a4
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_banner_title.yml
@@ -0,0 +1,20 @@
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_banner_title
+field_name: field_banner_title
+entity_type: taxonomy_term
+type: string
+settings:
+ max_length: 255
+ case_sensitive: false
+ is_ascii: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_show_banner.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_show_banner.yml
new file mode 100644
index 0000000000..e32727a1f5
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/field.storage.taxonomy_term.field_show_banner.yml
@@ -0,0 +1,17 @@
+langcode: en
+status: true
+dependencies:
+ module:
+ - taxonomy
+id: taxonomy_term.field_show_banner
+field_name: field_show_banner
+entity_type: taxonomy_term
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/language.content_settings.taxonomy_term.project_banner_bh_.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/language.content_settings.taxonomy_term.project_banner_bh_.yml
new file mode 100644
index 0000000000..c4a2148745
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/language.content_settings.taxonomy_term.project_banner_bh_.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_term.project_banner_bh_
+target_entity_type_id: taxonomy_term
+target_bundle: project_banner_bh_
+default_langcode: site_default
+language_alterable: false
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/rabbit_hole.behavior_settings.taxonomy_vocabulary_project_banner_bh_.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/rabbit_hole.behavior_settings.taxonomy_vocabulary_project_banner_bh_.yml
new file mode 100644
index 0000000000..8d42f751c1
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/rabbit_hole.behavior_settings.taxonomy_vocabulary_project_banner_bh_.yml
@@ -0,0 +1,13 @@
+langcode: en
+status: true
+dependencies:
+ config:
+ - taxonomy.vocabulary.project_banner_bh_
+id: taxonomy_vocabulary_project_banner_bh_
+entity_type_id: taxonomy_vocabulary
+entity_id: project_banner_bh_
+action: page_not_found
+allow_override: 0
+redirect: ''
+redirect_code: 301
+redirect_fallback_action: access_denied
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/taxonomy.vocabulary.project_banner_bh_.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/taxonomy.vocabulary.project_banner_bh_.yml
new file mode 100644
index 0000000000..477bf43cde
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/config/install/taxonomy.vocabulary.project_banner_bh_.yml
@@ -0,0 +1,7 @@
+langcode: en
+status: true
+dependencies: { }
+name: 'Project Banner (BH)'
+vid: project_banner_bh_
+description: "Controls the Property's visibility and banner on boston.gov."
+weight: 0
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/css/node_bh_project.css b/docroot/modules/custom/bos_content/modules/node_buildinghousing/css/node_bh_project.css
index b77695266b..60d644056b 100644
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/css/node_bh_project.css
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/css/node_bh_project.css
@@ -1024,3 +1024,24 @@
.co-t:after {
filter: brightness(1) sepia(293) hue-rotate(100deg) saturate(1470);
}
+
+/* DIG-1055 2023 */
+
+#bh-project-banner-slash:after {
+ content: "/";
+}
+
+#bh-project-banner-description,
+#bh-project-banner-title {
+ font-size: 150%;
+}
+
+#bh-project-banner-wrapper {
+ position: absolute;
+ z-index:10;
+}
+#bh-project-banner {
+ margin-top: 100px;
+ position: relative;
+ opacity: 0.90;
+}
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/drush.services.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/drush.services.yml
new file mode 100644
index 0000000000..2e7452ec25
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/drush.services.yml
@@ -0,0 +1,5 @@
+services:
+ node_buildinghousing.commands:
+ class: Drupal\node_buildinghousing\Commands\BHCommands
+ tags:
+ - { name: drush.command }
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.info.yml b/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.info.yml
index 2d2b6c005b..825d258ed8 100644
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.info.yml
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.info.yml
@@ -5,3 +5,22 @@ core_version_requirement: ^8 || ^9 || ^10
package: 'Custom'
dependencies:
- salesforce
+config_devel:
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_text
+ - field.storage.taxonomy_term.field_banner_text
+ - field.storage.taxonomy_term.field_banner_moderation_state
+ - field.storage.taxonomy_term.field_banner_title
+ - field.storage.taxonomy_term.field_show_banner
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_moderation_state
+ - field.field.taxonomy_term.project_banner_bh_.field_banner_title
+ - field.field.taxonomy_term.project_banner_bh_.field_show_banner
+ - core.entity_form_display.taxonomy_term.project_banner_bh_.default
+ - core.entity_view_display.taxonomy_term.project_banner_bh_.default
+ - language.content_settings.taxonomy_term.project_banner_bh_
+ - rabbit_hole.behavior_settings.taxonomy_vocabulary_project_banner_bh_
+ - taxonomy.vocabulary.project_banner_bh_
+ - field.storage.node.field_bh_banner_status
+ - core.entity_form_display.node.bh_update.default
+ - core.entity_view_display.node.bh_update.teaser
+ - field.field.node.bh_update.field_bh_banner_status
+ - core.entity_view_display.node.bh_update.default
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.module b/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.module
index afd6cdff43..c11228e472 100644
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.module
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/node_buildinghousing.module
@@ -6,8 +6,6 @@
*
*/
-use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException;
-use Drupal\Component\Plugin\Exception\PluginNotFoundException;
use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Routing\RouteMatchInterface;
@@ -16,6 +14,7 @@ use Drupal\node_buildinghousing\BuildingHousingUtils as BHUtils;
use Drupal\taxonomy\Entity\Term;
use Drupal\views\ViewExecutable;
use Drupal\node_buildinghousing\BuildingHousingUtils;
+use \Drupal\Core\Render\Markup;
/**
* Implements hook_help().
@@ -50,6 +49,16 @@ function node_buildinghousing_theme() {
"bgColor" => '#091f2f',
],
],
+ 'bh_project_banner' => [
+ 'template' => 'snippets/bh-project-banner',
+ 'variables' => [
+ "icon" => null,
+ "showBanner" => FALSE,
+ "title" => t("Inactive"),
+ "text" => t("This project is inactive"),
+ "slash" => '/',
+ ],
+ ],
'bh_project_manager_contact' => [
'template' => 'snippets/bh-project-manager-contact',
'variables' => [
@@ -237,6 +246,11 @@ function node_buildinghousing_entity_presave(EntityInterface $entity) {
case 'bh_update':
$bhUtils->setProjectWebLink($entity);
+ if ($entity->hasField("field_bh_banner_status")
+ && isset($entity->field_bh_banner_status->target_id)
+ && isset($entity->field_bh_project_ref->target_id)) {
+ $bhUtils->setProjectModerationState($entity);
+ }
break;
case 'bh_meeting':
@@ -401,6 +415,12 @@ function node_buildinghousing_entity_extra_field_info() {
'visible' => TRUE,
];
+ $extraFields['node'][$bundle->id()]['display']['bh_project_banner'] = [
+ 'label' => t('Building Housing Project Status Banner'),
+ 'weight' => 100,
+ 'visible' => TRUE,
+ ];
+
}
}
@@ -425,6 +445,7 @@ function node_buildinghousing_entity_extra_field_info() {
function node_buildinghousing_entity_view(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, string $view_mode) {
$projectIsActive = TRUE;
+
if ($entity->field_bh_public_stage && $entity->field_bh_public_stage->referencedEntities()) {
$publicStageTerm = $entity->field_bh_public_stage->referencedEntities()[0]->getName() ?? NULL;
@@ -440,7 +461,6 @@ function node_buildinghousing_entity_view(array &$build, EntityInterface $entity
if ($display->getComponent('bh_project_manager_contact')) {
$build['bh_project_manager_contact'] = _node_buildinghousing_build_render_project_manager_contact($entity);
-
}
if ($display->getComponent('bh_project_meeting_notice') && $projectIsActive) {
@@ -470,6 +490,9 @@ function node_buildinghousing_entity_view(array &$build, EntityInterface $entity
$build['bh_project_developer_info'] = _node_buildinghousing_build_render_developer_info($entity);
}
+ if ($display->getComponent('bh_project_banner')){
+ $build['bh_project_banner'] = _node_buildinghousing_build_render_project_banner($entity);
+ }
if ($display->getComponent('field_bh_project_images')) {
@@ -580,7 +603,6 @@ function node_buildinghousing_entity_view(array &$build, EntityInterface $entity
$test = 'test';
}
-
}
/**
@@ -595,6 +617,31 @@ function node_buildinghousing_preprocess(&$variables, $hook) {
}
}
+function _node_buildinghousing_build_render_project_banner(EntityInterface $entity) {
+ $vars['showBanner'] = FALSE;
+ if ($webUpdate = BHUtils::getWebUpdate($entity)) {
+ if ($webUpdate->hasField("field_bh_banner_status") && $tid = $webUpdate->field_bh_banner_status->target_id) {
+ if ($banner = BHUtils::findBannerTaxonomy($tid)) {
+ if (!empty($banner["term"]->field_show_banner)) {
+ $vars['showBanner'] = ($banner["term"]->field_show_banner->value === "1");
+ }
+ if (!empty($banner["term"]->field_banner_title)) {
+ $vars['title'] = $banner["term"]->field_banner_title->value;
+ }
+ if (!empty($banner["term"]->field_banner_text)) {
+ $vars['text'] = $banner["term"]->field_banner_text->value;
+ }
+ if (empty($vars['title']) && empty($vars['text']) && $vars['showBanner']) {
+ $vars['title'] = $banner["name"];
+ }
+ $vars['slash'] = $vars['title'] && $vars['text'];
+ return ['#markup' => \Drupal::theme()->render("bh_project_banner", $vars)];
+ }
+ }
+ }
+
+}
+
/**
* Helper function to render project meeting notices.
*
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/BuildingHousingUtils.php b/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/BuildingHousingUtils.php
index b68f119986..44f6d4fd51 100644
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/BuildingHousingUtils.php
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/BuildingHousingUtils.php
@@ -8,6 +8,7 @@
use Drupal\Core\ProxyClass\Lock\DatabaseLockBackend;
use Drupal\file\Plugin\Field\FieldType\FileFieldItemList;
use Drupal\file_entity\Entity\FileEntity;
+use Drupal\node_buildinghousing\Commands\BHCommands;
use Drupal\node_buildinghousing\Form\SalesforceSyncSettings;
use Drupal\salesforce\Exception;
use Drupal\taxonomy\Entity\Term;
@@ -24,7 +25,6 @@ class BuildingHousingUtils {
*/
public $publicStage = NULL;
-
/**
* Project Entity.
*
@@ -1347,4 +1347,190 @@ public static function hasEntityViolations(&$entity, $fix = FALSE) {
return $count != 0;
}
+ /**
+ * Fetch an array of $nids for entities which have a mapping for a SFID.
+ *
+ * @param string $sfid The salesforceID to search salesforce entity maps for.
+ *
+ * @return array|bool key=entityId, value=entityRevisionId FALSE if no mapped entity found.
+ */
+ public static function findEntityIdBySFID(string $sfid, string $type = NULL): array|bool {
+
+ try {
+ $nids = \Drupal::database()
+ ->select('salesforce_mapped_object', 'sfo')
+ ->fields('sfo', ['drupal_entity__target_id'])
+ ->condition('salesforce_id', $sfid, '=')
+ ->execute()
+ ->fetchAll();
+
+ // Filter for the desired type.
+ if ($type) {
+ $new = [];
+ foreach ($nids as $nid) {
+ $nodes = \Drupal::entityTypeManager()->getStorage("node");
+ if (($entity = $nodes->load($nid->drupal_entity__target_id))
+ && $entity->getType() == $type) {
+ $new[] = $nid;
+ }
+ }
+ $nids = $new;
+ }
+
+ return $nids;
+ }
+ catch (\Exception $e) {
+ \Drupal::logger("building_housing")->error("{In BuildingHousingUtils.findEntityIdBySFID({$sfid}): $e->getMessage()}");
+ return FALSE;
+ }
+
+ }
+
+ /**
+ * Fetch the SFID mapped to an entity.
+ *
+ * @param string|int|EntityInterface $nid The entity nid.
+ *
+ * @return string|bool SFID or FALSE if no mapped entity found.
+ */
+ public static function findMappedSFIDForEntity(int|string|EntityInterface $nid): string|bool {
+
+ try {
+
+ if (!is_string($nid) && !is_numeric($nid)) {
+ if (!empty($nid->getEntityTypeId()) && $nid->getEntityTypeId() == "node") {
+ $nid = $nid->id();
+ }
+ else {
+ return FALSE;
+ }
+ }
+
+ $sfids = \Drupal::database()
+ ->select('salesforce_mapped_object', 'sfo')
+ ->fields('sfo', ['salesforce_id'])
+ ->condition('drupal_entity__target_id', $nid, '=')
+ ->execute()
+ ->fetchAll();
+ $sfids = array_reverse($sfids);
+ $sfid = array_pop($sfids);
+ return $sfid->salesforce_id;
+
+ }
+ catch (\Exception $e) {
+ \Drupal::logger("building_housing")->error("{In BuildingHousingUtils.findMappedSFIDForEntity({$nid}): $e->getMessage()}");
+ return FALSE;
+ }
+
+ }
+
+ /**
+ * @param \Drupal\Core\Entity\EntityInterface $entity
+ * @param string $state
+ *
+ * @return bool TRUE if updated, FALSE if not
+ */
+ public function setProjectModerationState(EntityInterface &$entity): bool {
+
+ if ($state = $this->findBannerTaxonomy($entity->field_bh_banner_status->target_id)) {
+
+ // Now update the project (controls whether project homepage is visible).
+ if ($project_nid = $entity->field_bh_project_ref->target_id) {
+ if ($project = \Drupal::entityTypeManager()->getStorage("node")->load($project_nid)) {
+ if (empty($project->get("moderation_state")->value)
+ || strtolower($project->get("moderation_state")->value) != strtolower($state["mod_state"])) {
+ $project->set("moderation_state", strtolower($state["mod_state"]));
+ $project->setNewRevision(TRUE);
+ try {
+ $project->save();
+ }
+ catch(\Exception $e) {
+ return FALSE;
+ }
+ }
+ return TRUE;
+ }
+ }
+
+ }
+
+ return FALSE;
+
+ }
+
+ /**
+ * Find the requested tid (assumes project_banner_bh_ vocab)
+ *
+ * @param $tid Taxonomy Id (aka target id on parent entity)
+ *
+ * @return array|bool
+ */
+ public static function findBannerTaxonomy($tid):array|bool {
+ if (!$term = Term::load($tid)) {
+ return FALSE;
+ }
+ return [
+ "name" => $term->getName(),
+ "tid" => $tid,
+ "mod_state" => $term->field_banner_moderation_state->value,
+ "show_banner" => $term->field_show_banner->value,
+ "term" => $term
+ ];
+ }
+
+ /**
+ * Find the requested term (assumes project_banner_bh_ vocab) by its name
+ *
+ * @param $name String
+ *
+ * @return array|bool
+ */
+ public static function findBannerTaxonomyByName(string $name):array|bool {
+ if (!$term = \Drupal::entityTypeManager()
+ ->getStorage('taxonomy_term')
+ ->loadByProperties(['name' => $name, "vid" => "project_banner_bh_"])) {
+ return FALSE;
+ }
+ $term = reset($term);
+ return [
+ "tid" => $term->id(),
+ "name" => $name,
+ "mod_state" => $term->field_banner_moderation_state->value,
+ "show_banner" => $term->field_show_banner->value,
+ "term" => $term
+ ];
+ }
+
+ /**
+ * Checks if a supplied state exists in project_banner_bh_ taxonomy.
+ *
+ * @param $state the state to check.
+ *
+ * @return bool
+ * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
+ * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
+ */
+ public static function isAllowedState($state):bool {
+ return in_array(strtolower($state), self::getAllowedStates());
+ }
+
+ /**
+ * Returns an array of $tid=>$name pairs for project_banner_bh_ taxonomy.
+ *
+ * @param $state
+ *
+ * @return array|bool
+ * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
+ * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
+ */
+ public static function getAllowedStates(): array|bool {
+ $output = [];
+ foreach(\Drupal::entityTypeManager()
+ ->getStorage('taxonomy_term')
+ ->loadTree('project_banner_bh_') ?? [] as $term) {
+ $output[$term->tid] = strtolower($term->name);
+ };
+ return $output;
+ }
+
}
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/Commands/BHCommands.php b/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/Commands/BHCommands.php
new file mode 100644
index 0000000000..7b318e9f7f
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/Commands/BHCommands.php
@@ -0,0 +1,236 @@
+NULL, 'state'=>'active', 'filepath'=>NULL]): void {
+
+ // Determine the request type and validate
+ if ($options["sfid"]) {
+ $data = explode(",", $options["sfid"]);
+ if ($options["state"]) {
+ $state = strtolower($options["state"]);
+ if (!BuildingHousingUtils::isAllowedState($state)) {
+ $allowed_states = implode(", ", BuildingHousingUtils::getAllowedStates());
+ $this->output()->writeln("[ERROR] State {$state} must be one of '{$allowed_states}'.");
+ return;
+ }
+ }
+ }
+
+ if ($options["filepath"]) {
+ $filepath = $options["filepath"];
+ if (!file_exists($filepath)) {
+ $this->output()->writeln("[ERROR] Cannot open file at {$filepath}");
+ return;
+ }
+ }
+
+ if (!empty($options["sfid"]) && !empty($options["filepath"])) {
+ $this->output()->writeln("[ERROR] Cannot provide both sfid and filepath !");
+ return;
+ }
+ elseif (empty($options["sfid"]) && empty($options["filepath"])) {
+ $this->output()->writeln("[ERROR] Need to provide either sfid or filepath");
+ return;
+ }
+
+ $results = [[], [], []];
+
+ if (!empty($data)) {
+
+ // Process the supplied sfid's.
+ foreach($data as $sfid) {
+
+ $sfid = trim($sfid);
+ $result = $this->updateNode($sfid, $state, TRUE);
+ $results[$result][] = $sfid;
+
+ }
+
+ }
+
+ elseif (!empty($filepath)) {
+
+ // Process the file.
+ $data = file_get_contents($filepath);
+
+ foreach($data as $record) {
+
+ // Check the record has state
+ if (empty($record["state"])) {
+ $record["state"] = "active";
+ }
+
+ // Check the record has a valid state
+ if (!BuildingHousingUtils::isAllowedState($record["state"])) {
+ $allowed_states = implode(", ", BuildingHousingUtils::getAllowedStates());
+ $this->output()->writeln("[WARNING] State for {$record["sfid"]} cannot be {$record["state"]}, it must be one of '{$allowed_states}'.");
+ $results[0][] = $record["sfid"];
+ continue;
+ }
+
+ // Update the Drupal record.
+ $result = $this->updateNode($record["sfid"], $record["state"], TRUE);
+ $results[$result][] = $record["sfid"];
+
+ }
+
+ }
+
+ $this->output()->writeln("Update complete");
+ $count0 = count($results[0]);
+ $count1 = count($results[1]);
+ $count2 = count($results[2]);
+ $count3 = $count0 + $count1 + $count2;
+ $this->output()->writeln("[SUMMARY] {$count3} SFID's processed: {$count1} updated, {$count2} skipped, {$count0} failed to update.");
+
+ }
+
+ /**
+ * Finds the Drupal record which is mapped to the SFID and then changes the
+ * moderation state and field_banner according to the supplied state.
+ * Always creates a new revision.
+ * DIG-1055
+ *
+ * @param string $sfid The salesforce ID
+ * @param string $state The state to use (one of $this->valid_states)
+ * @param bool $drush Flag when called from drush (for console outputs)
+ *
+ * @return int where 0=failed, 1=updated, 2=nothing done
+ * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
+ * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
+ */
+ public function updateNode(string $sfid, string $state, bool $drush = FALSE): int {
+
+
+
+ // Find Entity mapped to this SFID
+ $nids = BuildingHousingUtils::findEntityIdBySFID($sfid, "bh_project");
+ if (!$nids) {
+ $drush && $this->output()->writeln("[WARNING] A record with SFID {$sfid} could not be found in Drupal.");
+ return 0;
+ }
+
+ $state = BuildingHousingUtils::findBannerTaxonomyByName($state);
+
+ // Update the Entity with state/banner info.
+ // Even though this is a foreach loop, only the first returned bh_project
+ // nid will be processed because there should not be multiple maps for a
+ // bh_project.
+ foreach ($nids as $nid) {
+
+ // Load the bh_project node.
+ $nid = $nid->drupal_entity__target_id;
+ $project = \Drupal::entityTypeManager()
+ ->getStorage("node")
+ ->load($nid);
+
+ if (!$project) {
+ $drush && $this->output()->writeln("[WARNING] The BH_Project '{$sfid}' is marked as mapped from SF but the record (nid={$nid}) could not be found in Drupal.");
+ return 0;
+ }
+
+ // Now find and load the linked bh_update so the banner can be set.
+ $update_nid = \Drupal::entityQuery("node")
+ ->accessCheck(FALSE)
+ ->condition("type", "bh_update", "=")
+ ->condition("field_bh_project_ref", $nid, "=")
+ ->execute();
+ if (!$update_nid) {
+ $drush && $this->output()->writeln("[WARNING] The BH_Project '{$nid}' does not have a website update");
+ return 0;
+ }
+ $update_nid = reset($update_nid);
+
+ $update = \Drupal::entityTypeManager()
+ ->getStorage("node")
+ ->load($update_nid);
+ if (!$update) {
+ $drush && $this->output()->writeln("[WARNING] The bh_update '{$update_nid}' is linked to a bh_project {$nid}, but cannot be loaded.");
+ return 0;
+ }
+
+ // Check if values need updating.
+ if (strtolower($project->get("moderation_state")->value) == strtolower($state["mod_state"])
+ && $update && $update->get("field_bh_banner_status")->target_id == $state["tid"]) {
+ // These nodes already have this state.
+ return 2;
+ }
+
+ // Set values on node and save.
+ if (strtolower($project->get("moderation_state")->value) != strtolower($state["mod_state"])) {
+
+ // Be sure to make a new revision.
+ $project->setNewRevision(TRUE);
+ $project->set("moderation_state", strtolower($state["mod_state"]));
+
+ try {
+ if ($project->save() != 2) {
+ // Houston, we have a problem (2 = updated).
+ $drush && $this->output()
+ ->writeln("[WARNING] SFID {$sfid} did not update bh_project {$nid} to {$state}.");
+ return 0;
+ }
+ }
+ catch (\Exception $e) {
+ $this->output()->writeln("[WARNING] SFID {$sfid} attempt to update {$nid} to {$state["name"]} threw error:");
+ $this->output()->writeln($e->getMessage());
+ return 0;
+ }
+ }
+
+ if ($update && $update->get("field_bh_banner_status")->target_id != $state["tid"]) {
+
+ $update->set("field_bh_banner_status", [$state["term"]]);
+
+ try {
+ if ($update->save() != 2) {
+ // Houston, we have a problem (2 = updated).
+ $drush && $this->output()
+ ->writeln("[WARNING] SFID {$sfid} did not update bh_update {$nid} to {$state}.");
+ return 0;
+ }
+ }
+ catch (\Exception $e) {
+ $this->output()->writeln("[WARNING] SFID {$sfid} attempt to update {$nid} to {$state} threw error:");
+ $this->output()->writeln($e->getMessage());
+ return 0;
+ }
+ }
+
+ return 1;
+
+ }
+
+ }
+
+}
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/EventSubscriber/SalesforceBuildingHousingUpdateSubscriber.php b/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/EventSubscriber/SalesforceBuildingHousingUpdateSubscriber.php
index 8f8da7323c..c3ce593ce1 100755
--- a/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/EventSubscriber/SalesforceBuildingHousingUpdateSubscriber.php
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/src/EventSubscriber/SalesforceBuildingHousingUpdateSubscriber.php
@@ -892,7 +892,7 @@ private function processTextUpdates($textUpdateData, $bh_update) {
}
unset($currentTextUpdateIds[$post["id"]]);
}
- if ($remove && array_key_exists($post["id"], $currentTextUpdateIds)) {
+ if (!empty($currentTextUpdateIds) && array_key_exists($post["id"], $currentTextUpdateIds)) {
unset($currentTextUpdateIds[$post["id"]]);
}
}
diff --git a/docroot/modules/custom/bos_content/modules/node_buildinghousing/templates/snippets/bh-project-banner.html.twig b/docroot/modules/custom/bos_content/modules/node_buildinghousing/templates/snippets/bh-project-banner.html.twig
new file mode 100644
index 0000000000..7ec5b68b3e
--- /dev/null
+++ b/docroot/modules/custom/bos_content/modules/node_buildinghousing/templates/snippets/bh-project-banner.html.twig
@@ -0,0 +1,42 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a project banner item.
+ *
+ * Available variables:
+ * - showBanner: should the banner be shown?
+ * - title: The banner title.
+ * - text: The text display for the banner.
+ * - icon: A link to an icon for the banner.
+ */
+#}
+{% if showBanner %}
+
+
{$orig_view_text}
"; + } + + } + +} + +/** + * This hook manually adds a filter to make sure that the table in the + * relationship considers the published status of the taxomomy in the + * relationship (a LEFT JOIN) + * + * Implements hook_views_query_alter(). + */ +function node_rollcall_views_query_alter(ViewExecutable $view, QueryPluginBase $query) { + if ($view->id() == "roll_call_taxonomy" + && $view->current_display == "unused_districts_filter" + ) { + $join = $query->getTableQueue()["field_district_taxonomy_term_field_data__taxonomy_term__field_active"]["join"]; + + // This filters districts that have published Councillor taxonomy records. + // (so if a Councillor is marked as representing a District, but that + // Councillor is unpublished, then the district will still appear in the + // list) + $join->extra[] = [ + "table" => "field_district_taxonomy_term_field_data__taxonomy_term__field_active", + "field" => "field_active_value", + "value" => 1, + "numeric" => TRUE + ]; + unset($query->where[1]["conditions"][1]); + $query->where[2]["conditions"][] = [ + "field" => "field_district_taxonomy_term_field_data__taxonomy_term__field_active.entity_id", + "value" => NULL, + "operator" => "IS NULL" + ]; + + + // If we are editing a Councillor, allow the District they currently are + // representing to be included in the results. + if ($view->getRequest()->attributes->has("taxonomy_term")) { + $current_councillor = $view->getRequest() + ->attributes->get("taxonomy_term")->id(); + } + elseif (\Drupal::requestStack()->getParentRequest()->query->has("entity_id")) { + $current_councillor = \Drupal::requestStack() + ->getParentRequest()->query->get("entity_id"); + } + elseif (!empty($view->args)) { + // when using the view UI. + $current_councillor = $view->args[0]; + } + if (!empty($current_councillor)) { + $join->extra[] = [ + "field" => "entity_id", + "value" => $current_councillor, + "operator" => "!=", + "numeric" => TRUE + ]; + } + } + elseif ($view->id() == "roll_call_dockets") { + if (!empty($view->getQuery()->where[2]["conditions"]) + && $search_terms = $view->getQuery()->where[2]["conditions"][0]["field"]->conditions()) { + + $search_terms_count = $view->getQuery()->where[2]["conditions"][0]["field"]->count(); + $removes = []; + + foreach($search_terms as $key => $search_term) { + + if (is_numeric($key)) { + + $search_term_raw = trim(trim($search_term["value"], "%")); + + if ((is_numeric($search_term_raw) && intval($search_term_raw) > 100) + or $search_term_raw[0] == "#") { + // Assume this is a docket + if ($search_terms_count > 1) { + // If this is not the only search term, then don't search the + // body as well. + $removes[$key] = $search_term_raw; + } + else { + // Have to have the where clause for the body else fails. + $view->getQuery()->where[2]["conditions"][0]["field"]->conditions()[$key]["value"] = ""; + } + $query->addWhere(2, 'node_field_data.title', trim($search_term_raw, "#"), "="); + } + + elseif ($dt = strtotime($search_term_raw)) { + // Try to find this date as a meeting date as well as body text. + $dt = date("Y-m-d", $dt); + if ($search_terms_count > 1) { + // If this is not the only search term, then don't search the + // body as well. + $removes[$key] = $search_term_raw; + } + else { + // Have to have the where clause for the body else fails. + $view->getQuery()->where[2]["conditions"][0]["field"]->conditions()[$key]["value"] = ""; + } + $query->addWhere(2, 'node__field_meeting_date.field_meeting_date_value', $dt, "="); + } + + } + + } + + if (!empty($removes)) { + // Remove the conditions we have identified as dockets or dates. + $removes = array_reverse($removes); + foreach ($removes as $key => $value) { + unset($view->getQuery()->where[2]["conditions"][0]["field"]->conditions()[$key]); + } + } + + } + } +} + +/** + * Implements hook_paragraph_HOOK_summary_alter(). + */ +function node_rollcall_paragraph_roll_call_vote_summary_alter(array $form_widget, array $para, array $attributes) { + $councillor_name = " Initializing"; + $vote_name = ""; + if (!empty($para["entity"]->get("field_councillor")) && count($para["entity"]->get("field_councillor")) && $councillor = $para["entity"]->get("field_councillor")[0]->target_id) { + $taxonomy = Term::load($councillor); + $councillor_name = $taxonomy->getName(); + } + if (!empty($para["entity"]->get("field_vote")) && count($para["entity"]->get("field_vote")) && $vote = $para["entity"]->get("field_vote")[0]->target_id) { + $taxonomy = Term::load($vote); + $vote_name = $taxonomy->getName(); + } + $markup[] = Markup::create( $councillor_name . " (" . $vote_name . ")"); + return [ + 'attributes' => $attributes, + 'content' => $markup, + ]; +} + +/** + * Implements hook_entity_create(). + */ +function node_rollcall_entity_create(EntityInterface $entity) { + + if (empty($entity->id()) && $entity->bundle() == "roll_call_dockets") { + + $paragraph = \Drupal::entityTypeManager() + ->getStorage("paragraph"); + + foreach (\Drupal::entityTypeManager() + ->getStorage('taxonomy_term') + ->loadTree('vocab_city_councillors') as $term) { + $vote = $paragraph->create([ + "type" => "roll_call_vote", + "field_councillor" => [["target_id"=>$term->tid, "target_type" => "taxonomy_term"]], + ]); + $entity->field_components->appendItem($vote); + } + + return $entity; + + } + +} + +/** + * Implements hook_form_alter(). + */ +function node_rollcall_form_alter(&$form, FormStateInterface $form_state, $form_id) { + + if (in_array($form_id, ["node_roll_call_dockets_form", "node_roll_call_dockets_edit_form"])) { + + foreach ($form["field_components"]["widget"] as $key => &$rollcall) { + if (is_numeric($key)) { + $rollcall["subform"]["#attributes"]["class"][] = "g"; + $rollcall["subform"]["field_councillor"]["#attributes"]["class"][] = "g--6"; + $rollcall["subform"]["field_vote"]["#attributes"]["class"][] = "g--6"; + } + } + + } + + elseif ($form_id == "views_exposed_form") { + + // Align the Search actions buttons nicely. + $form["#attributes"]["class"][] = "g"; + $form["actions"]["#attributes"]["class"][] = "m-l300"; + + } + +} + +/** + * Remove the entity reference notice in dropdown boxes on rollcall. + * + * Implements hook_field_widget_single_element_form_alter(). + */ +function node_rollcall_field_widget_single_element_form_alter(array &$element, \Drupal\Core\Form\FormStateInterface $form_state, array $context) { + + // Target the rollcall subforms. + if ($form_state->getBuildInfo()["form_id"] == "node_roll_call_dockets_edit_form") { + + // Check this is a select dropdown linked to an entity reference. + if (!empty($context["widget"]->getPluginId()) + && $context["widget"]->getPluginId() == "dynamic_entity_reference_options_select" + && !empty($element["#options"])) { + + foreach ($element["#options"] as &$option) { + $option = preg_replace("~([A-Za-z\s])\(.*\)~", "$1", $option); + } + } + + + } +} + +/** + * Implements hook_preprocess_HOOK(). + */ +function node_rollcall_preprocess_paragraph(&$variables) { + if (in_array($variables["paragraph"]->bundle(), ["roll_call_vote", "roll_call_councillor"])) { + return; + } + if (in_array($variables["paragraph"]->bundle(), ["bos_node_search"])){ + + // Add the css overrides. + $variables['#attached']['library'][] = 'node_rollcall/node_rollcall_css'; + + // Add the component fields as args to the view so we can use them when + // themeing/outputting results. + $variables["elements"]["field_node_search"][0]["#content"]["#view"]->args = [ + "field_component_title" => $variables["content"]["field_component_title"]["#items"][0]->value, + "field_title" => $variables["content"]["field_title"]["#items"][0]->value ?? "", + "field_search_results" => $variables["content"]["field_search_results"]["#items"][0]->value ?? "", + "field_short_title" => $variables["content"]["field_short_title"]["#items"][0]->value + ]; + + } +} + +function node_rollcall_preprocess_views_view_unformatted(&$variables) { + + if ($variables["view"]->current_display == "rollcall_search_block") { + + $component_fields = $variables["view"]->args; + + if ($variables["view"]->exposed_data["search"] == "") { + if (!empty($component_fields["field_title"])) { + $variables["title"] = $component_fields["field_title"]; + } + elseif(!empty($component_fields[1])) { + $variables["title"] = $component_fields[1]; + } + } + else { + if (!empty($component_fields["field_search_results"])) { + $variables["title"] = $component_fields["field_search_results"]; + } + elseif(!empty($component_fields[2])) { + $variables["title"] = $component_fields[2]; + } + } + + if (!empty($variables["title"])) { + $variables["title_prefix"] = '