@@ -16,8 +16,7 @@ const AdminDashboard = () => {
16
16
const [ sheetName , setSheetName ] = useState ( 'Form Responses 2' ) ;
17
17
const [ nameColumn , setNameColumn ] = useState ( 'B' ) ;
18
18
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"]' ) ;
21
20
const [ projectNameRegex , setProjectNameRegex ] = useState ( `\\[([^\\]]+)]` ) ;
22
21
const [ projectRegexGroup , setProjectRegexGroup ] = useState ( 1 ) ;
23
22
const [ csvData , setCSVData ] = useState ( undefined ) ;
@@ -67,16 +66,15 @@ const AdminDashboard = () => {
67
66
try {
68
67
// convert column letters to index (ex: A->0, B->1, etc.)
69
68
const nameColumnNumber = excelSheetColumnNumber ( nameColumn ) ;
70
- const projectColumnStartNumber = excelSheetColumnNumber ( projectColumnStart ) ;
71
- const projectColumnEndNumber = excelSheetColumnNumber ( projectColumnEnd ) ;
72
69
73
70
// successfully fetched data of Google Sheet
74
71
const data = results ?. data ;
75
72
const formQuestions = data [ 0 ] ;
76
73
77
74
// extract project names and assign them to project groupings
78
75
const projectGroupings = { } ;
79
- for ( let column = projectColumnStartNumber ; column < projectColumnEndNumber + 1 ; column ++ ) {
76
+ for ( const columnLetter of JSON . parse ( projectColumns ) ) {
77
+ const column = excelSheetColumnNumber ( columnLetter ) ;
80
78
let projectName = formQuestions [ column ] ;
81
79
const projectNameRegexChecker = new RegExp ( projectNameRegex , "g" ) ;
82
80
const regexResult = projectNameRegexChecker . exec ( projectName ) ;
@@ -96,10 +94,12 @@ const AdminDashboard = () => {
96
94
// associate people with projects they chose as their nth preference
97
95
let mostAmountOfPeopleInGrouping = 0 ;
98
96
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 ) ;
100
100
try {
101
101
if ( parseInt ( data [ row ] [ column ] ) === projectPreferenceNumber ) {
102
- const projectName = projectNames [ column - projectColumnStartNumber ] ;
102
+ const projectName = projectNames [ k ] ;
103
103
projectGroupings [ projectName ] . push ( data [ row ] [ nameColumnNumber ] ) ;
104
104
mostAmountOfPeopleInGrouping = Math . max ( mostAmountOfPeopleInGrouping , projectGroupings [ projectName ] . length ) ;
105
105
}
@@ -234,16 +234,11 @@ const AdminDashboard = () => {
234
234
} }
235
235
/>
236
236
< 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
238
238
</ 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 )
247
242
} }
248
243
/>
249
244
< p style = { { marginTop : "0px" } } >
0 commit comments