Fakultas Ilmu Komputer UI

Verified Commit df5a470f authored by Muhammad Ariq Basyar's avatar Muhammad Ariq Basyar
Browse files

[REFACTOR] change models attribute from fasilitas/kegiatan to informasi on...

[REFACTOR] change models attribute from fasilitas/kegiatan to informasi on KomentarFasilitas and KomentarKegiatan
parent 26b9060d
Pipeline #80390 passed with stages
in 5 minutes and 15 seconds
# Generated by Django 3.1.7 on 2021-05-31 12:02
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('informasi_fasilitas', '0017_auto_20210531_1003'),
]
operations = [
migrations.RenameField(
model_name='komentarfasilitas',
old_name='fasilitas',
new_name='informasi',
),
migrations.RenameField(
model_name='komentarkegiatan',
old_name='kegiatan',
new_name='informasi',
),
]
...@@ -100,7 +100,7 @@ class Komentar(models.Model): ...@@ -100,7 +100,7 @@ class Komentar(models.Model):
return self.deskripsi return self.deskripsi
class KomentarFasilitas(Komentar): class KomentarFasilitas(Komentar):
fasilitas = models.ForeignKey(Fasilitas, on_delete=models.CASCADE) informasi = models.ForeignKey(Fasilitas, on_delete=models.CASCADE)
class Likes(models.Model): class Likes(models.Model):
objects = models.Manager() objects = models.Manager()
...@@ -115,7 +115,7 @@ class Dislikes(models.Model): ...@@ -115,7 +115,7 @@ class Dislikes(models.Model):
created = models.DateTimeField(auto_now_add=True) created = models.DateTimeField(auto_now_add=True)
class KomentarKegiatan(Komentar): class KomentarKegiatan(Komentar):
kegiatan = models.ForeignKey(Kegiatan, on_delete=models.CASCADE) informasi = models.ForeignKey(Kegiatan, on_delete=models.CASCADE)
class FotoKegiatan(models.Model): class FotoKegiatan(models.Model):
objects = models.Manager() objects = models.Manager()
......
...@@ -48,7 +48,7 @@ class KegiatanSerializer(serializers.ModelSerializer): ...@@ -48,7 +48,7 @@ class KegiatanSerializer(serializers.ModelSerializer):
class KomentarKegiatanSerializer(serializers.ModelSerializer): class KomentarKegiatanSerializer(serializers.ModelSerializer):
kegiatan = serializers.IntegerField(source='kegiatan.id', read_only=True) kegiatan = serializers.IntegerField(source='informasi.id', read_only=True)
creator = serializers.CharField(source='user.last_name', read_only=True) creator = serializers.CharField(source='user.last_name', read_only=True)
class Meta: class Meta:
model = KomentarKegiatan model = KomentarKegiatan
......
...@@ -180,7 +180,7 @@ class InformasiFasilitasTest(TestCase): ...@@ -180,7 +180,7 @@ class InformasiFasilitasTest(TestCase):
return KomentarFasilitas.objects.create( return KomentarFasilitas.objects.create(
**komentar_dict, **komentar_dict,
user=user, user=user,
fasilitas=fasilitas, informasi=fasilitas,
) )
def create_likes_test( def create_likes_test(
...@@ -284,19 +284,19 @@ class InformasiFasilitasTest(TestCase): ...@@ -284,19 +284,19 @@ class InformasiFasilitasTest(TestCase):
user=None, user=None,
komentar_kegiatan_dict=mock_komentar_kegiatan_test, komentar_kegiatan_dict=mock_komentar_kegiatan_test,
user_dict=mock_user_test, user_dict=mock_user_test,
kegiatan=None informasi=None
): ):
user = self.get_or_create_user_test( user = self.get_or_create_user_test(
user=user, user=user,
user_dict=user_dict, user_dict=user_dict,
) )
if kegiatan is None: if informasi is None:
kegiatan = self.create_kegiatan_test() informasi = self.create_kegiatan_test()
return KomentarKegiatan.objects.create( return KomentarKegiatan.objects.create(
**komentar_kegiatan_dict, **komentar_kegiatan_dict,
kegiatan=kegiatan, informasi=informasi,
user=user user=user
) )
......
...@@ -49,7 +49,7 @@ class InformasiFasilitasModelTest(InformasiFasilitasTest): ...@@ -49,7 +49,7 @@ class InformasiFasilitasModelTest(InformasiFasilitasTest):
def test_models_komentar_not_created(self): def test_models_komentar_not_created(self):
with self.assertRaises(IntegrityError) as ex: with self.assertRaises(IntegrityError) as ex:
obj = KomentarFasilitas(fasilitas=None) obj = KomentarFasilitas(informasi=None)
obj.save() obj.save()
self.assertEqual(ex.expected, IntegrityError) self.assertEqual(ex.expected, IntegrityError)
......
...@@ -26,7 +26,7 @@ class KomentarRelatedViewTest(InformasiFasilitasViewTest): ...@@ -26,7 +26,7 @@ class KomentarRelatedViewTest(InformasiFasilitasViewTest):
self.client.post(self.add_komentar_url, self.mock_komentar_test) self.client.post(self.add_komentar_url, self.mock_komentar_test)
self.assertEqual(response.status_code, HTTPStatus.CREATED) self.assertEqual(response.status_code, HTTPStatus.CREATED)
count = KomentarFasilitas.objects.filter(fasilitas=self.fasilitas).count() count = KomentarFasilitas.objects.filter(informasi=self.fasilitas).count()
self.assertEqual(count, 1) self.assertEqual(count, 1)
def test_cannot_comment_facility_if_deskripsi_empty(self): def test_cannot_comment_facility_if_deskripsi_empty(self):
......
...@@ -29,7 +29,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest): ...@@ -29,7 +29,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest):
self.client.post(self.add_komentar_kegiatan_url, self.mock_komentar_kegiatan_test) self.client.post(self.add_komentar_kegiatan_url, self.mock_komentar_kegiatan_test)
self.assertEqual(response.status_code, HTTPStatus.CREATED) self.assertEqual(response.status_code, HTTPStatus.CREATED)
count = KomentarKegiatan.objects.filter(kegiatan=self.kegiatan).count() count = KomentarKegiatan.objects.filter(informasi=self.kegiatan).count()
self.assertEqual(count, 1) self.assertEqual(count, 1)
def test_fail_add_komentar_kegiatan(self): def test_fail_add_komentar_kegiatan(self):
...@@ -38,18 +38,18 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest): ...@@ -38,18 +38,18 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest):
self.client.post(self.add_komentar_kegiatan_url, None) self.client.post(self.add_komentar_kegiatan_url, None)
self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND) self.assertEqual(response.status_code, HTTPStatus.NOT_FOUND)
count = KomentarKegiatan.objects.filter(kegiatan=self.kegiatan).count() count = KomentarKegiatan.objects.filter(informasi=self.kegiatan).count()
self.assertEqual(count, 0) self.assertEqual(count, 0)
def test_can_get_list_komentar_kegiatan(self): def test_can_get_list_komentar_kegiatan(self):
komentar = self.create_komentar_kegiatan_test(user=self.user, kegiatan=self.kegiatan) komentar = self.create_komentar_kegiatan_test(user=self.user, informasi=self.kegiatan)
response = self.client.get(self.list_komentar_kegiatan_url) response = self.client.get(self.list_komentar_kegiatan_url)
self.assertEqual(response.status_code, HTTPStatus.OK) self.assertEqual(response.status_code, HTTPStatus.OK)
response_json = response_decode(response) response_json = response_decode(response)
expected_id = komentar.id expected_id = komentar.id
expected_creator = komentar.user.last_name expected_creator = komentar.user.last_name
expected_kegiatan = komentar.kegiatan.id expected_kegiatan = komentar.informasi.id
expected_deskripsi = komentar.deskripsi expected_deskripsi = komentar.deskripsi
self.assertEqual(response_json[str(komentar.id)]['id'], expected_id) self.assertEqual(response_json[str(komentar.id)]['id'], expected_id)
...@@ -59,7 +59,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest): ...@@ -59,7 +59,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest):
self.assertEqual(True, ('created' in response_json[str(komentar.id)].keys())) self.assertEqual(True, ('created' in response_json[str(komentar.id)].keys()))
def test_can_get_komentar_kegiatan(self): def test_can_get_komentar_kegiatan(self):
komentar = self.create_komentar_kegiatan_test(user=self.user, kegiatan=self.kegiatan) komentar = self.create_komentar_kegiatan_test(user=self.user, informasi=self.kegiatan)
kwargs_get_komentar_kegiatan = { kwargs_get_komentar_kegiatan = {
'place_id': self.lokasi.place_id, 'place_id': self.lokasi.place_id,
'kegiatan_id': self.kegiatan.id, 'kegiatan_id': self.kegiatan.id,
...@@ -73,7 +73,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest): ...@@ -73,7 +73,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest):
response_json = response_decode(response) response_json = response_decode(response)
expected_id = komentar.id expected_id = komentar.id
expected_creator = komentar.user.last_name expected_creator = komentar.user.last_name
expected_kegiatan = komentar.kegiatan.id expected_kegiatan = komentar.informasi.id
expected_deskripsi = komentar.deskripsi expected_deskripsi = komentar.deskripsi
self.assertEqual(response_json['id'], expected_id) self.assertEqual(response_json['id'], expected_id)
...@@ -88,7 +88,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest): ...@@ -88,7 +88,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest):
def test_can_delete_komentar_kegiatan(self): def test_can_delete_komentar_kegiatan(self):
KomentarKegiatan.objects.all().delete() KomentarKegiatan.objects.all().delete()
komentar = self.create_komentar_kegiatan_test(user=self.user, kegiatan=self.kegiatan) komentar = self.create_komentar_kegiatan_test(user=self.user, informasi=self.kegiatan)
kwargs_delete_komentar_kegiatan = { kwargs_delete_komentar_kegiatan = {
'place_id': self.lokasi.place_id, 'place_id': self.lokasi.place_id,
...@@ -102,7 +102,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest): ...@@ -102,7 +102,7 @@ class KomentarKegiatanRelatedViewTest(InformasiFasilitasViewTest):
response = self.client.delete(delete_komentar_kegiatan_url) response = self.client.delete(delete_komentar_kegiatan_url)
self.assertEqual(response.status_code, HTTPStatus.OK) self.assertEqual(response.status_code, HTTPStatus.OK)
count = KomentarKegiatan.objects.filter(kegiatan=self.kegiatan).count() count = KomentarKegiatan.objects.filter(informasi=self.kegiatan).count()
self.assertEqual(count, 0) self.assertEqual(count, 0)
def test_fail_delete_komentar_kegiatan(self): def test_fail_delete_komentar_kegiatan(self):
......
...@@ -242,7 +242,7 @@ def add_komentar(request, place_id, id): ...@@ -242,7 +242,7 @@ def add_komentar(request, place_id, id):
lokasi = Lokasi.objects.get(place_id=place_id) lokasi = Lokasi.objects.get(place_id=place_id)
fasilitas = Fasilitas.objects.get(lokasi=lokasi, id=id) fasilitas = Fasilitas.objects.get(lokasi=lokasi, id=id)
deskripsi = request.POST['deskripsi'] deskripsi = request.POST['deskripsi']
komentar = KomentarFasilitas.objects.create(fasilitas=fasilitas, komentar = KomentarFasilitas.objects.create(informasi=fasilitas,
user=request.user, user=request.user,
deskripsi=deskripsi) deskripsi=deskripsi)
send_komentar_notification(komentar) send_komentar_notification(komentar)
...@@ -262,7 +262,7 @@ def list_komentar(request, place_id, id): ...@@ -262,7 +262,7 @@ def list_komentar(request, place_id, id):
try: try:
lokasi = Lokasi.objects.get(place_id=place_id) lokasi = Lokasi.objects.get(place_id=place_id)
fasilitas = Fasilitas.objects.get(lokasi=lokasi, id=id) fasilitas = Fasilitas.objects.get(lokasi=lokasi, id=id)
list_komentar = KomentarFasilitas.objects.filter(fasilitas=fasilitas) list_komentar = KomentarFasilitas.objects.filter(informasi=fasilitas)
return_json = {} return_json = {}
for komentar in list_komentar: for komentar in list_komentar:
return_json[komentar.id] = {} return_json[komentar.id] = {}
......
...@@ -15,7 +15,7 @@ from .models import Kegiatan, KomentarKegiatan ...@@ -15,7 +15,7 @@ from .models import Kegiatan, KomentarKegiatan
@permission_classes([]) @permission_classes([])
def list_komentar_kegiatan(request, place_id, kegiatan_id): def list_komentar_kegiatan(request, place_id, kegiatan_id):
try: try:
queryset = KomentarKegiatan.objects.filter(kegiatan__lokasi__place_id=place_id, kegiatan__id=kegiatan_id) queryset = KomentarKegiatan.objects.filter(informasi__lokasi__place_id=place_id, informasi__id=kegiatan_id)
serializer = KomentarKegiatanSerializer(queryset, many=True) serializer = KomentarKegiatanSerializer(queryset, many=True)
data_response = serializer.data data_response = serializer.data
new_dict = {item['id']: dict(item) for item in data_response} new_dict = {item['id']: dict(item) for item in data_response}
...@@ -28,8 +28,8 @@ def list_komentar_kegiatan(request, place_id, kegiatan_id): ...@@ -28,8 +28,8 @@ def list_komentar_kegiatan(request, place_id, kegiatan_id):
@permission_classes([]) @permission_classes([])
def get_komentar_kegiatan(request, place_id, kegiatan_id, komentar_id): def get_komentar_kegiatan(request, place_id, kegiatan_id, komentar_id):
try: try:
komentar = KomentarKegiatan.objects.get(kegiatan__lokasi__place_id=place_id, komentar = KomentarKegiatan.objects.get(informasi__lokasi__place_id=place_id,
kegiatan__id=kegiatan_id, id=komentar_id) informasi__id=kegiatan_id, id=komentar_id)
serializer = KomentarKegiatanSerializer(komentar, many=False) serializer = KomentarKegiatanSerializer(komentar, many=False)
return JsonResponse(serializer.data, status=HTTPStatus.OK) return JsonResponse(serializer.data, status=HTTPStatus.OK)
except ObjectDoesNotExist: except ObjectDoesNotExist:
...@@ -44,7 +44,7 @@ def add_komentar_kegiatan(request, place_id, kegiatan_id): ...@@ -44,7 +44,7 @@ def add_komentar_kegiatan(request, place_id, kegiatan_id):
deskripsi = request.POST['deskripsi'] deskripsi = request.POST['deskripsi']
komentar = KomentarKegiatan.objects \ komentar = KomentarKegiatan.objects \
.create( .create(
kegiatan=kegiatan, informasi=kegiatan,
user=request.user, user=request.user,
deskripsi=deskripsi deskripsi=deskripsi
) )
...@@ -59,7 +59,7 @@ def add_komentar_kegiatan(request, place_id, kegiatan_id): ...@@ -59,7 +59,7 @@ def add_komentar_kegiatan(request, place_id, kegiatan_id):
@permission_classes([IsAuthenticated]) @permission_classes([IsAuthenticated])
def delete_komentar_kegiatan(request, place_id, kegiatan_id, komentar_id): def delete_komentar_kegiatan(request, place_id, kegiatan_id, komentar_id):
try: try:
komentar = KomentarKegiatan.objects.get(kegiatan__lokasi__place_id=place_id, kegiatan__id=kegiatan_id, id=komentar_id) komentar = KomentarKegiatan.objects.get(informasi__lokasi__place_id=place_id, informasi__id=kegiatan_id, id=komentar_id)
komentar.delete() komentar.delete()
return JsonResponse({'response': 'komentar kegiatan deleted', 'id': komentar_id}, return JsonResponse({'response': 'komentar kegiatan deleted', 'id': komentar_id},
status=HTTPStatus.OK) status=HTTPStatus.OK)
......
...@@ -23,13 +23,13 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -23,13 +23,13 @@ class TestUtilsNotification(BaseTestNotification):
def test_get_informasi_from_komentar_should_return_fasilitas(self): def test_get_informasi_from_komentar_should_return_fasilitas(self):
fasilitas = Fasilitas() fasilitas = Fasilitas()
komentar = KomentarFasilitas(fasilitas=fasilitas) komentar = KomentarFasilitas(informasi=fasilitas)
ret_fasilitas = utils.get_informasi(komentar) ret_fasilitas = utils.get_informasi(komentar)
self.assertTrue(isinstance(ret_fasilitas, Fasilitas)) self.assertTrue(isinstance(ret_fasilitas, Fasilitas))
def test_get_informasi_from_komentarkegiatan_should_return_kegiatan(self): def test_get_informasi_from_komentarkegiatan_should_return_kegiatan(self):
kegiatan = Kegiatan() kegiatan = Kegiatan()
komentar_kegiatan = KomentarKegiatan(kegiatan=kegiatan) komentar_kegiatan = KomentarKegiatan(informasi=kegiatan)
ret_kegiatan = utils.get_informasi(komentar_kegiatan) ret_kegiatan = utils.get_informasi(komentar_kegiatan)
self.assertTrue(isinstance(ret_kegiatan, Kegiatan)) self.assertTrue(isinstance(ret_kegiatan, Kegiatan))
...@@ -37,7 +37,7 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -37,7 +37,7 @@ class TestUtilsNotification(BaseTestNotification):
place_id = 'dummy_place_id' place_id = 'dummy_place_id'
lokasi = Lokasi(place_id=place_id) lokasi = Lokasi(place_id=place_id)
fasilitas = Fasilitas(lokasi=lokasi) fasilitas = Fasilitas(lokasi=lokasi)
komentar = KomentarFasilitas(fasilitas=fasilitas) komentar = KomentarFasilitas(informasi=fasilitas)
ret_place_id = utils.get_place_id_from_komentar(komentar) ret_place_id = utils.get_place_id_from_komentar(komentar)
...@@ -47,7 +47,7 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -47,7 +47,7 @@ class TestUtilsNotification(BaseTestNotification):
place_id = 'dummy_place_id' place_id = 'dummy_place_id'
lokasi = Lokasi(place_id=place_id) lokasi = Lokasi(place_id=place_id)
kegiatan = Kegiatan(lokasi=lokasi) kegiatan = Kegiatan(lokasi=lokasi)
komentar = KomentarKegiatan(kegiatan=kegiatan) komentar = KomentarKegiatan(informasi=kegiatan)
ret_place_id = utils.get_place_id_from_komentar(komentar) ret_place_id = utils.get_place_id_from_komentar(komentar)
...@@ -56,7 +56,7 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -56,7 +56,7 @@ class TestUtilsNotification(BaseTestNotification):
def test_get_informasi_id_from_komentar_should_return_its_informasi_id(self): def test_get_informasi_id_from_komentar_should_return_its_informasi_id(self):
_id = 8 _id = 8
fasilitas = Fasilitas(id=_id) fasilitas = Fasilitas(id=_id)
komentar = KomentarFasilitas(fasilitas=fasilitas) komentar = KomentarFasilitas(informasi=fasilitas)
ret_place_id = utils.get_informasi_id_from_komentar(komentar) ret_place_id = utils.get_informasi_id_from_komentar(komentar)
...@@ -65,7 +65,7 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -65,7 +65,7 @@ class TestUtilsNotification(BaseTestNotification):
def test_get_informasi_id_from_komentar_kegiatan_should_return_its_informasi_id(self): def test_get_informasi_id_from_komentar_kegiatan_should_return_its_informasi_id(self):
_id = 9 _id = 9
kegiatan = Kegiatan(id=_id) kegiatan = Kegiatan(id=_id)
komentar = KomentarKegiatan(kegiatan=kegiatan) komentar = KomentarKegiatan(informasi=kegiatan)
ret_place_id = utils.get_informasi_id_from_komentar(komentar) ret_place_id = utils.get_informasi_id_from_komentar(komentar)
...@@ -89,7 +89,7 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -89,7 +89,7 @@ class TestUtilsNotification(BaseTestNotification):
fcmdevice.save() fcmdevice.save()
fasilitas = Fasilitas(user=user) fasilitas = Fasilitas(user=user)
komentar = KomentarFasilitas(fasilitas=fasilitas, user=user_sender) komentar = KomentarFasilitas(informasi=fasilitas, user=user_sender)
ret_fcm_device = utils.get_target_fcm_device(komentar) ret_fcm_device = utils.get_target_fcm_device(komentar)
...@@ -110,7 +110,7 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -110,7 +110,7 @@ class TestUtilsNotification(BaseTestNotification):
fcmdevice.save() fcmdevice.save()
fasilitas = Fasilitas(user=user) fasilitas = Fasilitas(user=user)
komentar = KomentarFasilitas(fasilitas=fasilitas, user=user_sender) komentar = KomentarFasilitas(informasi=fasilitas, user=user_sender)
ret_fcm_device = utils.get_target_fcm_device(komentar) ret_fcm_device = utils.get_target_fcm_device(komentar)
...@@ -124,7 +124,7 @@ class TestUtilsNotification(BaseTestNotification): ...@@ -124,7 +124,7 @@ class TestUtilsNotification(BaseTestNotification):
fcmdevice.save() fcmdevice.save()
fasilitas = Fasilitas(user=user) fasilitas = Fasilitas(user=user)
komentar = KomentarFasilitas(fasilitas=fasilitas, user=user) komentar = KomentarFasilitas(informasi=fasilitas, user=user)
ret_fcm_device = utils.get_target_fcm_device(komentar) ret_fcm_device = utils.get_target_fcm_device(komentar)
......
from fcm_django.models import FCMDevice from fcm_django.models import FCMDevice
from informasi_fasilitas.models import Komentar, KomentarFasilitas, KomentarKegiatan from informasi_fasilitas.models import KomentarFasilitas
def get_type_informasi_from_komentar(komentar): def get_type_informasi_from_komentar(komentar):
if isinstance(komentar, KomentarFasilitas): if isinstance(komentar, KomentarFasilitas):
...@@ -8,9 +8,7 @@ def get_type_informasi_from_komentar(komentar): ...@@ -8,9 +8,7 @@ def get_type_informasi_from_komentar(komentar):
return 'kegiatan' return 'kegiatan'
def get_informasi(komentar): def get_informasi(komentar):
if isinstance(komentar, KomentarFasilitas): return komentar.informasi
return komentar.fasilitas
return komentar.kegiatan
def get_place_id_from_komentar(komentar): def get_place_id_from_komentar(komentar):
return get_informasi(komentar).lokasi.place_id return get_informasi(komentar).lokasi.place_id
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment