From 55a28888037f9cf95026be0f949c4934b7d6e5d0 Mon Sep 17 00:00:00 2001 From: smarcet Date: Thu, 14 Nov 2024 14:58:50 -0300 Subject: [PATCH 01/30] chore: updated configs --- .gitignore | 2 ++ scripts/setup_python_env.sh | 9 +++++++-- webpack/build-all.js | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 61964d6de..bc3684ec7 100644 --- a/.gitignore +++ b/.gitignore @@ -122,3 +122,5 @@ software/css speaker_bureau/css registration/css /summit-trackchair-app/css/ +.env + docker-compose/* \ No newline at end of file diff --git a/scripts/setup_python_env.sh b/scripts/setup_python_env.sh index ff4004a6d..29ec248dc 100755 --- a/scripts/setup_python_env.sh +++ b/scripts/setup_python_env.sh @@ -20,8 +20,13 @@ echo "installing python virtual env..."; if [[ -f "$ROOT_DIR/requirements.txt" ]]; then echo "found requirements.txt files"; # install virtual env - cd $ROOT_DIR && virtualenv env; - source $ROOT_DIR/env/bin/activate; + + echo "creating py venv" + python -m venv env + source $ROOT_DIR/env/bin/activate; + cd $ROOT_DIR && pip install --upgrade pip + cd $ROOT_DIR && pip install --upgrade setuptools + # install dependencies $ROOT_DIR/env/bin/python env/bin/pip install -r requirements.txt; diff --git a/webpack/build-all.js b/webpack/build-all.js index 38a9c94e9..886f42834 100644 --- a/webpack/build-all.js +++ b/webpack/build-all.js @@ -31,7 +31,7 @@ fs.readdir(dir, (err, list) => { `); if (fs.existsSync(packagePath)) { console.log('Loading dependencies...'); - execSync(`cd ${moduleName}/ui && npm install`, {stdio: 'inherit'}); + execSync(`cd ${moduleName}/ui && yarn install`, {stdio: 'inherit'}); execSync(`cd ${dir}`); } execSync(`node ./webpack ${moduleName}`, {stdio: 'inherit'}); From 56560a7540c4336278d8990b41de22230bc90d0c Mon Sep 17 00:00:00 2001 From: smarcet Date: Thu, 14 Nov 2024 15:20:26 -0300 Subject: [PATCH 02/30] chore: updated build deps --- package.json | 5 +- .../SangriaContributorsAdminApp.js | 1 - .../components/SurveyLanguageSelector.js | 1 - yarn.lock | 198 +++++++++++++++++- 4 files changed, 200 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 943b83d71..dccbcce88 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,10 @@ "urijs": "^1.18.10", "webpack-dashboard": "^2.0.0", "webui-popover": "^1.2.18", - "xhr2": "^0.1.3" + "xhr2": "^0.1.3", + "dropzone": "5.7.2", + "react-rte": "^0.16.3", + "video.js": "^7.8.2" }, "license": "Apache-2.0", "devDependencies": { diff --git a/sangria/ui/source/js/sangria-contributors-admin/SangriaContributorsAdminApp.js b/sangria/ui/source/js/sangria-contributors-admin/SangriaContributorsAdminApp.js index 4177c5fe1..7b5b5e9dd 100644 --- a/sangria/ui/source/js/sangria-contributors-admin/SangriaContributorsAdminApp.js +++ b/sangria/ui/source/js/sangria-contributors-admin/SangriaContributorsAdminApp.js @@ -3,7 +3,6 @@ import { connect } from 'react-redux'; import { fetchAll, fetchReleases, ingestContributors, exportContributors } from './actions'; import { Pagination } from 'react-bootstrap'; import { AjaxLoader, Table, Dropdown } from 'openstack-uicore-foundation/lib/components'; -import 'react-select/dist/react-select.css'; import Select from 'react-select'; class SangriaContributorsAdminApp extends React.Component diff --git a/survey_builder/ui/source/js/sangria/free-text-answers-list/components/SurveyLanguageSelector.js b/survey_builder/ui/source/js/sangria/free-text-answers-list/components/SurveyLanguageSelector.js index afac20b66..a407a0151 100644 --- a/survey_builder/ui/source/js/sangria/free-text-answers-list/components/SurveyLanguageSelector.js +++ b/survey_builder/ui/source/js/sangria/free-text-answers-list/components/SurveyLanguageSelector.js @@ -12,7 +12,6 @@ **/ import React from 'react'; import Select from 'react-select'; -import 'react-select/dist/react-select.css'; export const SurveyLanguageSelector = ({onChange, className, defaultValue, items}) => { let options = []; diff --git a/yarn.lock b/yarn.lock index 9cff35dc3..b239db47d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -952,6 +952,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.18.10", "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" @@ -1243,6 +1250,38 @@ resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.4.tgz#fad54fef623464dacd9e765d854f0e76ff1184f7" integrity sha512-RRHc1+8Hc5mf/2lZKnom6kCnqcNS07s8keahniWTOva0KELF6RgDJmaEcvGEKUUJgN4UgessmEsWuidaOycIOw== +"@videojs/http-streaming@2.16.3": + version "2.16.3" + resolved "https://registry.yarnpkg.com/@videojs/http-streaming/-/http-streaming-2.16.3.tgz#d9b460c3716436327dbab4b1faeb2a767f05dcef" + integrity sha512-91CJv5PnFBzNBvyEjt+9cPzTK/xoVixARj2g7ZAvItA+5bx8VKdk5RxCz/PP2kdzz9W+NiDUMPkdmTsosmy69Q== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "3.0.5" + aes-decrypter "3.1.3" + global "^4.4.0" + m3u8-parser "4.8.0" + mpd-parser "^0.22.1" + mux.js "6.0.1" + video.js "^6 || ^7" + +"@videojs/vhs-utils@3.0.5", "@videojs/vhs-utils@^3.0.4", "@videojs/vhs-utils@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz#665ba70d78258ba1ab977364e2fe9f4d4799c46c" + integrity sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw== + dependencies: + "@babel/runtime" "^7.12.5" + global "^4.4.0" + url-toolkit "^2.2.1" + +"@videojs/xhr@2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@videojs/xhr/-/xhr-2.6.0.tgz#cd897e0ad54faf497961bcce3fa16dc15a26bb80" + integrity sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q== + dependencies: + "@babel/runtime" "^7.5.5" + global "~4.4.0" + is-function "^1.0.1" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -1388,6 +1427,11 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@xmldom/xmldom@^0.8.3": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -1450,6 +1494,16 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +aes-decrypter@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/aes-decrypter/-/aes-decrypter-3.1.3.tgz#65ff5f2175324d80c41083b0e135d1464b12ac35" + integrity sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "^3.0.5" + global "^4.4.0" + pkcs7 "^1.0.4" + after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" @@ -4571,6 +4625,11 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -4687,6 +4746,11 @@ draft-js@>=0.10.0: immutable "~3.7.4" object-assign "^4.1.1" +dropzone@5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/dropzone/-/dropzone-5.7.2.tgz#91bee1572dda515d40901da304bc79dddf309b4c" + integrity sha512-m217bJHtf0J1IiKn4Tv6mnu1h5QvQNBnKZ39gma7hzGQhIZMxYq1vYEHs4AVd4ThFwmALys+52NAOD4zdLTG4w== + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -5514,7 +5578,7 @@ file-saver@^2.0.2: resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== -"file-saver@github:eligrey/FileSaver.js#1.3.8": +file-saver@eligrey/FileSaver.js#1.3.8: version "1.3.8" resolved "https://codeload.github.com/eligrey/FileSaver.js/tar.gz/e865e37af9f9947ddcced76b549e27dc45c1cb2e" @@ -6033,6 +6097,14 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" +global@^4.3.1, global@^4.4.0, global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -6702,6 +6774,11 @@ indexof@0.0.1: resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg== +individual@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/individual/-/individual-2.0.0.tgz#833b097dad23294e76117a98fb38e0d9ad61bb97" + integrity sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g== + infer-owner@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -7036,6 +7113,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -7565,7 +7647,7 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -keycode@^2.1.2: +keycode@^2.1.2, keycode@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.1.tgz#09c23b2be0611d26117ea2501c2c391a01f39eff" integrity sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg== @@ -7890,6 +7972,15 @@ lz-string@^1.4.4: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== +m3u8-parser@4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/m3u8-parser/-/m3u8-parser-4.8.0.tgz#4a2d591fdf6f2579d12a327081198df8af83083d" + integrity sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "^3.0.5" + global "^4.4.0" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -8115,6 +8206,13 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + mini-css-extract-plugin@^0.8.0: version "0.8.2" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" @@ -8248,6 +8346,16 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mpd-parser@0.22.1, mpd-parser@^0.22.1: + version "0.22.1" + resolved "https://registry.yarnpkg.com/mpd-parser/-/mpd-parser-0.22.1.tgz#bc2bf7d3e56368e4b0121035b055675401871521" + integrity sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/vhs-utils" "^3.0.5" + "@xmldom/xmldom" "^0.8.3" + global "^4.4.0" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -8286,6 +8394,14 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" +mux.js@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/mux.js/-/mux.js-6.0.1.tgz#65ce0f7a961d56c006829d024d772902d28c7755" + integrity sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w== + dependencies: + "@babel/runtime" "^7.11.2" + global "^4.4.0" + nan@^2.12.1, nan@^2.13.2: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" @@ -9154,6 +9270,13 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== +pkcs7@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/pkcs7/-/pkcs7-1.0.4.tgz#6090b9e71160dabf69209d719cbafa538b00a1cb" + integrity sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ== + dependencies: + "@babel/runtime" "^7.5.5" + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -10418,6 +10541,22 @@ react-rte-ref-fix@^0.16.2: react "^16.4.1" react-dom "^16.4.1" +react-rte@^0.16.3: + version "0.16.5" + resolved "https://registry.yarnpkg.com/react-rte/-/react-rte-0.16.5.tgz#13c230060bc82d5f0465f903cd36f53dd2fa4469" + integrity sha512-KoUBbl8jgAaxQIRpAfnDYjcx7Xlc/4EsgASxYKPIj/HzPuSgBxOlkPAK73V5fe7aHVhq0IfvNvhmNNpoDLQX4A== + dependencies: + babel-runtime "^6.23.0" + class-autobind "^0.1.4" + classnames "^2.2.5" + draft-js ">=0.10.0" + draft-js-export-html ">=0.6.0" + draft-js-export-markdown ">=0.3.0" + draft-js-import-html ">=0.4.0" + draft-js-import-markdown ">=0.3.0" + draft-js-utils ">=0.2.0" + immutable "^3.8.1" + react-select@^2.4.3: version "2.4.4" resolved "https://registry.yarnpkg.com/react-select/-/react-select-2.4.4.tgz#ba72468ef1060c7d46fbb862b0748f96491f1f73" @@ -10740,6 +10879,11 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -11125,6 +11269,13 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" +rust-result@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rust-result/-/rust-result-1.0.0.tgz#34c75b2e6dc39fe5875e5bdec85b5e0f91536f72" + integrity sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA== + dependencies: + individual "^2.0.0" + rx@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" @@ -11140,6 +11291,13 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-json-parse@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-4.0.0.tgz#7c0f578cfccd12d33a71c0e05413e2eca171eaac" + integrity sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ== + dependencies: + rust-result "^1.0.0" + safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -12922,6 +13080,11 @@ url-parse@^1.1.8, url-parse@^1.4.3, url-parse@^1.5.10: querystringify "^2.1.1" requires-port "^1.0.0" +url-toolkit@^2.2.1: + version "2.2.5" + resolved "https://registry.yarnpkg.com/url-toolkit/-/url-toolkit-2.2.5.tgz#58406b18e12c58803e14624df5e374f638b0f607" + integrity sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg== + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -13053,6 +13216,37 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +"video.js@^6 || ^7", video.js@^7.8.2: + version "7.21.6" + resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.21.6.tgz#a42d817c42d8d91538b72197a0874aeb01c76ce9" + integrity sha512-m41TbODrUCToVfK1aljVd296CwDQnCRewpIm5tTXMuV87YYSGw1H+VDOaV45HlpcWSsTWWLF++InDgGJfthfUw== + dependencies: + "@babel/runtime" "^7.12.5" + "@videojs/http-streaming" "2.16.3" + "@videojs/vhs-utils" "^3.0.4" + "@videojs/xhr" "2.6.0" + aes-decrypter "3.1.3" + global "^4.4.0" + keycode "^2.2.0" + m3u8-parser "4.8.0" + mpd-parser "0.22.1" + mux.js "6.0.1" + safe-json-parse "4.0.0" + videojs-font "3.2.0" + videojs-vtt.js "^0.15.5" + +videojs-font@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/videojs-font/-/videojs-font-3.2.0.tgz#212c9d3f4e4ec3fa7345167d64316add35e92232" + integrity sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA== + +videojs-vtt.js@^0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz#567776eaf2a7a928d88b148a8b401ade2406f2ca" + integrity sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ== + dependencies: + global "^4.3.1" + vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" From dd303728cddacfa252e6b8b0b199c526620ec6a8 Mon Sep 17 00:00:00 2001 From: smarcet Date: Fri, 15 Nov 2024 12:50:15 -0300 Subject: [PATCH 03/30] fix: link setting on react router for video app --- summit-video-app/code/SummitVideoApp.php | 2 +- summit-video-app/ui/source/js/routes.js | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/summit-video-app/code/SummitVideoApp.php b/summit-video-app/code/SummitVideoApp.php index f842647fa..0cda00a14 100644 --- a/summit-video-app/code/SummitVideoApp.php +++ b/summit-video-app/code/SummitVideoApp.php @@ -145,7 +145,7 @@ public function __construct($dataRecord = null) public function getJSONConfig() { $config = [ - 'baseURL' => rtrim($this->Link(), '/'), + 'baseURL' => rtrim($this->RelativeLink(), '/'), 'initialState' => $this->getInitialState(), 'pollInterval' => SummitVideoApp::config()->video_poll_interval, 'securityToken' => SecurityToken::inst()->getValue() diff --git a/summit-video-app/ui/source/js/routes.js b/summit-video-app/ui/source/js/routes.js index 9644c3078..c1e976426 100644 --- a/summit-video-app/ui/source/js/routes.js +++ b/summit-video-app/ui/source/js/routes.js @@ -1,7 +1,5 @@ import React from 'react'; import { Router, Route, browserHistory, IndexRoute, Redirect } from 'react-router'; -import URL from './utils/url'; - import App from './components/pages/App'; import AllVideos from './components/pages/AllVideos'; import Summits from './components/pages/Summits'; From d8281079091bfff3ddfc39f1569dfd67f700a082 Mon Sep 17 00:00:00 2001 From: smarcet Date: Fri, 15 Nov 2024 13:35:34 -0300 Subject: [PATCH 04/30] fix: python env --- requirements.txt | 23 ++++++++++++++++------- scripts/setup_python_env.sh | 4 +++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8c243aa3e..d57dbb133 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,16 @@ -MySQL-python==1.2.5 -nltk==3.2.4 -pandas==0.20.2 -python-dateutil==2.6.0 -scikit-learn==0.18.2 -scipy==0.19.1 -sklearn==0.0 +click==8.1.7 +joblib==1.4.2 +mysqlclient==2.2.6 +nltk==3.9.1 +numpy==2.1.3 +pandas==2.2.3 +python-dateutil==2.9.0.post0 +pytz==2024.2 +regex==2024.11.6 +scikit-learn==1.5.2 +scipy==1.14.1 +setuptools==75.5.0 +six==1.16.0 +threadpoolctl==3.5.0 +tqdm==4.67.0 +tzdata==2024.2 diff --git a/scripts/setup_python_env.sh b/scripts/setup_python_env.sh index 29ec248dc..8fe2cffb6 100755 --- a/scripts/setup_python_env.sh +++ b/scripts/setup_python_env.sh @@ -17,13 +17,15 @@ ROOT_DIR=$PWD; echo "installing python virtual env..."; + if [[ -f "$ROOT_DIR/requirements.txt" ]]; then echo "found requirements.txt files"; # install virtual env echo "creating py venv" - python -m venv env + python3 -m venv env source $ROOT_DIR/env/bin/activate; + cd $ROOT_DIR && pip install --upgrade pip cd $ROOT_DIR && pip install --upgrade setuptools From 3214c43ffc8b5cbb28c48ebcfc6377500eb32e96 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Tue, 18 Feb 2025 17:10:13 -0300 Subject: [PATCH 05/30] fix: update google maps custom marker generation strategy moved to custom svg path --- googlemaps/js/google.maps.jquery.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/googlemaps/js/google.maps.jquery.js b/googlemaps/js/google.maps.jquery.js index a7272caa9..61d0f4918 100644 --- a/googlemaps/js/google.maps.jquery.js +++ b/googlemaps/js/google.maps.jquery.js @@ -114,9 +114,17 @@ var place = places[i]; var color = place.color; if(!(color in markers_images)){ - var image_url = 'maps_images/pins/'+color; - var icon = new google.maps.MarkerImage(image_url, new google.maps.Size(width, height)); - icon.anchor = new google.maps.Point(width / 2, height); + // see https://developers.google.com/maps/documentation/javascript/examples/marker-symbol-custom + var icon = { + path: "M-1.547 12l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM0 0q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z", + fillOpacity: 0.8, + strokeWeight: 0, + rotation: 0, + scale: 2, + size : new google.maps.Size(width, height), + }; + icon.fillColor = '#' + color; + icon.anchor = new google.maps.Point(width / 12 , height/2); markers_images[color] = icon; } var marker_image = markers_images[color]; From 0cc9bcc4fee1d06e4c49120d08b26bf307961956 Mon Sep 17 00:00:00 2001 From: Santi Date: Tue, 18 Feb 2025 17:30:59 -0300 Subject: [PATCH 06/30] add bio prop and editor in admin (#382) --- elections/code/infrastructure/active_records/Candidate.php | 1 + elections/code/infrastructure/active_records/Election.php | 1 + 2 files changed, 2 insertions(+) diff --git a/elections/code/infrastructure/active_records/Candidate.php b/elections/code/infrastructure/active_records/Candidate.php index 8ccc40a22..26b89a757 100644 --- a/elections/code/infrastructure/active_records/Candidate.php +++ b/elections/code/infrastructure/active_records/Candidate.php @@ -19,6 +19,7 @@ class Candidate extends DataObject implements ICandidate 'IsGoldMemberCandidate' => 'Boolean', // Q and A (Candidate's answer to the application question) 'RelationshipToOpenStack' => 'HTMLText', + 'Bio' => 'HTMLText', 'Experience' => 'HTMLText', 'BoardsRole' => 'HTMLText', 'TopPriority' => 'HTMLText', diff --git a/elections/code/infrastructure/active_records/Election.php b/elections/code/infrastructure/active_records/Election.php index e874604bc..5b93449b1 100644 --- a/elections/code/infrastructure/active_records/Election.php +++ b/elections/code/infrastructure/active_records/Election.php @@ -246,6 +246,7 @@ function getCMSFields() new CheckboxField('HasAcceptedNomination', 'Has Accepted Nomination?'), new CheckboxField('IsGoldMemberCandidate', 'Is Gold Member Candidate?'), new HtmlEditorField('RelationshipToOpenStack', 'Relationship To OpenStack'), + new HtmlEditorField('Bio', 'Bio'), new HtmlEditorField('Experience', 'Experience'), new HtmlEditorField('BoardsRole', 'Boards Role'), new HtmlEditorField('TopPriority', 'Top Priority') From 3100dc419fc72021164f3aefd9baa164094a6d66 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Mon, 24 Feb 2025 18:06:00 -0300 Subject: [PATCH 07/30] fix: add mastodont social metwork icon fix: update x icon --- .../openstack/home_images/Icons/SVG/mastodon.svg | 12 ++++++++++++ themes/openstack/home_images/Icons/SVG/x-icon.svg | 13 +++++++++++++ .../Layout/Includes/Navigation_Footer.ss | 15 ++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 themes/openstack/home_images/Icons/SVG/mastodon.svg create mode 100644 themes/openstack/home_images/Icons/SVG/x-icon.svg diff --git a/themes/openstack/home_images/Icons/SVG/mastodon.svg b/themes/openstack/home_images/Icons/SVG/mastodon.svg new file mode 100644 index 000000000..20918d146 --- /dev/null +++ b/themes/openstack/home_images/Icons/SVG/mastodon.svg @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/themes/openstack/home_images/Icons/SVG/x-icon.svg b/themes/openstack/home_images/Icons/SVG/x-icon.svg new file mode 100644 index 000000000..d2f5840da --- /dev/null +++ b/themes/openstack/home_images/Icons/SVG/x-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/themes/openstack/templates/Layout/Includes/Navigation_Footer.ss b/themes/openstack/templates/Layout/Includes/Navigation_Footer.ss index f6b2e8db3..5bdf5d344 100644 --- a/themes/openstack/templates/Layout/Includes/Navigation_Footer.ss +++ b/themes/openstack/templates/Layout/Includes/Navigation_Footer.ss @@ -41,7 +41,13 @@

Stay In Touch

- + + x + @@ -53,6 +59,13 @@ style="width: 36px;position:relative;top:-10px;left:-5px" /> + + Mastodon +
-
- Now you can watch the keynotes that took place during the OpenInfra Summit in Berlin! + OpenInfra Foundation Board Announces Intent to Join the Linux Foundation
From ede93244dba65e86e065d47c2c5c7b195ffdb95a Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Thu, 20 Mar 2025 12:24:14 -0300 Subject: [PATCH 13/30] fix: add to CMS marketplace admin ConsultantServiceOfferedType entity --- marketplace/code/ui/admin/MarketplaceModelAdmin.php | 1 + 1 file changed, 1 insertion(+) diff --git a/marketplace/code/ui/admin/MarketplaceModelAdmin.php b/marketplace/code/ui/admin/MarketplaceModelAdmin.php index e99286993..d143f1b2c 100644 --- a/marketplace/code/ui/admin/MarketplaceModelAdmin.php +++ b/marketplace/code/ui/admin/MarketplaceModelAdmin.php @@ -33,6 +33,7 @@ class MarketplaceModelAdmin extends ModelAdmin { 'OpenStackRelease', 'MarketPlaceAllowedInstance', 'Driver', + 'ConsultantServiceOfferedType', ); public $showImportForm = false; From 3376e8b94692be847a6b70594120e25050ea4d1a Mon Sep 17 00:00:00 2001 From: Wes Wilson Date: Fri, 28 Mar 2025 12:59:11 -0700 Subject: [PATCH 14/30] openstack map for epoxy 2 --- software/templates/Layout/SoftwareHomePage.ss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/templates/Layout/SoftwareHomePage.ss b/software/templates/Layout/SoftwareHomePage.ss index 963960557..1e64f45eb 100644 --- a/software/templates/Layout/SoftwareHomePage.ss +++ b/software/templates/Layout/SoftwareHomePage.ss @@ -35,7 +35,7 @@

Download the map

 

- OpenStack Cloud landscape map + OpenStack Cloud landscape map

 

From 8cb1b17e5102a134a7f862d005676ec7bdb43972 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Thu, 3 Apr 2025 16:57:44 -0300 Subject: [PATCH 15/30] fix: add error management to revocation process --- elections/code/model/RevocationNotificationManager.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/elections/code/model/RevocationNotificationManager.php b/elections/code/model/RevocationNotificationManager.php index 910598f04..0ddfa15df 100644 --- a/elections/code/model/RevocationNotificationManager.php +++ b/elections/code/model/RevocationNotificationManager.php @@ -136,7 +136,12 @@ public function revokeIgnoredNotifications($batch_size){ $batch_size ); foreach($notifications as $notification){ - $notification->revoke(); + try { + $notification->revoke(); + } + catch (Exception $ex){ + SS_Log::log($ex,SS_Log::ERR); + } } }); } From 5c9549d4117805dd4550cc4bf0c678a2e644e3a6 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Thu, 17 Apr 2025 13:14:12 -0300 Subject: [PATCH 16/30] chore: update site banner --- themes/openstack/templates/Layout/Includes/SiteBanner.ss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/openstack/templates/Layout/Includes/SiteBanner.ss b/themes/openstack/templates/Layout/Includes/SiteBanner.ss index 033ed3be5..017e01fc3 100644 --- a/themes/openstack/templates/Layout/Includes/SiteBanner.ss +++ b/themes/openstack/templates/Layout/Includes/SiteBanner.ss @@ -8,10 +8,10 @@ height="0" width="0" style="display:none;visibility:hidden">
- OpenInfra Foundation Board Announces Intent to Join the Linux Foundation + Join the OpenInfra Summit Europe in Paris, Oct 17-19! Registration, CFP & Sponsorships are Open!
From 9730b6beda5916f554679b81d48dcbaadbb3a6cd Mon Sep 17 00:00:00 2001 From: Santi Date: Wed, 23 Apr 2025 14:11:41 -0300 Subject: [PATCH 17/30] change autocomplete min char limit (#386) --- user-stories/js/user.story.form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user-stories/js/user.story.form.js b/user-stories/js/user.story.form.js index 0d72dd1d6..a5c7f1330 100644 --- a/user-stories/js/user.story.form.js +++ b/user-stories/js/user.story.form.js @@ -107,7 +107,7 @@ $(document).ready(function(){ { hint: true, highlight: true, - minLength: 3 + minLength: 1 }, { name: 'tags_source', From b3d5a286136323a736ff05e67b3f0277aaece455 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Thu, 24 Apr 2025 10:33:33 -0300 Subject: [PATCH 18/30] chore: increase mascots cache life time --- openstack/code/landing-pages/AboutMascots.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openstack/code/landing-pages/AboutMascots.php b/openstack/code/landing-pages/AboutMascots.php index c5cff2da9..3927ad100 100755 --- a/openstack/code/landing-pages/AboutMascots.php +++ b/openstack/code/landing-pages/AboutMascots.php @@ -81,7 +81,7 @@ function getMascots() { serialize($data), md5($mascot->CodeName), $tags = [], - $specificLifetime = 120 + $specificLifetime = 3600 * 24 // 24 hours ); } } From 7d651f5033ede3a6856292e0dd2440cc0dfeeab5 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Thu, 24 Apr 2025 11:45:57 -0300 Subject: [PATCH 19/30] fix: create MascotsDataIngestionTask CRON JOB this cron job runs every hour and force the refresh of the mascot data at cache --- cron_jobs_scheduler/_config/schedule.yml | 6 +++- openstack/code/landing-pages/AboutMascots.php | 18 +++++++---- .../code/tasks/MascotsDataIngestionTask.php | 31 +++++++++++++++++++ 3 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 openstack/code/tasks/MascotsDataIngestionTask.php diff --git a/cron_jobs_scheduler/_config/schedule.yml b/cron_jobs_scheduler/_config/schedule.yml index d837e06d6..9cc2e87b3 100644 --- a/cron_jobs_scheduler/_config/schedule.yml +++ b/cron_jobs_scheduler/_config/schedule.yml @@ -2,7 +2,7 @@ jobs: - name: "PullCLAFromGerritTask" cron_expression: "00 01 * * *" - enabled: 1 + enabled: 0 - name: "EventbriteSummitTicketTypeConciliation" params: "summit_external_id=52606153421" @@ -137,3 +137,7 @@ jobs: - name: "UpdateTechnicalCommitteeTask" cron_expression: "00 23 * * *" # run every day at 2300 enabled: 1 + + - name: "MascotsDataIngestionTask" + cron_expression: "0 * * * *" # run every hour + enabled: 1 diff --git a/openstack/code/landing-pages/AboutMascots.php b/openstack/code/landing-pages/AboutMascots.php index 3927ad100..af8b1f6a9 100755 --- a/openstack/code/landing-pages/AboutMascots.php +++ b/openstack/code/landing-pages/AboutMascots.php @@ -35,23 +35,25 @@ function init() } - private function getCache(){ - return SS_Cache::factory(strtolower(get_class($this)) . '_mascots_cache'); + static function getCache(){ + return SS_Cache::factory(strtolower( 'AboutMascots_mascots_cache')); } - function getMascots() { - $mascots = Mascot::get(); + static function processMascots($force = false) { + $mascots = Mascot::get(); $mascotsAL = new ArrayList(); $client = new \GuzzleHttp\Client(); + foreach ($mascots as $mascot) { + $mascot_folder = $mascot->getRelativeImageDir(); $mascot->MascotFiles = ''; $mascot->CodeNameString = $mascot->CodeName; if ($mascot_folder) { // ask if we have cached values - if($value = $this->getCache()->load(md5($mascot->CodeName))) { + if(!$force && $value = self::getCache()->load(md5($mascot->CodeName))) { $value = unserialize($value); $mascot->MascotFiles = $value['MascotFiles']; $mascot->EPSThumbFileUrl = $value['EPSThumbFileUrl']; @@ -76,7 +78,7 @@ function getMascots() { 'EPSThumbFileUrl' => $mascot->EPSThumbFileUrl ]; // store on cache - $this->getCache()->save + self::getCache()->save ( serialize($data), md5($mascot->CodeName), @@ -88,7 +90,11 @@ function getMascots() { } $mascotsAL->push($mascot); } + return $mascotsAL; + } + function getMascots() { + $mascotsAL = self::processMascots(); return $mascotsAL->sort('CodeNameString'); } diff --git a/openstack/code/tasks/MascotsDataIngestionTask.php b/openstack/code/tasks/MascotsDataIngestionTask.php new file mode 100644 index 000000000..5236c4e55 --- /dev/null +++ b/openstack/code/tasks/MascotsDataIngestionTask.php @@ -0,0 +1,31 @@ +getMessage(); + } + $finish_time = time() - $init_time; + echo 'time elapsed : ' . $finish_time . ' seconds.' . PHP_EOL; + } +} \ No newline at end of file From 0968ab97c8dfcdff2c5015f92e81969c893ab3cb Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Thu, 22 May 2025 13:23:11 -0300 Subject: [PATCH 20/30] chore: update cannonical logo --- themes/openstack/templates/Layout/VMWareMigration.ss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/openstack/templates/Layout/VMWareMigration.ss b/themes/openstack/templates/Layout/VMWareMigration.ss index abaada92e..e2ec80591 100644 --- a/themes/openstack/templates/Layout/VMWareMigration.ss +++ b/themes/openstack/templates/Layout/VMWareMigration.ss @@ -476,7 +476,7 @@
- Canonical logo + Canonical logo
From 142139c23fbbe2bafdee0eb7ebd219f07b2b15c5 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Tue, 3 Jun 2025 10:07:32 -0300 Subject: [PATCH 21/30] fix: add default values for sort/sort direction if user provides invalid values --- .../restfull_api/marketplace/DriverRestfullApi.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php b/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php index 240cd226a..951ddc325 100644 --- a/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php +++ b/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php @@ -71,6 +71,12 @@ public function getDrivers(SS_HTTPRequest $request){ $query_string = $request->getVars(); $sort_field = (isset($query_string['sort_field']) ? Convert::raw2sql($query_string['sort_field']) : 'Project'); $sort_dir = (isset($query_string['sort_dir']) ? Convert::raw2sql($query_string['sort_dir']) : 'ASC'); + // if the sort field is not one of the allowed values, we default to Project / AS + if(!in_array($sort_field, array('Project', 'Vendor','Driver'))) + $sort_field = 'Project'; + if(!in_array($sort_dir, array('ASC', 'DESC'))) + $sort_field = 'ASC'; + $order = $sort_field.' '.$sort_dir; $filters['project'] = (boolval(isset($query_string['project'])) ? Convert::raw2sql($query_string['project']) : 'all'); $filters['release'] = (boolval(isset($query_string['release'])) ? Convert::raw2sql($query_string['release']) : 'all'); From db881aa4daee51cd15a53ea25e68b68d4034f757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n=20Gutierrez?= Date: Tue, 3 Jun 2025 16:00:52 +0200 Subject: [PATCH 22/30] fix: paging offset calculation (#389) --- news/code/ui/frontend/NewsArchivedPage_Controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/news/code/ui/frontend/NewsArchivedPage_Controller.php b/news/code/ui/frontend/NewsArchivedPage_Controller.php index 8490e9b2f..a355db1fe 100644 --- a/news/code/ui/frontend/NewsArchivedPage_Controller.php +++ b/news/code/ui/frontend/NewsArchivedPage_Controller.php @@ -81,7 +81,7 @@ public function index(SS_HTTPRequest $request){ public function newsPage() { - $number = isset($_GET["number"]) ? intval($_GET["number"]) : 0; + $number = max(1, intval($_GET["number"] ?? 0)); $searchTerm = isset($_GET["searchTerm"]) ? $_GET["searchTerm"] : ''; $archived_news = new ArrayList($this->news_repository->getArchivedNews(($number - 1) * $this->news_per_page, $this->news_per_page, $searchTerm)); return $this->renderWith(array('NewsArchivePage_Articles'), array('ArchivedNews' => $archived_news)); From 3db4f3a76bb4b31934def6d7ea019d99e4cf5708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n=20Gutierrez?= Date: Tue, 3 Jun 2025 16:02:16 +0200 Subject: [PATCH 23/30] fix: Column 'Level' in where clause is ambiguous (#388) --- summit/code/infrastructure/active_records/Summit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/summit/code/infrastructure/active_records/Summit.php b/summit/code/infrastructure/active_records/Summit.php index 174685061..aec84ecab 100644 --- a/summit/code/infrastructure/active_records/Summit.php +++ b/summit/code/infrastructure/active_records/Summit.php @@ -846,7 +846,7 @@ public function getScheduleByLevel($level = null) $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('Published', 1)); if (!is_null($level)) { - $query->addAndCondition(QueryCriteria::equal('Level', $level)); + $query->addAndCondition(QueryCriteria::equal('SummitEvent.Level', $level)); } $query From 5abc65995faf2e787c2301e34c060bf903d016ac Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Tue, 3 Jun 2025 16:17:17 -0300 Subject: [PATCH 24/30] fix: typo --- .../interfaces/restfull_api/marketplace/DriverRestfullApi.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php b/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php index 951ddc325..17437f44f 100644 --- a/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php +++ b/marketplace/code/interfaces/restfull_api/marketplace/DriverRestfullApi.php @@ -75,7 +75,7 @@ public function getDrivers(SS_HTTPRequest $request){ if(!in_array($sort_field, array('Project', 'Vendor','Driver'))) $sort_field = 'Project'; if(!in_array($sort_dir, array('ASC', 'DESC'))) - $sort_field = 'ASC'; + $sort_dir = 'ASC'; $order = $sort_field.' '.$sort_dir; $filters['project'] = (boolval(isset($query_string['project'])) ? Convert::raw2sql($query_string['project']) : 'all'); From 900b73f6de3d9525c1affabd299438254eecd114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n=20Gutierrez?= Date: Thu, 5 Jun 2025 18:32:56 +0200 Subject: [PATCH 25/30] fix: Ensure consistent font sizing across lists and nested lists (#387) --- papers/scss/paper-viewer-page.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/papers/scss/paper-viewer-page.scss b/papers/scss/paper-viewer-page.scss index 7dc73be42..aa8a03e7f 100644 --- a/papers/scss/paper-viewer-page.scss +++ b/papers/scss/paper-viewer-page.scss @@ -228,7 +228,7 @@ code { } .containers-page .content ul ul { - font-size: 1.1em; + font-size: 1em; } .containers-page .content p a { From 0ff28dc6558ab8137ce663a67623a311247aa3d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Tue, 17 Jun 2025 19:25:33 -0300 Subject: [PATCH 26/30] fix: update text on site banner template (#390) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- themes/openstack/templates/Layout/Includes/SiteBanner.ss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/openstack/templates/Layout/Includes/SiteBanner.ss b/themes/openstack/templates/Layout/Includes/SiteBanner.ss index 017e01fc3..9d5d32cbf 100644 --- a/themes/openstack/templates/Layout/Includes/SiteBanner.ss +++ b/themes/openstack/templates/Layout/Includes/SiteBanner.ss @@ -8,7 +8,7 @@ height="0" width="0" style="display:none;visibility:hidden">
- Join the OpenInfra Summit Europe in Paris, Oct 17-19! Registration, CFP & Sponsorships are Open! + Join the OpenStack community at the OpenInfra Summit Europe, October 17-19. Register before prices double on July 2!
JOIN US! From 3c786b9a6103126ba72e22ca8e44d545eaa12900 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Tue, 17 Jun 2025 19:39:41 -0300 Subject: [PATCH 27/30] chore: css fix --- themes/openstack/scss/combined.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/openstack/scss/combined.scss b/themes/openstack/scss/combined.scss index 018199592..4af7cf9a5 100755 --- a/themes/openstack/scss/combined.scss +++ b/themes/openstack/scss/combined.scss @@ -2678,7 +2678,7 @@ ul.resource-links li a:hover { font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 12px; line-height: 22px; - max-width: 734px; + max-width: 82%; color: white; margin: 10px 0; } From 0cb8e0d090d606565792bf354f9e49ea119543f4 Mon Sep 17 00:00:00 2001 From: sebastian marcet Date: Tue, 8 Jul 2025 13:01:48 -0300 Subject: [PATCH 28/30] Feature/individual membership (#391) * feat: individual membership foundation Signed-off-by: smarcet@gmail.com * feat: change profile page * fix: individual membership test * chore: change downgrade wording Signed-off-by: smarcet@gmail.com --------- Signed-off-by: smarcet@gmail.com --- .../active_records/FoundationMember.php | 8 ++++++ .../Layout/EditProfilePage_election.ss | 2 +- .../active_records/MemberDeleted.php | 2 +- .../active_records/OpenStackMember.php | 2 +- registration/code/model/IOpenStackMember.php | 2 ++ registration/code/model/MemberManager.php | 3 ++ registration/code/ui/EditProfilePage.php | 5 ++++ .../templates/Layout/EditProfilePage.ss | 2 +- .../Layout/EditProfilePage_Training.ss | 2 +- .../EditProfilePage_TrainingAddCourse.ss | 2 +- .../Layout/EditProfilePage_agreements.ss | 2 +- ...itProfilePage_downgrade2communitymember.ss | 2 +- ...tProfilePage_marketplace_administration.ss | 2 +- .../Layout/EditProfilePage_speaker.ss | 3 +- .../Layout/Includes/CurrentUserInfoBox.ss | 28 +++++++++++++------ .../templates/Layout/Includes/ProfileNav.ss | 1 - 16 files changed, 47 insertions(+), 21 deletions(-) diff --git a/elections/code/infrastructure/active_records/FoundationMember.php b/elections/code/infrastructure/active_records/FoundationMember.php index 121928391..9f82f6b4e 100644 --- a/elections/code/infrastructure/active_records/FoundationMember.php +++ b/elections/code/infrastructure/active_records/FoundationMember.php @@ -24,6 +24,7 @@ final class FoundationMember ( 'ShowDupesOnProfile' => "Boolean", 'ResignDate' => 'SS_Datetime', + 'IndividualMemberJoinDate' => 'SS_Datetime', ); private static $has_many = array @@ -66,6 +67,7 @@ public function resign() } $this->owner->MembershipType = IOpenStackMember::MembershipTypeCommunity; $this->owner->ResignDate = CustomMySQLDatabase::nowRfc2822(); + $this->owner->IndividualMemberJoinDate = null; } public function onBeforeDelete() @@ -97,6 +99,7 @@ public function upgradeToFoundationMember() $legalAgreement->write(); $this->owner->MembershipType = IOpenStackMember::MembershipTypeFoundation; $this->owner->ResignDate = null; + $this->owner->IndividualMemberJoinDate = null; $this->owner->write(); return true; } @@ -130,6 +133,11 @@ public function isCommunityMember() return $group || $this->isSpeaker() || $is_foundation_member; } + public function isIndividualMember():bool + { + return $this->owner->MembershipType == IOpenStackMember::MembershipTypeIndividual; + } + /** * @return bool */ diff --git a/elections/templates/Layout/EditProfilePage_election.ss b/elections/templates/Layout/EditProfilePage_election.ss index 92c406cc2..74b8986e3 100644 --- a/elections/templates/Layout/EditProfilePage_election.ss +++ b/elections/templates/Layout/EditProfilePage_election.ss @@ -3,7 +3,7 @@ <% require themedCSS(profile-section) %>

$Title

<% if CurrentMember.isFoundationMember %> - <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl %> + <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl, RenewLink=$Top.RenewMembershipUrl %> <% include ProfileNav %> diff --git a/registration/code/infrastructure/active_records/MemberDeleted.php b/registration/code/infrastructure/active_records/MemberDeleted.php index 5d52fc4f3..e9d6ab5da 100644 --- a/registration/code/infrastructure/active_records/MemberDeleted.php +++ b/registration/code/infrastructure/active_records/MemberDeleted.php @@ -19,6 +19,6 @@ class MemberDeleted extends DataObject 'Email' => 'Varchar(254)', 'OriginalID' => 'Int', 'FromUrl' => 'Text', - 'MembershipType' => "Enum('Foundation,Community,None', 'None')", + 'MembershipType' => "Enum('Foundation,Community,None,Individual', 'None')", ]; } \ No newline at end of file diff --git a/registration/code/infrastructure/active_records/OpenStackMember.php b/registration/code/infrastructure/active_records/OpenStackMember.php index 8c1a295c4..4caa51e97 100644 --- a/registration/code/infrastructure/active_records/OpenStackMember.php +++ b/registration/code/infrastructure/active_records/OpenStackMember.php @@ -21,7 +21,7 @@ class OpenStackMember 'ThirdEmail' => 'Varchar(254)', // See RFC 5321, Section 4.5.3.1.3. (256 minus the < and > character) 'HasBeenEmailed' => 'Boolean', 'ShirtSize' => "Enum('Extra Small, Small, Medium, Large, XL, XXL')", - 'MembershipType' => "Enum('Foundation,Community,None', 'None')", + 'MembershipType' => "Enum('Foundation,Community,None,Individual', 'None')", 'StatementOfInterest' => 'Text', 'Bio' => 'HTMLText', 'FoodPreference' => 'Text', diff --git a/registration/code/model/IOpenStackMember.php b/registration/code/model/IOpenStackMember.php index 607dcddea..9a551304e 100644 --- a/registration/code/model/IOpenStackMember.php +++ b/registration/code/model/IOpenStackMember.php @@ -21,6 +21,8 @@ interface IOpenStackMember const MembershipTypeCommunity = 'Community'; + const MembershipTypeIndividual = 'Individual'; + const MembershipTypeNone = 'None'; /** * @return string diff --git a/registration/code/model/MemberManager.php b/registration/code/model/MemberManager.php index ec3841007..feac87a6d 100644 --- a/registration/code/model/MemberManager.php +++ b/registration/code/model/MemberManager.php @@ -235,6 +235,9 @@ public function registerByClaims($claims): Member if($member->isFoundationMember()){ $membershipType = IOpenStackMember::MembershipTypeFoundation; } + else if($member->isIndividualMember()){ + $membershipType = IOpenStackMember::MembershipTypeIndividual; + } else if($member->isCommunityMember()){ $membershipType = IOpenStackMember::MembershipTypeCommunity; } diff --git a/registration/code/ui/EditProfilePage.php b/registration/code/ui/EditProfilePage.php index 916ab8313..17323e6a8 100755 --- a/registration/code/ui/EditProfilePage.php +++ b/registration/code/ui/EditProfilePage.php @@ -550,6 +550,11 @@ public function ResignUrl() return $this->Link('resign'); } + public function RenewMembershipUrl() + { + return 'https://openinfra.org/a/renew-membership'; + } + public function downgrade2communitymember() { $CurrentMember = Member::currentUser(); diff --git a/registration/templates/Layout/EditProfilePage.ss b/registration/templates/Layout/EditProfilePage.ss index 3f852e27b..1481cfe61 100644 --- a/registration/templates/Layout/EditProfilePage.ss +++ b/registration/templates/Layout/EditProfilePage.ss @@ -34,7 +34,7 @@ $SetCurrentTab(1)
<% end_if %> $getRenderUITopExtensions - <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl %> + <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl, RenewLink=$Top.RenewMembershipUrl %> <% include ProfileNav %>
See how your public profile appears.
$EditProfileForm diff --git a/registration/templates/Layout/EditProfilePage_Training.ss b/registration/templates/Layout/EditProfilePage_Training.ss index 03bebe5ba..7df2d89cc 100644 --- a/registration/templates/Layout/EditProfilePage_Training.ss +++ b/registration/templates/Layout/EditProfilePage_Training.ss @@ -3,7 +3,7 @@ <% require themedCSS(profile-section) %>

$Title

<% if CurrentMember %> - <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl %> + <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl, RenewLink=$Top.RenewMembershipUrl %> <% include ProfileNav %> <% if CurrentMember.isTrainingAdmin %>
diff --git a/registration/templates/Layout/EditProfilePage_TrainingAddCourse.ss b/registration/templates/Layout/EditProfilePage_TrainingAddCourse.ss index 0a22bda9d..4fff66db9 100644 --- a/registration/templates/Layout/EditProfilePage_TrainingAddCourse.ss +++ b/registration/templates/Layout/EditProfilePage_TrainingAddCourse.ss @@ -3,7 +3,7 @@ <% require themedCSS(profile-section) %>

$Title

<% if CurrentMember %> - <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl %> + <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl, RenewLink=$Top.RenewMembershipUrl %> <% include ProfileNav %> <% if CurrentMember.isTrainingAdmin %> $AddTrainingCourseForm diff --git a/registration/templates/Layout/EditProfilePage_agreements.ss b/registration/templates/Layout/EditProfilePage_agreements.ss index 8b4c46878..81409e743 100644 --- a/registration/templates/Layout/EditProfilePage_agreements.ss +++ b/registration/templates/Layout/EditProfilePage_agreements.ss @@ -16,7 +16,7 @@ <% end_if %> - <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl %> + <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl, RenewLink=$Top.RenewMembershipUrl %> <% include ProfileNav %>
diff --git a/registration/templates/Layout/EditProfilePage_downgrade2communitymember.ss b/registration/templates/Layout/EditProfilePage_downgrade2communitymember.ss index b217fe055..00a3c5bad 100644 --- a/registration/templates/Layout/EditProfilePage_downgrade2communitymember.ss +++ b/registration/templates/Layout/EditProfilePage_downgrade2communitymember.ss @@ -3,7 +3,7 @@

Downgrade To Community Member

<% if CurrentMember %> -

If you select this option, you will be revoking your right to vote in elections and to commit code to OpenStack via Gerrit. Additionally, any administrative rights to the Marketplace Admin or Company Admin will be revoked.

+

If you select this option, you will be revoking your right to vote and run in elections.

Yes, Agree   Cancel

diff --git a/registration/templates/Layout/EditProfilePage_marketplace_administration.ss b/registration/templates/Layout/EditProfilePage_marketplace_administration.ss index d328cbaf1..ea56d0dc0 100644 --- a/registration/templates/Layout/EditProfilePage_marketplace_administration.ss +++ b/registration/templates/Layout/EditProfilePage_marketplace_administration.ss @@ -3,7 +3,7 @@ <% require themedCSS(profile-section) %>

$Title

<% if CurrentMember %> - <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl %> + <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl, RenewLink=$Top.RenewMembershipUrl %> <% include ProfileNav %> <% if CurrentMember.isMarketPlaceAdmin %>
diff --git a/registration/templates/Layout/EditProfilePage_speaker.ss b/registration/templates/Layout/EditProfilePage_speaker.ss index 28edbc155..2089dc7d1 100644 --- a/registration/templates/Layout/EditProfilePage_speaker.ss +++ b/registration/templates/Layout/EditProfilePage_speaker.ss @@ -7,12 +7,11 @@

$Title

<% if CurrentMember %> <% if Saved %> -

Your Profile has been saved!

<% end_if %> - <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl %> + <% include CurrentUserInfoBox LogOutLink=$Top.LogoutUrl, ResignLink=$Top.ResignUrl, RenewLink=$Top.RenewMembershipUrl %> <% include ProfileNav %> $EditSpeakerProfileForm <% else %> diff --git a/registration/templates/Layout/Includes/CurrentUserInfoBox.ss b/registration/templates/Layout/Includes/CurrentUserInfoBox.ss index 37de9a619..9042f8328 100644 --- a/registration/templates/Layout/Includes/CurrentUserInfoBox.ss +++ b/registration/templates/Layout/Includes/CurrentUserInfoBox.ss @@ -1,27 +1,37 @@
+
You are logged in as: $CurrentMember.Name
- Resign Membership - <% if $CurrentMember.isFoundationMember %> + <% if not $CurrentMember.isIndividualMember %> + Renew Membership + <% end_if %> + <% if $CurrentMember.isIndividualMember %> Change to Community Member - <% else %> - Make me a Foundation Member <% end_if %> + Resign Membership
- <% if $CurrentMember.isFoundationMember %> + <% if $CurrentMember.isIndividualMember %> +
+ Current Member Level: OIF Individual Member +
+ <% else_if $CurrentMember.isFoundationMember %>
- Current Member Level: Foundation Member + Current Member Level: Foundation Member (Renew your Membership)
<% else_if $CurrentMember.isSpeaker %> -
+
Current Member Level: Speaker
<% else_if $CurrentMember.isCommunityMember %> -
- Current Member Level: Community Member +
+ Current Member Level: Community Member (Renew your Membership) +
+ <% else_if $CurrentMember.isIndividualMember %> +
+ Current Member Level: OIF Individual Member
<% end_if %>
diff --git a/registration/templates/Layout/Includes/ProfileNav.ss b/registration/templates/Layout/Includes/ProfileNav.ss index d22c632ff..ef989c0c4 100644 --- a/registration/templates/Layout/Includes/ProfileNav.ss +++ b/registration/templates/Layout/Includes/ProfileNav.ss @@ -1,7 +1,6 @@ $NavMessageExtensions

class="active"<% end_if %> >Your Details -class="active"<% end_if %> >Legal Agreements <% if CurrentMember.isTrainingAdmin %> class="active"<% end_if %> >Training <% end_if %> From 9753b7009f8b0aebcd3b5a6191ce0ed3caeb7693 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Tue, 8 Jul 2025 15:16:41 -0300 Subject: [PATCH 29/30] feat: add MembershipType as searcheable field --- .../active_records/OpenStackMember.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/registration/code/infrastructure/active_records/OpenStackMember.php b/registration/code/infrastructure/active_records/OpenStackMember.php index 4caa51e97..adeed09ba 100644 --- a/registration/code/infrastructure/active_records/OpenStackMember.php +++ b/registration/code/infrastructure/active_records/OpenStackMember.php @@ -55,6 +55,24 @@ class OpenStackMember 'Type' => "Enum('None, Ham, Spam', 'None')", ]; + private static $searchable_fields = array( + 'FirstName', + 'Surname', + 'Email', + 'MembershipType', + ); + + /** + * @config + * @var array + */ + private static $summary_fields = array( + 'FirstName', + 'Surname', + 'Email', + 'MembershipType', + ); + static $defaults = [ 'SubscribedToNewsletter' => true, 'DisplayOnSite' => false, From fe3486c7ddc06b45ab86a0690252ef5e82b10ba9 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Wed, 9 Jul 2025 11:16:57 -0300 Subject: [PATCH 30/30] chore: change user survey deadline at landing page --- survey_builder/templates/Layout/UserSurveyPage_LandingPage.ss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/survey_builder/templates/Layout/UserSurveyPage_LandingPage.ss b/survey_builder/templates/Layout/UserSurveyPage_LandingPage.ss index 229cde4e9..303cbae9a 100644 --- a/survey_builder/templates/Layout/UserSurveyPage_LandingPage.ss +++ b/survey_builder/templates/Layout/UserSurveyPage_LandingPage.ss @@ -47,7 +47,7 @@

<% end_if %>

- $_T("survey_ui", "This survey provides users an opportunity to influence the community and software direction. By sharing information about your configuration and requirements, the Open Infrastructure Foundation Technical Committee will be able to advocate on your behalf. Take the OpenStack User Survey by %4$s to be included in this round of analysis.", "2024", "upcoming Virtual", "August, 2024", "Wednesday, August 28, 2024") + $_T("survey_ui", "This survey provides users an opportunity to influence the community and software direction. By sharing information about your configuration and requirements, the Open Infrastructure Foundation Technical Committee will be able to advocate on your behalf. Take the OpenStack User Survey by %1$s to be included in this round of analysis.", "Friday, August 29, 2025")

$_T("survey_ui", "More Information About The Survey")

<% if $Top.SurveyTemplate.isVoid %>