Compare commits

..

14 Commits
0.3.1 ... 0.4.3

Author SHA1 Message Date
9a937e2d46 Changed minimum count to 0 on all facets
which means the checkboxes don't disappear when there are none of that kind in the search results.
Also changed how name is displayed in reporting view
2018-12-14 19:02:20 +00:00
e45cbb6a76 Changed permission for admin menu
because on demo, site-admin can configure entities but not manage users
2018-12-14 18:52:35 +00:00
ca04c3e259 Replaced text-box "nationality" field with drop-down "nationalities" 2018-12-14 18:51:45 +00:00
658ba667b1 updated readme for 0.4.2 2018-11-11 20:19:17 +00:00
309a31e012 tidied up menu code, made parent not open on click 2018-11-11 19:58:32 +00:00
8ccd0313a7 Added missing config file 2018-11-09 16:44:08 +00:00
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
52 changed files with 386 additions and 478 deletions

View File

@ -1,33 +1,36 @@
# OpenCase
A simple, case-management-focused CRM for small altruistic organisations.
## Current Status
**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.
A simple case-management system for small altruistic organisations.
## The Plan
OpenCase will be available as:
* A Drupal module, on drupal.org
* A Drupal install profile / distribution
* A hosted service
### Features
#### Existing
* Completely configurable person types, case types and activity types
* Search
* Basic Reporting
* Basic user roles (caseworker, volunteer co-ordinator, site admin etc) with access control
#### Coming soon
* Better reporting (currently only reports on defaults fields and not user-added ones)
* Allocation of tasks, overview of tasks and their stage of completion
* Appointments and notifications
## Current Status
**11 Nov 2018**
### User Base
OpenCase is being used by a couple of organisations, early adopters on the hosted platform.
### Availability as Free Software
If you want to install OpenCase for yourself, please get in touch via Issues. It is changing rapidly and the install process is currently undocumented but I am more than happy to guide you through.
### Try it out
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.
## Find out more
* 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

@ -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: '1'
touchbh: '1'
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

@ -0,0 +1,7 @@
langcode: en
status: true
dependencies: { }
id: opencase
label: OpenCase
description: 'Main navigation menu for OpenCase'
locked: false

View File

@ -584,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

@ -16,3 +16,16 @@ body {
.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

@ -1,28 +0,0 @@
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

@ -0,0 +1,22 @@
langcode: en
status: true
dependencies:
config:
- facets.facet.nationalities
module:
- facets
theme:
- bartik
id: nationalities
theme: bartik
region: sidebar_second
weight: 0
provider: null
plugin: 'facet_block:nationalities'
settings:
id: 'facet_block:nationalities'
label: Nationalities
provider: facets
label_display: visible
block_id: nationalities
visibility: { }

View File

@ -9,11 +9,12 @@ dependencies:
- field.field.oc_actor.client.field_disability
- field.field.oc_actor.client.field_ethnic_o
- field.field.oc_actor.client.field_gender_identified_with
- field.field.oc_actor.client.field_general_noes
- field.field.oc_actor.client.field_how_heard
- field.field.oc_actor.client.field_income
- field.field.oc_actor.client.field_languages_spoken
- field.field.oc_actor.client.field_marital_
- field.field.oc_actor.client.field_nationality
- field.field.oc_actor.client.field_nationalities
- field.field.oc_actor.client.field_referred_by
- opencase_entities.oc_actor_type.client
module:
@ -81,6 +82,14 @@ content:
third_party_settings: { }
type: options_select
region: content
field_general_noes:
weight: 27
settings:
rows: 5
placeholder: ''
third_party_settings: { }
type: string_textarea
region: content
field_how_heard:
weight: 13
settings: { }
@ -105,13 +114,11 @@ content:
third_party_settings: { }
type: options_select
region: content
field_nationality:
field_nationalities:
weight: 8
settings:
size: 60
placeholder: ''
settings: { }
third_party_settings: { }
type: string_textfield
type: options_select
region: content
field_referred_by:
weight: 14

View File

@ -10,7 +10,7 @@ id: asylum_status
name: 'Asylum status'
url_alias: asylum_status
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_asylum_status
facet_source_id: 'search_api:views_page__reporting_clients__page_1'

View File

@ -10,7 +10,7 @@ id: asylum_status_export
name: 'Asylum status'
url_alias: asylum_status
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_asylum_status
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'

View File

@ -10,7 +10,7 @@ id: created
name: Created
url_alias: created
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: created
facet_source_id: 'search_api:views_page__reporting_clients__page_1'

View File

@ -9,7 +9,7 @@ id: created_export
name: 'Created - Export'
url_alias: created
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: created
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'

View File

@ -10,7 +10,7 @@ id: disability
name: 'Disability'
url_alias: disability
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_disability
facet_source_id: 'search_api:views_page__reporting_clients__page_1'

View File

@ -10,7 +10,7 @@ id: disability_export
name: 'Disability'
url_alias: disability
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_disability
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'

View File

@ -10,7 +10,7 @@ id: gender_identified_with
name: 'Gender Identity'
url_alias: gender_identified_with
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_gender_identified_with
facet_source_id: 'search_api:views_page__reporting_clients__page_1'

View File

@ -10,7 +10,7 @@ id: gender_identified_with_export
name: 'Gender Identity'
url_alias: gender_identified_with
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_gender_identified_with
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'

View File

@ -10,7 +10,7 @@ id: languages
name: 'Languages'
url_alias: languages
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_languages_spoken
facet_source_id: 'search_api:views_page__reporting_clients__page_1'

View File

@ -10,7 +10,7 @@ id: languages_export
name: 'Languages'
url_alias: languages
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_languages_spoken
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'

View File

@ -6,13 +6,13 @@ dependencies:
- views.view.reporting_clients
module:
- search_api
id: nationality
name: 'Nationality'
url_alias: nationality
id: nationalities
name: Nationalities
url_alias: nationalities
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_nationality
field_identifier: field_nationalities
facet_source_id: 'search_api:views_page__reporting_clients__page_1'
widget:
type: checkbox

View File

@ -3,19 +3,18 @@ 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
- views_data_export
id: nationalities_export
name: Nationalities-export
url_alias: nationalities_export
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_nationality
field_identifier: field_nationalities
facet_source_id: 'search_api:views_data_export__reporting_clients__data_export_1'
widget:
type: checkbox
type: links
config:
show_numbers: false
soft_limit: 0
@ -30,6 +29,18 @@ 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:

View File

@ -10,7 +10,7 @@ id: osic_level
name: 'OSIC level'
url_alias: osic_level
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_osic_level
facet_source_id: 'search_api:views_page__reporting_volunteers__page_1'

View File

@ -10,7 +10,7 @@ id: osic_level_export
name: 'OSIC level (Export)'
url_alias: osic_level
weight: 0
min_count: 1
min_count: 0
show_only_one_result: false
field_identifier: field_osic_level
facet_source_id: 'search_api:views_data_export__reporting_volunteers__data_export_1'

View File

@ -0,0 +1,20 @@
langcode: en
status: true
dependencies:
config:
- field.storage.oc_actor.field_nationalities
- opencase_entities.oc_actor_type.client
module:
- options
id: oc_actor.client.field_nationalities
field_name: field_nationalities
entity_type: oc_actor
bundle: client
label: Nationality
description: 'To select multiple nationalities, hold down <b>Ctrl</b> (or the Mac equivalent) while clicking.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: list_string

View File

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

View File

@ -0,0 +1,20 @@
langcode: en
status: true
dependencies:
config:
- field.storage.oc_actor.field_nationalities
- opencase_entities.oc_actor_type.volunteer
module:
- options
id: oc_actor.volunteer.field_nationalities
field_name: field_nationalities
entity_type: oc_actor
bundle: volunteer
label: Nationality
description: 'To select multiple nationalities, hold down <b>Ctrl</b> (or the Mac equivalent) while clicking.'
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings: { }
field_type: list_string

View File

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

View File

@ -0,0 +1,29 @@
langcode: en
status: true
dependencies:
module:
- opencase_entities
- options
id: oc_actor.field_nationalities
field_name: field_nationalities
entity_type: oc_actor
type: list_string
settings:
allowed_values:
-
value: British
label: British
-
value: Stateless
label: Stateless
-
value: 'More need adding!'
label: 'More need adding!'
allowed_values_function: ''
module: options
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@ -1,20 +0,0 @@
langcode: en
status: true
dependencies:
module:
- opencase_entities
id: oc_actor.field_nationality
field_name: field_nationality
entity_type: oc_actor
type: string
settings:
max_length: 255
is_ascii: false
case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@ -6,7 +6,7 @@ dependencies:
- 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
- field.storage.oc_actor.field_nationalities
- search_api.server.opencase_reporting_server
module:
- opencase_entities
@ -56,14 +56,38 @@ field_settings:
dependencies:
config:
- field.storage.oc_actor.field_languages_spoken
field_nationality:
field_nationalities:
label: Nationality
datasource_id: 'entity:oc_actor'
property_path: field_nationality
property_path: field_nationalities
type: string
dependencies:
config:
- field.storage.oc_actor.field_nationality
- field.storage.oc_actor.field_nationalities
first_name:
label: 'First Name'
datasource_id: 'entity:oc_actor'
property_path: first_name
type: string
dependencies:
module:
- opencase_entities
last_name:
label: 'Last Name'
datasource_id: 'entity:oc_actor'
property_path: last_name
type: string
dependencies:
module:
- opencase_entities
post_code:
label: 'Post Code'
datasource_id: 'entity:oc_actor'
property_path: post_code
type: string
dependencies:
module:
- opencase_entities
datasource_settings:
'entity:oc_actor':
bundles:

View File

@ -6,10 +6,8 @@ dependencies:
- 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
- field.storage.oc_actor.field_nationalities
- search_api.index.opencase_reporting_clients
content:
- 'block_content:basic:944ff38d-5931-4439-91d5-f53b5ad7aac7'
module:
- options
- rest
@ -57,10 +55,13 @@ display:
pager:
type: mini
options:
items_per_page: 10
items_per_page: 50
offset: 0
id: 0
total_pages: null
tags:
previous:
next:
expose:
items_per_page: false
items_per_page_label: 'Items per page'
@ -69,22 +70,19 @@ display:
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
name:
id: name
table: search_api_datasource_opencase_reporting_clients_entity_oc_actor
field: first_name
field: name
relationship: none
group_type: group
admin_label: ''
label: 'First Name'
label: Name
exclude: false
alter:
alter_text: false
@ -128,78 +126,7 @@ display:
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
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true
@ -429,14 +356,14 @@ display:
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
field_nationalities:
id: field_nationalities
table: search_api_datasource_opencase_reporting_clients_entity_oc_actor
field: field_nationalities
relationship: none
group_type: group
admin_label: ''
label: Languages
label: Nationality
exclude: false
alter:
alter_text: false
@ -497,15 +424,16 @@ display:
use_highlighting: false
multi_type: separator
multi_separator: ', '
entity_type: oc_actor
plugin_id: search_api_field
field_nationality:
id: field_nationality
field_languages_spoken:
id: field_languages_spoken
table: search_api_index_opencase_reporting_clients
field: field_nationality
field: field_languages_spoken
relationship: none
group_type: group
admin_label: ''
label: Nationality
label: Languages
exclude: false
alter:
alter_text: false
@ -547,9 +475,8 @@ display:
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: string
settings:
link_to_entity: false
type: list_default
settings: { }
group_column: value
group_columns: { }
group_rows: true
@ -674,7 +601,7 @@ display:
- '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'
- 'config:field.storage.oc_actor.field_nationalities'
data_export_1:
display_plugin: data_export
id: data_export_1
@ -684,6 +611,10 @@ display:
display_extenders: { }
path: opencase/reporting/clients
filename: '[view:title].csv'
cache:
type: none
defaults:
cache: false
cache_metadata:
max-age: -1
contexts:
@ -696,7 +627,7 @@ display:
- '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'
- 'config:field.storage.oc_actor.field_nationalities'
page_1:
display_plugin: page
id: page_1
@ -721,4 +652,4 @@ display:
- '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'
- 'config:field.storage.oc_actor.field_nationalities'

View File

@ -5,8 +5,6 @@ dependencies:
- 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
@ -75,85 +73,14 @@ display:
row:
type: fields
fields:
first_name:
id: first_name
name:
id: name
table: search_api_datasource_opencase_reporting_volunteers_entity_oc_actor
field: first_name
field: 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'
label: Name
exclude: false
alter:
alter_text: false
@ -197,7 +124,7 @@ display:
click_sort_column: value
type: string
settings:
link_to_entity: false
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true

View File

@ -1,6 +1,6 @@
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:

View File

@ -1,12 +1,12 @@
opencase_reporting.clients:
opencase_defaults.report_on_clients:
title: 'Clients'
description: 'Report on clients'
menu_name: opencase_reporting
parent: opencase_defaults.reporting_menu
url: internal:/opencase/reporting/clients
weight: 0
opencase_reporting.volunteers:
opencase_defaults.report_on_volunteers:
title: 'Volunteers'
description: 'Report on volunteers'
menu_name: opencase_reporting
parent: opencase_defaults.reporting_menu
url: internal:/opencase/reporting/volunteers
weight: 1

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

@ -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",

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

@ -1,23 +0,0 @@
langcode: en
status: true
dependencies:
config:
- system.menu.opencase_reporting
module:
- system
theme:
- bartik
id: opencase_reporting_menu
theme: bartik
region: sidebar_first
weight: -8
provider: null
plugin: 'system_menu_block:opencase_reporting'
settings:
id: 'system_menu_block:opencase_reporting'
label: 'Reporting'
provider: system
label_display: visible
level: 1
depth: 0
visibility: { }

View File

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

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

@ -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

@ -8,7 +8,7 @@ dependencies:
- search_api
- user
id: actor_search
label: 'Actor Search'
label: 'Person Search'
module: views
description: ''
tag: ''
@ -554,7 +554,7 @@ display:
expose:
operator_id: search_api_fulltext_op
label: 'Search by Name'
description: 'Type at least 3 letters of 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

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

View File

@ -1,40 +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
opencase.add_actors_links:
class: Drupal\opencase\Plugin\Menu\AddActorsMenuLink
deriver: Drupal\opencase\Plugin\Derivative\AddActorsMenuLink
menu_name: opencase-add-actors

View File

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

4
opencase.routing.yml Normal file
View File

@ -0,0 +1,4 @@
opencase.opencase_admin_menu:
path: '/'
requirements:
_permission: 'administer opencase entity bundles'

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

@ -21,7 +21,7 @@ class ActorTypeHelp extends BlockBase {
public function build() {
return array(
'#markup' => "
<h3>All actor types have contact details fields by default. Other fields can be added and managed here.</h3>
<h3>All person types have contact details fields by default. Other fields can be added and managed here.</h3>
"
);