WIP workflow-cer #19

Merged
lio merged 2 commits from workflow-cer into master 2023-06-15 20:29:15 +02:00
12 changed files with 1139 additions and 1 deletions

View File

@ -16,6 +16,7 @@
],
"require": {
"composer/installers": "^2.0",
"drupal/cer": "^5.0@beta",
"drupal/content_as_config": "^1.0",
"drupal/core-composer-scaffold": "^10.0",
"drupal/core-project-message": "^10.0",

75
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "71ddb6ffcc6a7fe35213ac457365e193",
"content-hash": "f739ff77797412cd5de7292408a1d098",
"packages": [
{
"name": "asm89/stack-cors",
@ -1094,6 +1094,78 @@
],
"time": "2022-02-28T11:07:21+00:00"
},
{
"name": "drupal/cer",
"version": "5.0.0-beta3",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/cer.git",
"reference": "5.0.0-beta3"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/cer-5.0.0-beta3.zip",
"reference": "5.0.0-beta3",
"shasum": "732e95528a8aa0771f38785a5db49861612da150"
},
"require": {
"drupal/core": "^9.5 || ^10"
},
"type": "drupal-module",
"extra": {
"drupal": {
"version": "5.0.0-beta3",
"datestamp": "1679926745",
"security-coverage": {
"status": "not-covered",
"message": "Project has not opted into security advisory coverage!"
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "Anybody",
"homepage": "https://www.drupal.org/user/291091"
},
{
"name": "bmcclure",
"homepage": "https://www.drupal.org/user/278485"
},
{
"name": "chertzog",
"homepage": "https://www.drupal.org/user/806366"
},
{
"name": "gcb",
"homepage": "https://www.drupal.org/user/1682976"
},
{
"name": "gregcube",
"homepage": "https://www.drupal.org/user/336930"
},
{
"name": "Grevil",
"homepage": "https://www.drupal.org/user/3668491"
},
{
"name": "jrglasgow",
"homepage": "https://www.drupal.org/user/36590"
},
{
"name": "phenaproxima",
"homepage": "https://www.drupal.org/user/205645"
}
],
"description": "Allows user to create two-way references between entities.",
"homepage": "https://www.drupal.org/project/cer",
"support": {
"source": "https://git.drupalcode.org/project/cer"
}
},
{
"name": "drupal/content_as_config",
"version": "1.0.10",
@ -6246,6 +6318,7 @@
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"drupal/cer": 10,
"drupal/gin": 5,
"drupal/gin_toolbar": 5,
"drupal/yaml_content": 20

View File

@ -0,0 +1,14 @@
uuid: bb04eaf7-09ba-4e25-927f-42b3a3acb402
langcode: en
status: true
dependencies: { }
id: related_concept
label: 'Related concept'
enabled: true
first_field: field_related_concept
second_field: field_related_concept
add_direction: append
bundles:
node:
- '*'
- concept

View File

@ -6,10 +6,13 @@ module:
block: 0
block_content: 0
breakpoint: 0
cer: 0
ckeditor5: 0
comment: 0
config: 0
config_translation: 0
content_as_config: 0
content_moderation: 0
contextual: 0
datetime: 0
dblog: 0
@ -49,8 +52,10 @@ module:
update: 0
user: 0
views_ui: 0
workflows: 0
yaml_content: 0
yufu_admin: 0
yufu_data: 0
content_translation: 10
views: 10
minimal: 1000

View File

@ -0,0 +1,14 @@
uuid: 92a4b135-3981-446a-aa96-f315515fffa8
langcode: en
status: true
dependencies:
config:
- user.role.maska
module:
- user
id: user_add_role_action.maska
label: 'Add the Maska role to the selected user(s)'
type: user
plugin: user_add_role_action
configuration:
rid: maska

View File

@ -0,0 +1,14 @@
uuid: b084e439-3ec1-4de6-af1d-9b42fe176ed2
langcode: en
status: true
dependencies:
config:
- user.role.maska
module:
- user
id: user_remove_role_action.maska
label: 'Remove the Maska role from the selected user(s)'
type: user
plugin: user_remove_role_action
configuration:
rid: maska

View File

@ -2,7 +2,13 @@ uuid: 71951af3-5977-42dc-a45b-85ef43a9f9ad
langcode: en
status: true
dependencies:
config:
- node.type.concept
- workflows.workflow.concept_workflow
module:
- content_moderation
- media
- node
- system
_core:
default_config_hash: j5zLMOdJBqC0bMvSdth5UebkprJB8g_2FXHqhfpJzow
@ -12,3 +18,6 @@ weight: 0
is_admin: false
permissions:
- 'access content'
- 'create concept content'
- 'use concept_workflow transition create_new_draft'
- 'view media'

View File

@ -2,8 +2,17 @@ uuid: ea374762-2647-4531-8850-c3a1a95ec850
langcode: en
status: true
dependencies:
config:
- node.type.article
- node.type.concept
- taxonomy.vocabulary.tags
- workflows.workflow.concept_workflow
module:
- content_moderation
- media
- node
- system
- taxonomy
- yufu_admin
_core:
default_config_hash: dJ0L2DNSj5q6XVZAGsuVDpJTh5UeYkIPwKrUOOpr8YI
@ -13,4 +22,13 @@ weight: 1
is_admin: false
permissions:
- 'access content'
- 'create article content'
- 'create concept content'
- 'create media'
- 'create terms in tags'
- 'use concept_workflow transition create_new_draft'
- 'use jsonapi operation link'
- 'view any unpublished content'
- 'view media'
- 'view own unpublished content'
- 'view own unpublished media'

View File

@ -0,0 +1,106 @@
uuid: db6258d6-6411-45a0-b3d1-75fd4c6020ea
langcode: en
status: true
dependencies:
config:
- media.type.audio
- media.type.document
- media.type.image
- media.type.remote_video
- media.type.video
- node.type.article
- node.type.concept
- node.type.page
- taxonomy.vocabulary.tags
- workflows.workflow.concept_workflow
module:
- config
- config_translation
- content_moderation
- content_translation
- language
- locale
- media
- node
- path
- taxonomy
- toolbar
id: editor
label: Editor
weight: 2
is_admin: null
permissions:
- 'access content overview'
- 'access media overview'
- 'access taxonomy overview'
- 'access toolbar'
- 'administer content translation'
- 'administer content types'
- 'administer languages'
- 'administer media'
- 'administer media types'
- 'administer nodes'
- 'administer url aliases'
- 'bypass node access'
- 'create article content'
- 'create concept content'
- 'create page content'
- 'create url aliases'
- 'delete any article content'
- 'delete any audio media'
- 'delete any concept content'
- 'delete any document media'
- 'delete any image media'
- 'delete any media'
- 'delete any page content'
- 'delete any remote_video media'
- 'delete any video media'
- 'delete article revisions'
- 'delete concept revisions'
- 'delete content translations'
- 'delete media'
- 'delete own article content'
- 'delete own audio media'
- 'delete own concept content'
- 'delete own document media'
- 'delete own page content'
- 'delete page revisions'
- 'delete terms in tags'
- 'edit any article content'
- 'edit any audio media'
- 'edit any concept content'
- 'edit any document media'
- 'edit any image media'
- 'edit any page content'
- 'edit any remote_video media'
- 'edit any video media'
- 'edit own article content'
- 'edit own audio media'
- 'edit own concept content'
- 'edit own document media'
- 'edit own image media'
- 'edit own page content'
- 'edit own remote_video media'
- 'edit own video media'
- 'edit terms in tags'
- 'export configuration'
- 'import configuration'
- 'revert article revisions'
- 'revert concept revisions'
- 'revert page revisions'
- 'synchronize configuration'
- 'translate configuration'
- 'translate interface'
- 'update any media'
- 'update media'
- 'use concept_workflow transition create_new_draft'
- 'use concept_workflow transition publish'
- 'view all media revisions'
- 'view all revisions'
- 'view any unpublished content'
- 'view article revisions'
- 'view concept revisions'
- 'view latest version'
- 'view own unpublished content'
- 'view own unpublished media'
- 'view page revisions'

View File

@ -0,0 +1,9 @@
uuid: 7656af89-5a3e-4e8c-b505-bb584382b79b
langcode: en
status: true
dependencies: { }
id: maska
label: Maska
weight: 3
is_admin: true
permissions: { }

View File

@ -0,0 +1,833 @@
uuid: 8347c43e-4379-4de8-9577-a481a608a372
langcode: en
status: true
dependencies:
module:
- node
- user
enforced:
module:
- content_moderation
_core:
default_config_hash: upi3_YaKY1MjDALjDauLNPXfHakisQNehC9Dj6icMPQ
id: moderated_content
label: 'Moderated content'
module: views
description: 'Find and moderate content.'
tag: ''
base_table: node_field_revision
base_field: vid
display:
default:
id: default
display_title: Default
display_plugin: default
position: 0
display_options:
title: 'Moderated content'
fields:
title:
id: title
table: node_field_revision
field: title
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: title
plugin_id: field
label: Title
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: false
ellipsis: false
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: 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: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
type:
id: type
table: node_field_data
field: type
relationship: nid
group_type: group
admin_label: ''
entity_type: node
entity_field: type
plugin_id: field
label: 'Content 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
name:
id: name
table: users_field_data
field: name
relationship: uid
group_type: group
admin_label: ''
entity_type: user
entity_field: name
plugin_id: field
label: Author
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: user_name
settings:
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
moderation_state:
id: moderation_state
table: node_field_revision
field: moderation_state
relationship: none
group_type: group
admin_label: ''
entity_type: node
plugin_id: field
label: 'Moderation state'
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: content_moderation_state
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
changed:
id: changed
table: node_field_revision
field: changed
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: changed
plugin_id: field
label: Updated
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: false
ellipsis: false
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: 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: short
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
operations:
id: operations
table: node_revision
field: operations
relationship: none
group_type: group
admin_label: ''
entity_type: node
plugin_id: entity_operations
label: Operations
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
destination: true
pager:
type: full
options:
offset: 0
items_per_page: 50
total_pages: null
id: 0
tags:
next: 'Next '
previous: ' Previous'
first: '« First'
last: 'Last »'
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
quantity: 9
exposed_form:
type: basic
options:
submit_button: Filter
reset_button: true
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
access:
type: perm
options:
perm: 'view any unpublished content'
cache:
type: tag
options: { }
empty:
area_text_custom:
id: area_text_custom
table: views
field: area_text_custom
relationship: none
group_type: group
admin_label: ''
plugin_id: text_custom
empty: true
content: 'No moderated content available. Only pending versions of content, such as drafts, are listed here.'
tokenize: false
sorts: { }
arguments: { }
filters:
latest_translation_affected_revision:
id: latest_translation_affected_revision
table: node_revision
field: latest_translation_affected_revision
relationship: none
group_type: group
admin_label: ''
entity_type: node
plugin_id: latest_translation_affected_revision
operator: '='
value: ''
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
operator_limit_selection: false
operator_list: { }
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
title:
id: title
table: node_field_revision
field: title
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: title
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: title_op
label: Title
description: ''
use_operator: false
operator: title_op
operator_limit_selection: false
operator_list: { }
identifier: title
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
type:
id: type
table: node_field_data
field: type
relationship: nid
group_type: group
admin_label: ''
entity_type: node
entity_field: type
plugin_id: bundle
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: type_op
label: 'Content type'
description: ''
use_operator: false
operator: type_op
operator_limit_selection: false
operator_list: { }
identifier: type
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '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: { }
moderation_state:
id: moderation_state
table: node_field_revision
field: moderation_state
relationship: none
group_type: group
admin_label: ''
entity_type: node
plugin_id: moderation_state_filter
operator: in
value:
editorial-draft: editorial-draft
editorial-archived: editorial-archived
group: 1
exposed: true
expose:
operator_id: moderation_state_op
label: 'Moderation state'
description: ''
use_operator: false
operator: moderation_state_op
operator_limit_selection: false
operator_list: { }
identifier: moderation_state
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
reduce: true
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
langcode:
id: langcode
table: node_field_revision
field: langcode
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: langcode
plugin_id: language
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: langcode_op
label: Language
description: ''
use_operator: false
operator: langcode_op
operator_limit_selection: false
operator_list: { }
identifier: langcode
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '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: { }
moderation_state_1:
id: moderation_state_1
table: node_field_revision
field: moderation_state
relationship: none
group_type: group
admin_label: ''
entity_type: node
plugin_id: moderation_state_filter
operator: 'not in'
value:
editorial-published: editorial-published
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
operator_limit_selection: false
operator_list: { }
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
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: { }
filter_groups:
operator: AND
groups:
1: AND
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
columns:
title: title
type: type
name: name
moderation_state: moderation_state
changed: changed
default: changed
info:
title:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
type:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
name:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
moderation_state:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
changed:
sortable: true
default_sort_order: desc
align: ''
separator: ''
empty_column: false
responsive: ''
override: true
sticky: true
summary: ''
empty_table: true
caption: ''
description: ''
row:
type: fields
query:
type: views_query
options:
query_comment: ''
disable_sql_rewrite: false
distinct: false
replica: false
query_tags: { }
relationships:
nid:
id: nid
table: node_field_revision
field: nid
relationship: none
group_type: group
admin_label: 'Get the actual content from a content revision.'
entity_type: node
entity_field: nid
plugin_id: standard
required: false
uid:
id: uid
table: node_field_revision
field: uid
relationship: none
group_type: group
admin_label: User
entity_type: node
entity_field: uid
plugin_id: standard
required: false
header: { }
footer: { }
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags: { }
moderated_content:
id: moderated_content
display_title: 'Moderated content'
display_plugin: page
position: 1
display_options:
display_description: ''
display_extenders: { }
path: admin/content/moderated
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- 'user.node_grants:view'
- user.permissions
tags: { }

View File

@ -0,0 +1,42 @@
uuid: 82f87047-8f1f-4e54-9d04-af81a8f46919
langcode: en
status: true
dependencies:
config:
- node.type.concept
module:
- content_moderation
id: concept_workflow
label: 'Concept workflow'
type: content_moderation
type_settings:
states:
draft:
label: Draft
weight: 0
published: false
default_revision: false
published:
label: Published
weight: 1
published: true
default_revision: true
transitions:
create_new_draft:
label: 'Create New Draft'
from:
- draft
- published
to: draft
weight: 0
publish:
label: Publish
from:
- draft
- published
to: published
weight: 1
entity_types:
node:
- concept
default_moderation_state: draft