ci: merge main to release (pull request #7313)
ci: merge main to release
This commit is contained in:
commit
b528b3cfbb
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
|
@ -59,7 +59,7 @@ jobs:
|
|||
path: geckodriver.log
|
||||
|
||||
- name: Upload Coverage Results to Codecov
|
||||
uses: codecov/codecov-action@v4.1.0
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: coverage.xml
|
||||
|
||||
|
|
77
.pnp.cjs
generated
77
.pnp.cjs
generated
|
@ -55,7 +55,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["browser-fs-access", "npm:0.35.0"],\
|
||||
["browserlist", "npm:1.0.1"],\
|
||||
["c8", "npm:9.1.0"],\
|
||||
["caniuse-lite", "npm:1.0.30001599"],\
|
||||
["caniuse-lite", "npm:1.0.30001603"],\
|
||||
["d3", "npm:7.9.0"],\
|
||||
["eslint", "npm:8.57.0"],\
|
||||
["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.1.0"],\
|
||||
|
@ -64,10 +64,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:16.6.2"],\
|
||||
["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\
|
||||
["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"],\
|
||||
["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.23.0"],\
|
||||
["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.24.0"],\
|
||||
["file-saver", "npm:2.0.5"],\
|
||||
["highcharts", "npm:11.4.0"],\
|
||||
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.16.0"],\
|
||||
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.18.1"],\
|
||||
["ical.js", "npm:1.5.0"],\
|
||||
["jquery", "npm:3.7.1"],\
|
||||
["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.1"],\
|
||||
|
@ -94,7 +94,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["slugify", "npm:1.6.6"],\
|
||||
["sortablejs", "npm:1.15.2"],\
|
||||
["vanillajs-datepicker", "npm:1.3.4"],\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.2"],\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.3"],\
|
||||
["vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.21"],\
|
||||
["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.0"],\
|
||||
["zxcvbn", "npm:4.4.2"]\
|
||||
|
@ -2432,10 +2432,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:127f44ed2d4bdd83725c8820683da6ed922142e851761151ec4911dcca098a2d4d832b774a31e7abf98185d360ff83c999b319ea3314c86d38eca853072fb0d2#npm:2.1.3", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sidvind-better-ajv-errors-virtual-ae7b5eb579/0/cache/@sidvind-better-ajv-errors-npm-2.1.3-e3d1c524a8-949cb805a1.zip/node_modules/@sidvind/better-ajv-errors/",\
|
||||
["virtual:640261ed3b7a9880a388cc504caacf8ea790dd52f1cb31fbc3be445cb2adc6e73fc87097de620863105eb917510145ef2457d30000c7361456ab67ec0b895136#npm:2.1.3", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sidvind-better-ajv-errors-virtual-ff98ba00e3/0/cache/@sidvind-better-ajv-errors-npm-2.1.3-e3d1c524a8-949cb805a1.zip/node_modules/@sidvind/better-ajv-errors/",\
|
||||
"packageDependencies": [\
|
||||
["@sidvind/better-ajv-errors", "virtual:127f44ed2d4bdd83725c8820683da6ed922142e851761151ec4911dcca098a2d4d832b774a31e7abf98185d360ff83c999b319ea3314c86d38eca853072fb0d2#npm:2.1.3"],\
|
||||
["@sidvind/better-ajv-errors", "virtual:640261ed3b7a9880a388cc504caacf8ea790dd52f1cb31fbc3be445cb2adc6e73fc87097de620863105eb917510145ef2457d30000c7361456ab67ec0b895136#npm:2.1.3"],\
|
||||
["@babel/code-frame", "npm:7.16.7"],\
|
||||
["@types/ajv", null],\
|
||||
["ajv", "npm:8.11.0"],\
|
||||
|
@ -2710,7 +2710,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["@vitejs/plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.6.2"],\
|
||||
["@types/vite", null],\
|
||||
["@types/vue", null],\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.2"],\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.3"],\
|
||||
["vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.21"]\
|
||||
],\
|
||||
"packagePeers": [\
|
||||
|
@ -3506,10 +3506,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:1.0.30001599", {\
|
||||
"packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001599-834cd4cb82-d7e619e2e7.zip/node_modules/caniuse-lite/",\
|
||||
["npm:1.0.30001603", {\
|
||||
"packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001603-77af81f60b-e66e0d24b8.zip/node_modules/caniuse-lite/",\
|
||||
"packageDependencies": [\
|
||||
["caniuse-lite", "npm:1.0.30001599"]\
|
||||
["caniuse-lite", "npm:1.0.30001603"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
|
@ -5095,25 +5095,26 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["eslint-plugin-vue", [\
|
||||
["npm:9.23.0", {\
|
||||
"packageLocation": "./.yarn/cache/eslint-plugin-vue-npm-9.23.0-d36e581933-acb3a4dd27.zip/node_modules/eslint-plugin-vue/",\
|
||||
["npm:9.24.0", {\
|
||||
"packageLocation": "./.yarn/cache/eslint-plugin-vue-npm-9.24.0-4c6dba51bf-2309b919d8.zip/node_modules/eslint-plugin-vue/",\
|
||||
"packageDependencies": [\
|
||||
["eslint-plugin-vue", "npm:9.23.0"]\
|
||||
["eslint-plugin-vue", "npm:9.24.0"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.23.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/eslint-plugin-vue-virtual-a9cf4d7c43/0/cache/eslint-plugin-vue-npm-9.23.0-d36e581933-acb3a4dd27.zip/node_modules/eslint-plugin-vue/",\
|
||||
["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.24.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/eslint-plugin-vue-virtual-e080dd5dc6/0/cache/eslint-plugin-vue-npm-9.24.0-4c6dba51bf-2309b919d8.zip/node_modules/eslint-plugin-vue/",\
|
||||
"packageDependencies": [\
|
||||
["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.23.0"],\
|
||||
["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.24.0"],\
|
||||
["@eslint-community/eslint-utils", "virtual:4286e12a3a0f74af013bc8f16c6d8fdde823cfbf6389660266b171e551f576c805b0a7a8eb2a7087a5cee7dfe6ebb6e1ea3808d93daf915edc95656907a381bb#npm:4.4.0"],\
|
||||
["@types/eslint", null],\
|
||||
["eslint", "npm:8.57.0"],\
|
||||
["globals", "npm:13.24.0"],\
|
||||
["natural-compare", "npm:1.4.0"],\
|
||||
["nth-check", "npm:2.1.1"],\
|
||||
["postcss-selector-parser", "npm:6.0.15"],\
|
||||
["semver", "npm:7.6.0"],\
|
||||
["vue-eslint-parser", "virtual:a9cf4d7c437b03eeeb49b01b4b3434ca26b6f59f98831796df73ffd0744dcbe1bfe9c60f8b7e2c803ab0f29084730afdc0220af1db5d8d3d00531e0df4f49dbe#npm:9.4.2"],\
|
||||
["vue-eslint-parser", "virtual:e080dd5dc65fb3541eb98fd929c3a1d3733f3aff4bb24b09a6b5cce9fba4a29aca07e286ef93079f2144caa0fd33bb6545549286d3a9f2b9a211caa1f4b68ff9#npm:9.4.2"],\
|
||||
["xml-name-validator", "npm:4.0.0"]\
|
||||
],\
|
||||
"packagePeers": [\
|
||||
|
@ -5828,20 +5829,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["html-validate", [\
|
||||
["npm:8.16.0", {\
|
||||
"packageLocation": "./.yarn/cache/html-validate-npm-8.16.0-71c478330f-857b05ab87.zip/node_modules/html-validate/",\
|
||||
["npm:8.18.1", {\
|
||||
"packageLocation": "./.yarn/cache/html-validate-npm-8.18.1-c5271a0fb9-53479bf75b.zip/node_modules/html-validate/",\
|
||||
"packageDependencies": [\
|
||||
["html-validate", "npm:8.16.0"]\
|
||||
["html-validate", "npm:8.18.1"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.16.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/html-validate-virtual-127f44ed2d/0/cache/html-validate-npm-8.16.0-71c478330f-857b05ab87.zip/node_modules/html-validate/",\
|
||||
["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.18.1", {\
|
||||
"packageLocation": "./.yarn/__virtual__/html-validate-virtual-640261ed3b/0/cache/html-validate-npm-8.18.1-c5271a0fb9-53479bf75b.zip/node_modules/html-validate/",\
|
||||
"packageDependencies": [\
|
||||
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.16.0"],\
|
||||
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.18.1"],\
|
||||
["@babel/code-frame", "npm:7.16.7"],\
|
||||
["@html-validate/stylish", "npm:4.1.0"],\
|
||||
["@sidvind/better-ajv-errors", "virtual:127f44ed2d4bdd83725c8820683da6ed922142e851761151ec4911dcca098a2d4d832b774a31e7abf98185d360ff83c999b319ea3314c86d38eca853072fb0d2#npm:2.1.3"],\
|
||||
["@sidvind/better-ajv-errors", "virtual:640261ed3b7a9880a388cc504caacf8ea790dd52f1cb31fbc3be445cb2adc6e73fc87097de620863105eb917510145ef2457d30000c7361456ab67ec0b895136#npm:2.1.3"],\
|
||||
["@types/jest", null],\
|
||||
["@types/jest-diff", null],\
|
||||
["@types/jest-snapshot", null],\
|
||||
|
@ -8338,7 +8339,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["browser-fs-access", "npm:0.35.0"],\
|
||||
["browserlist", "npm:1.0.1"],\
|
||||
["c8", "npm:9.1.0"],\
|
||||
["caniuse-lite", "npm:1.0.30001599"],\
|
||||
["caniuse-lite", "npm:1.0.30001603"],\
|
||||
["d3", "npm:7.9.0"],\
|
||||
["eslint", "npm:8.57.0"],\
|
||||
["eslint-config-standard", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:17.1.0"],\
|
||||
|
@ -8347,10 +8348,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["eslint-plugin-n", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:16.6.2"],\
|
||||
["eslint-plugin-node", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:11.1.0"],\
|
||||
["eslint-plugin-promise", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:6.1.1"],\
|
||||
["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.23.0"],\
|
||||
["eslint-plugin-vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:9.24.0"],\
|
||||
["file-saver", "npm:2.0.5"],\
|
||||
["highcharts", "npm:11.4.0"],\
|
||||
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.16.0"],\
|
||||
["html-validate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:8.18.1"],\
|
||||
["ical.js", "npm:1.5.0"],\
|
||||
["jquery", "npm:3.7.1"],\
|
||||
["jquery-migrate", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.1"],\
|
||||
|
@ -8377,7 +8378,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
["slugify", "npm:1.6.6"],\
|
||||
["sortablejs", "npm:1.15.2"],\
|
||||
["vanillajs-datepicker", "npm:1.3.4"],\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.2"],\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.3"],\
|
||||
["vue", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:3.4.21"],\
|
||||
["vue-router", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.3.0"],\
|
||||
["zxcvbn", "npm:4.4.2"]\
|
||||
|
@ -9267,17 +9268,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
}]\
|
||||
]],\
|
||||
["vite", [\
|
||||
["npm:4.5.2", {\
|
||||
"packageLocation": "./.yarn/cache/vite-npm-4.5.2-e430b2c117-9d1f84f703.zip/node_modules/vite/",\
|
||||
["npm:4.5.3", {\
|
||||
"packageLocation": "./.yarn/cache/vite-npm-4.5.3-5cedc7cb8f-fd3f512ce4.zip/node_modules/vite/",\
|
||||
"packageDependencies": [\
|
||||
["vite", "npm:4.5.2"]\
|
||||
["vite", "npm:4.5.3"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.2", {\
|
||||
"packageLocation": "./.yarn/__virtual__/vite-virtual-8f548b7c00/0/cache/vite-npm-4.5.2-e430b2c117-9d1f84f703.zip/node_modules/vite/",\
|
||||
["virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.3", {\
|
||||
"packageLocation": "./.yarn/__virtual__/vite-virtual-69c30fd9fd/0/cache/vite-npm-4.5.3-5cedc7cb8f-fd3f512ce4.zip/node_modules/vite/",\
|
||||
"packageDependencies": [\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.2"],\
|
||||
["vite", "virtual:dc3fc578bfa5e06182a4d2be39ede0bc5b74940b1ffe0d70c26892ab140a4699787750fba175dc306292e80b4aa2c8c5f68c2a821e69b2c37e360c0dff36ff66#npm:4.5.3"],\
|
||||
["@types/less", null],\
|
||||
["@types/lightningcss", null],\
|
||||
["@types/node", null],\
|
||||
|
@ -9531,10 +9532,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:a9cf4d7c437b03eeeb49b01b4b3434ca26b6f59f98831796df73ffd0744dcbe1bfe9c60f8b7e2c803ab0f29084730afdc0220af1db5d8d3d00531e0df4f49dbe#npm:9.4.2", {\
|
||||
"packageLocation": "./.yarn/__virtual__/vue-eslint-parser-virtual-6710b98248/0/cache/vue-eslint-parser-npm-9.4.2-3e4e696025-67f14c8ea1.zip/node_modules/vue-eslint-parser/",\
|
||||
["virtual:e080dd5dc65fb3541eb98fd929c3a1d3733f3aff4bb24b09a6b5cce9fba4a29aca07e286ef93079f2144caa0fd33bb6545549286d3a9f2b9a211caa1f4b68ff9#npm:9.4.2", {\
|
||||
"packageLocation": "./.yarn/__virtual__/vue-eslint-parser-virtual-f703c550a2/0/cache/vue-eslint-parser-npm-9.4.2-3e4e696025-67f14c8ea1.zip/node_modules/vue-eslint-parser/",\
|
||||
"packageDependencies": [\
|
||||
["vue-eslint-parser", "virtual:a9cf4d7c437b03eeeb49b01b4b3434ca26b6f59f98831796df73ffd0744dcbe1bfe9c60f8b7e2c803ab0f29084730afdc0220af1db5d8d3d00531e0df4f49dbe#npm:9.4.2"],\
|
||||
["vue-eslint-parser", "virtual:e080dd5dc65fb3541eb98fd929c3a1d3733f3aff4bb24b09a6b5cce9fba4a29aca07e286ef93079f2144caa0fd33bb6545549286d3a9f2b9a211caa1f4b68ff9#npm:9.4.2"],\
|
||||
["@types/eslint", null],\
|
||||
["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"],\
|
||||
["eslint", "npm:8.57.0"],\
|
||||
|
|
Binary file not shown.
BIN
.yarn/cache/caniuse-lite-npm-1.0.30001603-77af81f60b-e66e0d24b8.zip
vendored
Normal file
BIN
.yarn/cache/caniuse-lite-npm-1.0.30001603-77af81f60b-e66e0d24b8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/html-validate-npm-8.18.1-c5271a0fb9-53479bf75b.zip
vendored
Normal file
BIN
.yarn/cache/html-validate-npm-8.18.1-c5271a0fb9-53479bf75b.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
28
dev/coverage-action/package-lock.json
generated
28
dev/coverage-action/package-lock.json
generated
|
@ -22,7 +22,7 @@
|
|||
"eslint-plugin-import": "2.29.1",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"npm-check-updates": "16.14.17"
|
||||
"npm-check-updates": "16.14.18"
|
||||
}
|
||||
},
|
||||
"node_modules/@aashutoshrathi/word-wrap": {
|
||||
|
@ -725,6 +725,12 @@
|
|||
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/semver-utils": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver-utils/-/semver-utils-1.1.3.tgz",
|
||||
"integrity": "sha512-T+YwkslhsM+CeuhYUxyAjWm7mJ5am/K10UX40RuA6k6Lc7eGtq8iY2xOzy7Vq0GOqhl/xZl5l2FwURZMTPTUww==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@ungap/structured-clone": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
|
||||
|
@ -4079,11 +4085,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/npm-check-updates": {
|
||||
"version": "16.14.17",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.17.tgz",
|
||||
"integrity": "sha512-ElnDdXKe60f8S6RhzFeaGuH2TFJmt2cU2HjLdowldabdm27nWFCxV2ebeP3xGbQkzp2+RPDQNdW9HqU1lcY8ag==",
|
||||
"version": "16.14.18",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.18.tgz",
|
||||
"integrity": "sha512-9iaRe9ohx9ykdbLjPRIYcq1A0RkrPYUx9HmQK1JIXhfxtJCNE/+497H9Z4PGH6GWRALbz5KF+1iZoySK2uSEpQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/semver-utils": "^1.1.1",
|
||||
"chalk": "^5.3.0",
|
||||
"cli-table3": "^0.6.3",
|
||||
"commander": "^10.0.1",
|
||||
|
@ -6816,6 +6823,12 @@
|
|||
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/semver-utils": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver-utils/-/semver-utils-1.1.3.tgz",
|
||||
"integrity": "sha512-T+YwkslhsM+CeuhYUxyAjWm7mJ5am/K10UX40RuA6k6Lc7eGtq8iY2xOzy7Vq0GOqhl/xZl5l2FwURZMTPTUww==",
|
||||
"dev": true
|
||||
},
|
||||
"@ungap/structured-clone": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
|
||||
|
@ -9249,11 +9262,12 @@
|
|||
}
|
||||
},
|
||||
"npm-check-updates": {
|
||||
"version": "16.14.17",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.17.tgz",
|
||||
"integrity": "sha512-ElnDdXKe60f8S6RhzFeaGuH2TFJmt2cU2HjLdowldabdm27nWFCxV2ebeP3xGbQkzp2+RPDQNdW9HqU1lcY8ag==",
|
||||
"version": "16.14.18",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.18.tgz",
|
||||
"integrity": "sha512-9iaRe9ohx9ykdbLjPRIYcq1A0RkrPYUx9HmQK1JIXhfxtJCNE/+497H9Z4PGH6GWRALbz5KF+1iZoySK2uSEpQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/semver-utils": "^1.1.1",
|
||||
"chalk": "^5.3.0",
|
||||
"cli-table3": "^0.6.3",
|
||||
"commander": "^10.0.1",
|
||||
|
|
|
@ -19,6 +19,6 @@
|
|||
"eslint-plugin-import": "2.29.1",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"npm-check-updates": "16.14.17"
|
||||
"npm-check-updates": "16.14.18"
|
||||
}
|
||||
}
|
||||
|
|
14
dev/deploy-to-container/package-lock.json
generated
14
dev/deploy-to-container/package-lock.json
generated
|
@ -11,7 +11,7 @@
|
|||
"nanoid": "5.0.6",
|
||||
"nanoid-dictionary": "5.0.0-beta.1",
|
||||
"slugify": "1.6.6",
|
||||
"tar": "^6.2.0",
|
||||
"tar": "^6.2.1",
|
||||
"yargs": "^17.7.2"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -483,9 +483,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/tar": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
|
||||
"integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
|
||||
"integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
|
||||
"dependencies": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
|
@ -977,9 +977,9 @@
|
|||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
|
||||
"integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
|
||||
"integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
|
||||
"requires": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"nanoid": "5.0.6",
|
||||
"nanoid-dictionary": "5.0.0-beta.1",
|
||||
"slugify": "1.6.6",
|
||||
"tar": "^6.2.0",
|
||||
"tar": "^6.2.1",
|
||||
"yargs": "^17.7.2"
|
||||
},
|
||||
"engines": {
|
||||
|
|
14
dev/diff/package-lock.json
generated
14
dev/diff/package-lock.json
generated
|
@ -17,7 +17,7 @@
|
|||
"lodash-es": "^4.17.21",
|
||||
"luxon": "^3.4.4",
|
||||
"pretty-bytes": "^6.1.1",
|
||||
"tar": "^6.2.0",
|
||||
"tar": "^6.2.1",
|
||||
"yargs": "^17.7.2"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -1193,9 +1193,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/tar": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
|
||||
"integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
|
||||
"integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
|
||||
"dependencies": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
|
@ -2173,9 +2173,9 @@
|
|||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
|
||||
"integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
|
||||
"integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
|
||||
"requires": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"lodash-es": "^4.17.21",
|
||||
"luxon": "^3.4.4",
|
||||
"pretty-bytes": "^6.1.1",
|
||||
"tar": "^6.2.0",
|
||||
"tar": "^6.2.1",
|
||||
"yargs": "^17.7.2"
|
||||
},
|
||||
"engines": {
|
||||
|
|
|
@ -901,7 +901,7 @@ class CustomApiTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
@override_settings(APP_API_TOKENS={"ietf.api.views.email_aliases": ["valid-token"]})
|
||||
@override_settings(APP_API_TOKENS={"ietf.api.views.draft_aliases": ["valid-token"]})
|
||||
@mock.patch("ietf.api.views.DraftAliasGenerator")
|
||||
def test_draft_aliases(self, mock):
|
||||
mock.return_value = (("alias1", ("a1", "a2")), ("alias2", ("a3", "a4")))
|
||||
|
@ -935,7 +935,7 @@ class CustomApiTests(TestCase):
|
|||
405,
|
||||
)
|
||||
|
||||
@override_settings(APP_API_TOKENS={"ietf.api.views.email_aliases": ["valid-token"]})
|
||||
@override_settings(APP_API_TOKENS={"ietf.api.views.group_aliases": ["valid-token"]})
|
||||
@mock.patch("ietf.api.views.GroupAliasGenerator")
|
||||
def test_group_aliases(self, mock):
|
||||
mock.return_value = (("alias1", ("ietf",), ("a1", "a2")), ("alias2", ("ietf", "iab"), ("a3", "a4")))
|
||||
|
@ -991,6 +991,28 @@ class CustomApiTests(TestCase):
|
|||
self.assertCountEqual(result.keys(), ["addresses"])
|
||||
self.assertCountEqual(result["addresses"], Email.objects.filter(active=True).values_list("address", flat=True))
|
||||
|
||||
@override_settings(APP_API_TOKENS={"ietf.api.views.role_holder_addresses": ["valid-token"]})
|
||||
def test_role_holder_addresses(self):
|
||||
url = urlreverse("ietf.api.views.role_holder_addresses")
|
||||
r = self.client.get(url, headers={})
|
||||
self.assertEqual(r.status_code, 403, "No api token, no access")
|
||||
r = self.client.get(url, headers={"X-Api-Key": "not-valid-token"})
|
||||
self.assertEqual(r.status_code, 403, "Bad api token, no access")
|
||||
r = self.client.post(url, headers={"X-Api-Key": "valid-token"})
|
||||
self.assertEqual(r.status_code, 405, "Bad method, no access")
|
||||
|
||||
emails = EmailFactory.create_batch(5)
|
||||
email_queryset = Email.objects.filter(pk__in=[e.pk for e in emails])
|
||||
with mock.patch("ietf.api.views.role_holder_emails", return_value=email_queryset):
|
||||
r = self.client.get(url, headers={"X-Api-Key": "valid-token"})
|
||||
self.assertEqual(r.status_code, 200, "Good api token and method, access")
|
||||
content_dict = json.loads(r.content)
|
||||
self.assertCountEqual(content_dict.keys(), ["addresses"])
|
||||
self.assertEqual(
|
||||
content_dict["addresses"],
|
||||
sorted(e.address for e in emails),
|
||||
)
|
||||
|
||||
|
||||
class DirectAuthApiTests(TestCase):
|
||||
|
||||
|
|
|
@ -28,6 +28,8 @@ urlpatterns = [
|
|||
url(r'^export/personal-information/$', api_views.PersonalInformationExportView.as_view()),
|
||||
# Email alias information for groups
|
||||
url(r'^group/group-aliases/$', api_views.group_aliases),
|
||||
# Email addresses belonging to role holders
|
||||
url(r'^group/role-holder-addresses/$', api_views.role_holder_addresses),
|
||||
# Let IESG members set positions programmatically
|
||||
url(r'^iesg/position', views_ballot.api_set_position),
|
||||
# Let Meetecho set session video URLs
|
||||
|
|
|
@ -29,7 +29,7 @@ from ietf.api import _api_list
|
|||
from ietf.api.ietf_utils import is_valid_token, requires_api_token
|
||||
from ietf.api.serializer import JsonExportMixin
|
||||
from ietf.doc.utils import DraftAliasGenerator, fuzzy_find_documents
|
||||
from ietf.group.utils import GroupAliasGenerator
|
||||
from ietf.group.utils import GroupAliasGenerator, role_holder_emails
|
||||
from ietf.ietfauth.utils import role_required
|
||||
from ietf.ietfauth.views import send_account_creation_email
|
||||
from ietf.meeting.models import Meeting
|
||||
|
@ -452,7 +452,7 @@ def directauth(request):
|
|||
return HttpResponse(status=405)
|
||||
|
||||
|
||||
@requires_api_token("ietf.api.views.email_aliases")
|
||||
@requires_api_token
|
||||
@csrf_exempt
|
||||
def draft_aliases(request):
|
||||
if request.method == "GET":
|
||||
|
@ -471,7 +471,7 @@ def draft_aliases(request):
|
|||
return HttpResponse(status=405)
|
||||
|
||||
|
||||
@requires_api_token("ietf.api.views.email_aliases")
|
||||
@requires_api_token
|
||||
@csrf_exempt
|
||||
def group_aliases(request):
|
||||
if request.method == "GET":
|
||||
|
@ -500,3 +500,18 @@ def active_email_list(request):
|
|||
}
|
||||
)
|
||||
return HttpResponse(status=405)
|
||||
|
||||
|
||||
@requires_api_token
|
||||
def role_holder_addresses(request):
|
||||
if request.method == "GET":
|
||||
return JsonResponse(
|
||||
{
|
||||
"addresses": list(
|
||||
role_holder_emails()
|
||||
.order_by("address")
|
||||
.values_list("address", flat=True)
|
||||
)
|
||||
}
|
||||
)
|
||||
return HttpResponse(status=405)
|
||||
|
|
|
@ -1547,21 +1547,12 @@ def document_ballot_content(request, doc, ballot_id, editable=True):
|
|||
|
||||
def document_ballot(request, name, ballot_id=None):
|
||||
doc = get_object_or_404(Document, name=name)
|
||||
all_ballots = list(BallotDocEvent.objects.filter(doc=doc, type="created_ballot").order_by("time"))
|
||||
if not ballot_id:
|
||||
if all_ballots:
|
||||
ballot = all_ballots[-1]
|
||||
ballots = BallotDocEvent.objects.filter(doc=doc, type="created_ballot").order_by("time")
|
||||
if ballot_id is not None:
|
||||
ballot = ballots.filter(id=ballot_id).first()
|
||||
else:
|
||||
raise Http404("Ballot not found for: %s" % name)
|
||||
ballot_id = ballot.id
|
||||
else:
|
||||
ballot_id = int(ballot_id)
|
||||
for b in all_ballots:
|
||||
if b.id == ballot_id:
|
||||
ballot = b
|
||||
break
|
||||
|
||||
if not ballot_id or not ballot:
|
||||
ballot = ballots.last()
|
||||
if not ballot:
|
||||
raise Http404("Ballot not found for: %s" % name)
|
||||
|
||||
if ballot.ballot_type.slug == "irsg-approve":
|
||||
|
@ -1571,14 +1562,13 @@ def document_ballot(request, name, ballot_id=None):
|
|||
|
||||
top = render_document_top(request, doc, ballot_tab, name)
|
||||
|
||||
c = document_ballot_content(request, doc, ballot_id, editable=True)
|
||||
c = document_ballot_content(request, doc, ballot.id, editable=True)
|
||||
request.session['ballot_edit_return_point'] = request.path_info
|
||||
|
||||
return render(request, "doc/document_ballot.html",
|
||||
dict(doc=doc,
|
||||
top=top,
|
||||
ballot_content=c,
|
||||
# ballot_type_slug=ballot.ballot_type.slug,
|
||||
))
|
||||
|
||||
def document_irsg_ballot(request, name, ballot_id=None):
|
||||
|
|
|
@ -18,10 +18,16 @@ import debug # pyflakes:ignore
|
|||
from ietf.doc.factories import DocumentFactory, WgDraftFactory, EditorialDraftFactory
|
||||
from ietf.doc.models import DocEvent, RelatedDocument, Document
|
||||
from ietf.group.models import Role, Group
|
||||
from ietf.group.utils import get_group_role_emails, get_child_group_role_emails, get_group_ad_emails, GroupAliasGenerator
|
||||
from ietf.group.utils import (
|
||||
get_group_role_emails,
|
||||
get_child_group_role_emails,
|
||||
get_group_ad_emails,
|
||||
GroupAliasGenerator,
|
||||
role_holder_emails,
|
||||
)
|
||||
from ietf.group.factories import GroupFactory, RoleFactory
|
||||
from ietf.person.factories import PersonFactory, EmailFactory
|
||||
from ietf.person.models import Person
|
||||
from ietf.person.models import Email, Person
|
||||
from ietf.utils.test_utils import login_testing_unauthorized, TestCase
|
||||
|
||||
class StreamTests(TestCase):
|
||||
|
@ -240,3 +246,41 @@ class GroupRoleEmailTests(TestCase):
|
|||
self.assertGreater(len(emails), 0)
|
||||
for item in emails:
|
||||
self.assertIn('@', item)
|
||||
|
||||
def test_role_holder_emails(self):
|
||||
# The test fixtures create a bunch of addresses that pollute this test's results - disable them
|
||||
Email.objects.update(active=False)
|
||||
|
||||
role_holders = [
|
||||
RoleFactory(name_id="member", group__type_id=gt).person
|
||||
for gt in [
|
||||
"ag",
|
||||
"area",
|
||||
"dir",
|
||||
"iab",
|
||||
"ietf",
|
||||
"irtf",
|
||||
"nomcom",
|
||||
"rg",
|
||||
"team",
|
||||
"wg",
|
||||
"rag",
|
||||
]
|
||||
]
|
||||
# Expect an additional active email to be included
|
||||
EmailFactory(
|
||||
person=role_holders[0],
|
||||
active=True,
|
||||
)
|
||||
# Do not expect an inactive email to be included
|
||||
EmailFactory(
|
||||
person=role_holders[1],
|
||||
active=False,
|
||||
)
|
||||
# Do not expect address on a role-holder for a different group type
|
||||
RoleFactory(name_id="member", group__type_id="adhoc") # arbitrary type not in the of-interest list
|
||||
|
||||
self.assertCountEqual(
|
||||
role_holder_emails(),
|
||||
Email.objects.filter(active=True, person__in=role_holders),
|
||||
)
|
||||
|
|
|
@ -425,3 +425,28 @@ class GroupAliasGenerator:
|
|||
chair_emails = get_group_role_emails(group, ["chair", "delegate"])
|
||||
if chair_emails:
|
||||
yield group.acronym + "-chairs", ["ietf"], list(chair_emails)
|
||||
|
||||
|
||||
def role_holder_emails():
|
||||
"""Get queryset of active Emails for group role holders"""
|
||||
group_types_of_interest = [
|
||||
"ag",
|
||||
"area",
|
||||
"dir",
|
||||
"iab",
|
||||
"ietf",
|
||||
"irtf",
|
||||
"nomcom",
|
||||
"rg",
|
||||
"team",
|
||||
"wg",
|
||||
"rag",
|
||||
]
|
||||
roles = Role.objects.filter(
|
||||
group__state__slug="active",
|
||||
group__type__in=group_types_of_interest,
|
||||
)
|
||||
emails = Email.objects.filter(active=True).exclude(
|
||||
address__startswith="unknown-email-"
|
||||
)
|
||||
return emails.filter(person__role__in=roles).distinct()
|
||||
|
|
|
@ -1099,6 +1099,7 @@ def create_interim_session_conferences(sessions):
|
|||
try:
|
||||
confs = meetecho_manager.create(
|
||||
group=session.group,
|
||||
session_id=session.pk,
|
||||
description=str(session),
|
||||
start_time=ts.utc_start_time(),
|
||||
duration=ts.duration,
|
||||
|
|
|
@ -487,7 +487,7 @@ class InterimTests(TestCase):
|
|||
mock.reset_mock()
|
||||
mock_conf_mgr.create.return_value = [
|
||||
Conference(
|
||||
manager=mock_conf_mgr, id=1, public_id='some-uuid', description='desc',
|
||||
manager=mock_conf_mgr, id=int(sessions[0].pk), public_id='some-uuid', description='desc',
|
||||
start_time=timeslots[0].utc_start_time(), duration=timeslots[0].duration, url='fake-meetecho-url',
|
||||
deletion_token='please-delete-me',
|
||||
),
|
||||
|
@ -498,6 +498,7 @@ class InterimTests(TestCase):
|
|||
mock_conf_mgr.create.call_args[1],
|
||||
{
|
||||
'group': sessions[0].group,
|
||||
'session_id': sessions[0].id,
|
||||
'description': str(sessions[0]),
|
||||
'start_time': timeslots[0].utc_start_time(),
|
||||
'duration': timeslots[0].duration,
|
||||
|
@ -512,12 +513,12 @@ class InterimTests(TestCase):
|
|||
mock.reset_mock()
|
||||
mock_conf_mgr.create.side_effect = [
|
||||
[Conference(
|
||||
manager=mock_conf_mgr, id=1, public_id='some-uuid', description='desc',
|
||||
manager=mock_conf_mgr, id=int(sessions[0].pk), public_id='some-uuid', description='desc',
|
||||
start_time=timeslots[0].utc_start_time(), duration=timeslots[0].duration, url='different-fake-meetecho-url',
|
||||
deletion_token='please-delete-me',
|
||||
)],
|
||||
[Conference(
|
||||
manager=mock_conf_mgr, id=2, public_id='another-uuid', description='desc',
|
||||
manager=mock_conf_mgr, id=int(sessions[1].pk), public_id='another-uuid', description='desc',
|
||||
start_time=timeslots[1].utc_start_time(), duration=timeslots[1].duration, url='another-fake-meetecho-url',
|
||||
deletion_token='please-delete-me-too',
|
||||
)],
|
||||
|
@ -529,12 +530,14 @@ class InterimTests(TestCase):
|
|||
[
|
||||
({
|
||||
'group': sessions[0].group,
|
||||
'session_id': sessions[0].id,
|
||||
'description': str(sessions[0]),
|
||||
'start_time': timeslots[0].utc_start_time(),
|
||||
'duration': timeslots[0].duration,
|
||||
},),
|
||||
({
|
||||
'group': sessions[1].group,
|
||||
'session_id': sessions[1].id,
|
||||
'description': str(sessions[1]),
|
||||
'start_time': timeslots[1].utc_start_time(),
|
||||
'duration': timeslots[1].duration,
|
||||
|
|
|
@ -115,6 +115,7 @@ class MeetechoAPI:
|
|||
def schedule_meeting(
|
||||
self,
|
||||
wg_token: str,
|
||||
room_id: int,
|
||||
description: str,
|
||||
start_time: datetime.datetime,
|
||||
duration: datetime.timedelta,
|
||||
|
@ -139,6 +140,7 @@ class MeetechoAPI:
|
|||
}
|
||||
|
||||
:param wg_token: token retrieved via retrieve_wg_tokens()
|
||||
:param room_id: int id to identify the room (will be echoed as room.id)
|
||||
:param description: str describing the meeting
|
||||
:param start_time: starting time as a datetime
|
||||
:param duration: duration as a timedelta
|
||||
|
@ -151,6 +153,7 @@ class MeetechoAPI:
|
|||
"meeting/interim/createRoom",
|
||||
api_token=wg_token,
|
||||
json={
|
||||
"room_id": room_id,
|
||||
"description": description,
|
||||
"start_time": self._serialize_time(start_time),
|
||||
"duration": self._serialize_duration(duration),
|
||||
|
@ -455,9 +458,10 @@ class ConferenceManager(Manager):
|
|||
response = self.api.fetch_meetings(self.wg_token(group))
|
||||
return Conference.from_api_dict(self, response["rooms"])
|
||||
|
||||
def create(self, group, description, start_time, duration, extrainfo=""):
|
||||
def create(self, group, session_id, description, start_time, duration, extrainfo=""):
|
||||
response = self.api.schedule_meeting(
|
||||
wg_token=self.wg_token(group),
|
||||
room_id=int(session_id),
|
||||
description=description,
|
||||
start_time=start_time,
|
||||
duration=duration,
|
||||
|
|
|
@ -82,7 +82,7 @@ class APITests(TestCase):
|
|||
'rooms': {
|
||||
'3d55bce0-535e-4ba8-bb8e-734911cf3c32': {
|
||||
'room': {
|
||||
'id': 18,
|
||||
'id': 18, # should match room_id in api.schedule_meeting() below
|
||||
'start_time': '2021-09-14 10:00:00',
|
||||
'duration': 130,
|
||||
'description': 'interim-2021-wgname-01',
|
||||
|
@ -97,6 +97,7 @@ class APITests(TestCase):
|
|||
api = MeetechoAPI(API_BASE, CLIENT_ID, CLIENT_SECRET)
|
||||
api_response = api.schedule_meeting(
|
||||
wg_token='my-token',
|
||||
room_id=18,
|
||||
start_time=datetime.datetime(2021, 9, 14, 10, 0, 0, tzinfo=datetime.timezone.utc),
|
||||
duration=datetime.timedelta(minutes=130),
|
||||
description='interim-2021-wgname-01',
|
||||
|
@ -116,6 +117,7 @@ class APITests(TestCase):
|
|||
self.assertEqual(
|
||||
request.json(),
|
||||
{
|
||||
'room_id': 18,
|
||||
'duration': 130,
|
||||
'start_time': '2021-09-14 10:00:00',
|
||||
'extrainfo': 'message for staff',
|
||||
|
@ -485,7 +487,7 @@ class ConferenceManagerTests(TestCase):
|
|||
'rooms': {
|
||||
'session-1-uuid': {
|
||||
'room': {
|
||||
'id': 1,
|
||||
'id': 1, # value should match session_id param to cm.create() below
|
||||
'start_time': datetime.datetime(2022,2,4,1,2,3, tzinfo=datetime.timezone.utc),
|
||||
'duration': datetime.timedelta(minutes=45),
|
||||
'description': 'some-description',
|
||||
|
@ -496,7 +498,7 @@ class ConferenceManagerTests(TestCase):
|
|||
},
|
||||
}
|
||||
cm = ConferenceManager(settings.MEETECHO_API_CONFIG)
|
||||
result = cm.create('group', 'desc', 'starttime', 'dur', 'extra')
|
||||
result = cm.create('group', '1', 'desc', 'starttime', 'dur', 'extra')
|
||||
self.assertEqual(
|
||||
result,
|
||||
[Conference(
|
||||
|
@ -515,6 +517,7 @@ class ConferenceManagerTests(TestCase):
|
|||
kwargs,
|
||||
{
|
||||
'wg_token': 'atoken',
|
||||
'room_id': 1,
|
||||
'description': 'desc',
|
||||
'start_time': 'starttime',
|
||||
'duration': 'dur',
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
"bootstrap": "5.3.3",
|
||||
"bootstrap-icons": "1.11.3",
|
||||
"browser-fs-access": "0.35.0",
|
||||
"caniuse-lite": "1.0.30001599",
|
||||
"caniuse-lite": "1.0.30001603",
|
||||
"d3": "7.9.0",
|
||||
"file-saver": "2.0.5",
|
||||
"highcharts": "11.4.0",
|
||||
|
@ -66,14 +66,14 @@
|
|||
"eslint-plugin-n": "16.6.2",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"eslint-plugin-vue": "9.23.0",
|
||||
"html-validate": "8.16.0",
|
||||
"eslint-plugin-vue": "9.24.0",
|
||||
"html-validate": "8.18.1",
|
||||
"jquery-migrate": "3.4.1",
|
||||
"parcel": "2.12.0",
|
||||
"pug": "3.0.2",
|
||||
"sass": "1.72.0",
|
||||
"seedrandom": "3.0.5",
|
||||
"vite": "4.5.2"
|
||||
"vite": "4.5.3"
|
||||
},
|
||||
"targets": {
|
||||
"ietf": {
|
||||
|
|
28
playwright/package-lock.json
generated
28
playwright/package-lock.json
generated
|
@ -22,7 +22,7 @@
|
|||
"eslint-plugin-n": "16.6.2",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"npm-check-updates": "16.14.17"
|
||||
"npm-check-updates": "16.14.18"
|
||||
}
|
||||
},
|
||||
"node_modules/@aashutoshrathi/word-wrap": {
|
||||
|
@ -563,6 +563,12 @@
|
|||
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/semver-utils": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver-utils/-/semver-utils-1.1.3.tgz",
|
||||
"integrity": "sha512-T+YwkslhsM+CeuhYUxyAjWm7mJ5am/K10UX40RuA6k6Lc7eGtq8iY2xOzy7Vq0GOqhl/xZl5l2FwURZMTPTUww==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@ungap/structured-clone": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
|
||||
|
@ -3804,11 +3810,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/npm-check-updates": {
|
||||
"version": "16.14.17",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.17.tgz",
|
||||
"integrity": "sha512-ElnDdXKe60f8S6RhzFeaGuH2TFJmt2cU2HjLdowldabdm27nWFCxV2ebeP3xGbQkzp2+RPDQNdW9HqU1lcY8ag==",
|
||||
"version": "16.14.18",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.18.tgz",
|
||||
"integrity": "sha512-9iaRe9ohx9ykdbLjPRIYcq1A0RkrPYUx9HmQK1JIXhfxtJCNE/+497H9Z4PGH6GWRALbz5KF+1iZoySK2uSEpQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/semver-utils": "^1.1.1",
|
||||
"chalk": "^5.3.0",
|
||||
"cli-table3": "^0.6.3",
|
||||
"commander": "^10.0.1",
|
||||
|
@ -6347,6 +6354,12 @@
|
|||
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/semver-utils": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver-utils/-/semver-utils-1.1.3.tgz",
|
||||
"integrity": "sha512-T+YwkslhsM+CeuhYUxyAjWm7mJ5am/K10UX40RuA6k6Lc7eGtq8iY2xOzy7Vq0GOqhl/xZl5l2FwURZMTPTUww==",
|
||||
"dev": true
|
||||
},
|
||||
"@ungap/structured-clone": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
|
||||
|
@ -8721,11 +8734,12 @@
|
|||
}
|
||||
},
|
||||
"npm-check-updates": {
|
||||
"version": "16.14.17",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.17.tgz",
|
||||
"integrity": "sha512-ElnDdXKe60f8S6RhzFeaGuH2TFJmt2cU2HjLdowldabdm27nWFCxV2ebeP3xGbQkzp2+RPDQNdW9HqU1lcY8ag==",
|
||||
"version": "16.14.18",
|
||||
"resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.18.tgz",
|
||||
"integrity": "sha512-9iaRe9ohx9ykdbLjPRIYcq1A0RkrPYUx9HmQK1JIXhfxtJCNE/+497H9Z4PGH6GWRALbz5KF+1iZoySK2uSEpQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/semver-utils": "^1.1.1",
|
||||
"chalk": "^5.3.0",
|
||||
"cli-table3": "^0.6.3",
|
||||
"commander": "^10.0.1",
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"eslint-plugin-n": "16.6.2",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"npm-check-updates": "16.14.17"
|
||||
"npm-check-updates": "16.14.18"
|
||||
},
|
||||
"dependencies": {
|
||||
"@faker-js/faker": "8.4.1",
|
||||
|
|
41
yarn.lock
41
yarn.lock
|
@ -2684,10 +2684,10 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"caniuse-lite@npm:1.0.30001599":
|
||||
version: 1.0.30001599
|
||||
resolution: "caniuse-lite@npm:1.0.30001599"
|
||||
checksum: d7e619e2e723547b7311ba0ca5134d9cd55df548e93dbedcf8a6e4ec74c7db91969c4272fb1ab2fd94cddeac6a8176ebf05853eb06689d5e76bb97d979a214b0
|
||||
"caniuse-lite@npm:1.0.30001603":
|
||||
version: 1.0.30001603
|
||||
resolution: "caniuse-lite@npm:1.0.30001603"
|
||||
checksum: e66e0d24b899c2ed3fdcc2dd44df29c4fc06d74fa8f43abe81fc7cff4a72b092d438e0fb5b7daeb252ee267519f32c6c7d229a15e7a4f4263afef6ea3832b661
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3985,11 +3985,12 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-vue@npm:9.23.0":
|
||||
version: 9.23.0
|
||||
resolution: "eslint-plugin-vue@npm:9.23.0"
|
||||
"eslint-plugin-vue@npm:9.24.0":
|
||||
version: 9.24.0
|
||||
resolution: "eslint-plugin-vue@npm:9.24.0"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": ^4.4.0
|
||||
globals: ^13.24.0
|
||||
natural-compare: ^1.4.0
|
||||
nth-check: ^2.1.1
|
||||
postcss-selector-parser: ^6.0.15
|
||||
|
@ -3998,7 +3999,7 @@ browserlist@latest:
|
|||
xml-name-validator: ^4.0.0
|
||||
peerDependencies:
|
||||
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
|
||||
checksum: acb3a4dd27a815be37b63fc735c88bf9bfd12a5147639635eb6e473c7fdf47f69a78693ffeb67581ffd11e0016c134bb56a667193b958a189cbfc2df3e93160b
|
||||
checksum: 2309b919d8fced6210c11e09107f443990063c0392843909cf50fad682e820c48bf5cc28b82a1239c03fd7ceeb4239e1baa653370c4c76689ec5fb8a970cd303
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4714,9 +4715,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"html-validate@npm:8.16.0":
|
||||
version: 8.16.0
|
||||
resolution: "html-validate@npm:8.16.0"
|
||||
"html-validate@npm:8.18.1":
|
||||
version: 8.18.1
|
||||
resolution: "html-validate@npm:8.18.1"
|
||||
dependencies:
|
||||
"@babel/code-frame": ^7.10.0
|
||||
"@html-validate/stylish": ^4.1.0
|
||||
|
@ -4745,7 +4746,7 @@ browserlist@latest:
|
|||
optional: true
|
||||
bin:
|
||||
html-validate: bin/html-validate.js
|
||||
checksum: 857b05ab87ae8b92d9d256dfc45def15275d6038bb7456afb00c6e23872acc4bc7bcc50be89ce82bad36f6c4026603106f57574f1058f3ae3f2e35fca0f34a15
|
||||
checksum: 53479bf75bcb6ad748a6543583de6a26bfb55d85c0ae793bd6619c0079795f482c01b4168a7dea2584219f31b8a05c3ea2a0d5ebfd639099caf623263d3ac536
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -7042,7 +7043,7 @@ browserlist@latest:
|
|||
browser-fs-access: 0.35.0
|
||||
browserlist: latest
|
||||
c8: 9.1.0
|
||||
caniuse-lite: 1.0.30001599
|
||||
caniuse-lite: 1.0.30001603
|
||||
d3: 7.9.0
|
||||
eslint: 8.57.0
|
||||
eslint-config-standard: 17.1.0
|
||||
|
@ -7051,10 +7052,10 @@ browserlist@latest:
|
|||
eslint-plugin-n: 16.6.2
|
||||
eslint-plugin-node: 11.1.0
|
||||
eslint-plugin-promise: 6.1.1
|
||||
eslint-plugin-vue: 9.23.0
|
||||
eslint-plugin-vue: 9.24.0
|
||||
file-saver: 2.0.5
|
||||
highcharts: 11.4.0
|
||||
html-validate: 8.16.0
|
||||
html-validate: 8.18.1
|
||||
ical.js: 1.5.0
|
||||
jquery: 3.7.1
|
||||
jquery-migrate: 3.4.1
|
||||
|
@ -7081,7 +7082,7 @@ browserlist@latest:
|
|||
slugify: 1.6.6
|
||||
sortablejs: 1.15.2
|
||||
vanillajs-datepicker: 1.3.4
|
||||
vite: 4.5.2
|
||||
vite: 4.5.3
|
||||
vue: 3.4.21
|
||||
vue-router: 4.3.0
|
||||
zxcvbn: 4.4.2
|
||||
|
@ -7876,9 +7877,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vite@npm:4.5.2":
|
||||
version: 4.5.2
|
||||
resolution: "vite@npm:4.5.2"
|
||||
"vite@npm:4.5.3":
|
||||
version: 4.5.3
|
||||
resolution: "vite@npm:4.5.3"
|
||||
dependencies:
|
||||
esbuild: ^0.18.10
|
||||
fsevents: ~2.3.2
|
||||
|
@ -7912,7 +7913,7 @@ browserlist@latest:
|
|||
optional: true
|
||||
bin:
|
||||
vite: bin/vite.js
|
||||
checksum: 9d1f84f703c2660aced34deee7f309278ed368880f66e9570ac115c793d91f7fffb80ab19c602b3c8bc1341fe23437d86a3fcca2a9ef82f7ef0cdac5a40d0c86
|
||||
checksum: fd3f512ce48ca2a1fe60ad0376283b832de9272725fdbc65064ae9248f792de87b0f27a89573115e23e26784800daca329f8a9234d298ba6f60e808a9c63883c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
|
Loading…
Reference in a new issue