-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updated Excel resource list. Updated quality_questions.qmd
- Loading branch information
Showing
19 changed files
with
6,521 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
18948 | ||
8352 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
{"headings":["i.-scoping","ii.-design","iii.-conducting-and-checking-analysis","iv.-delivery"],"entries":[]} | ||
{"entries":[],"headings":["i.-scoping","ii.-design","iii.-conducting-and-checking-analysis","iv.-delivery"]} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,5 +34,8 @@ | |
}, | ||
"index.qmd": { | ||
"index.html": "fddb0ce2" | ||
}, | ||
"templates_list.qmd": { | ||
"templates_list.html": "0a7ee049" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file added
BIN
+53.5 KB
docs/.assumptions/qualitative_assumptions/assumptions_and_decision_log_template.xlsx
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -217,5 +217,15 @@ | |
"title": "Guidance on Quality Questions", | ||
"section": "How should I identify the Senior Responsible Owner, Commissioner, Analyst and Analytical Assurer?", | ||
"text": "How should I identify the Senior Responsible Owner, Commissioner, Analyst and Analytical Assurer?\nThe Aqua Book refers to four groups responsible for the assurance of analysis: commissioners, senior responsible owners (SROs), analyst teams (who usually report to the SRO) and analytical assurers. It is the responsibilities that each role carries that matters, not the name of the role.\nAs a project team, you should make sure that each role is in place and you understand how it will operate so that you have the right assurance. The Aqua Book makes no expectations about levels of seniority or grade of each of the occupiers of the roles. It does not specify whether roles should be held by a person or could be held by a committee or other governance group (such as a Senior Leadership Team). The key consideration is whether or not the person or group that undertakes the assurance role have the skills and resources they need to meet the requirements of the role. How the roles are covered in a particular analysis workflow will vary from project to project, depending on how the work is planned and assured.\nWe suggest an SRO and commissioner to be at Grade 7 or above. If you are still unsure of deciding the roles among your team, please email [email protected] with “modelling” in the subject header and we will help you in making this decision." | ||
}, | ||
{ | ||
"objectID": "templates_list.html", | ||
"href": "templates_list.html", | ||
"title": "Template resources", | ||
"section": "", | ||
"text": "assumptions_and_decision_log_template.xlsx\n\n\n1/31/24, 10:29:24 AM\n\n\n\n\n\n\n\n\n\n\n\ncommissioning_template.xlsx\n\n\n1/31/24, 10:27:55 AM\n\n\n\n\n\n\nNo matching items", | ||
"crumbs": [ | ||
"Excel Templates" | ||
] | ||
} | ||
] |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,243 @@ | ||
const kProgressiveAttr = "data-src"; | ||
let categoriesLoaded = false; | ||
|
||
window.quartoListingCategory = (category) => { | ||
if (categoriesLoaded) { | ||
activateCategory(category); | ||
setCategoryHash(category); | ||
} | ||
}; | ||
|
||
window["quarto-listing-loaded"] = () => { | ||
// Process any existing hash | ||
const hash = getHash(); | ||
|
||
if (hash) { | ||
// If there is a category, switch to that | ||
if (hash.category) { | ||
activateCategory(hash.category); | ||
} | ||
// Paginate a specific listing | ||
const listingIds = Object.keys(window["quarto-listings"]); | ||
for (const listingId of listingIds) { | ||
const page = hash[getListingPageKey(listingId)]; | ||
if (page) { | ||
showPage(listingId, page); | ||
} | ||
} | ||
} | ||
|
||
const listingIds = Object.keys(window["quarto-listings"]); | ||
for (const listingId of listingIds) { | ||
// The actual list | ||
const list = window["quarto-listings"][listingId]; | ||
|
||
// Update the handlers for pagination events | ||
refreshPaginationHandlers(listingId); | ||
|
||
// Render any visible items that need it | ||
renderVisibleProgressiveImages(list); | ||
|
||
// Whenever the list is updated, we also need to | ||
// attach handlers to the new pagination elements | ||
// and refresh any newly visible items. | ||
list.on("updated", function () { | ||
renderVisibleProgressiveImages(list); | ||
setTimeout(() => refreshPaginationHandlers(listingId)); | ||
|
||
// Show or hide the no matching message | ||
toggleNoMatchingMessage(list); | ||
}); | ||
} | ||
}; | ||
|
||
window.document.addEventListener("DOMContentLoaded", function (_event) { | ||
// Attach click handlers to categories | ||
const categoryEls = window.document.querySelectorAll( | ||
".quarto-listing-category .category" | ||
); | ||
|
||
for (const categoryEl of categoryEls) { | ||
const category = categoryEl.getAttribute("data-category"); | ||
categoryEl.onclick = () => { | ||
activateCategory(category); | ||
setCategoryHash(category); | ||
}; | ||
} | ||
|
||
// Attach a click handler to the category title | ||
// (there should be only one, but since it is a class name, handle N) | ||
const categoryTitleEls = window.document.querySelectorAll( | ||
".quarto-listing-category-title" | ||
); | ||
for (const categoryTitleEl of categoryTitleEls) { | ||
categoryTitleEl.onclick = () => { | ||
activateCategory(""); | ||
setCategoryHash(""); | ||
}; | ||
} | ||
|
||
categoriesLoaded = true; | ||
}); | ||
|
||
function toggleNoMatchingMessage(list) { | ||
const selector = `#${list.listContainer.id} .listing-no-matching`; | ||
const noMatchingEl = window.document.querySelector(selector); | ||
if (noMatchingEl) { | ||
if (list.visibleItems.length === 0) { | ||
noMatchingEl.classList.remove("d-none"); | ||
} else { | ||
if (!noMatchingEl.classList.contains("d-none")) { | ||
noMatchingEl.classList.add("d-none"); | ||
} | ||
} | ||
} | ||
} | ||
|
||
function setCategoryHash(category) { | ||
setHash({ category }); | ||
} | ||
|
||
function setPageHash(listingId, page) { | ||
const currentHash = getHash() || {}; | ||
currentHash[getListingPageKey(listingId)] = page; | ||
setHash(currentHash); | ||
} | ||
|
||
function getListingPageKey(listingId) { | ||
return `${listingId}-page`; | ||
} | ||
|
||
function refreshPaginationHandlers(listingId) { | ||
const listingEl = window.document.getElementById(listingId); | ||
const paginationEls = listingEl.querySelectorAll( | ||
".pagination li.page-item:not(.disabled) .page.page-link" | ||
); | ||
for (const paginationEl of paginationEls) { | ||
paginationEl.onclick = (sender) => { | ||
setPageHash(listingId, sender.target.getAttribute("data-i")); | ||
showPage(listingId, sender.target.getAttribute("data-i")); | ||
return false; | ||
}; | ||
} | ||
} | ||
|
||
function renderVisibleProgressiveImages(list) { | ||
// Run through the visible items and render any progressive images | ||
for (const item of list.visibleItems) { | ||
const itemEl = item.elm; | ||
if (itemEl) { | ||
const progressiveImgs = itemEl.querySelectorAll( | ||
`img[${kProgressiveAttr}]` | ||
); | ||
for (const progressiveImg of progressiveImgs) { | ||
const srcValue = progressiveImg.getAttribute(kProgressiveAttr); | ||
if (srcValue) { | ||
progressiveImg.setAttribute("src", srcValue); | ||
} | ||
progressiveImg.removeAttribute(kProgressiveAttr); | ||
} | ||
} | ||
} | ||
} | ||
|
||
function getHash() { | ||
// Hashes are of the form | ||
// #name:value|name1:value1|name2:value2 | ||
const currentUrl = new URL(window.location); | ||
const hashRaw = currentUrl.hash ? currentUrl.hash.slice(1) : undefined; | ||
return parseHash(hashRaw); | ||
} | ||
|
||
const kAnd = "&"; | ||
const kEquals = "="; | ||
|
||
function parseHash(hash) { | ||
if (!hash) { | ||
return undefined; | ||
} | ||
const hasValuesStrs = hash.split(kAnd); | ||
const hashValues = hasValuesStrs | ||
.map((hashValueStr) => { | ||
const vals = hashValueStr.split(kEquals); | ||
if (vals.length === 2) { | ||
return { name: vals[0], value: vals[1] }; | ||
} else { | ||
return undefined; | ||
} | ||
}) | ||
.filter((value) => { | ||
return value !== undefined; | ||
}); | ||
|
||
const hashObj = {}; | ||
hashValues.forEach((hashValue) => { | ||
hashObj[hashValue.name] = decodeURIComponent(hashValue.value); | ||
}); | ||
return hashObj; | ||
} | ||
|
||
function makeHash(obj) { | ||
return Object.keys(obj) | ||
.map((key) => { | ||
return `${key}${kEquals}${obj[key]}`; | ||
}) | ||
.join(kAnd); | ||
} | ||
|
||
function setHash(obj) { | ||
const hash = makeHash(obj); | ||
window.history.pushState(null, null, `#${hash}`); | ||
} | ||
|
||
function showPage(listingId, page) { | ||
const list = window["quarto-listings"][listingId]; | ||
if (list) { | ||
list.show((page - 1) * list.page + 1, list.page); | ||
} | ||
} | ||
|
||
function activateCategory(category) { | ||
// Deactivate existing categories | ||
const activeEls = window.document.querySelectorAll( | ||
".quarto-listing-category .category.active" | ||
); | ||
for (const activeEl of activeEls) { | ||
activeEl.classList.remove("active"); | ||
} | ||
|
||
// Activate this category | ||
const categoryEl = window.document.querySelector( | ||
`.quarto-listing-category .category[data-category='${category}'` | ||
); | ||
if (categoryEl) { | ||
categoryEl.classList.add("active"); | ||
} | ||
|
||
// Filter the listings to this category | ||
filterListingCategory(category); | ||
} | ||
|
||
function filterListingCategory(category) { | ||
const listingIds = Object.keys(window["quarto-listings"]); | ||
for (const listingId of listingIds) { | ||
const list = window["quarto-listings"][listingId]; | ||
if (list) { | ||
if (category === "") { | ||
// resets the filter | ||
list.filter(); | ||
} else { | ||
// filter to this category | ||
list.filter(function (item) { | ||
const itemValues = item.values(); | ||
if (itemValues.categories !== null) { | ||
const categories = itemValues.categories.split(","); | ||
return categories.includes(category); | ||
} else { | ||
return false; | ||
} | ||
}); | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.