Skip to content

Commit ae18b15

Browse files
authored
Merge pull request #6 from Saribek-Hovakimian/fix-not-all-projects-analyzed
Fixed issue where not all projects were analyzed
2 parents 29f2b89 + 891ee6c commit ae18b15

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

pages/admin-dashboard.js

+11-16
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ const AdminDashboard = () => {
1616
const [sheetName, setSheetName] = useState('Form Responses 2');
1717
const [nameColumn, setNameColumn] = useState('B');
1818
const [projectPreferenceNumber, setProjectPreferenceNumber] = useState(1);
19-
const [projectColumnStart, setProjectColumnStart] = useState('I');
20-
const [projectColumnEnd, setProjectColumnEnd] = useState('Q');
19+
const [projectColumns, setProjectColumns] = useState('["I", "J", "K", "L", "M", "N", "O", "P", "Q", "BE", "BG", "BH", "BI"]');
2120
const [projectNameRegex, setProjectNameRegex] = useState(`\\[([^\\]]+)]`);
2221
const [projectRegexGroup, setProjectRegexGroup] = useState(1);
2322
const [csvData, setCSVData] = useState(undefined);
@@ -67,16 +66,15 @@ const AdminDashboard = () => {
6766
try {
6867
// convert column letters to index (ex: A->0, B->1, etc.)
6968
const nameColumnNumber = excelSheetColumnNumber(nameColumn);
70-
const projectColumnStartNumber = excelSheetColumnNumber(projectColumnStart);
71-
const projectColumnEndNumber = excelSheetColumnNumber(projectColumnEnd);
7269

7370
// successfully fetched data of Google Sheet
7471
const data = results?.data;
7572
const formQuestions = data[0];
7673

7774
// extract project names and assign them to project groupings
7875
const projectGroupings = {};
79-
for (let column = projectColumnStartNumber; column < projectColumnEndNumber + 1; column++) {
76+
for (const columnLetter of JSON.parse(projectColumns)) {
77+
const column = excelSheetColumnNumber(columnLetter);
8078
let projectName = formQuestions[column];
8179
const projectNameRegexChecker = new RegExp(projectNameRegex, "g");
8280
const regexResult = projectNameRegexChecker.exec(projectName);
@@ -96,10 +94,12 @@ const AdminDashboard = () => {
9694
// associate people with projects they chose as their nth preference
9795
let mostAmountOfPeopleInGrouping = 0;
9896
for (let row = 1; row < data.length; row++) {
99-
for (let column = projectColumnStartNumber; column < projectColumnEndNumber + 1; column++) {
97+
for (let k = 0; k < JSON.parse(projectColumns).length; k++) {
98+
const columnLetter = JSON.parse(projectColumns)[k];
99+
const column = excelSheetColumnNumber(columnLetter);
100100
try {
101101
if (parseInt(data[row][column]) === projectPreferenceNumber) {
102-
const projectName = projectNames[column - projectColumnStartNumber];
102+
const projectName = projectNames[k];
103103
projectGroupings[projectName].push(data[row][nameColumnNumber]);
104104
mostAmountOfPeopleInGrouping = Math.max(mostAmountOfPeopleInGrouping, projectGroupings[projectName].length);
105105
}
@@ -234,16 +234,11 @@ const AdminDashboard = () => {
234234
}}
235235
/>
236236
<p style={{marginTop: "0px"}}>
237-
Project column start and end refer to the columns in the Google Sheet that reference the project preferences results
237+
Columns of the Google Sheet that refer to project preferences
238238
</p>
239-
<TextField id="outlined-basic" label="Project Column Start" variant="outlined" type="text"
240-
name="project-column-start" fullWidth={true} value={projectColumnStart} onChange={(event) => {
241-
setProjectColumnStart(event.target.value)
242-
}}
243-
/>
244-
<TextField id="outlined-basic" label="Project Column End" variant="outlined" type="text"
245-
name="project-column-end" fullWidth={true} value={projectColumnEnd} onChange={(event) => {
246-
setProjectColumnEnd(event.target.value)
239+
<TextField id="outlined-basic" label="Project Columns" variant="outlined" type="text"
240+
name="project-columns" fullWidth={true} value={projectColumns} onChange={(event) => {
241+
setProjectColumns(event.target.value)
247242
}}
248243
/>
249244
<p style={{marginTop: "0px"}}>

0 commit comments

Comments
 (0)