Fakultas Ilmu Komputer UI
Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
PMPL
Class Project
Kape
Commits
ba7e7f98
Commit
ba7e7f98
authored
Dec 04, 2019
by
Fannyah Dita Cahya
Browse files
1606918414 188
parent
2cb50372
Changes
6
Hide whitespace changes
Inline
Side-by-side
assets/js/EditProfile.jsx
View file @
ba7e7f98
...
...
@@ -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 @
ba7e7f98
...
...
@@ -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 @
ba7e7f98
# -*- 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 @
ba7e7f98
...
...
@@ -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 @
ba7e7f98
...
...
@@ -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
.
Attach a 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