Fakultas Ilmu Komputer UI
Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
PMPL
Class Project
Kape
Commits
aa3fccb4
Commit
aa3fccb4
authored
Dec 04, 2019
by
Fannyah Dita Cahya
Browse files
Merge branch '1606918414-188' into 'master'
1606918414 188 See merge request
!226
parents
2cb50372
ba7e7f98
Pipeline
#26609
passed with stages
in 13 minutes and 44 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
assets/js/EditProfile.jsx
View file @
aa3fccb4
...
...
@@ -66,6 +66,7 @@ export default class EditProfile extends React.Component {
hackerrank_url
:
''
,
student_gpa
:
0.0
,
student_toefl
:
0
,
student_toefl_file
:
''
,
website_url
:
''
,
latest_work
:
''
,
latest_work_desc
:
''
,
...
...
@@ -655,6 +656,12 @@ export default class EditProfile extends React.Component {
}
name
=
"student_toefl"
/>
<
input
onChange
=
{
this
.
handleFile
}
placeholder
=
"TOEFL file"
name
=
"student_toefl_file"
type
=
"File"
/>
</
Form
.
Field
>
<
Form
.
Field
>
...
...
assets/js/ProfilePage.jsx
View file @
aa3fccb4
...
...
@@ -88,6 +88,7 @@ export default class ProfilePage extends React.Component {
self_description
:
''
,
student_gpa
:
0.0
,
student_toefl
:
0
,
student_toefl_file
:
''
,
website_url
:
''
,
latest_work
:
''
,
latest_work_desc
:
''
,
...
...
@@ -110,6 +111,7 @@ export default class ProfilePage extends React.Component {
this
.
handleFile
=
this
.
handleFile
.
bind
(
this
);
this
.
gotoStudentResume
=
this
.
gotoStudentResume
.
bind
(
this
);
this
.
gotoStudentTranscript
=
this
.
gotoStudentTranscript
.
bind
(
this
);
this
.
gotoStudentToeflFile
=
this
.
gotoStudentToeflFile
.
bind
(
this
);
this
.
getProfile
();
...
...
@@ -154,6 +156,7 @@ export default class ProfilePage extends React.Component {
self_description
:
data
.
self_description
,
student_gpa
:
data
.
student_gpa
,
student_toefl
:
data
.
student_toefl
,
student_toefl_file
:
data
.
student_toefl_file
,
website_url
:
data
.
website_url
,
latest_work
:
data
.
latest_work
,
alamat
:
data
.
alamat
,
...
...
@@ -310,6 +313,8 @@ export default class ProfilePage extends React.Component {
gotoStudentResume
=
()
=>
gotoLink
(
this
.
state
.
resume
||
'
#
'
);
gotoStudentToeflFile
=
()
=>
gotoLink
(
this
.
state
.
student_toefl_file
||
'
#
'
);
gotoStudentTranscript
=
()
=>
gotoLink
(
`transkrip/
${
this
.
state
.
id
}
`
);
updateForm
(
show
)
{
...
...
@@ -730,6 +735,12 @@ export default class ProfilePage extends React.Component {
}
name
=
"student_toefl"
/>
<
input
onChange
=
{
this
.
handleFile
}
placeholder
=
"Student Toefl"
name
=
"student_toefl_file"
type
=
"File"
/>
</
Form
.
Field
>
<
Form
.
Field
>
<
label
htmlFor
=
"dependants"
>
Dependants
</
label
>
...
...
@@ -1327,6 +1338,14 @@ export default class ProfilePage extends React.Component {
</
Segment
>
<
Container
textAlign
=
"center"
>
<
div
className
=
"buttonProfile"
>
<
Button
onClick
=
{
this
.
gotoStudentToeflFile
}
disabled
=
{
!
this
.
state
.
student_toefl_file
}
primary
size
=
"small"
>
TOEFL
</
Button
>
<
Button
onClick
=
{
this
.
gotoStudentResume
}
disabled
=
{
!
this
.
state
.
resume
}
...
...
core/migrations/0001_initial.py
View file @
aa3fccb4
# -*- coding: utf-8 -*-
# Generated by Django 1.11.17 on 2019-12-04 03:48
from
__future__
import
unicode_literals
# Generated by Django 2.2.8 on 2019-12-04 06:45
import
core.lib.validators
import
core.models.accounts
...
...
@@ -48,25 +46,70 @@ class Migration(migrations.Migration):
},
),
migrations
.
CreateModel
(
name
=
'
Feedback
'
,
name
=
'
Recommendation
'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'content'
,
models
.
TextField
(
blank
=
True
)),
(
'created'
,
models
.
DateTimeField
(
auto_now_add
=
True
)),
(
'title'
,
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
100
)),
(
'content'
,
models
.
TextField
()),
(
'companyId'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'core.Company'
)),
(
'updated'
,
models
.
DateTimeField
(
auto_now
=
True
)),
],
options
=
{
'ordering'
:
[
'
cre
ated'
],
'ordering'
:
[
'
-upd
ated'
],
},
),
migrations
.
CreateModel
(
name
=
'
Recommendation
'
,
name
=
'
Vacancy
'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'content'
,
models
.
TextField
(
blank
=
True
)),
(
'verified'
,
models
.
BooleanField
(
default
=
False
)),
(
'open_time'
,
models
.
DateTimeField
()),
(
'description'
,
models
.
TextField
(
blank
=
True
)),
(
'requirements'
,
models
.
TextField
(
blank
=
True
)),
(
'responsibilities'
,
models
.
TextField
(
blank
=
True
)),
(
'close_time'
,
models
.
DateTimeField
()),
(
'created'
,
models
.
DateTimeField
(
auto_now_add
=
True
)),
(
'updated'
,
models
.
DateTimeField
(
auto_now
=
True
)),
(
'name'
,
models
.
CharField
(
max_length
=
100
)),
(
'amount'
,
models
.
IntegerField
(
null
=
True
)),
(
'max_accepted_applicants'
,
models
.
IntegerField
(
default
=
0
)),
(
'benefits'
,
models
.
TextField
(
blank
=
True
)),
(
'working_period'
,
models
.
CharField
(
max_length
=
100
,
null
=
True
)),
(
'tag'
,
models
.
TextField
(
blank
=
True
)),
(
'salary'
,
models
.
IntegerField
(
default
=
0
)),
(
'recruiter_activity'
,
models
.
CharField
(
blank
=
True
,
max_length
=
10
,
null
=
True
)),
(
'office_address'
,
models
.
TextField
(
blank
=
True
,
default
=
''
)),
(
'company'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
related_name
=
'vacancies'
,
to
=
'core.Company'
)),
],
options
=
{
'ordering'
:
[
'-updated'
],
},
),
migrations
.
CreateModel
(
name
=
'ReasonRejected'
,
fields
=
[
(
'application'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
primary_key
=
True
,
serialize
=
False
,
to
=
'core.Application'
)),
(
'reason'
,
models
.
TextField
(
default
=
'Tidak memenuhi kualifikasi perusahaan.'
)),
],
),
migrations
.
CreateModel
(
name
=
'VacancyMilestone'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
max_length
=
100
)),
(
'detail'
,
models
.
TextField
()),
(
'expected_start'
,
models
.
DateField
()),
(
'expected_finish'
,
models
.
DateField
()),
(
'vacancy'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
related_name
=
'milestones'
,
to
=
'core.Vacancy'
)),
],
),
migrations
.
CreateModel
(
name
=
'Supervisor'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'created'
,
models
.
DateTimeField
(
auto_now_add
=
True
)),
(
'updated'
,
models
.
DateTimeField
(
auto_now
=
True
)),
(
'nip'
,
models
.
IntegerField
(
unique
=
True
,
validators
=
[
django
.
core
.
validators
.
MinValueValidator
(
100000000
),
django
.
core
.
validators
.
MaxValueValidator
(
9999999999
)])),
(
'user'
,
models
.
OneToOneField
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
settings
.
AUTH_USER_MODEL
)),
],
options
=
{
'ordering'
:
[
'-updated'
],
...
...
@@ -108,6 +151,7 @@ class Migration(migrations.Migration):
(
'job_seeking_status'
,
models
.
CharField
(
blank
=
True
,
max_length
=
30
,
null
=
True
)),
(
'student_gpa'
,
models
.
FloatField
(
blank
=
True
,
db_column
=
'student_gpa'
,
default
=
1.0
,
null
=
True
,
validators
=
[
core
.
lib
.
validators
.
validate_student_gpa
])),
(
'student_toefl'
,
models
.
IntegerField
(
blank
=
True
,
db_column
=
'toefl'
,
default
=
0
,
null
=
True
)),
(
'student_toefl_file'
,
models
.
FileField
(
blank
=
True
,
null
=
True
,
upload_to
=
core
.
models
.
accounts
.
get_student_toefl_file_path
,
validators
=
[
django
.
core
.
validators
.
FileExtensionValidator
([
'pdf'
])])),
(
'volunteer'
,
models
.
CharField
(
blank
=
True
,
max_length
=
100
,
null
=
True
)),
(
'awards'
,
models
.
CharField
(
blank
=
True
,
max_length
=
100
,
null
=
True
)),
(
'projects'
,
models
.
CharField
(
blank
=
True
,
max_length
=
100
,
null
=
True
)),
...
...
@@ -117,89 +161,15 @@ class Migration(migrations.Migration):
(
'interests'
,
models
.
CharField
(
blank
=
True
,
max_length
=
100
,
null
=
True
)),
(
'dependants'
,
models
.
IntegerField
(
blank
=
True
,
db_column
=
'dependants'
,
default
=
0
,
null
=
True
)),
(
'related_course'
,
models
.
CharField
(
blank
=
True
,
max_length
=
200
,
null
=
True
)),
],
options
=
{
'ordering'
:
[
'-updated'
],
},
),
migrations
.
CreateModel
(
name
=
'Supervisor'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'created'
,
models
.
DateTimeField
(
auto_now_add
=
True
)),
(
'updated'
,
models
.
DateTimeField
(
auto_now
=
True
)),
(
'nip'
,
models
.
IntegerField
(
unique
=
True
,
validators
=
[
django
.
core
.
validators
.
MinValueValidator
(
100000000
),
django
.
core
.
validators
.
MaxValueValidator
(
9999999999
)])),
(
'applied_vacancies'
,
models
.
ManyToManyField
(
blank
=
True
,
related_name
=
'applied_vacancies'
,
through
=
'core.Application'
,
to
=
'core.Vacancy'
)),
(
'bookmarked_vacancies'
,
models
.
ManyToManyField
(
blank
=
True
,
related_name
=
'bookmarked_vacancies'
,
to
=
'core.Vacancy'
)),
(
'recommendations'
,
models
.
ManyToManyField
(
blank
=
True
,
related_name
=
'recommendations'
,
to
=
'core.Recommendation'
)),
(
'user'
,
models
.
OneToOneField
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
settings
.
AUTH_USER_MODEL
)),
],
options
=
{
'ordering'
:
[
'-updated'
],
},
),
migrations
.
CreateModel
(
name
=
'Vacancy'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'verified'
,
models
.
BooleanField
(
default
=
False
)),
(
'open_time'
,
models
.
DateTimeField
()),
(
'description'
,
models
.
TextField
(
blank
=
True
)),
(
'requirements'
,
models
.
TextField
(
blank
=
True
)),
(
'responsibilities'
,
models
.
TextField
(
blank
=
True
)),
(
'close_time'
,
models
.
DateTimeField
()),
(
'created'
,
models
.
DateTimeField
(
auto_now_add
=
True
)),
(
'updated'
,
models
.
DateTimeField
(
auto_now
=
True
)),
(
'name'
,
models
.
CharField
(
max_length
=
100
)),
(
'amount'
,
models
.
IntegerField
(
null
=
True
)),
(
'max_accepted_applicants'
,
models
.
IntegerField
(
default
=
0
)),
(
'benefits'
,
models
.
TextField
(
blank
=
True
)),
(
'working_period'
,
models
.
CharField
(
max_length
=
100
,
null
=
True
)),
(
'tag'
,
models
.
TextField
(
blank
=
True
)),
(
'salary'
,
models
.
IntegerField
(
default
=
0
)),
(
'recruiter_activity'
,
models
.
CharField
(
blank
=
True
,
max_length
=
10
,
null
=
True
)),
(
'office_address'
,
models
.
TextField
(
blank
=
True
,
default
=
''
)),
(
'company'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
related_name
=
'vacancies'
,
to
=
'core.Company'
)),
],
options
=
{
'ordering'
:
[
'-updated'
],
},
),
migrations
.
CreateModel
(
name
=
'VacancyMilestone'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
max_length
=
100
)),
(
'detail'
,
models
.
TextField
()),
(
'expected_start'
,
models
.
DateField
()),
(
'expected_finish'
,
models
.
DateField
()),
(
'vacancy'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
related_name
=
'milestones'
,
to
=
'core.Vacancy'
)),
],
),
migrations
.
CreateModel
(
name
=
'ReasonRejected'
,
fields
=
[
(
'application'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
primary_key
=
True
,
serialize
=
False
,
to
=
'core.Application'
)),
(
'reason'
,
models
.
TextField
(
default
=
'Tidak memenuhi kualifikasi perusahaan.'
)),
],
),
migrations
.
AddField
(
model_name
=
'student'
,
name
=
'applied_vacancies'
,
field
=
models
.
ManyToManyField
(
blank
=
True
,
related_name
=
'applied_vacancies'
,
through
=
'core.Application'
,
to
=
'core.Vacancy'
),
),
migrations
.
AddField
(
model_name
=
'student'
,
name
=
'bookmarked_vacancies'
,
field
=
models
.
ManyToManyField
(
blank
=
True
,
related_name
=
'bookmarked_vacancies'
,
to
=
'core.Vacancy'
),
),
migrations
.
AddField
(
model_name
=
'student'
,
name
=
'recommendations'
,
field
=
models
.
ManyToManyField
(
blank
=
True
,
related_name
=
'recommendations'
,
to
=
'core.Recommendation'
),
),
migrations
.
AddField
(
model_name
=
'student'
,
name
=
'user'
,
field
=
models
.
OneToOneField
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AddField
(
model_name
=
'recommendation'
,
name
=
'recommendation_giver'
,
...
...
@@ -210,10 +180,19 @@ class Migration(migrations.Migration):
name
=
'recommendation_receiver'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
related_name
=
'receiver'
,
to
=
'core.Student'
),
),
migrations
.
AddField
(
model_name
=
'feedback'
,
name
=
'studentId'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'core.Student'
),
migrations
.
CreateModel
(
name
=
'Feedback'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'created'
,
models
.
DateTimeField
(
auto_now_add
=
True
)),
(
'title'
,
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
100
)),
(
'content'
,
models
.
TextField
()),
(
'companyId'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'core.Company'
)),
(
'studentId'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'core.Student'
)),
],
options
=
{
'ordering'
:
[
'created'
],
},
),
migrations
.
AddField
(
model_name
=
'application'
,
...
...
@@ -227,10 +206,10 @@ class Migration(migrations.Migration):
),
migrations
.
AlterUniqueTogether
(
name
=
'recommendation'
,
unique_together
=
set
([
(
'recommendation_giver'
,
'recommendation_receiver'
)
])
,
unique_together
=
{
(
'recommendation_giver'
,
'recommendation_receiver'
)
}
,
),
migrations
.
AlterUniqueTogether
(
name
=
'application'
,
unique_together
=
set
([
(
'student'
,
'vacancy'
)
])
,
unique_together
=
{
(
'student'
,
'vacancy'
)
}
,
),
]
core/migrations/0002_auto_20191204_1151.py
deleted
100644 → 0
View file @
2cb50372
# Generated by Django 2.2.8 on 2019-12-04 04:51
import
core.lib.validators
import
core.models.accounts
import
django.core.validators
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'core'
,
'0001_initial'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'company'
,
name
=
'category'
,
field
=
models
.
CharField
(
default
=
'Belum ada kategori perusahaan'
,
max_length
=
140
),
),
migrations
.
AlterField
(
model_name
=
'company'
,
name
=
'website'
,
field
=
models
.
CharField
(
default
=
'Belum ada link website'
,
max_length
=
100
),
),
migrations
.
AlterField
(
model_name
=
'feedback'
,
name
=
'title'
,
field
=
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
100
),
),
migrations
.
AlterField
(
model_name
=
'reasonrejected'
,
name
=
'reason'
,
field
=
models
.
TextField
(
default
=
'Tidak memenuhi kualifikasi perusahaan.'
),
),
migrations
.
AlterField
(
model_name
=
'student'
,
name
=
'dependants'
,
field
=
models
.
IntegerField
(
blank
=
True
,
db_column
=
'dependants'
,
default
=
0
,
null
=
True
),
),
migrations
.
AlterField
(
model_name
=
'student'
,
name
=
'expected_salary'
,
field
=
models
.
CharField
(
blank
=
True
,
max_length
=
10
,
null
=
True
,
validators
=
[
django
.
core
.
validators
.
RegexValidator
(
'^
\\
d{0,10}$'
)]),
),
migrations
.
AlterField
(
model_name
=
'student'
,
name
=
'phone_number'
,
field
=
models
.
CharField
(
blank
=
True
,
db_index
=
True
,
max_length
=
100
,
null
=
True
,
validators
=
[
django
.
core
.
validators
.
RegexValidator
(
'^0
\\
d{1,11}$'
)]),
),
migrations
.
AlterField
(
model_name
=
'student'
,
name
=
'photo'
,
field
=
models
.
FileField
(
blank
=
True
,
null
=
True
,
upload_to
=
core
.
models
.
accounts
.
get_student_photo_file_path
,
validators
=
[
django
.
core
.
validators
.
FileExtensionValidator
([
'jpg'
,
'jpeg'
,
'png'
])]),
),
migrations
.
AlterField
(
model_name
=
'student'
,
name
=
'resume'
,
field
=
models
.
FileField
(
blank
=
True
,
null
=
True
,
upload_to
=
core
.
models
.
accounts
.
get_student_resume_file_path
,
validators
=
[
django
.
core
.
validators
.
FileExtensionValidator
([
'pdf'
])]),
),
migrations
.
AlterField
(
model_name
=
'student'
,
name
=
'student_gpa'
,
field
=
models
.
FloatField
(
blank
=
True
,
db_column
=
'student_gpa'
,
default
=
1.0
,
null
=
True
,
validators
=
[
core
.
lib
.
validators
.
validate_student_gpa
]),
),
migrations
.
AlterField
(
model_name
=
'student'
,
name
=
'student_toefl'
,
field
=
models
.
IntegerField
(
blank
=
True
,
db_column
=
'toefl'
,
default
=
0
,
null
=
True
),
),
migrations
.
AlterField
(
model_name
=
'vacancy'
,
name
=
'office_address'
,
field
=
models
.
TextField
(
blank
=
True
,
default
=
''
),
),
]
core/models/accounts.py
View file @
aa3fccb4
...
...
@@ -64,6 +64,11 @@ def get_student_sertifikat_file_path(instance, filename):
filename
=
"%s.%s"
%
(
uuid
.
uuid4
(),
extension
)
return
os
.
path
.
join
(
"student-sertifikat/"
,
filename
)
def
get_student_toefl_file_path
(
instance
,
filename
):
extension
=
filename
.
split
(
'.'
)[
-
1
].
lower
()
filename
=
"%s.%s"
%
(
uuid
.
uuid4
(),
extension
)
return
os
.
path
.
join
(
"student-toefl-file/"
,
filename
)
class
Student
(
models
.
Model
):
"""
...
...
@@ -112,6 +117,8 @@ class Student(models.Model):
student_gpa
=
models
.
FloatField
(
db_column
=
'student_gpa'
,
default
=
1.0
,
blank
=
True
,
null
=
True
,
validators
=
[
validate_student_gpa
])
student_toefl
=
models
.
IntegerField
(
db_column
=
'toefl'
,
default
=
0
,
blank
=
True
,
null
=
True
)
student_toefl_file
=
models
.
FileField
(
upload_to
=
get_student_toefl_file_path
,
null
=
True
,
blank
=
True
,
validators
=
[
FileExtensionValidator
([
'pdf'
])])
volunteer
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
,
null
=
True
)
awards
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
,
null
=
True
)
projects
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
,
null
=
True
)
...
...
core/serializers/accounts.py
View file @
aa3fccb4
...
...
@@ -26,7 +26,7 @@ class StudentSerializer(serializers.ModelSerializer):
'work_experience'
,
'latest_work'
,
'latest_work_desc'
,
'read_no'
,
'volunteer'
,
'job_seeking_status'
,
'skills'
,
'expected_salary'
,
'self_description'
,
'github_url'
,
'gitlab_url'
,
'awards'
,
'certification'
,
'languages'
,
'seminar'
,
'interests'
,
'alamat'
,
'projects'
,
'dependants'
,
'student_toefl'
,
'related_course'
]
'interests'
,
'alamat'
,
'projects'
,
'dependants'
,
'student_toefl'
,
'student_toefl_file'
,
'related_course'
]
@
staticmethod
def
get_accepted_no
(
obj
):
...
...
@@ -47,10 +47,13 @@ class StudentUpdateSerializer(serializers.ModelSerializer):
def
to_representation
(
self
,
instance
):
resume
=
None
photo
=
None
student_toefl_file
=
None
if
instance
.
resume
and
hasattr
(
instance
.
resume
,
'url'
):
resume
=
instance
.
resume
.
url
if
instance
.
photo
and
hasattr
(
instance
.
photo
,
'url'
):
photo
=
instance
.
photo
.
url
if
instance
.
student_toefl_file
and
hasattr
(
instance
.
student_toefl_file
,
'url'
):
student_toefl_file
=
instance
.
student_toefl_file
.
url
return
{
'resume'
:
resume
,
'email'
:
instance
.
user
.
email
,
...
...
@@ -67,6 +70,7 @@ class StudentUpdateSerializer(serializers.ModelSerializer):
'website_url'
:
instance
.
website_url
,
'student_gpa'
:
instance
.
student_gpa
,
'student_toefl'
:
instance
.
student_toefl
,
'student_toefl_file'
:
student_toefl_file
,
'volunteer'
:
instance
.
volunteer
,
'linkedin_url'
:
instance
.
linkedin_url
,
'hackerrank_url'
:
instance
.
hackerrank_url
,
...
...
@@ -121,6 +125,7 @@ class StudentUpdateSerializer(serializers.ModelSerializer):
instance
.
student_gpa
=
validated_data
.
get
(
'student_gpa'
,
instance
.
student_gpa
)
instance
.
student_toefl
=
validated_data
.
get
(
'student_toefl'
,
instance
.
student_toefl
)
instance
.
student_toefl_file
=
validated_data
.
get
(
'student_toefl_file'
,
instance
.
student_toefl_file
)
instance
.
website_url
=
validated_data
.
get
(
'website_url'
,
instance
.
website_url
)
instance
.
skills
=
validated_data
.
get
(
'skills'
,
instance
.
skills
)
...
...
@@ -160,7 +165,7 @@ class StudentUpdateSerializer(serializers.ModelSerializer):
'work_experience'
,
'latest_work'
,
'latest_work_desc'
,
'volunteer'
,
'job_seeking_status'
,
'skills'
,
'expected_salary'
,
'self_description'
,
'github_url'
,
'gitlab_url'
,
'awards'
,
'certification'
,
'languages'
,
'seminar'
,
'interests'
,
'alamat'
,
'projects'
,
'dependants'
,
'student_toefl'
,
'related_course'
]
'interests'
,
'alamat'
,
'projects'
,
'dependants'
,
'student_toefl'
,
'student_toefl_file'
,
'related_course'
]
class
CompanyUpdateSerializer
(
serializers
.
ModelSerializer
):
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment