Compare commits

..

69 Commits
0.2.5 ... 0.4.1

Author SHA1 Message Date
ab2662195b Replaced config removed by mistake 2018-11-09 16:39:52 +00:00
b81d6b5f31 Removed config for disused menus 2018-11-09 16:38:00 +00:00
ad6811b5e9 Changed "Actor" to "Person" in a few places 2018-11-09 16:14:48 +00:00
da0c0ff1b5 More on menu 2018-11-09 15:56:03 +00:00
3e6011a359 menu order 2018-11-09 15:03:34 +00:00
7e28f88b86 Shiny new menu at top of screen! 2018-11-09 14:59:25 +00:00
0efab1af06 Moved search bar to top, and styled
Also add opencase_search as dependency to opencase because the css for it is in opencase/css (hopefully all this css can go into an opencase theme one day)
2018-11-09 13:16:47 +00:00
4b14537dc4 Renamed config file in line with id 2018-11-08 18:58:44 +00:00
52eb5898e3 Removed duplicate configs, and added dependency 2018-11-08 18:47:24 +00:00
acf3e704cc Added a commented out bit of code for automatic permissions 2018-10-26 11:23:21 +01:00
142c22f8e2 Dynamic permissions! 2018-10-25 19:47:12 +01:00
570d442d41 Minor change to wording 2018-10-25 18:32:26 +01:00
981439d3c6 Added "use opencase" permission to all roles 2018-10-25 18:28:25 +01:00
0333e20afd Added form and display config permissions to crm admin 2018-10-25 18:26:31 +01:00
ec25af3858 Confined rogue OSIC Level facet to reporting/* 2018-10-25 18:14:00 +01:00
30a4d13081 Date format for dob for client.
Also removed some other fields that I'm not sure why were there...
2018-10-25 17:55:39 +01:00
904cf2d63c Explicity stop OSIC Level facet from apearing on home page
God knows why but it was doing
2018-10-25 17:45:37 +01:00
78a44718fb Added activity type help block 2018-10-25 14:55:42 +01:00
7c30d9d02e postcode weight 2018-10-25 14:55:25 +01:00
fdd07ea104 Added help block for managing actor type fields 2018-10-24 18:24:20 +01:00
10b99f132e Dynamic menu links for adding actors 2018-10-24 17:40:26 +01:00
fd5d145866 Added volunteer supervision activity type 2018-10-24 17:39:56 +01:00
530df37e92 removed cases link from reporting menu 2018-10-24 16:51:22 +01:00
7fd551982d Added OSIC level facet to volunteer report 2018-10-24 16:48:00 +01:00
0aa6b92490 Added a bunch of facets 2018-10-24 16:16:35 +01:00
b62f2f34a9 Bodged download button for reporting. 2018-10-24 16:16:17 +01:00
8187f6b306 Finished client reporting 2018-10-01 18:55:51 +01:00
56be669fe9 Fixed the jQuery on the download data button
The click binding was getting lost after ajax reload
2018-10-01 17:55:41 +01:00
5cde32c975 Added reporting menu with one link for Custom Report 2018-10-01 14:58:00 +01:00
bfef673d42 Simplified reporting. Presets will be hard coded 2018-10-01 14:35:10 +01:00
9f735eb492 Deleted a bunch of stuff to do with report entities
because we are not using them at this stage
2018-10-01 10:41:32 +01:00
a8c454c509 Made all base fields on actors not configurable
Making them configurable seems to mess up weights and stuff.
2018-09-19 09:15:42 +01:00
9424aca1e9 Added config for "skills" field on volunteer. 2018-09-19 09:15:19 +01:00
b5f718647e Using views for CRUDding saved reports. 2018-09-17 18:49:20 +01:00
7e1889346b newly generated content entity. 2018-09-17 17:29:04 +01:00
1e0a6a41d3 got rid of reference to the report config entity 2018-09-17 17:26:40 +01:00
e14a68ef62 removed "report" config entity
so as to try out making it a content entity instead.
2018-09-17 17:23:03 +01:00
c48f58d49b Added block plugin for report form, to show on reporting page. 2018-09-17 17:21:31 +01:00
7a61f76a93 Minor changes to reporting forms 2018-09-17 12:24:43 +01:00
354bb0adba paths and permissions for report entities. 2018-09-17 09:26:30 +01:00
e02721217b Added "Use OpenCase" permission 2018-09-17 09:09:38 +01:00
d5fe23418e Saved reports (templates) are now just called "reports". 2018-09-17 08:48:20 +01:00
c81ebc4d94 Fixed field type error 2018-09-14 13:59:35 +01:00
7fbc35915c made reporting export url match page url (it works!) 2018-09-12 18:24:48 +01:00
987adc97ce Reporting buttons area. Data download button 2018-09-12 18:16:36 +01:00
3faabda3f2 minor changes to reporting stuff 2018-09-12 16:48:23 +01:00
eb6356f715 removed schema file because I think it is not used. 2018-09-12 16:22:02 +01:00
92cec4c513 added 100% body font size to opencase css 2018-09-12 15:57:18 +01:00
e5db0007c9 Started on Reporting Presets block. 2018-09-12 15:50:08 +01:00
cc108076bb Added reporting menu item to config. 2018-09-10 19:31:11 +01:00
714ceeb3d0 sort order of facet items, and a typo 2018-09-10 19:24:39 +01:00
0371c37786 Added required tickbox, "consent to data storage" 2018-09-10 18:38:55 +01:00
e1e40bc8ad Search now uses, and displays, first and last name and type
where previously it was the name thing with the type included
2018-09-07 12:57:02 +01:00
9b9bce4bc4 Reporting Actors view now takes query parameter for title 2018-09-07 12:48:47 +01:00
1d86b2a5bc Minor edits to reporting view and facets 2018-09-07 12:37:39 +01:00
ee5c82cb0b removed case type filter from home cases view
because it was not asked for and looked ugly.
2018-09-06 19:53:41 +01:00
20b3ff0cd4 CSS for facet labels 2018-09-06 19:33:47 +01:00
393ce2501c Added a basic index, view & facets for reporting
it is not a useful report, but it doesnt rely on defaults. It's just so that I can work on the reporting without the defaults. General stuff like css and preset support will not be dependent on the defaults. By the time this is properly released, I will have developed a way of generating what is needed for reporting automatically.
2018-09-06 19:11:49 +01:00
2be2cc7837 Added reporting server and index
The index does not rely on any default config.
2018-09-06 17:17:52 +01:00
e45d49e299 Added reporting server config to reporting module 2018-09-06 16:57:39 +01:00
51db7f00d4 Can search on partial names now, need at least 3 letters. 2018-09-06 16:57:13 +01:00
e5da065d0c Changed names of server and index for search
because now we will have ones for reporting as well
2018-09-06 16:38:00 +01:00
14575008d6 Added bare-bones reporting module.
Plus a minor change to search module description
2018-09-06 16:30:58 +01:00
8e43ad637d Added dependency on opencase module to opencase_search
... because the search view has links to other views. Also added some missing configs to the uninstall hook in opencase.module.
2018-09-06 16:27:14 +01:00
d5e767ea9f Update README.md 2018-07-24 10:26:53 +01:00
f97c43bbb2 Update README.md 2018-07-24 10:26:08 +01:00
ac92336b0e removed dependency of linked actor field on vol 2018-07-24 10:43:55 +02:00
bc77e1995d Update field.field.user.user.field_linked_opencase_actor.yml 2018-07-20 11:34:53 +01:00
fd661f6a2f added some config that was missed / wrong 2018-07-19 20:01:59 +02:00
92 changed files with 4180 additions and 518 deletions

View File

@ -2,7 +2,7 @@
A simple, case-management-focused CRM for small altruistic organisations.
## Current Status
**13 May 2018** A demo site, with basic functionality is available at demo.opencase.org.uk. If you are interested, raise an issue and I will get the login to you somehow.
**24 July 2018** A demo site, with basic functionality is available at demo.opencase.org.uk. If you are interested, raise an issue and I will get the login to you somehow.
## The Plan
OpenCase will be available as:
@ -14,4 +14,20 @@ OpenCase will be available as:
* More details, including user stories for future development, can be found in the [OpenCase Gitbook](https://hoegrammer.gitbooks.io/zen-crm/content/)
* Raise an issue to contact the developer.
## Differences between current version (v0.2.6, July 2018) and previous version ##
**Access control**: Previously everyone could see all cases. Now, users can see cases that they are involved in. By creating case you automatically become involve in it (although you can later be removed or remove yourself). Caseworkers can see all clients and volunteer co-ordinators can see all volunteers. Site admins and overseers can see everything.
**Editing types**: As a site admin you can now add, remove and configure types of actor, types of case and types of activity and you can configure fields on these and add your own fields.s
**Relations between types**: For each type of case, you can specify what types of actors (people) can be involved in it, e.g. for a volunteer recruitment case it would be volunteers and/or staff; for a legal advice case maybe clients, volunteers and solicitors. You can also specify what activities belong on what kinds of cases.
## Not done yet ##
* Reporting
* Donations
* Anything to do with emails/bounces
* Any specific guidelines or features relating to the GDPR

View File

@ -0,0 +1,25 @@
langcode: en
status: true
dependencies:
module:
- opencase
- system
theme:
- bartik
id: actortypehelp
theme: bartik
region: content
weight: -11
provider: null
plugin: actor_type_help
settings:
id: actor_type_help
label: 'Actor Type Help'
provider: opencase
label_display: '0'
visibility:
request_path:
id: request_path
pages: '/admin/opencase/oc_actor_type/*/edit/fields'
negate: false
context_mapping: { }

View File

@ -2,22 +2,68 @@ langcode: en
status: true
dependencies:
config:
- system.menu.opencase-admin
- system.menu.opencase
module:
- system
- superfish
theme:
- bartik
id: opencase
theme: bartik
region: sidebar_first
weight: -8
region: primary_menu
weight: 0
provider: null
plugin: 'system_menu_block:opencase-admin'
plugin: 'superfish:opencase'
settings:
id: 'system_menu_block:opencase-admin'
label: 'OpenCase Admin'
provider: system
label_display: visible
level: 1
depth: 0
id: 'superfish:opencase'
label: OpenCase
provider: superfish
label_display: '0'
level: '1'
depth: '0'
menu_type: horizontal
style: none
arrow: 0
shadow: 1
speed: fast
delay: '800'
slide: vertical
supposition: 1
hoverintent: 1
touch: '0'
touchbh: '2'
touchbp: '768'
touchua: '0'
touchual: ''
touchuam: '0'
small: '2'
smallbp: '768'
smallua: '0'
smallual: ''
smalluam: '0'
smallact: '1'
smallset: ''
smallasa: 0
smallcmc: 0
smallecm: ''
smallchc: 0
smallech: ''
smallicm: ''
smallich: ''
smallamt: ''
smallabt: '1'
supersubs: 1
minwidth: '12'
maxwidth: '27'
multicolumn: 0
multicolumn_depth: '1'
multicolumn_levels: '1'
pathlevels: '1'
expanded: 0
clone_parent: 0
hide_linkdescription: 0
add_linkdescription: 0
link_depth_class: 1
custom_list_class: ''
custom_item_class: ''
custom_link_class: ''
visibility: { }

View File

@ -1,31 +0,0 @@
langcode: en
status: true
dependencies:
config:
- system.menu.opencase-add-actors
module:
- system
- user
theme:
- bartik
id: opencaseaddactors
theme: bartik
region: sidebar_first
weight: -8
provider: null
plugin: 'system_menu_block:opencase-add-actors'
settings:
id: 'system_menu_block:opencase-add-actors'
label: 'Add Actors'
provider: system
label_display: visible
level: 1
depth: 0
visibility:
user_role:
id: user_role
roles:
authenticated: authenticated
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

View File

@ -1,31 +0,0 @@
langcode: en
status: true
dependencies:
config:
- system.menu.openc
module:
- system
- user
theme:
- bartik
id: opencaseglobal
theme: bartik
region: sidebar_first
weight: -7
provider: null
plugin: 'system_menu_block:openc'
settings:
id: 'system_menu_block:openc'
label: 'OpenCase Global'
provider: system
label_display: '0'
level: 1
depth: 0
visibility:
user_role:
id: user_role
roles:
authenticated: authenticated
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

View File

@ -1,7 +0,0 @@
langcode: en
status: true
dependencies: { }
id: openc
label: 'OpenCase Global'
description: ''
locked: false

View File

@ -1,7 +0,0 @@
langcode: en
status: true
dependencies: { }
id: opencase-add-actors
label: 'OpenCase Add Actors'
description: ''
locked: false

View File

@ -1,7 +0,0 @@
langcode: en
status: true
dependencies: { }
id: opencase-admin
label: 'OpenCase Admin'
description: 'Administer OpenCase '
locked: false

View File

@ -448,51 +448,6 @@ display:
hide_alter_empty: false
plugin_id: custom
filters:
type:
id: type
table: oc_case_field_data
field: type
relationship: none
group_type: group
admin_label: ''
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: type_op
label: 'Case type'
description: ''
use_operator: false
operator: type_op
identifier: type
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
overseer: '0'
caseworker: '0'
volunteer_co_ord: '0'
opencase_admin: '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: { }
entity_type: oc_case
entity_field: type
plugin_id: bundle
sorts:
created:
id: created
@ -615,51 +570,6 @@ display:
empty: false
path: opencase/all-cases
filters:
type:
id: type
table: oc_case_field_data
field: type
relationship: none
group_type: group
admin_label: ''
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: type_op
label: 'Case type'
description: ''
use_operator: false
operator: type_op
identifier: type
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
overseer: '0'
caseworker: '0'
volunteer_co_ord: '0'
opencase_admin: '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: { }
entity_type: oc_case
entity_field: type
plugin_id: bundle
filter_groups:
operator: AND
groups:
@ -674,7 +584,7 @@ display:
admin_label: ''
empty: true
tokenize: false
content: "<h1>No cases found</h1>\n<p>You do not have access to any existing cases.</p>\n<p>To <b>add a new case</b>, first search for the person you want to add a case to. If they are not on the system yet you can add them using the <b>Add actors</b> menu in the left sidebar.</p>\n"
content: "<h1>No cases found</h1>\n<p>You do not have access to any existing cases.</p>\n<p>To <b>add a new case</b>, first search for the person you want to add a case to. If they are not on the system yet you can add them using the <b>Add People.</b> menu.</p>\n"
plugin_id: text_custom
cache_metadata:
max-age: -1

View File

@ -1,3 +1,6 @@
body {
font-size: 100% !important;
}
/* Free the people from the tyranny of the useless search button */
#edit-submit-actor-search{
@ -13,3 +16,16 @@
.js-form-item.form-item.js-form-type-checkbox.form-type-checkbox.js-form-item-new-revision.form-item-new-revision {
display: none;
}
/* Style the search box in header bar. */
#block-exposedformactor-searchpage-1 {
top: -20px;
}
#block-exposedformactor-searchpage-1 #edit-actions {
padding-top: 0;
}
#block-exposedformactor-searchpage-1 .form-text {
width: 200px;
}

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.asylum_status
module:
- facets
- system
theme:
- bartik
id: facet_asylum_status
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:asylum_status'
settings:
id: 'facet_block:asylum_status'
label: 'Asylum Status'
provider: facets
label_display: visible
block_id: facet_asylum_status
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/clients'
negate: false
context_mapping: { }

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.created
module:
- facets
- system
theme:
- bartik
id: facet_created
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:created'
settings:
id: 'facet_block:created'
label: 'Created Date'
provider: facets
label_display: visible
block_id: facet_created
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/clients'
negate: false
context_mapping: { }

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.disability
module:
- facets
- system
theme:
- bartik
id: facet_disability
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:disability'
settings:
id: 'facet_block:disability'
label: 'Disability'
provider: facets
label_display: visible
block_id: facet_disability
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/clients'
negate: false
context_mapping: { }

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.gender_identified_with
module:
- facets
- system
theme:
- bartik
id: facet_gender_identified_with
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:gender_identified_with'
settings:
id: 'facet_block:gender_identified_with'
label: 'Gender Identity'
provider: facets
label_display: visible
block_id: facet_gender_identified_with
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/clients'
negate: false
context_mapping: { }

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.languages
module:
- facets
- system
theme:
- bartik
id: facet_languages
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:languages'
settings:
id: 'facet_block:languages'
label: 'Languages'
provider: facets
label_display: visible
block_id: facet_languages
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/clients'
negate: false
context_mapping: { }

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.nationality
module:
- facets
- system
theme:
- bartik
id: facet_nationality
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:nationality'
settings:
id: 'facet_block:nationality'
label: 'Nationality'
provider: facets
label_display: visible
block_id: facet_nationality
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/clients'
negate: false
context_mapping: { }

View File

@ -1,31 +0,0 @@
langcode: en
status: true
dependencies:
config:
- system.menu.opencase-add-actors
module:
- system
- user
theme:
- bartik
id: opencaseaddactors
theme: bartik
region: sidebar_first
weight: -8
provider: null
plugin: 'system_menu_block:opencase-add-actors'
settings:
id: 'system_menu_block:opencase-add-actors'
label: 'Add Records'
provider: system
label_display: visible
level: 1
depth: 0
visibility:
user_role:
id: user_role
roles:
authenticated: authenticated
negate: false
context_mapping:
user: '@user.current_user_context:current_user'

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.osic_level
module:
- facets
- system
theme:
- bartik
id: osiclevel
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:osic_level'
settings:
id: 'facet_block:osic_level'
label: 'OSIC level'
provider: facets
label_display: visible
block_id: osiclevel
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/*'
negate: false
context_mapping: { }

View File

@ -17,6 +17,6 @@ default_value_callback: 'Drupal\opencase_entities\Entity\OCCase::defaultVal'
settings:
handler_settings:
target_bundles:
client: client
volunteer: volunteer
handler: default
field_type: entity_reference

View File

@ -5,6 +5,7 @@ dependencies:
- field.field.oc_actor.volunteer.field_languages_spoken
- field.field.oc_actor.volunteer.field_nationality
- field.field.oc_actor.volunteer.field_osic_level
- field.field.oc_actor.volunteer.field_skills
- opencase_entities.oc_actor_type.volunteer
id: oc_actor.volunteer.default
targetEntityType: oc_actor
@ -12,13 +13,13 @@ bundle: volunteer
mode: default
content:
field_languages_spoken:
weight: 28
weight: 1
settings: { }
third_party_settings: { }
type: options_select
region: content
field_nationality:
weight: 27
weight: 0
settings:
size: 60
placeholder: ''
@ -26,58 +27,17 @@ content:
type: string_textfield
region: content
field_osic_level:
weight: 29
weight: 2
settings: { }
third_party_settings: { }
type: options_select
region: content
field_sdfdsfds:
weight: 26
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: text_textarea
region: content
name:
type: string_textfield
weight: -4
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
phone:
type: string_textfield
weight: 2
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
phone2:
type: string_textfield
field_skills:
type: string_textarea
weight: 3
region: content
settings:
size: 60
placeholder: ''
third_party_settings: { }
postal_address:
type: string_textarea
weight: 5
region: content
settings:
rows: 5
placeholder: ''
third_party_settings: { }
user_id:
type: entity_reference_autocomplete
weight: 5
settings:
match_operator: CONTAINS
size: 60
placeholder: ''
region: content
third_party_settings: { }
hidden: { }

View File

@ -53,8 +53,8 @@ content:
weight: 3
label: above
settings:
format_type: medium
timezone_override: ''
format_type: short
third_party_settings: { }
type: datetime_default
region: content
@ -141,27 +141,4 @@ content:
settings:
link_to_entity: false
third_party_settings: { }
phone:
label: above
type: string
weight: 0
region: content
settings:
link_to_entity: false
third_party_settings: { }
phone2:
label: above
type: string
weight: 1
region: content
settings:
link_to_entity: false
third_party_settings: { }
postal_address:
label: above
type: basic_string
weight: 2
region: content
settings: { }
third_party_settings: { }
hidden: { }

View File

@ -5,6 +5,7 @@ dependencies:
- field.field.oc_actor.volunteer.field_languages_spoken
- field.field.oc_actor.volunteer.field_nationality
- field.field.oc_actor.volunteer.field_osic_level
- field.field.oc_actor.volunteer.field_skills
- opencase_entities.oc_actor_type.volunteer
module:
- options
@ -15,14 +16,14 @@ bundle: volunteer
mode: default
content:
field_languages_spoken:
weight: 8
weight: 4
label: above
settings: { }
third_party_settings: { }
type: list_default
region: content
field_nationality:
weight: 7
weight: 3
label: above
settings:
link_to_entity: false
@ -30,7 +31,7 @@ content:
type: string
region: content
field_osic_level:
weight: 9
weight: 5
label: above
settings: { }
third_party_settings: { }
@ -43,6 +44,13 @@ content:
third_party_settings: { }
type: text_default
region: content
field_skills:
type: basic_string
weight: 6
region: content
label: above
settings: { }
third_party_settings: { }
name:
label: above
type: string
@ -54,7 +62,7 @@ content:
phone:
label: above
type: string
weight: 2
weight: 0
region: content
settings:
link_to_entity: false
@ -62,7 +70,7 @@ content:
phone2:
label: above
type: string
weight: 3
weight: 1
region: content
settings:
link_to_entity: false
@ -70,7 +78,7 @@ content:
postal_address:
label: above
type: basic_string
weight: 5
weight: 2
region: content
settings: { }
third_party_settings: { }

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: asylum_status
name: 'Asylum status'
url_alias: asylum_status
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_asylum_status
facet_source_id: 'search_api:views_page__reporting_clients__page_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: asylum_status_export
name: 'Asylum status'
url_alias: asylum_status
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_asylum_status
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,67 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: created
name: Created
url_alias: created
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: created
facet_source_id: 'search_api:views_page__reporting_clients__page_1'
widget:
type: checkbox
config:
show_numbers: true
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
active_widget_order:
processor_id: active_widget_order
weights:
sort: -8
settings:
sort: DESC
count_widget_order:
processor_id: count_widget_order
weights:
sort: -9
settings:
sort: DESC
date_item:
processor_id: date_item
weights:
build: 35
settings:
date_display: actual_date
granularity: 5
date_format: ''
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: -10
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,67 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
module:
- views_data_export
id: created_export
name: 'Created - Export'
url_alias: created
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: created
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'
widget:
type: checkbox
config:
show_numbers: true
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
active_widget_order:
processor_id: active_widget_order
weights:
sort: 20
settings:
sort: DESC
count_widget_order:
processor_id: count_widget_order
weights:
sort: 30
settings:
sort: DESC
date_item:
processor_id: date_item
weights:
build: 35
settings:
date_display: actual_date
granularity: 5
date_format: ''
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: disability
name: 'Disability'
url_alias: disability
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_disability
facet_source_id: 'search_api:views_page__reporting_clients__page_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: disability_export
name: 'Disability'
url_alias: disability
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_disability
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: gender_identified_with
name: 'Gender Identity'
url_alias: gender_identified_with
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_gender_identified_with
facet_source_id: 'search_api:views_page__reporting_clients__page_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: gender_identified_with_export
name: 'Gender Identity'
url_alias: gender_identified_with
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_gender_identified_with
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: languages
name: 'Languages'
url_alias: languages
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_languages_spoken
facet_source_id: 'search_api:views_page__reporting_clients__page_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: languages_export
name: 'Languages'
url_alias: languages
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_languages_spoken
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: nationality
name: 'Nationality'
url_alias: nationality
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_nationality
facet_source_id: 'search_api:views_page__reporting_clients__page_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_clients
- views.view.reporting_clients
module:
- search_api
id: nationality_export
name: 'Nationality'
url_alias: nationality
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_nationality
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_volunteers
- views.view.reporting_volunteers
module:
- search_api
id: osic_level
name: 'OSIC level'
url_alias: osic_level
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_osic_level
facet_source_id: 'search_api:views_page__reporting_volunteers__page_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,47 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_volunteers
- views.view.reporting_volunteers
module:
- search_api
id: osic_level_export
name: 'OSIC level (Export)'
url_alias: osic_level
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: field_osic_level
facet_source_id: 'search_api:views_data_export__reporting_volunteers__data_export_1'
widget:
type: checkbox
config:
show_numbers: false
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,18 @@
langcode: en
status: true
dependencies:
config:
- field.storage.oc_actor.field_skills
- opencase_entities.oc_actor_type.volunteer
id: oc_actor.volunteer.field_skills
field_name: field_skills
entity_type: oc_actor
bundle: volunteer
label: Skills
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string_long

View File

@ -0,0 +1,18 @@
langcode: en
status: true
dependencies:
module:
- opencase_entities
id: oc_actor.field_skills
field_name: field_skills
entity_type: oc_actor
type: string_long
settings:
case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@ -0,0 +1,5 @@
langcode: en
status: true
dependencies: { }
id: supervision
label: Supervision

View File

@ -10,6 +10,7 @@ allowedActivityTypes:
interview: interview
lete: lete
research: research
supervision: supervision
telephone_call: telephone_call
volunteer_training_session: volunteer_training_session
destitution_funds_provided: 0

View File

@ -0,0 +1,57 @@
langcode: en
status: true
dependencies:
module:
- opencase_entities
- search_api
config:
- field.storage.oc_case.field_outcome
- search_api.server.opencase_reporting_server
id: opencase_reporting_cases
name: 'OpenCase Reporting: Cases'
description: ''
read_only: false
field_settings:
actors_involved:
label: 'Involved Parties'
datasource_id: 'entity:oc_case'
property_path: actors_involved
type: integer
dependencies:
module:
- opencase_entities
created:
label: Created
datasource_id: 'entity:oc_case'
property_path: created
type: date
dependencies:
module:
- opencase_entities
field_outcome:
label: Outcome
datasource_id: 'entity:oc_case'
property_path: field_outcome
type: string
dependencies:
config:
- field.storage.oc_case.field_outcome
datasource_settings:
'entity:oc_case':
bundles:
default: true
selected: { }
languages:
default: true
selected: { }
processor_settings:
add_url: { }
aggregated_field: { }
rendered_item: { }
tracker_settings:
default:
indexing_order: fifo
options:
index_directly: true
cron_limit: 50
server: opencase_reporting_server

View File

@ -0,0 +1,86 @@
langcode: en
status: true
dependencies:
config:
- field.storage.oc_actor.field_asylum_status
- field.storage.oc_actor.field_disability
- field.storage.oc_actor.field_gender_identified_with
- field.storage.oc_actor.field_languages_spoken
- field.storage.oc_actor.field_nationality
- search_api.server.opencase_reporting_server
module:
- opencase_entities
- search_api
id: opencase_reporting_clients
name: 'OpenCase Reporting: Clients'
description: ''
read_only: false
field_settings:
created:
label: Created
datasource_id: 'entity:oc_actor'
property_path: created
type: date
dependencies:
module:
- opencase_entities
field_asylum_status:
label: 'Asylum status'
datasource_id: 'entity:oc_actor'
property_path: field_asylum_status
type: string
dependencies:
config:
- field.storage.oc_actor.field_asylum_status
field_disability:
label: Disability
datasource_id: 'entity:oc_actor'
property_path: field_disability
type: string
dependencies:
config:
- field.storage.oc_actor.field_disability
field_gender_identified_with:
label: 'Gender identified with'
datasource_id: 'entity:oc_actor'
property_path: field_gender_identified_with
type: string
dependencies:
config:
- field.storage.oc_actor.field_gender_identified_with
field_languages_spoken:
label: 'Languages spoken'
datasource_id: 'entity:oc_actor'
property_path: field_languages_spoken
type: string
dependencies:
config:
- field.storage.oc_actor.field_languages_spoken
field_nationality:
label: Nationality
datasource_id: 'entity:oc_actor'
property_path: field_nationality
type: string
dependencies:
config:
- field.storage.oc_actor.field_nationality
datasource_settings:
'entity:oc_actor':
bundles:
default: false
selected:
- client
languages:
default: true
selected: { }
processor_settings:
add_url: { }
aggregated_field: { }
rendered_item: { }
tracker_settings:
default:
indexing_order: fifo
options:
index_directly: true
cron_limit: 50
server: opencase_reporting_server

View File

@ -0,0 +1,50 @@
langcode: en
status: true
dependencies:
module:
- opencase_entities
- search_api
config:
- field.storage.oc_actor.field_osic_level
- search_api.server.opencase_reporting_server
id: opencase_reporting_volunteers
name: 'OpenCase Reporting: Volunteers'
description: ''
read_only: false
field_settings:
created:
label: Created
datasource_id: 'entity:oc_actor'
property_path: created
type: date
dependencies:
module:
- opencase_entities
field_osic_level:
label: 'OSIC level'
datasource_id: 'entity:oc_actor'
property_path: field_osic_level
type: string
dependencies:
config:
- field.storage.oc_actor.field_osic_level
datasource_settings:
'entity:oc_actor':
bundles:
default: false
selected:
- volunteer
languages:
default: true
selected: { }
processor_settings:
add_url: { }
aggregated_field: { }
rendered_item: { }
tracker_settings:
default:
indexing_order: fifo
options:
index_directly: true
cron_limit: 50
server: opencase_reporting_server

View File

@ -1,7 +0,0 @@
langcode: en
status: true
dependencies: { }
id: opencase-add-actors
label: 'OpenCase Add Actors'
description: ''
locked: false

View File

@ -15,5 +15,6 @@ permissions:
- 'edit activity entities'
- 'edit case entities'
- 'edit client entities'
- 'use opencase'
- 'view own cases'
- 'view published client entities'

View File

@ -10,9 +10,14 @@ permissions:
- 'add case entities'
- 'add client entities'
- 'add volunteer entities'
- 'administer oc_activity display'
- 'administer oc_activity fields'
- 'administer oc_activity form display'
- 'administer oc_actor display'
- 'administer oc_actor fields'
- 'administer oc_actor form display'
- 'administer oc_case fields'
- 'administer oc_case form display'
- 'administer opencase entity bundles'
- 'administer users'
- 'delete activity entities'
@ -23,6 +28,7 @@ permissions:
- 'edit case entities'
- 'edit client entities'
- 'edit volunteer entities'
- 'use opencase'
- 'view published activity entities'
- 'view published case entities'
- 'view published client entities'

View File

@ -18,6 +18,7 @@ permissions:
- 'edit case entities'
- 'edit client entities'
- 'edit volunteer entities'
- 'use opencase'
- 'view published case entities'
- 'view published client entities'
- 'view published volunteer entities'

View File

@ -15,4 +15,5 @@ permissions:
- 'edit activity entities'
- 'edit case entities'
- 'edit volunteer entities'
- 'use opencase'
- 'view published volunteer entities'

View File

@ -0,0 +1,724 @@
langcode: en
status: true
dependencies:
config:
- field.storage.oc_actor.field_asylum_status
- field.storage.oc_actor.field_disability
- field.storage.oc_actor.field_gender_identified_with
- field.storage.oc_actor.field_languages_spoken
- field.storage.oc_actor.field_nationality
- search_api.index.opencase_reporting_clients
content:
- 'block_content:basic:944ff38d-5931-4439-91d5-f53b5ad7aac7'
module:
- options
- rest
- search_api
- serialization
- user
- views_data_export
id: reporting_clients
label: 'Reporting: Clients'
module: views
description: ''
tag: ''
base_table: search_api_index_opencase_reporting_clients
base_field: search_api_id
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'use opencase'
cache:
type: tag
options: { }
query:
type: views_query
options:
bypass_access: false
skip_access: false
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: mini
options:
items_per_page: 10
offset: 0
id: 0
total_pages: null
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
tags:
previous:
next:
style:
type: table
row:
type: fields
fields:
first_name:
id: first_name
table: search_api_datasource_opencase_reporting_clients_entity_oc_actor
field: first_name
relationship: none
group_type: group
admin_label: ''
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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
last_name:
id: last_name
table: search_api_datasource_opencase_reporting_clients_entity_oc_actor
field: last_name
relationship: none
group_type: group
admin_label: ''
label: 'Last 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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
field_asylum_status:
id: field_asylum_status
table: search_api_index_opencase_reporting_clients
field: field_asylum_status
relationship: none
group_type: group
admin_label: ''
label: 'Asylum status'
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: list_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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: null
entity_field: null
plugin_id: search_api_field
field_disability:
id: field_disability
table: search_api_index_opencase_reporting_clients
field: field_disability
relationship: none
group_type: group
admin_label: ''
label: Disability
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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
plugin_id: search_api_field
field_gender_identified_with:
id: field_gender_identified_with
table: search_api_index_opencase_reporting_clients
field: field_gender_identified_with
relationship: none
group_type: group
admin_label: ''
label: 'Gender ID'
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: list_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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
plugin_id: search_api_field
field_languages_spoken:
id: field_languages_spoken
table: search_api_index_opencase_reporting_clients
field: field_languages_spoken
relationship: none
group_type: group
admin_label: ''
label: Languages
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: list_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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
plugin_id: search_api_field
field_nationality:
id: field_nationality
table: search_api_index_opencase_reporting_clients
field: field_nationality
relationship: none
group_type: group
admin_label: ''
label: Nationality
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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
plugin_id: search_api_field
post_code:
id: post_code
table: search_api_datasource_opencase_reporting_clients_entity_oc_actor
field: post_code
relationship: none
group_type: group
admin_label: ''
label: 'Post Code'
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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
filters: { }
sorts: { }
title: 'Client Report'
header:
entity_block_content:
id: entity_block_content
table: views
field: entity_block_content
relationship: none
group_type: group
admin_label: ''
empty: false
tokenize: true
target: 944ff38d-5931-4439-91d5-f53b5ad7aac7
view_mode: default
bypass_access: false
plugin_id: entity
footer: { }
empty: { }
relationships: { }
arguments: { }
display_extenders: { }
use_ajax: true
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user.permissions
tags:
- 'config:field.storage.oc_actor.field_asylum_status'
- 'config:field.storage.oc_actor.field_disability'
- 'config:field.storage.oc_actor.field_gender_identified_with'
- 'config:field.storage.oc_actor.field_languages_spoken'
- 'config:field.storage.oc_actor.field_nationality'
data_export_1:
display_plugin: data_export
id: data_export_1
display_title: 'Data export'
position: 2
display_options:
display_extenders: { }
path: opencase/reporting/clients
filename: '[view:title].csv'
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- request_format
- user.permissions
tags:
- 'config:field.storage.oc_actor.field_asylum_status'
- 'config:field.storage.oc_actor.field_disability'
- 'config:field.storage.oc_actor.field_gender_identified_with'
- 'config:field.storage.oc_actor.field_languages_spoken'
- 'config:field.storage.oc_actor.field_nationality'
page_1:
display_plugin: page
id: page_1
display_title: Page
position: 1
display_options:
display_extenders: { }
path: opencase/reporting/clients
cache:
type: none
defaults:
cache: false
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user.permissions
tags:
- 'config:field.storage.oc_actor.field_asylum_status'
- 'config:field.storage.oc_actor.field_disability'
- 'config:field.storage.oc_actor.field_gender_identified_with'
- 'config:field.storage.oc_actor.field_languages_spoken'
- 'config:field.storage.oc_actor.field_nationality'

View File

@ -0,0 +1,530 @@
langcode: en
status: true
dependencies:
config:
- field.storage.oc_actor.field_languages_spoken
- field.storage.oc_actor.field_osic_level
- search_api.index.opencase_reporting_volunteers
content:
- 'block_content:basic:944ff38d-5931-4439-91d5-f53b5ad7aac7'
module:
- csv_serialization
- options
- rest
- search_api
- serialization
- user
- views_data_export
id: reporting_volunteers
label: 'Reporting: Volunteers'
module: views
description: ''
tag: ''
base_table: search_api_index_opencase_reporting_volunteers
base_field: search_api_id
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'use opencase'
cache:
type: tag
options: { }
query:
type: views_query
options:
bypass_access: false
skip_access: false
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: mini
options:
items_per_page: 10
offset: 0
id: 0
total_pages: null
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
tags:
previous:
next:
style:
type: table
row:
type: fields
fields:
first_name:
id: first_name
table: search_api_datasource_opencase_reporting_volunteers_entity_oc_actor
field: first_name
relationship: none
group_type: group
admin_label: ''
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: 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
field_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
last_name:
id: last_name
table: search_api_datasource_opencase_reporting_volunteers_entity_oc_actor
field: last_name
relationship: none
group_type: group
admin_label: ''
label: 'Last 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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
created:
id: created
table: search_api_datasource_opencase_reporting_volunteers_entity_oc_actor
field: created
relationship: none
group_type: group
admin_label: ''
label: 'Created Date'
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: timestamp
settings:
date_format: medium
custom_date_format: ''
timezone: ''
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_rendering: true
fallback_handler: search_api_date
fallback_options:
date_format: fallback
custom_date_format: ''
timezone: ''
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
field_osic_level:
id: field_osic_level
table: search_api_index_opencase_reporting_volunteers
field: field_osic_level
relationship: none
group_type: group
admin_label: ''
label: 'OSIC Level'
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: list_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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: null
entity_field: null
plugin_id: search_api_field
field_languages_spoken:
id: field_languages_spoken
table: search_api_datasource_opencase_reporting_volunteers_entity_oc_actor
field: field_languages_spoken
relationship: none
group_type: group
admin_label: ''
label: Languages
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: list_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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
filters: { }
sorts: { }
title: 'Volunteer Report'
header:
entity_block_content:
id: entity_block_content
table: views
field: entity_block_content
relationship: none
group_type: group
admin_label: ''
empty: false
tokenize: true
target: 944ff38d-5931-4439-91d5-f53b5ad7aac7
view_mode: default
bypass_access: false
plugin_id: entity
footer: { }
empty: { }
relationships: { }
arguments: { }
display_extenders: { }
use_ajax: true
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user.permissions
tags:
- 'config:field.storage.oc_actor.field_languages_spoken'
- 'config:field.storage.oc_actor.field_osic_level'
data_export_1:
display_plugin: data_export
id: data_export_1
display_title: 'Data export'
position: 2
display_options:
display_extenders: { }
path: opencase/reporting/volunteers
filename: '[view:title].csv'
style:
type: data_export
options:
formats:
csv: csv
csv_settings:
delimiter: ','
enclosure: '"'
escape_char: \
strip_tags: true
trim: true
encoding: utf8
xls_settings:
xls_format: Excel2007
metadata:
creator: ''
last_modified_by: ''
title: ''
description: ''
subject: ''
keywords: ''
category: ''
manager: ''
company: ''
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- request_format
- user.permissions
tags:
- 'config:field.storage.oc_actor.field_languages_spoken'
- 'config:field.storage.oc_actor.field_osic_level'
page_1:
display_plugin: page
id: page_1
display_title: Page
position: 1
display_options:
display_extenders: { }
path: opencase/reporting/volunteers
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url.query_args
- user.permissions
tags:
- 'config:field.storage.oc_actor.field_languages_spoken'
- 'config:field.storage.oc_actor.field_osic_level'

View File

@ -1,10 +1,11 @@
name: 'Opencase Example Configuration'
type: module
description: 'Actor types, case types, activity types and user roles suited to an asylum advice group'
description: 'Person types, case types, activity types and user roles suited to an asylum advice group'
core: 8.x
package: 'OpenCase'
dependencies:
- contact
- field
- opencase_entities
- opencase_reporting
- options

View File

@ -1,12 +1,12 @@
opencase.add_volunteer:
title: 'Add a new volunteer'
description: 'Create a new volunteer record'
menu_name: opencase-add-actors
url: internal:/opencase/oc_actor/add/volunteer
opencase_defaults.report_on_clients:
title: 'Clients'
description: 'Report on clients'
parent: opencase_defaults.reporting_menu
url: internal:/opencase/reporting/clients
weight: 0
opencase.add_client:
title: 'Add a new client'
description: 'Create a new client record'
menu_name: opencase-add-actors
url: internal:/opencase/oc_actor/add/client
opencase_defaults.report_on_volunteers:
title: 'Volunteers'
description: 'Report on volunteers'
parent: opencase_defaults.reporting_menu
url: internal:/opencase/reporting/volunteers
weight: 1

View File

@ -6,6 +6,26 @@
*/
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\user\Entity\Role;
use Drupal\user\RoleInterface;
/**
* When a new actor type is created, this gives the CRM Admin and Overseer roles permission
* to view, edit and delete them.
*/
#function opencase_defaults_entity_insert(Drupal\Core\Entity\EntityInterface $entity) {
# if (get_class($entity) == 'Drupal\opencase_entities\Entity\OCActorType') {
# $type = $entity->id();
# $roles = Role::loadMultiple(['opencase_admin', 'overseer']);
# foreach ($roles as $role) {
# $role->grantPermission("view published $type entities");
# $role->grantPermission("edit $type entities");
# $role->grantPermission("delete $type entities");
# $role->grantPermission("add new $type entities");
# }
# \Drupal::logger('foo')->notice("<pre>".print_r(user_role_permissions(['overseer']), true) . "</pre>");
# }
#}
/**
* Implements hook_help().

View File

@ -3,15 +3,14 @@ status: true
dependencies:
config:
- field.storage.user.field_linked_opencase_actor
- opencase_entities.oc_actor_type.volunteer
module:
- user
id: user.user.field_linked_opencase_actor
field_name: field_linked_opencase_actor
entity_type: user
bundle: user
label: 'Linked OpenCase actor'
description: 'If this user is also an actor (e.g. a volunteer or staff member) in OpenCase, link them here. This will ensure that they have access to the correct cases and that the correct cases are shown as "theirs".'
label: 'Person in OpenCase'
description: 'If this user is also a person in OpenCase (e.g. a staff member or a volunteer), start typing the name here to link them. This will ensure they have access to the right cases.'
required: false
translatable: false
default_value: { }
@ -20,7 +19,6 @@ settings:
handler: 'default:oc_actor'
handler_settings:
target_bundles:
volunteer: volunteer
sort:
field: _none
auto_create: false

View File

@ -1,11 +1,11 @@
entity.oc_actor.add_form:
route_name: entity.oc_actor.add_page
title: 'Add Actor'
title: 'Add Person'
appears_on:
- entity.oc_actor.collection
entity.oc_actor_type.add_form:
route_name: entity.oc_actor_type.add_form
title: 'Add Actor type'
title: 'Add Person type'
appears_on:
- entity.oc_actor_type.collection

View File

@ -1,3 +1,7 @@
permission_callbacks:
- Drupal\opencase_entities\OpenCaseEntityPermissions::permissions
administer opencase entity bundles:
title: 'Administer OpenCase Actor/Case/Activity Types'
description: 'Create, configure and delete types of actor (such as "Client" or "Legal Advisor"), types of case (such as "Housing" or "Asylum") and types of activity (such as "Case Note" or "Interview")'
@ -7,57 +11,57 @@ administer actor entities:
description: 'Allow to access the administration form to configure Actor entities.'
restrict access: true
add client entities:
title: 'Create new Client entities'
delete client entities:
title: 'Delete Client entities'
edit client entities:
title: 'Edit Client entities'
view published client entities:
title: 'View published Client entities'
view unpublished client entities:
title: 'View unpublished Client entities'
view all client revisions:
title: 'View all Client revisions'
revert all client revisions:
title: 'Revert all Client revisions'
description: 'Role requires permission <em>view Client revisions</em> and <em>edit rights</em> for client entities in question or <em>administer client entities</em>.'
delete all client revisions:
title: 'Delete all Client revisions'
description: 'Role requires permission to <em>view Client revisions</em> and <em>delete rights</em> for client entities in question or <em>administer client entities</em>.'
add volunteer entities:
title: 'Create new Volunteer entities'
delete volunteer entities:
title: 'Delete Volunteer entities'
edit volunteer entities:
title: 'Edit Volunteer entities'
view published volunteer entities:
title: 'View published Volunteer entities'
view unpublished volunteer entities:
title: 'View unpublished Volunteer entities'
view all volunteer revisions:
title: 'View all Volunteer revisions'
revert all volunteer revisions:
title: 'Revert all Volunteer revisions'
description: 'Role requires permission <em>view Volunteer revisions</em> and <em>edit rights</em> for volunteer entities in question or <em>administer volunteer entities</em>.'
delete all volunteer revisions:
title: 'Delete all Volunteer revisions'
description: 'Role requires permission to <em>view Volunteer revisions</em> and <em>delete rights</em> for volunteer entities in question or <em>administer volunteer entities</em>.'
#add client entities:
# title: 'Create new Client entities'
#
#delete client entities:
# title: 'Delete Client entities'
#
#edit client entities:
# title: 'Edit Client entities'
#
#view published client entities:
# title: 'View published Client entities'
#
#view unpublished client entities:
# title: 'View unpublished Client entities'
#
#view all client revisions:
# title: 'View all Client revisions'
#
#revert all client revisions:
# title: 'Revert all Client revisions'
# description: 'Role requires permission <em>view Client revisions</em> and <em>edit rights</em> for client entities in question or <em>administer client entities</em>.'
#
#delete all client revisions:
# title: 'Delete all Client revisions'
# description: 'Role requires permission to <em>view Client revisions</em> and <em>delete rights</em> for client entities in question or <em>administer client entities</em>.'
#
#add volunteer entities:
# title: 'Create new Volunteer entities'
#
#delete volunteer entities:
# title: 'Delete Volunteer entities'
#
#edit volunteer entities:
# title: 'Edit Volunteer entities'
#
#view published volunteer entities:
# title: 'View published Volunteer entities'
#
#view unpublished volunteer entities:
# title: 'View unpublished Volunteer entities'
#
#view all volunteer revisions:
# title: 'View all Volunteer revisions'
#
#revert all volunteer revisions:
# title: 'Revert all Volunteer revisions'
# description: 'Role requires permission <em>view Volunteer revisions</em> and <em>edit rights</em> for volunteer entities in question or <em>administer volunteer entities</em>.'
#
#delete all volunteer revisions:
# title: 'Delete all Volunteer revisions'
# description: 'Role requires permission to <em>view Volunteer revisions</em> and <em>delete rights</em> for volunteer entities in question or <em>administer volunteer entities</em>.'
add case entities:
title: 'Create new Case entities'

View File

@ -17,8 +17,8 @@ use Drupal\user\UserInterface;
*
* @ContentEntityType(
* id = "oc_actor",
* label = @Translation("Actor"),
* bundle_label = @Translation("Actor type"),
* label = @Translation("Person"),
* bundle_label = @Translation("Person type"),
* handlers = {
* "storage" = "Drupal\opencase_entities\OCActorStorage",
* "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
@ -235,7 +235,7 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'author',
'weight' => -4,
'weight' => -10,
]);
$fields['first_name'] = BaseFieldDefinition::create('string')
@ -250,11 +250,11 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => -3,
'weight' => -9,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -3,
'weight' => -9,
])
->setRequired(TRUE);
@ -270,11 +270,11 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => -2,
'weight' => -8,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -2,
'weight' => -8,
])
->setRequired(FALSE);
@ -290,14 +290,25 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string',
'weight' => -1,
'weight' => -7,
])
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -1,
'weight' => -7,
])
->setRequired(TRUE);
$fields['consent'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Consent to data storage'))
->setDescription(t('Has this person explicitly consented to having their personal data stored on this system?'))
->setRevisionable(TRUE)
->setDefaultValue(FALSE)
->setRequired(TRUE)
->setDisplayOptions('form', array(
'type' => 'boolean_checkbox',
'weight' => -6,
));
// Contact details.
// so it is not exposed to user configuration.
$fields['email'] = BaseFieldDefinition::create('string')
@ -310,16 +321,14 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 0,
'weight' => -5,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 0,
'weight' => -5,
));
$fields['phone'] = BaseFieldDefinition::create('string')
->setLabel(t('Main Phone Number'))
->setDisplayConfigurable('view', TRUE)
->setDisplayConfigurable('form', TRUE)
->setSettings(array(
'default_value' => '',
'max_length' => 20,
@ -328,11 +337,11 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 2,
'weight' => -4,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 2,
'weight' => -4,
));
$fields['phone2'] = BaseFieldDefinition::create('string')
->setLabel(t('Alternative Phone Number'))
@ -341,22 +350,18 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
'max_length' => 20,
'text_processing' => 0,
))
->setDisplayConfigurable('view', TRUE)
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 3,
'weight' => -3,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 3,
'weight' => -3,
));
$fields['postal_address'] = BaseFieldDefinition::create('string_long')
->setLabel(t('Postal Address'))
->setDescription(t('Full address, apart from post code.'))
->setDisplayConfigurable('view', TRUE)
->setDisplayConfigurable('form', TRUE)
->setSettings(array(
'default_value' => '',
'max_length' => 255,
@ -365,11 +370,11 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'basic_string',
'weight' => 5,
'weight' => -2,
))
->setDisplayOptions('form', array(
'type' => 'string_textarea',
'weight' => 5,
'weight' => -2,
));
$fields['post_code'] = BaseFieldDefinition::create('string')
->setLabel(t('Post Code'))
@ -381,11 +386,11 @@ class OCActor extends RevisionableContentEntityBase implements OCActorInterface
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'string',
'weight' => 6,
'weight' => -1,
))
->setDisplayOptions('form', array(
'type' => 'string_textfield',
'weight' => 6,
'weight' => -1,
));
$fields['created'] = BaseFieldDefinition::create('created')

View File

@ -55,13 +55,13 @@ class OCActorForm extends ContentEntityForm {
switch ($status) {
case SAVED_NEW:
drupal_set_message($this->t('Created the %label Actor.', [
drupal_set_message($this->t('Created %label.', [
'%label' => $entity->label(),
]));
break;
default:
drupal_set_message($this->t('Saved the %label Actor.', [
drupal_set_message($this->t('Saved %label.', [
'%label' => $entity->label(),
]));
}

View File

@ -0,0 +1,93 @@
<?php
namespace Drupal\opencase_entities;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Symfony\Component\DependencyInjection\ContainerInterface;
class OpenCaseEntityPermissions implements ContainerInjectionInterface {
use StringTranslationTrait;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* Constructor for MyModulePermissions.
*
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
*/
public function __construct(EntityTypeManagerInterface $entity_type_manager) {
$this->entityTypeManager = $entity_type_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container->get('entity_type.manager'));
}
/**
* Get permissions for MyModule.
*
* @return array
* Permissions array.
*/
public function permissions() {
$permissions = [];
foreach ($this->entityTypeManager->getStorage('oc_actor_type')->loadMultiple() as $id => $type) {
$permissions += [
"add $id entities" => [
'title' => $this->t('Create new %type entities', array('%type' => $type->label())),
]
];
$permissions += [
"edit $id entities" => [
'title' => $this->t('Edit %type entities', array('%type' => $type->label())),
]
];
$permissions += [
"delete $id entities" => [
'title' => $this->t('Delete %type entities', array('%type' => $type->label())),
]
];
$permissions += [
"view published $id entities" => [
'title' => $this->t('View published %type entities', array('%type' => $type->label())),
]
];
$permissions += [
"view all $id revisions" => [
'title' => $this->t('View %type revisions', array('%type' => $type->label())),
]
];
$permissions += [
"revert all $id revisions" => [
'title' => $this->t('Revert %type revisions', array('%type' => $type->label())),
]
];
$permissions += [
"delete all $id revisions" => [
'title' => $this->t('Delete %type revisions', array('%type' => $type->label())),
]
];
}
return $permissions;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.actor_type
module:
- facets
- system
theme:
- bartik
id: facet_actortype
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:actor_type'
settings:
id: 'facet_block:actor_type'
label: 'Actor type'
provider: facets
label_display: visible
block_id: facet_actortype
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/actors'
negate: false
context_mapping: { }

View File

@ -0,0 +1,28 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.created
module:
- facets
- system
theme:
- bartik
id: facet_created
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:created'
settings:
id: 'facet_block:created'
label: 'Created Date'
provider: facets
label_display: visible
block_id: facet_created
visibility:
request_path:
id: request_path
pages: '/opencase/reporting/actors'
negate: false
context_mapping: { }

View File

@ -0,0 +1,59 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_actors
- views.view.reporting_actors
module:
- search_api
id: actor_type
name: 'Actor type'
url_alias: actor_type
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: type
facet_source_id: 'search_api:views_page__reporting_actors__page_1'
widget:
type: checkbox
config:
show_numbers: true
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
active_widget_order:
processor_id: active_widget_order
weights:
sort: -9
settings:
sort: DESC
count_widget_order:
processor_id: count_widget_order
weights:
sort: -8
settings:
sort: DESC
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: -10
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,59 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_actors
module:
- views_data_export
id: actor_type_export
name: 'Actor type - Export'
url_alias: actor_type
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: type
facet_source_id: 'search_api:views_data_export__reporting_actors__data_export_1'
widget:
type: checkbox
config:
show_numbers: true
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
active_widget_order:
processor_id: active_widget_order
weights:
sort: 20
settings:
sort: DESC
count_widget_order:
processor_id: count_widget_order
weights:
sort: 30
settings:
sort: DESC
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,67 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_actors
- views.view.reporting_actors
module:
- search_api
id: created
name: Created
url_alias: created
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: created
facet_source_id: 'search_api:views_page__reporting_actors__page_1'
widget:
type: checkbox
config:
show_numbers: true
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
active_widget_order:
processor_id: active_widget_order
weights:
sort: -8
settings:
sort: DESC
count_widget_order:
processor_id: count_widget_order
weights:
sort: -9
settings:
sort: DESC
date_item:
processor_id: date_item
weights:
build: 35
settings:
date_display: actual_date
granularity: 5
date_format: ''
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: -10
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,67 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_actors
module:
- views_data_export
id: created_export
name: 'Created - Export'
url_alias: created
weight: 0
min_count: 1
show_only_one_result: false
field_identifier: created
facet_source_id: 'search_api:views_data_export__reporting_actors__data_export_1'
widget:
type: checkbox
config:
show_numbers: true
soft_limit: 0
soft_limit_settings:
show_less_label: 'Show less'
show_more_label: 'Show more'
query_operator: or
use_hierarchy: false
expand_hierarchy: false
enable_parent_when_child_gets_disabled: true
hard_limit: 0
exclude: false
only_visible_when_facet_source_is_visible: true
processor_configs:
active_widget_order:
processor_id: active_widget_order
weights:
sort: 20
settings:
sort: DESC
count_widget_order:
processor_id: count_widget_order
weights:
sort: 30
settings:
sort: DESC
date_item:
processor_id: date_item
weights:
build: 35
settings:
date_display: actual_date
granularity: 5
date_format: ''
display_value_widget_order:
processor_id: display_value_widget_order
weights:
sort: 40
settings:
sort: ASC
url_processor_handler:
processor_id: url_processor_handler
weights:
pre_query: 50
build: 15
settings: { }
empty_behavior:
behavior: none
show_title: false

View File

@ -0,0 +1,42 @@
langcode: en
status: true
dependencies:
config:
- search_api.server.opencase_reporting_server
module:
- search_api
- opencase_entities
id: opencase_reporting_actors
name: 'OpenCase Reporting: Actors'
description: ''
read_only: false
field_settings:
created:
label: Created
datasource_id: 'entity:oc_actor'
property_path: created
type: date
type:
label: 'Actor type'
datasource_id: 'entity:oc_actor'
property_path: type
type: string
datasource_settings:
'entity:oc_actor':
bundles:
default: true
selected: { }
languages:
default: true
selected: { }
processor_settings:
add_url: { }
aggregated_field: { }
rendered_item: { }
tracker_settings:
default:
indexing_order: fifo
options:
index_directly: true
cron_limit: 50
server: opencase_reporting_server

View File

@ -0,0 +1,16 @@
langcode: en
status: true
dependencies:
module:
- search_api_db
id: opencase_reporting_server
name: 'OpenCase Reporting'
description: ''
backend: search_api_db
backend_config:
database: 'default:default'
min_chars: 1
partial_matches: false
autocomplete:
suggest_suffix: true
suggest_words: true

View File

@ -0,0 +1,588 @@
langcode: en
status: true
dependencies:
config:
- search_api.index.opencase_reporting_actors
content:
- 'block_content:basic:944ff38d-5931-4439-91d5-f53b5ad7aac7'
module:
- csv_serialization
- rest
- search_api
- serialization
- user
- views_data_export
id: reporting_actors
label: 'Reporting: Actors'
module: views
description: 'A basic reporting view, for illustrative purposes, that does not assume the existence of any specific actor types or fields'
tag: ''
base_table: search_api_index_opencase_reporting_actors
base_field: search_api_id
core: 8.x
display:
default:
display_plugin: default
id: default
display_title: Master
position: 0
display_options:
access:
type: perm
options:
perm: 'access content'
cache:
type: tag
options: { }
query:
type: views_query
options:
bypass_access: false
skip_access: false
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: mini
options:
items_per_page: 10
offset: 0
id: 0
total_pages: null
tags:
previous:
next:
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
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
override: true
sticky: false
caption: ''
summary: ''
description: ''
columns:
created: created
type: type
info:
created:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
type:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
default: '-1'
empty_table: false
row:
type: fields
fields:
first_name:
id: first_name
table: search_api_datasource_opencase_reporting_actors_entity_oc_actor
field: first_name
relationship: none
group_type: group
admin_label: ''
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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
last_name:
id: last_name
table: search_api_datasource_opencase_reporting_actors_entity_oc_actor
field: last_name
relationship: none
group_type: group
admin_label: ''
label: 'Last 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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
type:
id: type
table: search_api_index_opencase_reporting_actors
field: type
relationship: none
group_type: group
admin_label: ''
label: Type
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: false
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_rendering: true
fallback_handler: search_api_entity
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
display_methods:
oc_actor_type:
display_method: label
plugin_id: search_api_field
created:
id: created
table: search_api_index_opencase_reporting_actors
field: created
relationship: none
group_type: group
admin_label: ''
label: 'Created date'
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: timestamp
settings:
date_format: medium
custom_date_format: ''
timezone: ''
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_rendering: true
fallback_handler: search_api_date
fallback_options:
date_format: fallback
custom_date_format: ''
timezone: ''
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: null
entity_field: null
plugin_id: search_api_field
filters: { }
sorts: { }
title: 'Reporting: Actors'
header: { }
footer: { }
empty: { }
relationships: { }
arguments:
'null':
id: 'null'
table: views
field: 'null'
relationship: none
group_type: group
admin_label: ''
default_action: default
exception:
value: all
title_enable: false
title: All
title_enable: true
title: '{{ "now"|date("Y/m/d") }}-{{ raw_arguments.null }} '
default_argument_type: query_parameter
default_argument_options:
query_param: title
fallback: Report
multiple: and
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: { }
must_not_be: false
plugin_id: 'null'
display_extenders: { }
use_ajax: true
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user.permissions
tags: { }
data_export_1:
display_plugin: data_export
id: data_export_1
display_title: 'Data export'
position: 3
display_options:
display_extenders: { }
path: opencase/reporting/actors
filename: '[view:title].csv'
displays:
default: '0'
page_1: '0'
style:
type: data_export
options:
formats:
csv: csv
csv_settings:
delimiter: ','
enclosure: '"'
escape_char: \
strip_tags: true
trim: true
encoding: utf8
xls_settings:
xls_format: Excel2007
metadata:
creator: ''
last_modified_by: ''
title: ''
description: ''
subject: ''
keywords: ''
category: ''
manager: ''
company: ''
cache:
type: none
defaults:
cache: false
arguments: false
pager:
type: none
options:
offset: 0
arguments:
'null':
id: 'null'
table: views
field: 'null'
relationship: none
group_type: group
admin_label: ''
default_action: default
exception:
value: all
title_enable: false
title: All
title_enable: true
title: '{{ raw_arguments.null }}'
default_argument_type: query_parameter
default_argument_options:
query_param: title
fallback: New+Report
multiple: and
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: { }
must_not_be: false
plugin_id: 'null'
auth:
- cookie
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- request_format
- url
- user.permissions
tags: { }
page_1:
display_plugin: page
id: page_1
display_title: Page
position: 1
display_options:
display_extenders: { }
path: opencase/reporting/actors
cache:
type: none
defaults:
cache: false
header: false
menu:
type: tab
title: Reporting
description: ''
expanded: false
parent: ''
weight: 0
context: '0'
menu_name: main
header:
entity_block_content:
id: entity_block_content
table: views
field: entity_block_content
relationship: none
group_type: group
admin_label: ''
empty: true
tokenize: false
target: 944ff38d-5931-4439-91d5-f53b5ad7aac7
view_mode: default
bypass_access: false
plugin_id: entity
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user.permissions
tags: { }

View File

@ -0,0 +1,12 @@
opencase_reporting.opencase_report.*:
type: config_entity
label: 'OpenCase Report config'
mapping:
id:
type: string
label: 'ID'
label:
type: label
label: 'Label'
uuid:
type: string

View File

@ -0,0 +1,15 @@
.facet-item label {
display: inline;
padding-left: 5px;
}
li.facet-item {
list-style-type: none;
}
.views-data-export-feed.csv-feed .feed-icon {
background-image: url(/modules/contrib/opencase/modules/opencase_reporting/assets/download.png);
width: 200px;
height: 27px;
float: right;
}

View File

@ -0,0 +1,18 @@
name: 'OpenCase Reporting'
type: module
description: 'Reporting functionality for OpenCase'
core: 8.x
package: 'OpenCase'
dependencies:
- opencase_entities
- search_api
- search_api_db
- facets
- csv_serialization
- rest
- serialization
- user
- views_data_export
libraries:
- opencase_reporting/opencase-reporting-lib

View File

@ -0,0 +1,7 @@
opencase-reporting-lib:
version: 1.x
css:
theme:
css/opencase-reporting.css: {}
js:
js/opencase-reporting.js: {}

View File

@ -0,0 +1,6 @@
opencase_defaults.reporting_menu:
title: 'Reporting'
description: 'Report on clients'
menu_name: opencase
url: internal:#
weight: 10

View File

@ -0,0 +1,56 @@
<?php
/**
* @file
* Contains opencase_reporting.module.
*/
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Implements hook_help().
*/
function opencase_reporting_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the opencase_reporting module.
case 'help.page.opencase_reporting':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('Reporting functionality for OpenCase.') . '</p>';
return $output;
default:
}
}
/**
* Implements hook_page_attachments
*
* Add the opencase library to every page
*/
function opencase_reporting_page_attachments(array &$page) {
$page['#attached']['library'][] = 'opencase_reporting/opencase-reporting-lib';
}
/**
* Implements hook_uninstall().
* Removes configs.
*/
function opencase_reporting_uninstall() {
$configs = [
'search_api.server.opencase_reporting_server',
'search_api.index.opencase_reporting_actors',
'facets.facet.actor_type',
'facets.facet.actor_type_export',
'facets.facet.created',
'facets.facet.created_export',
'views.view.reporting_actors',
'block.block.facet_actortype',
'block.block.facet_created',
'block.block.opencase_reporting_menu',
'system.menu.opencase_reporting'
];
foreach($configs as $config) {
Drupal::configFactory()->getEditable($config)->delete();
}
}

View File

@ -9,7 +9,7 @@ dependencies:
- bartik
id: exposedformactor_searchpage_1
theme: bartik
region: sidebar_first
region: header
weight: -9
provider: null
plugin: 'views_exposed_filter_block:actor_search-page_1'

View File

@ -7,14 +7,19 @@ dependencies:
- search_api
- opencase_entities
id: opencase_actors
name: 'OpenCase Actors'
name: 'OpenCase Search: Actors'
description: ''
read_only: false
field_settings:
name:
label: Name
first_name:
label: 'First Name'
datasource_id: 'entity:oc_actor'
property_path: name
property_path: first_name
type: text
last_name:
label: 'Last Name'
datasource_id: 'entity:oc_actor'
property_path: last_name
type: text
datasource_settings:
'entity:oc_actor':
@ -25,16 +30,17 @@ datasource_settings:
default: true
selected: { }
processor_settings:
rendered_item: { }
add_url: { }
aggregated_field: { }
ignorecase:
all_fields: true
fields:
- name
- first_name
- last_name
weights:
preprocess_index: -20
preprocess_query: -20
add_url: { }
rendered_item: { }
tracker_settings:
default:
indexing_order: fifo

View File

@ -4,13 +4,13 @@ dependencies:
module:
- search_api_db
id: opencase_server
name: 'OpenCase Server'
name: 'OpenCase Search'
description: ''
backend: search_api_db
backend_config:
database: 'default:default'
min_chars: 3
partial_matches: false
matching: partial
autocomplete:
suggest_suffix: true
suggest_words: true

View File

@ -8,7 +8,7 @@ dependencies:
- search_api
- user
id: actor_search
label: 'Actor Search'
label: 'Person Search'
module: views
description: ''
tag: ''
@ -115,14 +115,14 @@ display:
row:
type: fields
fields:
name:
id: name
first_name:
id: first_name
table: search_api_datasource_opencase_actors_entity_oc_actor
field: name
field: first_name
relationship: none
group_type: group
admin_label: ''
label: Name
label: 'First Name'
exclude: false
alter:
alter_text: false
@ -186,6 +186,151 @@ display:
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
last_name:
id: last_name
table: search_api_datasource_opencase_actors_entity_oc_actor
field: last_name
relationship: none
group_type: group
admin_label: ''
label: 'Last 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_rendering: true
fallback_handler: search_api
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
type:
id: type
table: search_api_datasource_opencase_actors_entity_oc_actor
field: type
relationship: none
group_type: group
admin_label: ''
label: Type
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: false
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_rendering: true
fallback_handler: search_api_entity
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
display_methods:
oc_actor_type:
display_method: label
entity_type: oc_actor
plugin_id: search_api_field
created:
id: created
table: search_api_datasource_opencase_actors_entity_oc_actor
@ -262,80 +407,6 @@ display:
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
type:
id: type
table: search_api_datasource_opencase_actors_entity_oc_actor
field: type
relationship: none
group_type: group
admin_label: ''
label: Type
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: 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: false
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_rendering: true
fallback_handler: search_api_entity
fallback_options:
link_to_item: false
use_highlighting: false
multi_type: separator
multi_separator: ', '
display_methods:
oc_actor_type:
display_method: label
entity_type: oc_actor
plugin_id: search_api_field
id:
id: id
table: search_api_datasource_opencase_actors_entity_oc_actor
@ -483,7 +554,7 @@ display:
expose:
operator_id: search_api_fulltext_op
label: 'Search by Name'
description: 'Type a first or last name and press enter.'
description: 'Type at least 3 letters and press enter.'
use_operator: false
operator: search_api_fulltext_op
identifier: search_api_fulltext

View File

@ -1,9 +1,9 @@
name: 'OpenCase Search'
type: module
description: 'Search functionality for OpenCase.'
description: 'Search functionality for OpenCase'
core: 8.x
package: 'OpenCase'
dependencies:
- search_api
- search_api_db
- opencase_entities
- opencase

View File

@ -5,5 +5,6 @@ core: 8.x
package: 'OpenCase'
dependencies:
- opencase_entities
- opencase_search
libraries:
- opencase/opencase-lib

View File

@ -1,36 +1,82 @@
opencase.cases:
title: 'Cases'
description: 'View cases'
menu_name: opencase
url: internal:#
weight: 0
opencase.opencase_all_cases:
title: 'All Cases'
description: 'All cases I have access to'
menu_name: opencase
parent: opencase.cases
url: internal:/opencase/all-cases
weight: 1
opencase.opencase_add_people_menu:
title: 'Add people'
description: 'Add new people'
menu_name: opencase
url: internal:#
weight: 1
opencase.add_people_links:
class: Drupal\opencase\Plugin\Menu\AddActorsMenuLink
deriver: Drupal\opencase\Plugin\Derivative\AddActorsMenuLink
menu_name: opencase
parent: opencase.opencase_add_people_menu
opencase.opencase_admin_menu:
title: 'Administration'
description: 'Management and Configuration'
route_name: opencase.opencase_admin_menu
menu_name: opencase
weight: 100
opencase.manage_user_logins:
title: 'Manage user logins'
description: 'Manage who can access the system'
menu_name: opencase-admin
menu_name: opencase
parent: opencase.opencase_admin_menu
url: internal:/admin/people
weight: 0
opencase.manage_actor_types:
title: 'Manage actor types'
description: 'Configure types of actors and their fields'
menu_name: opencase-admin
opencase.manage_person_types:
title: 'Manage person types'
description: 'Configure types of people and their fields'
menu_name: opencase
parent: opencase.opencase_admin_menu
url: internal:/admin/opencase/oc_actor_type
weight: 1
opencase.manage_case_types:
title: 'Manage case types'
description: 'Configure types of cases and their fields'
menu_name: opencase-admin
menu_name: opencase
parent: opencase.opencase_admin_menu
url: internal:/admin/opencase/oc_case_type
weight: 2
opencase.manage_activity_types:
title: 'Manage activity types'
description: 'Configure types of activities and their fields'
menu_name: opencase-admin
menu_name: opencase
parent: opencase.opencase_admin_menu
url: internal:/admin/opencase/oc_activity_type
weight: 3
opencase.opencase_support_menu:
title: 'Support'
description: 'Get help and advice'
menu_name: opencase
url: internal:#
weight: 101
opencase.view_documentation:
title: 'Read documentation'
description: 'Find out about OpenCase and how it works'
menu_name: openc
menu_name: opencase
parent: opencase.opencase_support_menu
url: https://hoegrammer.gitbooks.io/opencase/content/
weight: 0
opencase.send_feedback:
title: 'Send feedback'
opencase.contact_developers:
title: 'Contact OpenCase'
description: 'Contact the OpenCase developers'
menu_name: openc
menu_name: opencase
parent: opencase.opencase_support_menu
url: internal:/contact
weight: 1

View File

@ -29,7 +29,7 @@ function opencase_block_access(\Drupal\block\Entity\Block $block, $operation, \D
'view.activities.page_1',
'entity.oc_activity.canonical',
'entity.oc_activity.edit_form',
'entity.oc_activity.add_form'
'entity.oc_activity.add_form',
];
return AccessResult::forbiddenIf(!in_array($route_name, $routes_where_it_should_be_shown))->addCacheableDependency($block);
}
@ -138,11 +138,7 @@ function opencase_form_oc_case_type_edit_form_alter(&$form, $form_state) {
function opencase_uninstall() {
$configs = [
'block.block.opencasecontextualmenu',
'block.block.opencase',
'system.menu.openc',
'views.view.cases',
'block.block.opencaseglobal',
'system.menu.opencase-admin',
'views.view.activities'
];
foreach($configs as $config) {

5
opencase.permissions.yml Normal file
View File

@ -0,0 +1,5 @@
use opencase:
title: 'Use OpenCase'
description: 'Use the OpenCase case management system'
restrict access: true

8
opencase.routing.yml Normal file
View File

@ -0,0 +1,8 @@
opencase.opencase_admin_menu:
path: '#'
requirements:
_permission: 'administer users'
opencase.opencase_admin_menu:
path: '#'
requirements:
_permission: 'administer users'

View File

@ -1,13 +0,0 @@
# Config for storing which types of actors can be
# involved in which kinds of cases.
# The * is a case_type
opencase.case_type.actor_types.*:
type: config_entity
label: Actor types per case type
mapping:
actor_types:
label: Actor types
type: sequence
sequence: { }

View File

@ -20,7 +20,7 @@ class EntityTypeRelationsWidget {
$options[$machine_name] = $info['label'];
}
$form['allowed_actor_types'] = array(
'#title' => t('Actor types'),
'#title' => t('Allowed involved parties'),
'#description' => t('Types of people that can be involved in this kind of case.'),
'#type' => 'checkboxes',
'#options' => $options

View File

@ -0,0 +1,30 @@
<?php
namespace Drupal\opencase\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a Block with some help text about actor type fields
*
* @Block(
* id = "activity_type_help",
* admin_label = @Translation("Activity Type Help"),
* category = @Translation("Help"),
* )
*/
class ActivityTypeHelp extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
return array(
'#markup' => "
<h3>All activity types have default fields such as description and time taken. Other fields can be added and managed here.</h3>
"
);
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace Drupal\opencase\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a Block with some help text about actor type fields
*
* @Block(
* id = "actor_type_help",
* admin_label = @Translation("Actor Type Help"),
* category = @Translation("Help"),
* )
*/
class ActorTypeHelp extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
return array(
'#markup' => "
<h3>All person types have contact details fields by default. Other fields can be added and managed here.</h3>
"
);
}
}

View File

@ -0,0 +1,55 @@
<?php
namespace Drupal\opencase\Plugin\Derivative;
use Drupal\Component\Plugin\Derivative\DeriverBase;
use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
 * Derivative class that provides the menu links adding various types of actors
 */
class AddActorsMenuLink extends DeriverBase implements ContainerDeriverInterface {
/**
   * @var EntityTypeManagerInterface $entityTypeManager.
   */
protected $entityTypeManager;
/**
   * Creates a AddActorsMenuLink instance.
   *
   * @param $base_plugin_id
   * @param EntityTypeManagerInterface $entity_type_manager
   */
public function __construct($base_plugin_id, EntityTypeManagerInterface $entity_type_manager) {
$this->entityTypeManager = $entity_type_manager;
}
/**
   * {@inheritdoc}
   */
public static function create(ContainerInterface $container, $base_plugin_id) {
return new static(
$base_plugin_id,
$container->get('entity_type.manager')
);
}
/**
   * {@inheritdoc}
   */
public function getDerivativeDefinitions($base_plugin_definition) {
$links = [];
$actorTypes = $this->entityTypeManager->getStorage('oc_actor_type')->loadMultiple();
foreach ($actorTypes as $id => $actorType) {
$links[$id] = [
'title' => "Add ". $actorType->label(),
'route_name' => "entity.oc_actor.add_form",
'route_parameters' => ['oc_actor_type' => $actorType->id()]
] + $base_plugin_definition;
}
return $links;
}
}

View File

@ -0,0 +1,9 @@
<?php
namespace Drupal\opencase\Plugin\Menu;
use Drupal\Core\Menu\MenuLinkDefault;
/**
* Represents a menu link for adding an actor of some type.
*/
class AddActorsMenuLink extends MenuLinkDefault {}