diff --git a/composer.lock b/composer.lock
index b3b968a..7accdc6 100644
--- a/composer.lock
+++ b/composer.lock
@@ -68,7 +68,7 @@
"source": {
"type": "git",
"url": "ssh://git@git.autonomic.zone:2222/autonomic-cooperative/goodnightout_opencase.git",
- "reference": "4892ecd3e933d4484363b8b30e2c682ec5790b03"
+ "reference": "c68cb8c169ab905013eb4892e1d83c7c989df65a"
},
"require": {
"drupal/admin_toolbar": "*",
@@ -86,7 +86,7 @@
"email": "helo@autonomic.zone"
}
],
- "time": "2021-10-23T17:17:34+00:00"
+ "time": "2021-11-11T14:04:51+00:00"
},
{
"name": "autonomic/opencase",
@@ -94,7 +94,7 @@
"source": {
"type": "git",
"url": "ssh://git@git.autonomic.zone:2222/autonomic-cooperative/opencase.git",
- "reference": "3753b4e25c7d25c32a1ac566d4d57f9a2e181862"
+ "reference": "8cde0b88926e66c1cfb3aa72d2b7ba5ac687ee56"
},
"require": {
"composer/installers": "*",
@@ -111,7 +111,7 @@
"email": "helo@autonomic.zone"
}
],
- "time": "2021-11-11T08:42:15+00:00"
+ "time": "2021-11-11T14:35:45+00:00"
},
{
"name": "bjeavons/zxcvbn-php",
diff --git a/config/core.entity_form_display.oc_case_fee.project_fee.default.yml b/config/core.entity_form_display.oc_case_fee.project_fee.default.yml
new file mode 100644
index 0000000..46e83aa
--- /dev/null
+++ b/config/core.entity_form_display.oc_case_fee.project_fee.default.yml
@@ -0,0 +1,31 @@
+uuid: bde0c9bb-5bf2-4443-976d-3b42d109c4d1
+langcode: en
+status: true
+dependencies:
+ config:
+ - opencase_cases.oc_case_fee_type.project_fee
+id: oc_case_fee.project_fee.default
+targetEntityType: oc_case_fee
+bundle: project_fee
+mode: default
+content:
+ amount:
+ type: number
+ weight: 1
+ region: content
+ settings:
+ placeholder: ''
+ third_party_settings: { }
+ oc_fee_category:
+ type: entity_reference_autocomplete
+ weight: 0
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ name: true
+ user_id: true
diff --git a/config/core.entity_form_display.oc_case_provision.trainer.default.yml b/config/core.entity_form_display.oc_case_provision.trainer.default.yml
index a8bee7e..6fdc193 100644
--- a/config/core.entity_form_display.oc_case_provision.trainer.default.yml
+++ b/config/core.entity_form_display.oc_case_provision.trainer.default.yml
@@ -3,6 +3,7 @@ langcode: en
status: true
dependencies:
config:
+ - field.field.oc_case_provision.trainer.feeds_item
- field.field.oc_case_provision.trainer.field_rate
- field.field.oc_case_provision.trainer.field_rate_type
- opencase_cases.oc_case_provision_type.trainer
@@ -45,5 +46,6 @@ content:
placeholder: ''
third_party_settings: { }
hidden:
+ feeds_item: true
name: true
user_id: true
diff --git a/config/core.entity_view_display.oc_case_provision.trainer.default.yml b/config/core.entity_view_display.oc_case_provision.trainer.default.yml
index 40a0c5e..8140b1b 100644
--- a/config/core.entity_view_display.oc_case_provision.trainer.default.yml
+++ b/config/core.entity_view_display.oc_case_provision.trainer.default.yml
@@ -3,6 +3,7 @@ langcode: en
status: true
dependencies:
config:
+ - field.field.oc_case_provision.trainer.feeds_item
- field.field.oc_case_provision.trainer.field_rate
- field.field.oc_case_provision.trainer.field_rate_type
- opencase_cases.oc_case_provision_type.trainer
@@ -15,7 +16,7 @@ bundle: trainer
mode: default
content:
field_rate:
- weight: 1
+ weight: 2
label: above
settings:
thousand_separator: ''
@@ -26,7 +27,7 @@ content:
type: number_decimal
region: content
field_rate_type:
- weight: 2
+ weight: 3
label: above
settings: { }
third_party_settings: { }
@@ -35,19 +36,34 @@ content:
name:
label: above
type: string
- weight: -4
+ weight: 0
region: content
settings:
link_to_entity: false
third_party_settings: { }
+ oc_case_provider_role:
+ type: entity_reference_label
+ weight: 5
+ region: content
+ label: above
+ settings:
+ link: true
+ third_party_settings: { }
+ oc_provider:
+ type: entity_reference_label
+ weight: 4
+ region: content
+ label: above
+ settings:
+ link: true
+ third_party_settings: { }
user_id:
label: hidden
type: author
- weight: 0
+ weight: 1
region: content
settings: { }
third_party_settings: { }
hidden:
- oc_case_provider_role: true
- oc_provider: true
+ feeds_item: true
search_api_excerpt: true
diff --git a/config/entity_extra_field.extra_field.oc_case.project.fees.yml b/config/entity_extra_field.extra_field.oc_case.project.fees.yml
new file mode 100644
index 0000000..be9d1f8
--- /dev/null
+++ b/config/entity_extra_field.extra_field.oc_case.project.fees.yml
@@ -0,0 +1,44 @@
+uuid: cba6cacd-6ca4-4b4b-9300-d6113e4d77df
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.authenticated
+ module:
+ - opencase_cases
+ - user
+id: oc_case.project.fees
+label: Fees
+display_label: true
+name: fees
+description: ''
+base_entity_type_id: oc_case
+base_bundle_type_id: project
+field_type_id: views
+field_type_config:
+ view_name: fees
+ display: block_1
+ arguments: ''
+field_type_condition:
+ 'entity_bundle:oc_case':
+ id: 'entity_bundle:oc_case'
+ bundles:
+ project: project
+ context_mapping:
+ oc_case: entity_extra_field.target_entity
+ negate: false
+ route:
+ id: route
+ routes: ''
+ negate: false
+ request_path:
+ id: request_path
+ pages: ''
+ negate: false
+ current_theme:
+ id: current_theme
+ theme: ''
+ negate: 0
+field_conditions_all_pass: false
+display:
+ type: view
diff --git a/config/feeds.feed_type.csv_case_provisions.yml b/config/feeds.feed_type.csv_case_provisions.yml
new file mode 100644
index 0000000..c76ff07
--- /dev/null
+++ b/config/feeds.feed_type.csv_case_provisions.yml
@@ -0,0 +1,91 @@
+uuid: 612cd149-6c4f-440f-a80b-d9cf11ee4f2c
+langcode: en
+status: true
+dependencies:
+ config:
+ - opencase_cases.oc_case_provision_type.trainer
+ module:
+ - opencase_cases
+id: csv_case_provisions
+label: 'CSV Case Provisions'
+description: ''
+help: ''
+import_period: 3600
+fetcher: upload
+fetcher_configuration:
+ allowed_extensions: 'txt csv tsv xml opml'
+ directory: 'public://feeds'
+parser: csv
+parser_configuration:
+ delimiter: ','
+ no_headers: false
+ line_limit: 100
+processor: 'entity:oc_case_provision'
+processor_configuration:
+ langcode: en
+ update_existing: 0
+ update_non_existent: _delete
+ expire: -1
+ owner_feed_author: false
+ owner_id: 0
+ authorize: true
+ skip_hash_check: false
+ values:
+ type: trainer
+custom_sources:
+ training:
+ label: Training
+ value: Training
+ machine_name: training
+ trainer:
+ label: Trainer
+ value: Trainer
+ machine_name: trainer
+ role:
+ label: Role
+ value: Role
+ machine_name: role
+ trainer_:
+ label: Trainer
+ value: Trainer
+ machine_name: trainer_
+ name:
+ label: Name
+ value: Name
+ machine_name: name
+ loop:
+ label: Loop
+ value: Loop
+ machine_name: loop
+mappings:
+ -
+ target: oc_case
+ map:
+ target_id: training
+ settings:
+ language: null
+ reference_by: name
+ autocreate: false
+ -
+ target: oc_provider
+ map:
+ target_id: loop
+ settings:
+ language: ''
+ reference_by: last_name
+ feeds_item: guid
+ autocreate: 0
+ -
+ target: oc_case_provider_role
+ map:
+ target_id: role
+ settings:
+ language: null
+ reference_by: name
+ autocreate: false
+ -
+ target: name
+ map:
+ value: name
+ unique: { }
+ settings: { }
diff --git a/config/feeds.feed_type.csv_clients.yml b/config/feeds.feed_type.csv_clients.yml
index f8cfb9f..9d80680 100644
--- a/config/feeds.feed_type.csv_clients.yml
+++ b/config/feeds.feed_type.csv_clients.yml
@@ -27,10 +27,10 @@ parser_configuration:
processor: 'entity:oc_organisation'
processor_configuration:
langcode: en
- update_existing: 0
+ update_existing: 1
update_non_existent: _delete
expire: -1
- owner_feed_author: true
+ owner_feed_author: false
owner_id: 0
authorize: true
skip_hash_check: false
diff --git a/config/feeds.feed_type.csv_umbrella_client.yml b/config/feeds.feed_type.csv_umbrella_client.yml
index 27c0a12..155a42d 100644
--- a/config/feeds.feed_type.csv_umbrella_client.yml
+++ b/config/feeds.feed_type.csv_umbrella_client.yml
@@ -27,7 +27,7 @@ processor_configuration:
update_existing: 0
update_non_existent: _delete
expire: -1
- owner_feed_author: true
+ owner_feed_author: false
owner_id: 0
authorize: true
skip_hash_check: false
diff --git a/config/feeds.feed_type.trainers.yml b/config/feeds.feed_type.trainers.yml
index 16462e1..266d475 100644
--- a/config/feeds.feed_type.trainers.yml
+++ b/config/feeds.feed_type.trainers.yml
@@ -10,7 +10,7 @@ id: trainers
label: 'CSV Trainers'
description: ''
help: ''
-import_period: 3600
+import_period: -1
fetcher: http
fetcher_configuration:
auto_detect_feeds: false
@@ -27,7 +27,7 @@ processor: 'entity:oc_actor'
processor_configuration:
langcode: en
update_existing: 0
- update_non_existent: _keep
+ update_non_existent: _delete
expire: -1
owner_feed_author: false
owner_id: 0
diff --git a/config/field.field.oc_case_provision.trainer.feeds_item.yml b/config/field.field.oc_case_provision.trainer.feeds_item.yml
new file mode 100644
index 0000000..a016b7a
--- /dev/null
+++ b/config/field.field.oc_case_provision.trainer.feeds_item.yml
@@ -0,0 +1,23 @@
+uuid: b1cb77c9-9177-4e86-8a09-d8acbdd2f34e
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.oc_case_provision.feeds_item
+ - opencase_cases.oc_case_provision_type.trainer
+ module:
+ - feeds
+id: oc_case_provision.trainer.feeds_item
+field_name: feeds_item
+entity_type: oc_case_provision
+bundle: trainer
+label: 'Feeds item'
+description: ''
+required: false
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:feeds_feed'
+ handler_settings: { }
+field_type: feeds_item
diff --git a/config/field.storage.oc_case_provision.feeds_item.yml b/config/field.storage.oc_case_provision.feeds_item.yml
new file mode 100644
index 0000000..6dda103
--- /dev/null
+++ b/config/field.storage.oc_case_provision.feeds_item.yml
@@ -0,0 +1,20 @@
+uuid: c250a9f6-5365-457c-bd91-14272120f055
+langcode: en
+status: true
+dependencies:
+ module:
+ - feeds
+ - opencase_cases
+id: oc_case_provision.feeds_item
+field_name: feeds_item
+entity_type: oc_case_provision
+type: feeds_item
+settings:
+ target_type: feeds_feed
+module: feeds
+locked: false
+cardinality: 1
+translatable: false
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/opencase_cases.oc_case_fee_type.project_fee.yml b/config/opencase_cases.oc_case_fee_type.project_fee.yml
new file mode 100644
index 0000000..12733b8
--- /dev/null
+++ b/config/opencase_cases.oc_case_fee_type.project_fee.yml
@@ -0,0 +1,6 @@
+uuid: e6e6349b-1f5a-410d-9640-6a4ffb489f41
+langcode: en
+status: true
+dependencies: { }
+id: project_fee
+label: 'Project fee'
diff --git a/config/taxonomy.vocabulary.oc_fee_category.yml b/config/taxonomy.vocabulary.oc_fee_category.yml
new file mode 100644
index 0000000..374d160
--- /dev/null
+++ b/config/taxonomy.vocabulary.oc_fee_category.yml
@@ -0,0 +1,8 @@
+uuid: e7f05cce-e8e1-4a48-81ea-7a9104f3e823
+langcode: en
+status: true
+dependencies: { }
+name: 'Fee Categories'
+vid: oc_fee_category
+description: ''
+weight: 0
diff --git a/config/views.view.fees.yml b/config/views.view.fees.yml
new file mode 100644
index 0000000..12fb4e9
--- /dev/null
+++ b/config/views.view.fees.yml
@@ -0,0 +1,383 @@
+uuid: d8b6df6a-dd6f-41b8-af27-b02fdb15ea8e
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.authenticated
+ module:
+ - opencase_cases
+ - user
+id: fees
+label: Fees
+module: views
+description: ''
+tag: ''
+base_table: oc_case_fee_field_data
+base_field: id
+display:
+ default:
+ display_plugin: default
+ id: default
+ display_title: Master
+ position: 0
+ display_options:
+ access:
+ type: role
+ options:
+ role:
+ authenticated: authenticated
+ cache:
+ type: tag
+ options: { }
+ query:
+ type: views_query
+ options:
+ disable_sql_rewrite: false
+ distinct: false
+ replica: false
+ query_comment: ''
+ query_tags: { }
+ 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
+ pager:
+ type: some
+ options:
+ items_per_page: 5
+ offset: 0
+ style:
+ type: table
+ options:
+ grouping: { }
+ row_class: ''
+ default_row_class: true
+ override: true
+ sticky: false
+ caption: ''
+ summary: ''
+ description: ''
+ columns:
+ name: name
+ info:
+ name:
+ sortable: false
+ default_sort_order: asc
+ align: ''
+ separator: ''
+ empty_column: false
+ responsive: ''
+ default: '-1'
+ empty_table: false
+ row:
+ type: 'entity:oc_case_fee'
+ fields:
+ name:
+ id: name
+ table: oc_case_fee_field_data
+ field: name
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: ''
+ exclude: true
+ 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: 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
+ entity_type: null
+ entity_field: name
+ plugin_id: field
+ amount:
+ id: amount
+ table: oc_case_fee_field_data
+ field: amount
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: Amount
+ 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: number_decimal
+ settings:
+ thousand_separator: ','
+ prefix_suffix: true
+ decimal_separator: .
+ scale: 2
+ 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
+ entity_type: oc_case_fee
+ entity_field: amount
+ plugin_id: field
+ oc_fee_category:
+ id: oc_fee_category
+ table: oc_case_fee_field_data
+ field: oc_fee_category
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: 'Fee Category'
+ 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
+ entity_type: oc_case_fee
+ entity_field: oc_fee_category
+ plugin_id: field
+ filters:
+ status:
+ value: '1'
+ table: oc_case_fee_field_data
+ field: status
+ plugin_id: boolean
+ entity_type: oc_case_fee
+ entity_field: status
+ id: status
+ expose:
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ group: 1
+ sorts: { }
+ title: Fees
+ header: { }
+ footer:
+ area_text_custom:
+ id: area_text_custom
+ table: views
+ field: area_text_custom
+ relationship: none
+ group_type: group
+ admin_label: ''
+ empty: true
+ tokenize: true
+ content: 'Add fee
'
+ plugin_id: text_custom
+ empty:
+ area_text_custom:
+ id: area_text_custom
+ table: views
+ field: area_text_custom
+ relationship: none
+ group_type: group
+ admin_label: ''
+ empty: true
+ tokenize: false
+ content: "Fees will appear here once they are added.\r\n"
+ plugin_id: text_custom
+ relationships: { }
+ arguments:
+ oc_case:
+ id: oc_case
+ table: oc_case_fee_field_data
+ field: oc_case
+ relationship: none
+ group_type: group
+ admin_label: ''
+ default_action: default
+ exception:
+ value: all
+ title_enable: false
+ title: All
+ title_enable: false
+ title: ''
+ default_argument_type: raw
+ default_argument_options:
+ index: 2
+ use_alias: false
+ default_argument_skip_url: false
+ summary_options:
+ base_path: ''
+ count: true
+ items_per_page: 25
+ override: false
+ summary:
+ sort_order: asc
+ number_of_records: 0
+ format: default_summary
+ specify_validation: false
+ validate:
+ type: none
+ fail: 'not found'
+ validate_options: { }
+ break_phrase: false
+ not: false
+ entity_type: oc_case_fee
+ entity_field: oc_case
+ plugin_id: numeric
+ display_extenders: { }
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - url
+ - user.roles
+ tags: { }
+ block_1:
+ display_plugin: block
+ id: block_1
+ display_title: Block
+ position: 1
+ display_options:
+ display_extenders: { }
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - url
+ - user.roles
+ tags: { }