Skip to content

Commit 78e167d

Browse files
authored
Merge pull request #1 from OS2Forms/os2forms_get_organized
Added module code
2 parents e679d19 + b52728c commit 78e167d

21 files changed

+1484
-1
lines changed

.github/workflows/pr.yaml

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
on: pull_request
2+
name: PR Review
3+
jobs:
4+
changelog:
5+
runs-on: ubuntu-latest
6+
name: Changelog should be updated
7+
strategy:
8+
fail-fast: false
9+
steps:
10+
- name: Checkout
11+
uses: actions/checkout@v2
12+
with:
13+
fetch-depth: 2
14+
15+
- name: Git fetch
16+
run: git fetch
17+
18+
- name: Check that changelog has been updated.
19+
run: git diff --exit-code origin/${{ github.base_ref }} -- CHANGELOG.md && exit 1 || exit 0
20+
21+
test-composer-files:
22+
name: Validate composer
23+
runs-on: ubuntu-latest
24+
strategy:
25+
matrix:
26+
php-versions: [ '7.4', '8.0', '8.1' ]
27+
dependency-version: [ prefer-lowest, prefer-stable ]
28+
steps:
29+
- uses: actions/checkout@master
30+
- name: Setup PHP, with composer and extensions
31+
uses: shivammathur/setup-php@v2
32+
with:
33+
php-version: ${{ matrix.php-versions }}
34+
extensions: json
35+
coverage: none
36+
tools: composer:v2
37+
# https://github.com/shivammathur/setup-php#cache-composer-dependencies
38+
- name: Get composer cache directory
39+
id: composer-cache
40+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
41+
- name: Cache dependencies
42+
uses: actions/cache@v2
43+
with:
44+
path: ${{ steps.composer-cache.outputs.dir }}
45+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
46+
restore-keys: ${{ runner.os }}-composer-
47+
- name: Validate composer files
48+
run: |
49+
composer validate --strict composer.json
50+
# Check that dependencies resolve.
51+
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
52+
53+
php-check-coding-standards:
54+
name: PHP - Check Coding Standards
55+
runs-on: ubuntu-latest
56+
strategy:
57+
matrix:
58+
php-versions: [ '7.4', '8.0', '8.1' ]
59+
dependency-version: [ prefer-lowest, prefer-stable ]
60+
steps:
61+
- uses: actions/checkout@master
62+
- name: Setup PHP, with composer and extensions
63+
uses: shivammathur/setup-php@v2
64+
with:
65+
php-version: ${{ matrix.php-versions }}
66+
extensions: json
67+
coverage: none
68+
tools: composer:v2
69+
# https://github.com/shivammathur/setup-php#cache-composer-dependencies
70+
- name: Get composer cache directory
71+
id: composer-cache
72+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
73+
- name: Cache dependencies
74+
uses: actions/cache@v2
75+
with:
76+
path: ${{ steps.composer-cache.outputs.dir }}
77+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
78+
restore-keys: ${{ runner.os }}-composer-
79+
- name: Install Dependencies
80+
run: |
81+
composer install --no-interaction --no-progress
82+
- name: PHPCS
83+
run: |
84+
composer coding-standards-check/phpcs
85+
86+
php-code-analysis:
87+
name: PHP - Code analysis
88+
runs-on: ubuntu-latest
89+
strategy:
90+
matrix:
91+
php-versions: [ '7.4', '8.0', '8.1' ]
92+
dependency-version: [ prefer-lowest, prefer-stable ]
93+
steps:
94+
- uses: actions/checkout@master
95+
- name: Setup PHP, with composer and extensions
96+
uses: shivammathur/setup-php@v2
97+
with:
98+
php-version: ${{ matrix.php-versions }}
99+
extensions: json, gd
100+
coverage: none
101+
tools: composer:v2
102+
# https://github.com/shivammathur/setup-php#cache-composer-dependencies
103+
- name: Get composer cache directory
104+
id: composer-cache
105+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
106+
- name: Cache dependencies
107+
uses: actions/cache@v2
108+
with:
109+
path: ${{ steps.composer-cache.outputs.dir }}
110+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
111+
restore-keys: ${{ runner.os }}-composer-
112+
- name: drupal-check
113+
run: |
114+
# We need a Drupal project to run drupal-check (cf. https://github.com/mglaman/drupal-check#usage)
115+
# Install Drupal
116+
composer --no-interaction create-project drupal/recommended-project:^9 --stability=dev drupal
117+
# Copy our module source code into the Drupal module folder.
118+
mkdir -p drupal/web/modules/contrib/os2forms_get_organized
119+
cp -r os2forms_get_organized.* composer.json src drupal/web/modules/contrib/os2forms_get_organized
120+
# Add our module as a composer repository.
121+
composer --no-interaction --working-dir=drupal config repositories.os2forms/os2forms_get_organized path web/modules/contrib/os2forms_get_organized
122+
# Restore Drupal composer repository.
123+
composer --no-interaction --working-dir=drupal config repositories.drupal composer https://packages.drupal.org/8
124+
125+
composer --no-interaction --working-dir=drupal config --no-plugins allow-plugins.cweagans/composer-patches true
126+
# @see https://getcomposer.org/doc/03-cli.md#modifying-extra-values
127+
composer --no-interaction --working-dir=drupal config --no-plugins --json extra.enable-patching true
128+
129+
# Require our module.
130+
composer --no-interaction --working-dir=drupal require 'os2forms/os2forms_get_organized:*'
131+
132+
# Check code
133+
composer --no-interaction --working-dir=drupal require --dev drupal/core-dev
134+
cd drupal/web/modules/contrib/os2forms_get_organized
135+
# Remove our non-dev dependencies to prevent duplicated Drupal installation
136+
# PHP Fatal error: Cannot redeclare drupal_get_filename() (previously declared in /home/runner/work/os2forms_get_organized/os2forms_get_organized/drupal/web/modules/contrib/os2forms_get_organized/vendor/drupal/core/includes/bootstrap.inc:190) in /home/runner/work/os2forms_get_organized/os2forms_get_organized/drupal/web/core/includes/bootstrap.inc on line 190
137+
# Use sed to remove the "require" property in composer.json
138+
sed -i '/^\s*"require":/,/^\s*}/d' composer.json
139+
composer --no-interaction install
140+
composer code-analysis

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/vendor/
2+
composer.lock

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!-- markdownlint-disable MD024 -->
2+
# Changelog
3+
4+
All notable changes to this project will be documented in this file.
5+
6+
See [keep a changelog](https://keepachangelog.com/en/1.0.0/) for information
7+
about writing changes to this log.
8+
9+
## [Unreleased]
10+
11+
[Unreleased]: https://github.com/OS2Forms/os2forms_get_organized/

README.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,34 @@
1-
# os2forms_get_organized
1+
# OS2Forms GetOrganized
2+
3+
Adds [GetOrganized](https://www.getorganized.net/) handler for archiving purposes.
4+
5+
## Installation
6+
7+
```sh
8+
composer require os2forms/os2forms_get_organized
9+
vendor/bin/drush pm:enable os2forms_get_organized
10+
```
11+
12+
## Settings
13+
14+
Set GetOrganized `username`, `password` and `base url`
15+
on `/admin/os2forms_get_organized/settings`.
16+
17+
You can also test that the provided
18+
details work on `/admin/os2forms_get_organized/settings`.
19+
20+
## Coding standards
21+
22+
Check coding standards:
23+
24+
```sh
25+
docker run --rm --interactive --tty --volume ${PWD}:/app itkdev/php7.4-fpm:latest composer install
26+
docker run --rm --interactive --tty --volume ${PWD}:/app itkdev/php7.4-fpm:latest composer coding-standards-check
27+
```
28+
29+
Apply coding standards:
30+
31+
```shell
32+
docker run --rm --interactive --tty --volume ${PWD}:/app itkdev/php7.4-fpm:latest composer coding-standards-apply
33+
docker run --rm --interactive --tty --volume ${PWD}:/app node:18 yarn --cwd /app coding-standards-apply
34+
```

composer.json

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"name": "os2forms/os2forms_get_organized",
3+
"description": "OS2Forms GetOrganized integration",
4+
"type": "drupal-module",
5+
"license": "MIT",
6+
"authors": [
7+
{
8+
"name": "Jeppe Kuhlmann Andersen",
9+
"email": "[email protected]"
10+
}
11+
],
12+
"minimum-stability": "dev",
13+
"prefer-stable": true,
14+
"repositories": [
15+
{
16+
"type": "composer",
17+
"url": "https://packages.drupal.org/8"
18+
}
19+
],
20+
"require": {
21+
"itk-dev/getorganized-api-client-php": "^1.2",
22+
"drupal/webform": "^6.1",
23+
"drupal/advancedqueue": "^1.0",
24+
"symfony/options-resolver": "^5.4"
25+
},
26+
"require-dev": {
27+
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
28+
"drupal/coder": "^8.3",
29+
"mglaman/drupal-check": "^1.4"
30+
},
31+
"scripts": {
32+
"code-analysis/drupal-check": [
33+
"# @see https://github.com/mglaman/drupal-check/issues/261#issuecomment-1030141772 for details on exclude-dir value",
34+
"drupal-check --deprecations --analysis --exclude-dir='vendor,*/Client/*' *.* src"
35+
],
36+
"code-analysis": [
37+
"@code-analysis/drupal-check"
38+
],
39+
"coding-standards-check/phpcs": [
40+
"vendor/bin/phpcs --standard=phpcs.xml.dist"
41+
],
42+
"coding-standards-check": [
43+
"@coding-standards-check/phpcs"
44+
],
45+
"coding-standards-apply/phpcs": [
46+
"vendor/bin/phpcbf --standard=phpcs.xml.dist"
47+
],
48+
"coding-standards-apply": [
49+
"@coding-standards-apply/phpcs"
50+
]
51+
},
52+
"config": {
53+
"allow-plugins": {
54+
"dealerdirect/phpcodesniffer-composer-installer": true
55+
}
56+
}
57+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
langcode: da
2+
status: true
3+
dependencies: { }
4+
id: get_organized_queue
5+
label: 'Get Organized Queue'
6+
backend: database
7+
backend_configuration:
8+
lease_time: 300
9+
processor: cron
10+
processing_time: 90
11+
locked: false

os2forms_get_organized.info.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: 'OS2Forms GetOrganized'
2+
type: module
3+
description: 'GetOrganized integration'
4+
package: OS2Forms
5+
core_version_requirement: ^9
6+
dependencies:
7+
- drupal:webform
8+
- drupal:advancedqueue
9+
- drupal:webform_entity_print_attachment
10+
configure: os2forms_get_organized.admin.settings
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
os2forms_get_organized.admin.settings:
2+
title: OS2Forms Get Organized
3+
description: Configure the OS2Forms GetOrganized module
4+
parent: system.admin_config_system
5+
route_name: os2forms_get_organized.admin.settings

os2forms_get_organized.routing.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
os2forms_get_organized.admin.settings:
2+
path: '/admin/os2forms_get_organized/settings'
3+
defaults:
4+
_form: '\Drupal\os2forms_get_organized\Form\SettingsForm'
5+
_title: 'GetOrganized settings'
6+
requirements:
7+
_permission: 'administer site configuration'
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
services:
2+
Drupal\os2forms_get_organized\Helper\Settings:
3+
arguments:
4+
- "@keyvalue"
5+
6+
Drupal\os2forms_get_organized\Helper\ArchiveHelper:
7+
arguments:
8+
- '@entity_type.manager'
9+
- '@Drupal\os2forms_get_organized\Helper\Settings'

0 commit comments

Comments
 (0)