From f7d6ead8776a45d8ffd213cf6edebceefc82d9d5 Mon Sep 17 00:00:00 2001
From: Kemas Khaidar Ali <kemask69@gmail.com>
Date: Sun, 1 Dec 2019 16:40:45 +0700
Subject: [PATCH 1/3] bug salary must number only fixed

---
 core/views/vacancies.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/views/vacancies.py b/core/views/vacancies.py
index 455c1867..c535ca5f 100755
--- a/core/views/vacancies.py
+++ b/core/views/vacancies.py
@@ -142,7 +142,7 @@ class VacancyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet):
             "open_time": raw_data['open_time'],
             "close_time": raw_data['close_time'],
             "name": raw_data['name'],
-            "salary": raw_data.get('salary', 0),
+            "salary": int(raw_data.get('salary', 0)),
             "description": raw_data['description'],
             "working_period": raw_data['working_period'],
             "max_accepted_applicants": raw_data['max_accepted_applicants']
-- 
GitLab


From 39bf443f37b2c0122895c9fb4b7cfdf2c046d048 Mon Sep 17 00:00:00 2001
From: Kemas Khaidar Ali <kemask69@gmail.com>
Date: Sun, 1 Dec 2019 17:19:07 +0700
Subject: [PATCH 2/3] All bugs fixed

---
 assets/js/CreateVacancy.jsx                |  2 ++
 assets/js/components/Footer.jsx            |  2 +-
 core/migrations/0002_auto_20191116_1550.py |  8 +++++++-
 core/serializers/vacancies.py              |  2 +-
 core/views/vacancies.py                    | 17 +++++++----------
 5 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/assets/js/CreateVacancy.jsx b/assets/js/CreateVacancy.jsx
index ba657473..4ebe0475 100755
--- a/assets/js/CreateVacancy.jsx
+++ b/assets/js/CreateVacancy.jsx
@@ -42,6 +42,7 @@ export default class CreateVacancy extends React.Component {
       requirements: '',
       salary: 0,
       tag: '',
+      responsibilities: '',
     };
 
     if (this.state.vacancyId) {
@@ -99,6 +100,7 @@ export default class CreateVacancy extends React.Component {
     const data = {};
     data.name = this.state.name;
     data.tag = this.state.tag;
+    data.responsibilities = this.state.responsibilities;
     data.description = this.state.description;
     data.benefits = this.state.benefits;
     data.requirements = this.state.requirements;
diff --git a/assets/js/components/Footer.jsx b/assets/js/components/Footer.jsx
index 50a57ae5..7ca53ecd 100755
--- a/assets/js/components/Footer.jsx
+++ b/assets/js/components/Footer.jsx
@@ -6,7 +6,7 @@ export default class Footer extends React.Component {
     return (
       <div className="footer">
         <Container textAlign="center">
-          <h5>All Rights Reserved © 2017</h5>
+          <h5>All Rights Reserved © 2019</h5>
         </Container>
       </div>
     );
diff --git a/core/migrations/0002_auto_20191116_1550.py b/core/migrations/0002_auto_20191116_1550.py
index b4b2f591..27fe2d09 100644
--- a/core/migrations/0002_auto_20191116_1550.py
+++ b/core/migrations/0002_auto_20191116_1550.py
@@ -1,7 +1,8 @@
 # -*- coding: utf-8 -*-
-# Generated by Django 1.11.17 on 2019-11-16 08:50
+# Generated by Django 1.11.17 on 2019-12-01 10:01
 from __future__ import unicode_literals
 
+import django.core.validators
 from django.db import migrations, models
 import django.db.models.deletion
 
@@ -13,6 +14,11 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
+        migrations.AlterField(
+            model_name='company',
+            name='status',
+            field=models.IntegerField(default=0, validators=[django.core.validators.MaxValueValidator(2), django.core.validators.MinValueValidator(0)]),
+        ),
         migrations.AlterField(
             model_name='recommendation',
             name='content',
diff --git a/core/serializers/vacancies.py b/core/serializers/vacancies.py
index d5982b80..5b66c8b3 100755
--- a/core/serializers/vacancies.py
+++ b/core/serializers/vacancies.py
@@ -38,7 +38,7 @@ class VacancySerializer(serializers.ModelSerializer):
         model = Vacancy
         fields = ['company', 'verified', 'open_time', 'description', 'close_time', 'created', 'apply_before', 'updated',
                   'name', 'status', 'bookmarked', 'id', 'salary', 'responsibilities', 'requirements', 'working_period',
-                  'benefits', 'max_accepted_applicants', 'total_accepted_applicants']
+                  'benefits', 'max_accepted_applicants', 'total_accepted_applicants', 'tag']
 
 
 def name_position_validator(names):
diff --git a/core/views/vacancies.py b/core/views/vacancies.py
index c535ca5f..17033926 100755
--- a/core/views/vacancies.py
+++ b/core/views/vacancies.py
@@ -142,19 +142,17 @@ class VacancyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet):
             "open_time": raw_data['open_time'],
             "close_time": raw_data['close_time'],
             "name": raw_data['name'],
-            "salary": int(raw_data.get('salary', 0)),
+            "salary": raw_data.get('salary', 0),
+            "tag": raw_data.get('tag', ''),
+            "requirements": raw_data.get('requirements', ''),
+            "responsibilities": raw_data.get('responsibilities', ''),
+            "benefits": raw_data.get('benefits', ''),
+            "amount": raw_data.get('amount', 0),
+            "recruiter_activity": raw_data.get('recruiter_activity', ''),
             "description": raw_data['description'],
             "working_period": raw_data['working_period'],
             "max_accepted_applicants": raw_data['max_accepted_applicants']
         }
-        if 'benefits' in raw_data:
-            data['benefits'] = raw_data['benefits']
-        if 'amount' in raw_data:
-            data['amount'] = raw_data['amount']
-        if 'responsibilities' in raw_data:
-            data['responsibilities'] = raw_data['responsibilities']
-        if 'recruiter_activity' in raw_data:
-            data['recruiter_activity'] = raw_data['recruiter_activity']
         return data
 
     def __validate_vacancy_data(self, data):
@@ -173,7 +171,6 @@ class VacancyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet):
         try:
             data = self.__parse_vacancy_data(request.data)
             data['company'] = self.__get_company(request.data['company'])
-            data['tag'] = request.data.get('tag', '')
             self.__validate_vacancy_data(data)
             vacancy = Vacancy(**data)
             vacancy.save()
-- 
GitLab


From eae4a6b8645f51b60514b86b58f6b0a93bd21125 Mon Sep 17 00:00:00 2001
From: Kemas Khaidar Ali <kemask69@gmail.com>
Date: Sun, 1 Dec 2019 17:30:03 +0700
Subject: [PATCH 3/3] bad test writing fix

---
 core/tests/test_create_vacancies.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/core/tests/test_create_vacancies.py b/core/tests/test_create_vacancies.py
index 30de1a60..db89cc38 100755
--- a/core/tests/test_create_vacancies.py
+++ b/core/tests/test_create_vacancies.py
@@ -419,7 +419,8 @@ class CreateAndUpdateVacancyTest(APITestCase):
         response = self.client.patch(url, {'open_time': self.today, 'close_time': self.tomorrow,
                                            'name': 'new vacancy', 'description': 'new_vacancy2', 'amount': 10,
                                            'responsibilities': 'new_vacancy2', 'requirements': 'new_vacancy2',
-                                           'max_accepted_applicants': 3, 'working_period': '3 Bulan'}, format='json')
+                                           'max_accepted_applicants': 3, 'working_period': '3 Bulan',
+                                           'tag': VACANCY_TAG}, format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
 
         vacancy = Vacancy.objects.first()
-- 
GitLab