From d2019c871b69047a723542dd1fd69e24a5cc4dd0 Mon Sep 17 00:00:00 2001 From: Bointeka Date: Wed, 15 Sep 2021 22:39:56 -0400 Subject: [PATCH 1/3] Added Mock Button that links Semester.ly's press page. Made the email disabled email button visible. --- .../redux/ui/modals/user_acquisition_modal.jsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/static/js/redux/ui/modals/user_acquisition_modal.jsx b/static/js/redux/ui/modals/user_acquisition_modal.jsx index 1a83083299..0f13bf30ac 100644 --- a/static/js/redux/ui/modals/user_acquisition_modal.jsx +++ b/static/js/redux/ui/modals/user_acquisition_modal.jsx @@ -118,7 +118,7 @@ class UserAcquisitionModal extends React.Component { - {/* */} + } + + + ); From eb24a2935edd18950b1f55ea79797718795a4f69 Mon Sep 17 00:00:00 2001 From: Bointeka Date: Fri, 17 Sep 2021 17:57:58 -0400 Subject: [PATCH 2/3] Added a favorite number field to the student model and displayed the new field in the user settings modal --- .../js/redux/ui/modals/user_settings_modal.jsx | 5 ++++- .../migrations/0034_student_favorite_num.py | 18 ++++++++++++++++++ student/models.py | 1 + student/serializers.py | 1 + 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 student/migrations/0034_student_favorite_num.py diff --git a/static/js/redux/ui/modals/user_settings_modal.jsx b/static/js/redux/ui/modals/user_settings_modal.jsx index 395d832ae1..2aadb06ab7 100644 --- a/static/js/redux/ui/modals/user_settings_modal.jsx +++ b/static/js/redux/ui/modals/user_settings_modal.jsx @@ -161,7 +161,10 @@ class UserSettingsModal extends React.Component { ) ; */ const preferences = !this.props.userInfo.FacebookSignedUp ? null : ( -
+
+
+

This is your favorite number: {this.props.userInfo.favorite_num}

+
); + const mockButton = ( +
+ + + Mock Button + +
+ ); + console.log(mockButton); + const pilotButton = ( @@ -342,6 +366,7 @@ class Calendar extends React.Component { { pilot }
+ { mockButton } { addSISButton } { addCustomEventButton } { shareButton } @@ -452,6 +477,7 @@ Calendar.defaultProps = { Calendar.propTypes = { togglePreferenceModal: PropTypes.func.isRequired, + toggleMockModal: PropTypes.func.isRequired, triggerSaveCalendarModal: PropTypes.func.isRequired, isFetchingShareLink: PropTypes.bool.isRequired, endHour: PropTypes.number.isRequired, diff --git a/static/js/redux/ui/containers/calendar_container.jsx b/static/js/redux/ui/containers/calendar_container.jsx index f0f14a3187..9898cf2623 100644 --- a/static/js/redux/ui/containers/calendar_container.jsx +++ b/static/js/redux/ui/containers/calendar_container.jsx @@ -21,7 +21,7 @@ import { fetchShareTimetableLink, fetchSISTimetableData, } from '../../actions/calendar_actions'; -import { togglePreferenceModal, triggerSaveCalendarModal } from '../../actions/modal_actions'; +import { togglePreferenceModal, triggerSaveCalendarModal, toggleMockModal} from '../../actions/modal_actions'; import { getMaxEndHour } from '../../reducers/root_reducer'; const mapStateToProps = (state) => { @@ -46,6 +46,7 @@ const CalendarContainer = connect( saveTimetable, fetchShareTimetableLink, togglePreferenceModal, + toggleMockModal, triggerSaveCalendarModal, createICalFromTimetable, handleCreateNewTimetable, diff --git a/static/js/redux/ui/containers/modals/mock_modal_container.jsx b/static/js/redux/ui/containers/modals/mock_modal_container.jsx new file mode 100644 index 0000000000..d4f53f5654 --- /dev/null +++ b/static/js/redux/ui/containers/modals/mock_modal_container.jsx @@ -0,0 +1,21 @@ + +import {connect} from 'react-redux'; +import MockModal from '../../modals/mock_modal'; +import { toggleMockModal } from '../../../actions/modal_actions'; +import { toggleConflicts } from '../../../actions/timetable_actions'; + +const mapStateToProps = state => ({ + isVisible: state.mockModal.isVisible, + withConflicts: state.preferences.try_with_conflicts, +}); + +const MockModalContainer = connect( + mapStateToProps, + { + toggleMockModal, + toggleConflicts, + applyPreferences: toggleMockModal, + }, +)(MockModal); + +export default MockModalContainer; \ No newline at end of file diff --git a/static/js/redux/ui/modals/mock_modal.jsx b/static/js/redux/ui/modals/mock_modal.jsx new file mode 100644 index 0000000000..cf2909b75f --- /dev/null +++ b/static/js/redux/ui/modals/mock_modal.jsx @@ -0,0 +1,48 @@ + +import PropTypes from 'prop-types'; +import React from 'react'; +import Modal from 'boron/FadeModal'; + +class MockModal extends React.Component { + componetDidUpdate() { + if (this.props.isVisible) { + this.modal.show(); + } + } + + render() { + const modalHeader = + (
+
+

Timetable Preferences

+
+
); + const modalStyle = { + width: '100%', + }; + //const modalHeader = (); + return ( + { this.modal = c; }} + className="pref-modal max-modal" + modalStyle={modalStyle} + onHide={this.props.toggleMockModal} + > + {modalHeader} + +
+

Mock Modal!

+
+
+ ); + } +} + +MockModal.propTypes = { + toggleConflicts: PropTypes.func.isRequired, + withConflicts: PropTypes.bool.isRequired, + isVisible: PropTypes.bool.isRequired, + toggleMockModal: PropTypes.func.isRequired, +}; + +export default MockModal; \ No newline at end of file diff --git a/static/js/redux/ui/semesterly.jsx b/static/js/redux/ui/semesterly.jsx index e416bc9d18..118980cda1 100644 --- a/static/js/redux/ui/semesterly.jsx +++ b/static/js/redux/ui/semesterly.jsx @@ -29,6 +29,7 @@ import UserSettingsModalContainer from './containers/modals/user_settings_modal_ import ExplorationModalContainer from './containers/modals/exploration_modal_container'; import SignupModalContainer from './containers/modals/signup_modal_container'; import PreferenceModalContainer from './containers/modals/preference_modal_container'; +import MockModalContainer from './containers/modals/mock_modal_container'; import TutModalContainer from './containers/modals/tut_modal_container'; import PeerModalContainer from './containers/modals/peer_modal_container'; import IntegrationModalContainer from './containers/modals/integration_modal_container'; @@ -169,6 +170,7 @@ class Semesterly extends React.Component { +