From 695d06da33e335d596e1ffcec1929b1eb4c697a9 Mon Sep 17 00:00:00 2001 From: Lio Novelli Date: Mon, 1 Apr 2024 16:50:04 +0200 Subject: [PATCH 01/11] Popravilo nastavitve stanja moderacije. --- web/modules/custom/yufu_admin/yufu_admin.module | 4 ++-- .../src/Plugin/rest/resource/AddConcept.php | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/web/modules/custom/yufu_admin/yufu_admin.module b/web/modules/custom/yufu_admin/yufu_admin.module index d88736c..95a9531 100644 --- a/web/modules/custom/yufu_admin/yufu_admin.module +++ b/web/modules/custom/yufu_admin/yufu_admin.module @@ -130,13 +130,13 @@ function _yufu_admin_concept_drafted_mail(NodeInterface $node) { if ($node->isNew()) { $params['message'] = t('New concept created: @title - @url', [ '@title' => $node->getTitle(), - '@url' => !$node->isNew() ? $node?->toUrl()?->toString() : '', + '@url' => '', ]); } else { $params['message'] = t('New changes to concept proposed: @title - @url', [ '@title' => $node->getTitle(), - '@url' => !$node->isNew() ? $node?->toUrl()?->toString() : '', + '@url' => $node?->toUrl()?->toString(), ]); } $params['node_title'] = $node->getTitle(); diff --git a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php index 318568c..ca66cde 100644 --- a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php +++ b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php @@ -12,6 +12,7 @@ use Drupal\rest\ResourceResponse; use Psr\Log\LogLevel; use Psr\Log\LoggerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; @@ -125,9 +126,8 @@ class AddConcept extends ResourceBase { $concept->set('body', $data['text'] ?? $concept->body->value); $concept->isDefaultRevision(FALSE); $concept->setRevisionLogMessage('New revision by concept endpoint.'); - $concept->moderation_state->target_id = 'draft'; + $concept->set('moderation_state', 'draft'); $concept->set('status', 0); - $concept->setUnpublished(); $concept->save(); $this->logger->notice('New concept @title revision @revid created by uid @uid.', [ '@title' => $concept->getTitle(), @@ -163,7 +163,8 @@ class AddConcept extends ResourceBase { 'revision_uid' => $concept->getRevisionUserId(), 'uid' => $concept->uid->target_id, ]; - $response = new ResourceResponse($response_status); + // $response = new ResourceResponse($response_status); + $response = new JsonResponse($response_status); return $response; } @@ -182,7 +183,8 @@ class AddConcept extends ResourceBase { return NULL; } $node_storage = $this->entityTypeManager->getStorage('node'); - if ($concept = end($node_storage->loadByProperties(['uuid' => $uuid]))) { + $concepts = $node_storage->loadByProperties(['uuid' => $uuid]); + if ($concept = end($concepts)) { return $concept; } return NULL; From 35d445e0fb07cf375d3b725946da177c6f28c144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Mon, 1 Apr 2024 17:13:18 +0200 Subject: [PATCH 02/11] Navodila za CORS nastavitve v razvojnem okolju --- .gitignore | 2 ++ README.md | 4 +++ web/sites/default/settings.ddev.php | 50 ----------------------------- web/sites/default/yufu.services.yml | 4 +++ 4 files changed, 10 insertions(+), 50 deletions(-) delete mode 100644 web/sites/default/settings.ddev.php create mode 100644 web/sites/default/yufu.services.yml diff --git a/.gitignore b/.gitignore index 00fae60..564365f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ # Ignore configuration files that may contain sensitive information /web/sites/*/settings.local.php +# Ignore ddev settings +/web/sites/*/settings.ddev.php # Ignore paths that may contain user-generated content /web/sites/*/files diff --git a/README.md b/README.md index db9d13c..7eb20ff 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,10 @@ Sajt je dostopen preko naslova: https://yufu-manifest.ddev.site/ Lahko pa napišemo tudi `ddev launch` +v `web/sites/default/settings.local.php` dodamo vrstico, ki vključi services nastavitve, ki omogočijo CORS: + +`$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/default/yufu.services.yml';` + ### Postavitev (vuejs) "prednjegadela" Najprej gremo v podfolder `nuxt` in namestimo odvisne javascript pakete: diff --git a/web/sites/default/settings.ddev.php b/web/sites/default/settings.ddev.php deleted file mode 100644 index 870ff0a..0000000 --- a/web/sites/default/settings.ddev.php +++ /dev/null @@ -1,50 +0,0 @@ - "db", - 'username' => "db", - 'password' => "db", - 'host' => $host, - 'driver' => $driver, - 'port' => $port, - 'prefix' => "", -); - -$settings['hash_salt'] = 'kShGqBypYstnMBJYmaRocqYLQcvBTMgvGbLQkdODVMavjRUyDhgBFcSAideqnFoM'; - -// This will prevent Drupal from setting read-only permissions on sites/default. -$settings['skip_permissions_hardening'] = TRUE; - -// This will ensure the site can only be accessed through the intended host -// names. Additional host patterns can be added for custom configurations. -$settings['trusted_host_patterns'] = ['.*']; - -// Don't use Symfony's APCLoader. ddev includes APCu; Composer's APCu loader has -// better performance. -$settings['class_loader_auto_detect'] = FALSE; - -// Set $settings['config_sync_directory'] if not set in settings.php. -if (empty($settings['config_sync_directory'])) { - $settings['config_sync_directory'] = 'sites/default/files/sync'; -} - -// Override drupal/symfony_mailer default config to use Mailhog -$config['symfony_mailer.mailer_transport.sendmail']['plugin'] = 'smtp'; -$config['symfony_mailer.mailer_transport.sendmail']['configuration']['user']=''; -$config['symfony_mailer.mailer_transport.sendmail']['configuration']['pass']=''; -$config['symfony_mailer.mailer_transport.sendmail']['configuration']['host']='localhost'; -$config['symfony_mailer.mailer_transport.sendmail']['configuration']['port']='1025'; - -// Deveopment services (for CORS) -$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml'; diff --git a/web/sites/default/yufu.services.yml b/web/sites/default/yufu.services.yml new file mode 100644 index 0000000..08ea88c --- /dev/null +++ b/web/sites/default/yufu.services.yml @@ -0,0 +1,4 @@ +services: + cors.config: + enabled: true + From dd0a8de6b264221aa1c4794bdd256bc07696a20b Mon Sep 17 00:00:00 2001 From: Lio Novelli Date: Mon, 1 Apr 2024 17:24:45 +0200 Subject: [PATCH 03/11] Obvescanje prek emailov s kontrib modulom content_moderation_notifications. --- composer.json | 4 +- composer.lock | 120 ++++++++---------- ...nt_moderation_notification.nov_osnutek.yml | 19 +++ ...ration_notification.spremembe_sprejete.yml | 17 +++ config/sync/core.extension.yml | 1 + 5 files changed, 92 insertions(+), 69 deletions(-) create mode 100644 config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml create mode 100644 config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml diff --git a/composer.json b/composer.json index 48d691d..4dae1e8 100644 --- a/composer.json +++ b/composer.json @@ -20,11 +20,11 @@ "drupal/cer": "^5.0@beta", "drupal/config_ignore": "^3.1", "drupal/content_as_config": "^1.0", + "drupal/content_moderation_notifications": "^3.6", "drupal/core-composer-scaffold": "^10.0", "drupal/core-project-message": "^10.0", - "drupal/core-recommended": "^10.0", - "drupal/diff": "^1.1", "drupal/core-recommended": "^10.2.4", + "drupal/diff": "^1.1", "drupal/gin": "^3.0@RC", "drupal/gin_toolbar": "^1.0@RC", "drupal/jsonapi_menu_items": "^1.2", diff --git a/composer.lock b/composer.lock index 0b0b543..282695c 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "1e4c156c402a50481a77ff4b24a87020", + "content-hash": "39f3d592b41324eb32edb9388cc9682b", "packages": [ { "name": "asm89/stack-cors", @@ -1446,6 +1446,58 @@ "issues": "https://www.drupal.org/project/issues/content_as_config" } }, + { + "name": "drupal/content_moderation_notifications", + "version": "3.6.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/content_moderation_notifications.git", + "reference": "8.x-3.6" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/content_moderation_notifications-8.x-3.6.zip", + "reference": "8.x-3.6", + "shasum": "f475721b95de8d0520053d3101c35c48ea22f61c" + }, + "require": { + "drupal/core": "^9 || ^10" + }, + "require-dev": { + "drupal/token": "^1.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-3.6", + "datestamp": "1695836640", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "jhedstrom", + "homepage": "https://www.drupal.org/user/208732" + }, + { + "name": "Rob Holmes", + "homepage": "https://www.drupal.org/user/1774034" + } + ], + "description": "Manage notifications for content moderation transitions.", + "homepage": "https://www.drupal.org/project/content_moderation_notifications", + "support": { + "source": "https://git.drupalcode.org/project/content_moderation_notifications", + "issues": "https://www.drupal.org/project/issues/content_moderation_notifications" + } + }, { "name": "drupal/core", "version": "10.2.4", @@ -2567,72 +2619,6 @@ ], "time": "2023-10-06T06:47:41+00:00" }, - { - "name": "enlightn/security-checker", - "version": "v1.11.0", - "source": { - "type": "git", - "url": "https://github.com/enlightn/security-checker.git", - "reference": "68df5c7256c84b428bf8fcff0d249de06ce362d2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/enlightn/security-checker/zipball/68df5c7256c84b428bf8fcff0d249de06ce362d2", - "reference": "68df5c7256c84b428bf8fcff0d249de06ce362d2", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/guzzle": "^6.3|^7.0", - "php": ">=5.6", - "symfony/console": "^3.4|^4|^5|^6|^7", - "symfony/finder": "^3|^4|^5|^6|^7", - "symfony/process": "^3.4|^4|^5|^6|^7", - "symfony/yaml": "^3.4|^4|^5|^6|^7" - }, - "require-dev": { - "ext-zip": "*", - "friendsofphp/php-cs-fixer": "^2.18|^3.0", - "phpunit/phpunit": "^5.5|^6|^7|^8|^9" - }, - "bin": [ - "security-checker" - ], - "type": "library", - "autoload": { - "psr-4": { - "Enlightn\\SecurityChecker\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paras Malhotra", - "email": "paras@laravel-enlightn.com" - }, - { - "name": "Miguel Piedrafita", - "email": "soy@miguelpiedrafita.com" - } - ], - "description": "A PHP dependency vulnerabilities scanner based on the Security Advisories Database.", - "keywords": [ - "package", - "php", - "scanner", - "security", - "security advisories", - "vulnerability scanner" - ], - "support": { - "issues": "https://github.com/enlightn/security-checker/issues", - "source": "https://github.com/enlightn/security-checker/tree/v1.11.0" - }, - "time": "2023-11-17T07:53:29+00:00" - }, { "name": "ezyang/htmlpurifier", "version": "v4.17.0", diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml new file mode 100644 index 0000000..f401b71 --- /dev/null +++ b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml @@ -0,0 +1,19 @@ +uuid: ef0653bf-ad20-4659-bb94-9273264eb15b +langcode: en +status: true +dependencies: { } +id: nov_osnutek +workflow: concept_workflow +transitions: + create_new_draft: create_new_draft +roles: + editor: editor + maska: maska +author: false +site_mail: false +emails: '' +subject: 'New draft [node:title]' +body: + value: "New draft pedning moderation: [node:title] ([node:nid]) by [node:author:email].\r\n\r\n[node:url]\r\n\r\n[node:body]" + format: plain_text +label: 'Nov osnutek' diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml new file mode 100644 index 0000000..886444f --- /dev/null +++ b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml @@ -0,0 +1,17 @@ +uuid: c048753b-259e-4210-8e53-031ae5cbae0f +langcode: en +status: true +dependencies: { } +id: spremembe_sprejete +workflow: concept_workflow +transitions: + publish: publish +roles: { } +author: true +site_mail: false +emails: '' +subject: 'Yufu changes approved' +body: + value: 'Your proposed changes to [node:title] ([node:url]) were approved.' + format: plain_text +label: 'Spremembe sprejete' diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index ac517ee..973b689 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -14,6 +14,7 @@ module: config_translation: 0 content_as_config: 0 content_moderation: 0 + content_moderation_notifications: 0 contextual: 0 datetime: 0 dblog: 0 From 8767ef606b6c897c8e731694eb296ce1a312b29c Mon Sep 17 00:00:00 2001 From: Lio Novelli Date: Mon, 1 Apr 2024 20:00:31 +0200 Subject: [PATCH 04/11] Fixanje posiljanja prek mailov. Izkljuci yufu admin --- ...nt_moderation_notification.nov_osnutek.yml | 2 +- ...ration_notification.spremembe_sprejete.yml | 2 +- .../custom/yufu_admin/yufu_admin.module | 78 +++++++++++-------- .../src/Plugin/rest/resource/AddConcept.php | 5 ++ 4 files changed, 52 insertions(+), 35 deletions(-) diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml index f401b71..34a5339 100644 --- a/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml +++ b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml @@ -12,7 +12,7 @@ roles: author: false site_mail: false emails: '' -subject: 'New draft [node:title]' +subject: '[YUFU] New draft [node:title]' body: value: "New draft pedning moderation: [node:title] ([node:nid]) by [node:author:email].\r\n\r\n[node:url]\r\n\r\n[node:body]" format: plain_text diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml index 886444f..fac0338 100644 --- a/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml +++ b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml @@ -10,7 +10,7 @@ roles: { } author: true site_mail: false emails: '' -subject: 'Yufu changes approved' +subject: '[YUFU] Changes approved' body: value: 'Your proposed changes to [node:title] ([node:url]) were approved.' format: plain_text diff --git a/web/modules/custom/yufu_admin/yufu_admin.module b/web/modules/custom/yufu_admin/yufu_admin.module index 95a9531..fe38e69 100644 --- a/web/modules/custom/yufu_admin/yufu_admin.module +++ b/web/modules/custom/yufu_admin/yufu_admin.module @@ -57,39 +57,39 @@ function yufu_admin_mail($key, &$message, $params) { /** * Implements hook_ENTITY_TYPE_presave(). */ -function yufu_admin_node_presave(EntityInterface $entity) { - if ($entity instanceOf NodeInterface && $entity->bundle() == 'concept') { - // Get transition: concept_drafted, concept_approved, concept_rejected. - if ($entity->isNew()) { - $transition = 'concept_drafted'; - } - else { - $transition = _yufu_admin_get_node_transition($entity); - } - switch ($transition) { - case 'stay_draft': - case 'concept_drafted': - // Send email to editors. - $params = _yufu_admin_concept_drafted_mail($entity); - $result = _yufu_admin_send_email($transition, $params['to'], $params); - _yufu_admin_status_message($result['result'], $transition, $entity, $params['to']); - break; - case 'concept_approved': - // Send email to revision creator (user). - // @TODO Maybe notify other editors. - $params = _yufu_admin_concept_approved_get_message($entity); - $result = _yufu_admin_send_email($transition, $params['to'], $params); - _yufu_admin_status_message($result['result'], $transition, $entity, $params['to']); - break; - case 'concept_rejectd': - // Send email to revision creator (user). - // This transition happens on revision delete. - // Curently it is dead. - // @TODO https://git.kompot.si/yufu/manifest/issues/45 - break; - } - } -} +// function yufu_admin_node_presave(EntityInterface $entity) { +// if ($entity instanceOf NodeInterface && $entity->bundle() == 'concept') { +// // Get transition: concept_drafted, concept_approved, concept_rejected. +// if ($entity->isNew()) { +// $transition = 'concept_drafted'; +// } +// else { +// $transition = _yufu_admin_get_node_transition($entity); +// } +// switch ($transition) { +// case 'stay_draft': +// case 'concept_drafted': +// // Send email to editors. +// $params = _yufu_admin_concept_drafted_mail($entity); +// $result = _yufu_admin_send_email($transition, $params['to'], $params); +// _yufu_admin_status_message($result['result'], $transition, $entity, $params['to']); +// break; +// case 'concept_approved': +// // Send email to revision creator (user). +// // @TODO Maybe notify other editors. +// $params = _yufu_admin_concept_approved_get_message($entity); +// $result = _yufu_admin_send_email($transition, $params['to'], $params); +// _yufu_admin_status_message($result['result'], $transition, $entity, $params['to']); +// break; +// case 'concept_rejectd': +// // Send email to revision creator (user). +// // This transition happens on revision delete. +// // Curently it is dead. +// // @TODO https://git.kompot.si/yufu/manifest/issues/45 +// break; +// } +// } +//} /** * Compare original node moderation state with current state. @@ -276,3 +276,15 @@ function _yufu_admin_get_all_pioneer_emails() { // @TODO: Think it through if it is really needed. return []; } + +/** + * Invoke hook_content_moderation_notification_mail_data_alter(). + */ +// function yufu_admin_content_moderation_notification_mail_data_alter(EntityInterface $entity, array &$data) { +// // Add an extra email address to the list. +// if ($entity instanceOf NodeInterface) { +// if ($email = _yufu_admin_get_pioneer_email($entity)) { +// $data['to'][] = $email; +// } +// } +// } diff --git a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php index ca66cde..8b51672 100644 --- a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php +++ b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php @@ -124,6 +124,11 @@ class AddConcept extends ResourceBase { $concept->setRevisionUserId($uid); $concept->set('title', $data['title']); $concept->set('body', $data['text'] ?? $concept->body->value); + if ($uid) { + $uids = $concept->get('uid')->getValue(); + $uids[] = ['target_id' => $uid]; + $concept->set('uid', $uids); + } $concept->isDefaultRevision(FALSE); $concept->setRevisionLogMessage('New revision by concept endpoint.'); $concept->set('moderation_state', 'draft'); From 1ab9d5f2b561ff8926a20cf53957ecebdb77d095 Mon Sep 17 00:00:00 2001 From: Lio Novelli Date: Mon, 1 Apr 2024 21:45:04 +0200 Subject: [PATCH 05/11] Po sprejetih spremembah je uporabnik urednik. --- ...ration_notification.spremembe_sprejete.yml | 3 ++- .../src/Plugin/rest/resource/AddConcept.php | 4 ++-- .../custom/yufu_concept/yufu_concept.module | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml index fac0338..bd90892 100644 --- a/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml +++ b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml @@ -6,7 +6,8 @@ id: spremembe_sprejete workflow: concept_workflow transitions: publish: publish -roles: { } +roles: + editor: editor author: true site_mail: false emails: '' diff --git a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php index 8b51672..2cf9171 100644 --- a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php +++ b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php @@ -8,7 +8,7 @@ use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\TypedData\Exception\MissingDataException; use Drupal\node\NodeInterface; use Drupal\rest\Plugin\ResourceBase; -use Drupal\rest\ResourceResponse; +// use Drupal\rest\ResourceResponse; use Psr\Log\LogLevel; use Psr\Log\LoggerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -127,7 +127,7 @@ class AddConcept extends ResourceBase { if ($uid) { $uids = $concept->get('uid')->getValue(); $uids[] = ['target_id' => $uid]; - $concept->set('uid', $uids); + $concept->set('uid', array_reverse($uids)); } $concept->isDefaultRevision(FALSE); $concept->setRevisionLogMessage('New revision by concept endpoint.'); diff --git a/web/modules/custom/yufu_concept/yufu_concept.module b/web/modules/custom/yufu_concept/yufu_concept.module index 0a8a750..1f3258b 100644 --- a/web/modules/custom/yufu_concept/yufu_concept.module +++ b/web/modules/custom/yufu_concept/yufu_concept.module @@ -1,6 +1,28 @@ bundle() == 'concept') { + $transition = \Drupal::service('content_moderation_notifications.notification_information')->getTransition($entity); + if ($transition->id() == 'publish') { + if ($user = $entity->uid->entity) { + if (!$user->status->value) { + $user->set('status', 1); + $user->addRole('editor'); + $user->save(); + } + } + } + } +} From 98f6e751e74fa4e42347e90399030bfd9b0e14e3 Mon Sep 17 00:00:00 2001 From: Lio Novelli Date: Mon, 1 Apr 2024 22:12:36 +0200 Subject: [PATCH 06/11] Racing condition - najprej uporabnik urednik, potem poslji mail. --- web/modules/custom/yufu_concept/yufu_concept.module | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/modules/custom/yufu_concept/yufu_concept.module b/web/modules/custom/yufu_concept/yufu_concept.module index 1f3258b..4cef03a 100644 --- a/web/modules/custom/yufu_concept/yufu_concept.module +++ b/web/modules/custom/yufu_concept/yufu_concept.module @@ -12,7 +12,8 @@ use Drupal\node\NodeInterface; /** * Implements hook_entity_update(). */ -function yufu_concept_entity_update(EntityInterface $entity) { +function yufu_admin_node_presave(EntityInterface $entity) { + //function yufu_concept_entity_update(EntityInterface $entity) { if ($entity instanceOf NodeInterface && $entity->bundle() == 'concept') { $transition = \Drupal::service('content_moderation_notifications.notification_information')->getTransition($entity); if ($transition->id() == 'publish') { From 769d6ef1e406168c3e7d12b208a4515bd2969331 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Thu, 11 Apr 2024 20:16:06 +0200 Subject: [PATCH 07/11] Boljsi msg za revizije, dodan avtor spremembe --- ...ifications.content_moderation_notification.nov_osnutek.yml | 2 +- .../yufu_concept/src/Plugin/rest/resource/AddConcept.php | 4 +--- web/modules/custom/yufu_concept/yufu_concept.module | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml index 34a5339..25b0227 100644 --- a/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml +++ b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml @@ -14,6 +14,6 @@ site_mail: false emails: '' subject: '[YUFU] New draft [node:title]' body: - value: "New draft pedning moderation: [node:title] ([node:nid]) by [node:author:email].\r\n\r\n[node:url]\r\n\r\n[node:body]" + value: "New draft pending moderation: [node:title] ([node:nid]) by [node:author:mail].\r\n\r\n[node:url]/revisions/view/[node:original:vid]/[node:vid]/visual_inline\r\n\r\n[node:body]" format: plain_text label: 'Nov osnutek' diff --git a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php index 2cf9171..dd8ad60 100644 --- a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php +++ b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php @@ -8,7 +8,6 @@ use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\TypedData\Exception\MissingDataException; use Drupal\node\NodeInterface; use Drupal\rest\Plugin\ResourceBase; -// use Drupal\rest\ResourceResponse; use Psr\Log\LogLevel; use Psr\Log\LoggerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -101,7 +100,7 @@ class AddConcept extends ResourceBase { * @param \Symfony\Component\HttpFoundation\Request; * Post request. * - * @return \Drupal\rest\ResourceResponse + * @return \Symfony\Component\HttpFoundation\JsonResponse * Returns rest resource. */ public function post(Request $request) { @@ -168,7 +167,6 @@ class AddConcept extends ResourceBase { 'revision_uid' => $concept->getRevisionUserId(), 'uid' => $concept->uid->target_id, ]; - // $response = new ResourceResponse($response_status); $response = new JsonResponse($response_status); return $response; } diff --git a/web/modules/custom/yufu_concept/yufu_concept.module b/web/modules/custom/yufu_concept/yufu_concept.module index 4cef03a..0d5df26 100644 --- a/web/modules/custom/yufu_concept/yufu_concept.module +++ b/web/modules/custom/yufu_concept/yufu_concept.module @@ -12,7 +12,7 @@ use Drupal\node\NodeInterface; /** * Implements hook_entity_update(). */ -function yufu_admin_node_presave(EntityInterface $entity) { +function yufu_concept_node_presave(EntityInterface $entity) { //function yufu_concept_entity_update(EntityInterface $entity) { if ($entity instanceOf NodeInterface && $entity->bundle() == 'concept') { $transition = \Drupal::service('content_moderation_notifications.notification_information')->getTransition($entity); From 8e183c4703e88632a2f24f9aff7aa588485e3686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Thu, 11 Apr 2024 21:28:09 +0200 Subject: [PATCH 08/11] Posodobitev sporocila za nov draft --- ...otifications.content_moderation_notification.nov_osnutek.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml index 25b0227..b03e0f8 100644 --- a/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml +++ b/config/sync/content_moderation_notifications.content_moderation_notification.nov_osnutek.yml @@ -12,7 +12,7 @@ roles: author: false site_mail: false emails: '' -subject: '[YUFU] New draft [node:title]' +subject: '[YUFU] New draft of [node:original:title]' body: value: "New draft pending moderation: [node:title] ([node:nid]) by [node:author:mail].\r\n\r\n[node:url]/revisions/view/[node:original:vid]/[node:vid]/visual_inline\r\n\r\n[node:body]" format: plain_text From 1d371e8ec34d1e40d6d3bb92a46af70fea21c57a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Thu, 11 Apr 2024 21:30:41 +0200 Subject: [PATCH 09/11] Izboljsan notification message --- ...tions.content_moderation_notification.spremembe_sprejete.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml index bd90892..537af79 100644 --- a/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml +++ b/config/sync/content_moderation_notifications.content_moderation_notification.spremembe_sprejete.yml @@ -13,6 +13,6 @@ site_mail: false emails: '' subject: '[YUFU] Changes approved' body: - value: 'Your proposed changes to [node:title] ([node:url]) were approved.' + value: 'Proposed changes to [node:title] ([node:url]) by [node:author:mail] were approved.' format: plain_text label: 'Spremembe sprejete' From 33c57b8594a099c40e723a26c4d1532adae48346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Thu, 11 Apr 2024 21:32:34 +0200 Subject: [PATCH 10/11] Neki popravki prevodov --- .../language/hr/block.block.olivero_syndicate.yml | 2 ++ .../language/hr/core.entity_view_mode.node.rss.yml | 1 + config/sync/language/hr/views.view.content.yml | 6 ++++++ config/sync/language/hr/views.view.media.yml | 1 + config/sync/language/hr/views.view.media_library.yml | 1 + .../sync/language/hr/views.view.moderated_content.yml | 6 ------ .../language/sl/block.block.olivero_syndicate.yml | 2 ++ .../language/sl/core.entity_view_mode.node.rss.yml | 1 + config/sync/language/sl/views.view.block_content.yml | 6 +++--- config/sync/language/sl/views.view.comment.yml | 6 +++--- config/sync/language/sl/views.view.media.yml | 7 ++++--- config/sync/language/sl/views.view.media_library.yml | 7 ++++--- .../sync/language/sl/views.view.moderated_content.yml | 11 ----------- config/sync/language/sl/views.view.taxonomy_term.yml | 6 +++--- .../language/sr/block.block.olivero_syndicate.yml | 2 ++ .../language/sr/core.entity_view_mode.node.rss.yml | 1 + config/sync/language/sr/views.view.content.yml | 6 ++++++ config/sync/language/sr/views.view.media.yml | 1 + config/sync/language/sr/views.view.media_library.yml | 1 + .../sync/language/sr/views.view.moderated_content.yml | 6 ------ config/sync/views.view.content.yml | 6 +++--- 21 files changed, 45 insertions(+), 41 deletions(-) create mode 100644 config/sync/language/hr/block.block.olivero_syndicate.yml create mode 100644 config/sync/language/hr/core.entity_view_mode.node.rss.yml create mode 100644 config/sync/language/sl/block.block.olivero_syndicate.yml create mode 100644 config/sync/language/sl/core.entity_view_mode.node.rss.yml create mode 100644 config/sync/language/sr/block.block.olivero_syndicate.yml create mode 100644 config/sync/language/sr/core.entity_view_mode.node.rss.yml diff --git a/config/sync/language/hr/block.block.olivero_syndicate.yml b/config/sync/language/hr/block.block.olivero_syndicate.yml new file mode 100644 index 0000000..4061ce2 --- /dev/null +++ b/config/sync/language/hr/block.block.olivero_syndicate.yml @@ -0,0 +1,2 @@ +settings: + label: 'RSS feed' diff --git a/config/sync/language/hr/core.entity_view_mode.node.rss.yml b/config/sync/language/hr/core.entity_view_mode.node.rss.yml new file mode 100644 index 0000000..cd77ee8 --- /dev/null +++ b/config/sync/language/hr/core.entity_view_mode.node.rss.yml @@ -0,0 +1 @@ +label: RSS diff --git a/config/sync/language/hr/views.view.content.yml b/config/sync/language/hr/views.view.content.yml index bfad416..737d57f 100644 --- a/config/sync/language/hr/views.view.content.yml +++ b/config/sync/language/hr/views.view.content.yml @@ -12,6 +12,7 @@ display: name: label: Autor status: + label: Status settings: format_custom_true: Objavljeno changed: @@ -25,6 +26,9 @@ display: exposed_sorts_label: 'Rasporedi po' sort_asc_label: Uzlazno sort_desc_label: Silazno + empty: + area_text_custom: + content: 'Na voljo ni nobene vsebine.' filters: title: expose: @@ -33,6 +37,8 @@ display: expose: label: 'Vrsta sadržaja' status: + expose: + label: Status group_info: group_items: 1: diff --git a/config/sync/language/hr/views.view.media.yml b/config/sync/language/hr/views.view.media.yml index d090b5b..a8457d9 100644 --- a/config/sync/language/hr/views.view.media.yml +++ b/config/sync/language/hr/views.view.media.yml @@ -12,6 +12,7 @@ display: uid: label: Autor status: + label: Status settings: format_custom_true: Objavljeno changed: diff --git a/config/sync/language/hr/views.view.media_library.yml b/config/sync/language/hr/views.view.media_library.yml index c01aa5f..df68a0a 100644 --- a/config/sync/language/hr/views.view.media_library.yml +++ b/config/sync/language/hr/views.view.media_library.yml @@ -36,6 +36,7 @@ display: delete_media: text: Ukloni widget: + display_title: Widget display_options: arguments: bundle: diff --git a/config/sync/language/hr/views.view.moderated_content.yml b/config/sync/language/hr/views.view.moderated_content.yml index d7d4a40..e2b143d 100644 --- a/config/sync/language/hr/views.view.moderated_content.yml +++ b/config/sync/language/hr/views.view.moderated_content.yml @@ -7,18 +7,12 @@ display: fields: title: label: Naziv - separator: ', ' type: label: 'Vrsta sadržaja' - separator: ', ' name: label: Autor - separator: ', ' - moderation_state: - separator: ', ' changed: label: Osvježeno - separator: ', ' operations: label: Operacije exposed_form: diff --git a/config/sync/language/sl/block.block.olivero_syndicate.yml b/config/sync/language/sl/block.block.olivero_syndicate.yml new file mode 100644 index 0000000..4061ce2 --- /dev/null +++ b/config/sync/language/sl/block.block.olivero_syndicate.yml @@ -0,0 +1,2 @@ +settings: + label: 'RSS feed' diff --git a/config/sync/language/sl/core.entity_view_mode.node.rss.yml b/config/sync/language/sl/core.entity_view_mode.node.rss.yml new file mode 100644 index 0000000..cd77ee8 --- /dev/null +++ b/config/sync/language/sl/core.entity_view_mode.node.rss.yml @@ -0,0 +1 @@ +label: RSS diff --git a/config/sync/language/sl/views.view.block_content.yml b/config/sync/language/sl/views.view.block_content.yml index fc1f408..0cb9803 100644 --- a/config/sync/language/sl/views.view.block_content.yml +++ b/config/sync/language/sl/views.view.block_content.yml @@ -15,10 +15,10 @@ display: exposed_form: options: submit_button: Primjeni - reset_button_label: Poništi + reset_button_label: Ponastavi exposed_sorts_label: 'Rasporedi po' - sort_asc_label: Uzlazno - sort_desc_label: Silazno + sort_asc_label: Naraščajoče + sort_desc_label: Padajoče empty: area_text_custom: content: 'There are no custom blocks available.' diff --git a/config/sync/language/sl/views.view.comment.yml b/config/sync/language/sl/views.view.comment.yml index 2d5e1b2..8722783 100644 --- a/config/sync/language/sl/views.view.comment.yml +++ b/config/sync/language/sl/views.view.comment.yml @@ -27,10 +27,10 @@ display: exposed_form: options: submit_button: Počisti - reset_button_label: Poništi + reset_button_label: Ponastavi exposed_sorts_label: 'Rasporedi po' - sort_asc_label: Uzlazno - sort_desc_label: Silazno + sort_asc_label: Naraščajoče + sort_desc_label: Padajoče empty: area_text_custom: content: 'Nema dostupnih komentara.' diff --git a/config/sync/language/sl/views.view.media.yml b/config/sync/language/sl/views.view.media.yml index 496e52f..02e13a5 100644 --- a/config/sync/language/sl/views.view.media.yml +++ b/config/sync/language/sl/views.view.media.yml @@ -12,6 +12,7 @@ display: uid: label: Avtor status: + label: Status settings: format_custom_true: Objavljeno changed: @@ -21,10 +22,10 @@ display: exposed_form: options: submit_button: Počisti - reset_button_label: Poništi + reset_button_label: Ponastavi exposed_sorts_label: 'Rasporedi po' - sort_asc_label: Uzlazno - sort_desc_label: Silazno + sort_asc_label: Naraščajoče + sort_desc_label: Padajoče filters: bundle: expose: diff --git a/config/sync/language/sl/views.view.media_library.yml b/config/sync/language/sl/views.view.media_library.yml index 017cef9..9a42eaf 100644 --- a/config/sync/language/sl/views.view.media_library.yml +++ b/config/sync/language/sl/views.view.media_library.yml @@ -8,10 +8,10 @@ display: action_title: Akcija exposed_form: options: - reset_button_label: Poništi + reset_button_label: Ponastavi exposed_sorts_label: 'Rasporedi po' - sort_asc_label: Uzlazno - sort_desc_label: Silazno + sort_asc_label: Naraščajoče + sort_desc_label: Padajoče filters: status: group_info: @@ -36,6 +36,7 @@ display: delete_media: text: Ukloni widget: + display_title: Widget display_options: arguments: bundle: diff --git a/config/sync/language/sl/views.view.moderated_content.yml b/config/sync/language/sl/views.view.moderated_content.yml index bc51f86..84479bd 100644 --- a/config/sync/language/sl/views.view.moderated_content.yml +++ b/config/sync/language/sl/views.view.moderated_content.yml @@ -7,18 +7,10 @@ display: fields: title: label: Naslov - separator: ', ' - type: - label: 'Tip vsebin' - separator: ', ' name: label: Avtor - separator: ', ' - moderation_state: - separator: ', ' changed: label: Posodobljeno - separator: ', ' operations: label: Operacije exposed_form: @@ -32,9 +24,6 @@ display: title: expose: label: Naslov - type: - expose: - label: '' langcode: expose: label: Jezik diff --git a/config/sync/language/sl/views.view.taxonomy_term.yml b/config/sync/language/sl/views.view.taxonomy_term.yml index 0b61907..059d806 100644 --- a/config/sync/language/sl/views.view.taxonomy_term.yml +++ b/config/sync/language/sl/views.view.taxonomy_term.yml @@ -6,10 +6,10 @@ display: exposed_form: options: submit_button: Primjeni - reset_button_label: Poništi + reset_button_label: Ponastavi exposed_sorts_label: 'Rasporedi po' - sort_asc_label: Uzlazno - sort_desc_label: Silazno + sort_asc_label: Naraščajoče + sort_desc_label: Padajoče arguments: tid: exception: diff --git a/config/sync/language/sr/block.block.olivero_syndicate.yml b/config/sync/language/sr/block.block.olivero_syndicate.yml new file mode 100644 index 0000000..4061ce2 --- /dev/null +++ b/config/sync/language/sr/block.block.olivero_syndicate.yml @@ -0,0 +1,2 @@ +settings: + label: 'RSS feed' diff --git a/config/sync/language/sr/core.entity_view_mode.node.rss.yml b/config/sync/language/sr/core.entity_view_mode.node.rss.yml new file mode 100644 index 0000000..cd77ee8 --- /dev/null +++ b/config/sync/language/sr/core.entity_view_mode.node.rss.yml @@ -0,0 +1 @@ +label: RSS diff --git a/config/sync/language/sr/views.view.content.yml b/config/sync/language/sr/views.view.content.yml index bfad416..737d57f 100644 --- a/config/sync/language/sr/views.view.content.yml +++ b/config/sync/language/sr/views.view.content.yml @@ -12,6 +12,7 @@ display: name: label: Autor status: + label: Status settings: format_custom_true: Objavljeno changed: @@ -25,6 +26,9 @@ display: exposed_sorts_label: 'Rasporedi po' sort_asc_label: Uzlazno sort_desc_label: Silazno + empty: + area_text_custom: + content: 'Na voljo ni nobene vsebine.' filters: title: expose: @@ -33,6 +37,8 @@ display: expose: label: 'Vrsta sadržaja' status: + expose: + label: Status group_info: group_items: 1: diff --git a/config/sync/language/sr/views.view.media.yml b/config/sync/language/sr/views.view.media.yml index d090b5b..a8457d9 100644 --- a/config/sync/language/sr/views.view.media.yml +++ b/config/sync/language/sr/views.view.media.yml @@ -12,6 +12,7 @@ display: uid: label: Autor status: + label: Status settings: format_custom_true: Objavljeno changed: diff --git a/config/sync/language/sr/views.view.media_library.yml b/config/sync/language/sr/views.view.media_library.yml index c01aa5f..df68a0a 100644 --- a/config/sync/language/sr/views.view.media_library.yml +++ b/config/sync/language/sr/views.view.media_library.yml @@ -36,6 +36,7 @@ display: delete_media: text: Ukloni widget: + display_title: Widget display_options: arguments: bundle: diff --git a/config/sync/language/sr/views.view.moderated_content.yml b/config/sync/language/sr/views.view.moderated_content.yml index d7d4a40..e2b143d 100644 --- a/config/sync/language/sr/views.view.moderated_content.yml +++ b/config/sync/language/sr/views.view.moderated_content.yml @@ -7,18 +7,12 @@ display: fields: title: label: Naziv - separator: ', ' type: label: 'Vrsta sadržaja' - separator: ', ' name: label: Autor - separator: ', ' - moderation_state: - separator: ', ' changed: label: Osvježeno - separator: ', ' operations: label: Operacije exposed_form: diff --git a/config/sync/views.view.content.yml b/config/sync/views.view.content.yml index 20f21cb..06ec436 100644 --- a/config/sync/views.view.content.yml +++ b/config/sync/views.view.content.yml @@ -371,11 +371,11 @@ display: options: submit_button: Počisti reset_button: true - reset_button_label: Poništi + reset_button_label: Ponastavi exposed_sorts_label: 'Rasporedi po' expose_sort_order: true - sort_asc_label: Uzlazno - sort_desc_label: Silazno + sort_asc_label: Naraščajoče + sort_desc_label: Padajoče access: type: perm options: From 2be8cf3f60b7a8d281c93fba9c10add60f4ee166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Thu, 11 Apr 2024 21:35:30 +0200 Subject: [PATCH 11/11] Pocisceno --- web/modules/custom/yufu_concept/yufu_concept.module | 1 - 1 file changed, 1 deletion(-) diff --git a/web/modules/custom/yufu_concept/yufu_concept.module b/web/modules/custom/yufu_concept/yufu_concept.module index 0d5df26..cdf143f 100644 --- a/web/modules/custom/yufu_concept/yufu_concept.module +++ b/web/modules/custom/yufu_concept/yufu_concept.module @@ -13,7 +13,6 @@ use Drupal\node\NodeInterface; * Implements hook_entity_update(). */ function yufu_concept_node_presave(EntityInterface $entity) { - //function yufu_concept_entity_update(EntityInterface $entity) { if ($entity instanceOf NodeInterface && $entity->bundle() == 'concept') { $transition = \Drupal::service('content_moderation_notifications.notification_information')->getTransition($entity); if ($transition->id() == 'publish') {