diff --git a/competitions/100Change2025/ansible/roles/100Change2025/files/100Change2025.php b/competitions/100Change2025/ansible/roles/100Change2025/files/100Change2025.php index 1adc005359a2fdd15cd2515ba23805d0880274bd..22ed823707fe83fc54530d7aa4538f388c0e02a4 100644 --- a/competitions/100Change2025/ansible/roles/100Change2025/files/100Change2025.php +++ b/competitions/100Change2025/ansible/roles/100Change2025/files/100Change2025.php @@ -4,6 +4,7 @@ $wgLFCExtraTabOverrides["FINALIST_CANDIDATE"] = function() { if($wgUser->isSafeToLoad() && $wgUser->isAllowed("lfcanalysis")) { return [ ["", "Original Proposal"], + ["Funder Update for ", "Funder Update"], ["Evaluations of ", "Evaluations"], ["LFC Analysis of ", "Analysis"], ]; diff --git a/competitions/100Change2025/ansible/roles/100Change2025/files/FunderUpdate b/competitions/100Change2025/ansible/roles/100Change2025/files/FunderUpdate new file mode 100644 index 0000000000000000000000000000000000000000..f1422d774f9aee9ea3137c4b8252019690a697a4 --- /dev/null +++ b/competitions/100Change2025/ansible/roles/100Change2025/files/FunderUpdate @@ -0,0 +1,2 @@ +Having trouble viewing the PDF below? You can download it here: <a target="_blank" href="/100Change2025/index.php?title=Special:TorqueAttachment&collection_name=100Change2025&id={{proposal['Application #']}}&attachment={{ proposal['Attachments']['Funder Update'][0]['file']}}">Funder Update</a> +<iframe src="/100Change2025/index.php?title=Special:TorqueAttachment&collection_name=100Change2025&id={{proposal['Application #']}}&attachment={{ proposal['Attachments']['Funder Update'][0]['file']}}" style="height:11in;width:800px"></iframe> diff --git a/competitions/100Change2025/ansible/roles/100Change2025/tasks/main.yml b/competitions/100Change2025/ansible/roles/100Change2025/tasks/main.yml index 47e62ca5142a0c3527e81171a417ac721ec41aa7..77c2daebc2b1527b658f4a9b642f5810af67a845 100644 --- a/competitions/100Change2025/ansible/roles/100Change2025/tasks/main.yml +++ b/competitions/100Change2025/ansible/roles/100Change2025/tasks/main.yml @@ -21,6 +21,7 @@ src: "{{ item }}" dest: "{{ mediawiki_install_directory }}/{{ item }}" loop: + - FunderUpdate - 100ChangeProposal - LFC_Analysis - 100Change2025ExploreTable @@ -28,6 +29,7 @@ - name: Install 100Change2025 Templates raw: "php {{ mediawiki_install_directory }}/mediawiki-{{ mediawiki_version }}/maintenance/edit.php -b TorqueConfig:{{ item }} < {{ mediawiki_install_directory }}/{{ item }}" loop: + - FunderUpdate - 100ChangeProposal - LFC_Analysis - 100Change2025ExploreTable @@ -37,6 +39,7 @@ path: "{{ mediawiki_install_directory }}/{{ item }}" state: absent loop: + - FunderUpdate - 100ChangeProposal - LFC_Analysis - 100Change2025ExploreTable diff --git a/competitions/100Change2025/etl/compose-and-upload b/competitions/100Change2025/etl/compose-and-upload index 225d273ef11617801a39e58078590973ccce6599..e321dd93e1175749062171d8838c1e12ca75ace8 100755 --- a/competitions/100Change2025/etl/compose-and-upload +++ b/competitions/100Change2025/etl/compose-and-upload @@ -528,6 +528,9 @@ def main(): attachments.specify_new_subcolumn( ".*Audited_Financial_Records.*pdf", "Financial", 2, "Audited Financial Records" ) + attachments.specify_new_subcolumn( + ".*Funder_Update.pdf", "Funder Update", 3, "Funder Update" + ) comp.add_supplemental_information(attachments) comp.add_supplemental_information( @@ -916,6 +919,12 @@ def main(): """<div id="editor-container"></div> {{ #tdcrender:100Change2025/id/%s.mwiki|LFCAnalysis }} +<!-- TABS: %s -->""" % (proposal.key(), tab_type), + ) + my_wiki.create_page( + "Funder Update for %s" % proposal.cell("MediaWiki Title"), + """{{ #tdcrender:100Change2025/id/%s.mwiki|FunderUpdate }} + <!-- TABS: %s -->""" % (proposal.key(), tab_type), ) diff --git a/competitions/100Change2025/etl/deploy b/competitions/100Change2025/etl/deploy index 4cd68f8fb817e1cbebb5b4277c6bb42b487d53f3..00b020e724ba2cad11081f68e400fc3df6b44196 100755 --- a/competitions/100Change2025/etl/deploy +++ b/competitions/100Change2025/etl/deploy @@ -31,6 +31,7 @@ python3 -V > /dev/null 2>&1 || { echo "python3 required, aborting" ; exit 1; } PROPOSALS_CSV="100&Change2024_Registration_Application_2024-10-08_06-43-22.csv" PEER_RANKINGS_FILE="100&Change2024_Peer_Review_2024-11-12_16-53-10.csv" PANEL_RANKINGS_FILE="100&Change2024_Wise_Heads_data_2024-12-20_08-07-58.csv" +FUNDER_UPDATES="Funder Updates.zip" TOP60="top60.csv" BASE_ATTACHMENTS="100&Change2024_Registration_Application_exports_2024-10-08_07-35-00" @@ -67,6 +68,7 @@ if [ ! -d "${DATA_DIR}" ] ; then decrypt "${DATA_DIR}/${PEER_RANKINGS_FILE}" "${ENCRYPTED_DIR}/${PEER_RANKINGS_FILE}.gpg" "${GPG_PASSPHRASE}" decrypt "${DATA_DIR}/${PANEL_RANKINGS_FILE}" "${ENCRYPTED_DIR}/${PANEL_RANKINGS_FILE}.gpg" "${GPG_PASSPHRASE}" decrypt "${DATA_DIR}/${TOP60}" "${ENCRYPTED_DIR}/${TOP60}.gpg" "${GPG_PASSPHRASE}" + decrypt "${DATA_DIR}/${FUNDER_UPDATES}" "${ENCRYPTED_DIR}/${FUNDER_UPDATES}.gpg" "${GPG_PASSPHRASE}" mkdir "${DATA_DIR}/${BASE_ATTACHMENTS}/" ls "${ENCRYPTED_DIR}/$BASE_ATTACHMENTS/" | while read file ; do decrypt "${DATA_DIR}/${BASE_ATTACHMENTS}/${file/.gpg/}" "${ENCRYPTED_DIR}/$BASE_ATTACHMENTS/$file" "${GPG_PASSPHRASE}" @@ -82,6 +84,15 @@ if [ ! -d "${DATA_DIR}" ] ; then mv "${TMP_ATTACHMENTS_DIR}/${PROPOSALS_CSV}" $DATA_DIR mv "${TMP_ATTACHMENTS_DIR}/Valid" $ATTACHMENTS_DIR + mkdir -p $TMP_ATTACHMENTS_DIR + unzip -d $TMP_ATTACHMENTS_DIR ${DATA_DIR}/${FUNDER_UPDATES} + ls $TMP_ATTACHMENTS_DIR | grep "^[[:digit:]]+ .*.pdf$" | while read file ; do + NUM="${file/ */}" + FUNDER_UPDATE_FILENAME="${NUM}_Funder_Update.pdf" + cp -v $TMP_ATTACHMENTS_DIR/$file ${ATTACHMENTS_DIR}/$NUM/$FUNDER_UPDATE_FILENAME; + done + rm -rf $TMP_ATTACHMENTS_DIR + # Clean up large zips to save disk space rm "${DATA_DIR}/${BASE_ATTACHMENTS}.zip" rm -rf ${DATA_DIR}/${TMP_ATTACHMENTS_DIR}