diff --git a/assets/js/VacancyPage.jsx b/assets/js/VacancyPage.jsx index efbe3c50707701249f06ae17cd02b3be540df2bb..fd469a4132a2abb49c4c203ec27e5899abf9b0ec 100644 --- a/assets/js/VacancyPage.jsx +++ b/assets/js/VacancyPage.jsx @@ -1,8 +1,8 @@ import React from 'react'; import Tabs from './components/Tabs'; import Pane from './components/Pane'; +import Storage from './lib/Storage'; import VacancyList from './components/VacancyList'; -import Server from './lib/Server'; export default class VacancyPage extends React.Component { @@ -20,27 +20,19 @@ export default class VacancyPage extends React.Component { handleItemClick = (e, { name }) => this.setState({ activeItem: name }); - // fetchVacancies(url) { - // console.log("maho"); - // Server.get(url).then((data) => { - // this.setState({ vacancies: data }); - // }, () => { - // }); - // } - render() { - const data = [{ data1: 'Software Enggineer' }, { data1: 'System Analyst' }]; + const student = Storage.get('user-data').student; return (<div> <Tabs selected={0}> <Pane label="Semua Lowongan" > - <VacancyList url="/vacancies/" /> + <VacancyList key={1} url="/vacancies/" /> </Pane> <Pane label="Lamaran saya" > - <VacancyList url="/b" /> + <VacancyList key={2} url={`/students/${student.id}/applied-vacancies/`} /> </Pane> <Pane label="Lamaran Ditandai" > - <VacancyList url="/c" /> + <VacancyList key={3} url={`/students/${student.id}/bookmarked-vacancies/`} /> </Pane> </Tabs> </div> diff --git a/assets/js/components/ModalAlert.jsx b/assets/js/components/ModalAlert.jsx index ce5e26383a19688132a7d85cf43c60cb58e09960..0bae7cc1f17d34d97fcddc54c4e2786586a80f56 100644 --- a/assets/js/components/ModalAlert.jsx +++ b/assets/js/components/ModalAlert.jsx @@ -25,7 +25,7 @@ export default class ModalAlert extends React.Component { handleOpen() { const requestData = { coverLetter: this.props.coverLetter }; - let studentId = Storage.post('user-data.student.id'); + const studentId = Storage.get('user-data').student.id; Server.post(`/students/${studentId}/application`, requestData).then((data) => { this.setState({ header: 'Pendaftaran Berhasil', diff --git a/assets/js/components/VacancyList.jsx b/assets/js/components/VacancyList.jsx index 3e313332db1e9ebed5e8c44413c6db704430965b..1d63ab713793cef2ae04416fd6968c741cb53506 100644 --- a/assets/js/components/VacancyList.jsx +++ b/assets/js/components/VacancyList.jsx @@ -11,27 +11,25 @@ export default class VacancyList extends React.Component { constructor(props) { super(props); - /* istanbul ignore next */ - this.state = { vacancies: [] }; Server.get(this.props.url, false).then((data) => { this.setState({ vacancies: data }); - }, () => { }); + /* istanbul ignore next */ + this.state = { vacancies: [] }; this.generateVacancies = this.generateVacancies.bind(this); } + generateVacancies() { - return this.state.vacancies.map((vacancy, index) => + return this.state.vacancies.map(vacancy => <Lowongan key={vacancy.id} data={vacancy} />, ); } - render = () => { - return ( - <Item.Group relaxed> - { this.generateVacancies() } - </Item.Group> - ); - } + render = () => ( + <Item.Group relaxed> + { this.generateVacancies() } + </Item.Group> + ); } \ No newline at end of file diff --git a/core/views/vacancies.py b/core/views/vacancies.py index 9613b0083c56203ffbd5a03047c66f5e45487f2a..ea75e5874a8c86602583c65f9983db5543bb401e 100644 --- a/core/views/vacancies.py +++ b/core/views/vacancies.py @@ -27,8 +27,8 @@ class ApplicationViewSet(viewsets.GenericViewSet): def list(self, request, student_id): student = get_object_or_404(Student.objects.all(), pk=student_id) - applications = Application.objects.filter(student=student) - return Response(ApplicationSerializer(applications, many=True, context={'request': request}).data) + vacancies = student.applied_vacancies + return Response(VacancySerializer(vacancies, many=True, context={'request': request}).data) def create(self, request, student_id): cover_letter = request.data.get('cover_letter')