diff --git a/webclient/src/Classes.js b/webclient/src/Classes.js index a7c624e..f5a3143 100644 --- a/webclient/src/Classes.js +++ b/webclient/src/Classes.js @@ -138,9 +138,11 @@ export function ClassDetail(props) {
Class Details
- {isInstructor(user) && - - } + {(isAdmin(user) || clazz.instructor === user.id) && + + + + } diff --git a/webclient/src/InstructorClasses.js b/webclient/src/InstructorClasses.js index 878c104..3b9143d 100644 --- a/webclient/src/InstructorClasses.js +++ b/webclient/src/InstructorClasses.js @@ -6,6 +6,7 @@ import moment from 'moment'; import './light.css'; import { Button, Container, Checkbox, Divider, Dropdown, Form, Grid, Header, Icon, Image, Label, Menu, Message, Segment, Table } from 'semantic-ui-react'; import { BasicTable, staticUrl, requester } from './utils.js'; +import { MembersDropdown } from './Members.js'; function AttendanceRow(props) { const { student, token, refreshClass } = props; @@ -61,8 +62,29 @@ function AttendanceRow(props) { } export function InstructorClassAttendance(props) { - const { clazz, token } = props; + const { clazz, token, refreshClass } = props; + const [input, setInput] = useState({}); const [error, setError] = useState(false); + const [loading, setLoading] = useState(false); + + const handleValues = (e, v) => setInput({ ...input, [v.name]: v.value }); + + const handleSubmit = (e) => { + if (loading) return; + setLoading(true); + const data = { ...input, attendance_status: 'Attended', session: clazz.id }; + requester('/training/', 'POST', token, data) + .then(res => { + setLoading(false); + setError(false); + refreshClass(); + }) + .catch(err => { + setLoading(false); + console.log(err); + setError(err.data); + }); + }; return (
@@ -77,6 +99,24 @@ export function InstructorClassAttendance(props) { :

No students yet.

} + +
Add Student
+ +
+ + + + + + Submit + +
); };