diff --git a/app/Database/Tables.hs b/app/Database/Tables.hs index 443294677..58f1b6433 100644 --- a/app/Database/Tables.hs +++ b/app/Database/Tables.hs @@ -75,8 +75,8 @@ Times startHour Double endHour Double meeting MeetingId - firstRoom T.Text Maybe - secondRoom T.Text Maybe + firstLocation T.Text Maybe + secondLocation T.Text Maybe Breadth description T.Text @@ -172,16 +172,16 @@ data Time' = Time' { weekDay' :: Double, startHour' :: Double, endHour' :: Double, - firstRoom' :: Maybe T.Text, - secondRoom' :: Maybe T.Text + firstLocation' :: Maybe T.Text, + secondLocation' :: Maybe T.Text } deriving (Show, Generic) data Time = Time { weekDay :: Double, startHour :: Double, endHour :: Double, - firstRoom :: Maybe Building, - secondRoom :: Maybe Building + firstLocation :: Maybe Building, + secondLocation :: Maybe Building } deriving (Show, Generic) -- | A Meeting with its associated Times. @@ -312,8 +312,8 @@ convertTimeVals _ _ _ = (5.0, 25.0, 25.0) -- | Convert Times into Time buildTime :: Times -> SqlPersistM Time buildTime t = do - room1 <- getBuilding (timesFirstRoom t) - room2 <- getBuilding (timesSecondRoom t) + room1 <- getBuilding (timesFirstLocation t) + room2 <- getBuilding (timesSecondLocation t) return $ Time (timesWeekDay t) (timesStartHour t) (timesEndHour t) @@ -326,8 +326,8 @@ buildTimes meetingKey t = (startHour' t) (endHour' t) meetingKey - (firstRoom' t) - (secondRoom' t) + (firstLocation' t) + (secondLocation' t) -- | Given a building code, get the persistent Building associated with it getBuilding :: Maybe T.Text -> SqlPersistM (Maybe Building) diff --git a/backend-test/Controllers/CourseControllerTests.hs b/backend-test/Controllers/CourseControllerTests.hs index acd96aa5f..7237dad2b 100644 --- a/backend-test/Controllers/CourseControllerTests.hs +++ b/backend-test/Controllers/CourseControllerTests.hs @@ -61,15 +61,15 @@ retrieveCourseTestCases = weekDay' = 0.0, startHour' = 10.0, endHour' = 11.0, - firstRoom' = Just "MP", - secondRoom' = Nothing + firstLocation' = Just "MP", + secondLocation' = Nothing }, Time' { weekDay' = 2.0, startHour' = 13.0, endHour' = 14.0, - firstRoom' = Just "SS", - secondRoom' = Nothing + firstLocation' = Just "SS", + secondLocation' = Nothing } ], MeetTime @@ -88,20 +88,20 @@ retrieveCourseTestCases = weekDay' = 1.0, startHour' = 10.0, endHour' = 11.0, - firstRoom' = Just "WW", - secondRoom' = Nothing + firstLocation' = Just "WW", + secondLocation' = Nothing }, Time' { weekDay' = 4.0, startHour' = 13.0, endHour' = 14.0, - firstRoom' = Just "SS", - secondRoom' = Nothing + firstLocation' = Just "SS", + secondLocation' = Nothing } ] ], 200, - "{\"allMeetingTimes\":[{\"meetData\":{\"cap\":50,\"code\":\"STA238\",\"enrol\":15,\"extra\":0,\"instructor\":\"Instructor Name\",\"section\":\"LEC0101\",\"session\":\"F\",\"wait\":0},\"timeData\":[{\"endHour\":11,\"firstRoom\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"MP\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"MP\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondRoom\":null,\"startHour\":10,\"weekDay\":0},{\"endHour\":14,\"firstRoom\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"SS\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"SS\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondRoom\":null,\"startHour\":13,\"weekDay\":2}]}],\"breadth\":null,\"coreqs\":\"CSC108H1/ CSC110Y1/ CSC148H1 *Note: the corequisite may be completed either concurrently or in advance.\",\"description\":\"An introduction to statistical inference and practice. Statistical models and parameters, estimators of parameters and their statistical properties, methods of estimation, confidence intervals, hypothesis testing, likelihood function, the linear model. Use of statistical computation for data analysis and simulation.\",\"distribution\":null,\"exclusions\":\"ECO220Y1/ ECO227Y1/ GGR270H1/ PSY201H1/ SOC300H1/ SOC202H1/ SOC252H1/ STA220H1/ STA221H1/ STA255H1/ STA248H1/ STA261H1/ STA288H1/ EEB225H1/ STAB22H3/ STAB27H3/ STAB57H3/ STA220H5/ STA221H5/ STA258H5/ STA260H5/ ECO220Y5/ ECO227Y5\",\"name\":\"STA238H1\",\"prereqString\":\"STA237H1/ STA247H1/ STA257H1/ STAB52H3/ STA256H5\",\"title\":\"Probability, Statistics and Data Analysis II\",\"videoUrls\":[\"https://example.com/video1\",\"https://example.com/video2\"]}" + "{\"allMeetingTimes\":[{\"meetData\":{\"cap\":50,\"code\":\"STA238\",\"enrol\":15,\"extra\":0,\"instructor\":\"Instructor Name\",\"section\":\"LEC0101\",\"session\":\"F\",\"wait\":0},\"timeData\":[{\"endHour\":11,\"firstLocation\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"MP\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"MP\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondLocation\":null,\"startHour\":10,\"weekDay\":0},{\"endHour\":14,\"firstLocation\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"SS\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"SS\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondLocation\":null,\"startHour\":13,\"weekDay\":2}]}],\"breadth\":null,\"coreqs\":\"CSC108H1/ CSC110Y1/ CSC148H1 *Note: the corequisite may be completed either concurrently or in advance.\",\"description\":\"An introduction to statistical inference and practice. Statistical models and parameters, estimators of parameters and their statistical properties, methods of estimation, confidence intervals, hypothesis testing, likelihood function, the linear model. Use of statistical computation for data analysis and simulation.\",\"distribution\":null,\"exclusions\":\"ECO220Y1/ ECO227Y1/ GGR270H1/ PSY201H1/ SOC300H1/ SOC202H1/ SOC252H1/ STA220H1/ STA221H1/ STA255H1/ STA248H1/ STA261H1/ STA288H1/ EEB225H1/ STAB22H3/ STAB27H3/ STAB57H3/ STA220H5/ STA221H5/ STA258H5/ STA260H5/ ECO220Y5/ ECO227Y5\",\"name\":\"STA238H1\",\"prereqString\":\"STA237H1/ STA247H1/ STA257H1/ STAB52H3/ STA256H5\",\"title\":\"Probability, Statistics and Data Analysis II\",\"videoUrls\":[\"https://example.com/video1\",\"https://example.com/video2\"]}" ), ("Course exists with meeting times", @@ -135,20 +135,20 @@ retrieveCourseTestCases = weekDay' = 0.0, startHour' = 10.0, endHour' = 11.0, - firstRoom' = Just "MP", - secondRoom' = Nothing + firstLocation' = Just "MP", + secondLocation' = Nothing }, Time' { weekDay' = 2.0, startHour' = 13.0, endHour' = 14.0, - firstRoom' = Just "SS", - secondRoom' = Nothing + firstLocation' = Just "SS", + secondLocation' = Nothing } ] ], 200, - "{\"allMeetingTimes\":[{\"meetData\":{\"cap\":50,\"code\":\"STA238\",\"enrol\":15,\"extra\":0,\"instructor\":\"Instructor Name\",\"section\":\"LEC0101\",\"session\":\"F\",\"wait\":0},\"timeData\":[{\"endHour\":11,\"firstRoom\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"MP\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"MP\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondRoom\":null,\"startHour\":10,\"weekDay\":0},{\"endHour\":14,\"firstRoom\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"SS\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"SS\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondRoom\":null,\"startHour\":13,\"weekDay\":2}]}],\"breadth\":null,\"coreqs\":\"CSC108H1/ CSC110Y1/ CSC148H1 *Note: the corequisite may be completed either concurrently or in advance.\",\"description\":\"An introduction to statistical inference and practice. Statistical models and parameters, estimators of parameters and their statistical properties, methods of estimation, confidence intervals, hypothesis testing, likelihood function, the linear model. Use of statistical computation for data analysis and simulation.\",\"distribution\":null,\"exclusions\":\"ECO220Y1/ ECO227Y1/ GGR270H1/ PSY201H1/ SOC300H1/ SOC202H1/ SOC252H1/ STA220H1/ STA221H1/ STA255H1/ STA248H1/ STA261H1/ STA288H1/ EEB225H1/ STAB22H3/ STAB27H3/ STAB57H3/ STA220H5/ STA221H5/ STA258H5/ STA260H5/ ECO220Y5/ ECO227Y5\",\"name\":\"STA238H1\",\"prereqString\":\"STA237H1/ STA247H1/ STA257H1/ STAB52H3/ STA256H5\",\"title\":\"Probability, Statistics and Data Analysis II\",\"videoUrls\":[\"https://example.com/video1\",\"https://example.com/video2\"]}" + "{\"allMeetingTimes\":[{\"meetData\":{\"cap\":50,\"code\":\"STA238\",\"enrol\":15,\"extra\":0,\"instructor\":\"Instructor Name\",\"section\":\"LEC0101\",\"session\":\"F\",\"wait\":0},\"timeData\":[{\"endHour\":11,\"firstLocation\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"MP\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"MP\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondLocation\":null,\"startHour\":10,\"weekDay\":0},{\"endHour\":14,\"firstLocation\":{\"buildingAddress\":\"N/A\",\"buildingCode\":\"SS\",\"buildingLat\":1,\"buildingLng\":1,\"buildingName\":\"SS\",\"buildingPostalCode\":\"A1A 1A1\"},\"secondLocation\":null,\"startHour\":13,\"weekDay\":2}]}],\"breadth\":null,\"coreqs\":\"CSC108H1/ CSC110Y1/ CSC148H1 *Note: the corequisite may be completed either concurrently or in advance.\",\"description\":\"An introduction to statistical inference and practice. Statistical models and parameters, estimators of parameters and their statistical properties, methods of estimation, confidence intervals, hypothesis testing, likelihood function, the linear model. Use of statistical computation for data analysis and simulation.\",\"distribution\":null,\"exclusions\":\"ECO220Y1/ ECO227Y1/ GGR270H1/ PSY201H1/ SOC300H1/ SOC202H1/ SOC252H1/ STA220H1/ STA221H1/ STA255H1/ STA248H1/ STA261H1/ STA288H1/ EEB225H1/ STAB22H3/ STAB27H3/ STAB57H3/ STA220H5/ STA221H5/ STA258H5/ STA260H5/ ECO220Y5/ ECO227Y5\",\"name\":\"STA238H1\",\"prereqString\":\"STA237H1/ STA247H1/ STA257H1/ STAB52H3/ STA256H5\",\"title\":\"Probability, Statistics and Data Analysis II\",\"videoUrls\":[\"https://example.com/video1\",\"https://example.com/video2\"]}" ), ("Course exists", @@ -253,11 +253,11 @@ insertBuildings = mapM_ insertBuilding where insertBuilding code = insert_ Building {buildingCode = code, buildingName = code, buildingAddress = "N/A", buildingPostalCode = "A1A 1A1", buildingLat = 1.0, buildingLng = 1.0} --- | Helper function to get a list of unique firstRoom' and secondRoom' values involved in a MeetTime +-- | Helper function to get a list of unique firstLocation' and secondLocation' values involved in a MeetTime getUniqueBuildings :: [MeetTime] -> [T.Text] getUniqueBuildings = nub . concatMap getMeetBuildings where - getMeetBuildings (MeetTime _ times') = mapMaybe firstRoom' times' ++ mapMaybe secondRoom' times' + getMeetBuildings (MeetTime _ times') = mapMaybe firstLocation' times' ++ mapMaybe secondLocation' times' -- | List of test cases as (label, input courses, expected output) indexTestCases :: [(String, [T.Text], String)] diff --git a/js/components/common/__tests__/GetTable.test.js b/js/components/common/__tests__/GetTable.test.js index 40f3e5261..ee3b5e66d 100644 --- a/js/components/common/__tests__/GetTable.test.js +++ b/js/components/common/__tests__/GetTable.test.js @@ -25,7 +25,7 @@ describe("getTable", () => { timeData: [ { endHour: 17, - firstRoom: { + firstLocation: { buildingAddress: "80 St. George Street", buildingCode: "LM", buildingName: "Lash Miller Chemical Laboratories", @@ -33,7 +33,7 @@ describe("getTable", () => { buildingLng: -79.39841172598216, buildingPostalCode: "M5S 3H6", }, - secondRoom: null, + secondLocation: null, startHour: 15, weekDay: 1, }, @@ -50,7 +50,7 @@ describe("getTable", () => { availability: "31 of 69 available", waitList: "0 students", time: ["Tuesday 15 - 17"], - room: ["LM "], + location: ["LM "], }, ] expect(actual).toEqual(expected) @@ -74,7 +74,7 @@ describe("getTable", () => { timeData: [ { endHour: 17, - firstRoom: { + firstLocation: { buildingAddress: "15 King's College Circle", buildingCode: "UC", buildingName: "University College", @@ -82,13 +82,13 @@ describe("getTable", () => { buildingLng: -79.395181775127, buildingPostalCode: "M5S 3H7", }, - secondRoom: null, + secondLocation: null, startHour: 16, weekDay: 3, }, { endHour: 17, - firstRoom: { + firstLocation: { buildingAddress: "80 St. George Street", buildingCode: "LM", buildingName: "Lash Miller Chemical Laboratories", @@ -96,7 +96,7 @@ describe("getTable", () => { buildingLng: -79.39841172598216, buildingPostalCode: "M5S 3H6", }, - secondRoom: null, + secondLocation: null, startHour: 15, weekDay: 1, }, @@ -113,7 +113,7 @@ describe("getTable", () => { availability: "31 of 69 available", waitList: "0 students", time: ["Tuesday 15 - 17", "Thursday 16 - 17"], - room: ["LM ", "UC "], + location: ["LM ", "UC "], }, ] @@ -121,7 +121,7 @@ describe("getTable", () => { }) }) - describe("The occurence of the lecture has two rooms ", () => { + describe("The occurence of the lecture has two locations ", () => { beforeEach(() => { meetingTime = [ { @@ -138,7 +138,7 @@ describe("getTable", () => { timeData: [ { endHour: 17, - firstRoom: { + firstLocation: { buildingAddress: "80 St. George Street", buildingCode: "LM", buildingName: "Lash Miller Chemical Laboratories", @@ -146,7 +146,7 @@ describe("getTable", () => { buildingLng: -79.39841172598216, buildingPostalCode: "M5S 3H6", }, - secondRoom: { + secondLocation: { buildingAddress: "15 King's College Circle", buildingCode: "UC", buildingName: "University College", @@ -161,7 +161,7 @@ describe("getTable", () => { }, ] }) - test("Both of the first and second room of the occurence are shown", () => { + test("Both of the first and second location of the occurence are shown", () => { actual = wrapper.getTable(meetingTime, "F") expected = [ { @@ -170,7 +170,7 @@ describe("getTable", () => { availability: "31 of 69 available", waitList: "0 students", time: ["Tuesday 15 - 17"], - room: ["LM, UC"], + location: ["LM, UC"], }, ] expect(actual).toEqual(expected) @@ -194,7 +194,7 @@ describe("getTable", () => { timeData: [ { endHour: 17, - firstRoom: { + firstLocation: { buildingAddress: "80 St. George Street", buildingCode: "LM", buildingName: "Lash Miller Chemical Laboratories", @@ -202,7 +202,7 @@ describe("getTable", () => { buildingLng: -79.39841172598216, buildingPostalCode: "M5S 3H6", }, - secondRoom: null, + secondLocation: null, startHour: 15, weekDay: 1, }, @@ -222,7 +222,7 @@ describe("getTable", () => { timeData: [ { endHour: 17, - firstRoom: { + firstLocation: { buildingAddress: "80 St. George Street", buildingCode: "LM", buildingName: "Lash Miller Chemical Laboratories", @@ -230,7 +230,7 @@ describe("getTable", () => { buildingLng: -79.39841172598216, buildingPostalCode: "M5S 3H6", }, - secondRoom: null, + secondLocation: null, startHour: 15, weekDay: 1, }, @@ -247,7 +247,7 @@ describe("getTable", () => { availability: "31 of 69 available", waitList: "0 students", time: ["Tuesday 15 - 17"], - room: ["LM "], + location: ["LM "], }, { activity: "LEC2001", @@ -255,7 +255,7 @@ describe("getTable", () => { availability: "0 of 1 available", waitList: "0 students", time: ["Tuesday 15 - 17"], - room: ["LM "], + location: ["LM "], }, ] expect(actual).toEqual(expected) @@ -279,8 +279,8 @@ describe("getTable", () => { timeData: [ { endHour: 16, - firstRoom: null, - secondRoom: null, + firstLocation: null, + secondLocation: null, startHour: 14, weekDay: 0, }, @@ -300,7 +300,7 @@ describe("getTable", () => { timeData: [ { endHour: 17, - firstRoom: { + firstLocation: { buildingAddress: "80 St. George Street", buildingCode: "LM", buildingName: "Lash Miller Chemical Laboratories", @@ -308,7 +308,7 @@ describe("getTable", () => { buildingLng: -79.39841172598216, buildingPostalCode: "M5S 3H6", }, - secondRoom: null, + secondLocation: null, startHour: 15, weekDay: 1, }, @@ -325,7 +325,7 @@ describe("getTable", () => { availability: "31 of 69 available", waitList: "0 students", time: ["Tuesday 15 - 17"], - room: ["LM "], + location: ["LM "], }, { activity: "TUT0301", @@ -333,7 +333,7 @@ describe("getTable", () => { availability: "2 of 166 available", waitList: "0 students", time: ["Monday 14 - 16"], - room: [" "], + location: [" "], }, ] expect(actual).toEqual(expected) diff --git a/js/components/common/__tests__/TimetableLoading.test.js b/js/components/common/__tests__/TimetableLoading.test.js index 2ce8816c5..8d4e87c95 100644 --- a/js/components/common/__tests__/TimetableLoading.test.js +++ b/js/components/common/__tests__/TimetableLoading.test.js @@ -20,7 +20,7 @@ describe("Displays correct content based on timetable availability", () => { activity: "LEC0101", availability: "50 out of 100 available", instructor: "Beyonce", - room: ["BA "], + location: ["BA "], time: ["Monday 13 - 14", "Wednesday 13 - 14", "Friday 13 - 14"], waitlist: "0 students", }, @@ -54,7 +54,7 @@ describe("Displays correct content based on timetable availability", () => { activity: "LEC0101", availability: "60 out of 120 available", instructor: "John Doe", - room: ["BA 1234"], + location: ["BA 1234"], time: ["Tuesday 10 - 11", "Thursday 10 - 11"], waitlist: "5 students", }, @@ -87,7 +87,7 @@ describe("Displays correct content based on timetable availability", () => { activity: "LEC0101", availability: "80 out of 150 available", instructor: "Jane Smith", - room: ["MP 203"], + location: ["MP 203"], time: ["Monday 14 - 16", "Wednesday 14 - 16"], waitlist: "10 students", }, @@ -116,7 +116,7 @@ describe("Displays correct content based on timetable availability", () => { activity: "LEC0101", availability: "50 out of 100 available", instructor: "Beyonce", - room: ["BA "], + location: ["BA "], time: ["Monday 13 - 14", "Wednesday 13 - 14", "Friday 13 - 14"], waitlist: "0 students", }, @@ -126,7 +126,7 @@ describe("Displays correct content based on timetable availability", () => { activity: "LEC0202", availability: "100 out of 200 available", instructor: "David. Liu", - room: ["BA "], + location: ["BA "], time: ["Monday 13 - 14", "Wednesday 13 - 14", "Friday 13 - 14"], waitlist: "0 students", }, diff --git a/js/components/common/react_modal.js.jsx b/js/components/common/react_modal.js.jsx index ab72ccd6d..78b75ad5e 100644 --- a/js/components/common/react_modal.js.jsx +++ b/js/components/common/react_modal.js.jsx @@ -143,29 +143,29 @@ class CourseModal extends React.Component { ) return sortedSessions.map(lecture => { - const occurrences = { times: [], rooms: [] } + const occurrences = { times: [], locations: [] } const sortedTimeData = lecture.timeData.sort((occ1, occ2) => occ1.weekDay > occ2.weekDay ? 1 : -1 ) sortedTimeData.map(occurrence => { - let firstRoom = "" - if (occurrence.firstRoom === null || occurrence.firstRoom === undefined) { - firstRoom = " " + let firstLocation = "" + if (occurrence.firstLocation === null || occurrence.firstLocation === undefined) { + firstLocation = " " } else { - firstRoom = occurrence.firstRoom.buildingCode + firstLocation = occurrence.firstLocation.buildingCode } - let secondRoom = "" - if (occurrence.secondRoom === null || occurrence.secondRoom === undefined) { - secondRoom = " " + let secondLocation = "" + if (occurrence.secondLocation === null || occurrence.secondLocation === undefined) { + secondLocation = " " } else { - secondRoom = occurrence.secondRoom.buildingCode + secondLocation = occurrence.secondLocation.buildingCode } - if ((firstRoom != " ") & (secondRoom != " ")) { - firstRoom += ", " + if ((firstLocation != " ") & (secondLocation != " ")) { + firstLocation += ", " } - occurrences.rooms.push(firstRoom + secondRoom) + occurrences.locations.push(firstLocation + secondLocation) occurrences.times.push( DAY_TO_INT[occurrence.weekDay] + " " + @@ -185,7 +185,7 @@ class CourseModal extends React.Component { " available", waitList: lecture.meetData.wait + " students", time: occurrences.times, - room: occurrences.rooms, + location: occurrences.locations, } return rowData @@ -299,14 +299,14 @@ class Description extends React.Component { autoHeight: true, }, { - field: "room", + field: "location", cellStyle: { whiteSpace: "pre", lineHeight: "1.8", paddingTop: "7px", paddingBottom: "6px", }, - valueFormatter: col => col.data.room.join("\n"), + valueFormatter: col => col.data.location.join("\n"), width: 128, autoHeight: true, }, @@ -605,11 +605,11 @@ class MapModal extends React.Component { const lecturesByDay = {} this.props.lectures.forEach(lecture => { - if (lecture.fstRoom) { - this.groupLecturesByBuilding(lecturesByBuilding, lecture, "fstRoom") + if (lecture.fstLocation) { + this.groupLecturesByBuilding(lecturesByBuilding, lecture, "fstLocation") } - if (lecture.secRoom) { - this.groupLecturesByBuilding(lecturesByBuilding, lecture, "secRoom") + if (lecture.secLocation) { + this.groupLecturesByBuilding(lecturesByBuilding, lecture, "secLocation") } if (lecturesByDay[lecture.dayString]) { @@ -691,21 +691,21 @@ class DayBox extends React.Component { } this.toggleExpand = this.toggleExpand.bind(this) - this.getRoomStr = this.getRoomStr.bind(this) + this.getLocationStr = this.getLocationStr.bind(this) } toggleExpand() { this.setState({ expanded: !this.state.expanded }) } - getRoomStr(lec, room, roomNum) { + getLocationStr(lec, location, locationNum) { return ( "Location" + - (lec.fstRoom && lec.secRoom ? " " + roomNum : "") + + (lec.fstLocation && lec.secLocation ? " " + locationNum : "") + ": " + - room.buildingName + + location.buildingName + " (" + - room.buildingCode + + location.buildingCode + ")" ) } @@ -749,16 +749,16 @@ class DayBox extends React.Component { {this.state.expanded && (