diff --git a/app/services.py b/app/services.py index 311cb973acc3c452b99f64caafc9e5bcfe24d15f..ab9d56301e62f2fd921bed9e76d4bf0a8c8aea0d 100644 --- a/app/services.py +++ b/app/services.py @@ -1,6 +1,7 @@ import datetime import os import random +import shutil from functools import cmp_to_key from django.contrib import messages @@ -377,6 +378,8 @@ class UploadMateriService: @staticmethod def upload_materi_excel(categories, excel, request, row): + default_cover = 'book-cover-placeholder.png' + for i in range(row): materi = Materi( title=excel["Title"][i], @@ -385,11 +388,22 @@ class UploadMateriService: descriptions=excel["Description"][i], uploader=request.user, ) + + materi.cover.name = default_cover + materi.content.name = default_cover + + # Check if file exists in /media + if not os.path.exists(os.path.join(settings.MEDIA_ROOT, default_cover)): + shutil.copy( + os.path.join('app','static','images',default_cover), + os.path.join(settings.MEDIA_ROOT,default_cover)) + materi.save() for c in excel["Categories"][i].split(","): materi.categories.add(categories.get(name=c)) + class EditProfileService: @staticmethod diff --git a/app/static/images/book-cover-placeholder.png b/app/static/images/book-cover-placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8df02103c48555475d42e34d6660cfc9514697 Binary files /dev/null and b/app/static/images/book-cover-placeholder.png differ diff --git a/app/tests.py b/app/tests.py index 8758a3dc82f9f8b062f831d70e5fa2f6298378a6..d58073e3751558033f000395d58ec592c6149d41 100644 --- a/app/tests.py +++ b/app/tests.py @@ -1303,7 +1303,12 @@ class UploadExcelPageTest(TestCase): response = self.client.post("/unggah_excel/", {'excel': fp}) title = data_frame['Title'][0] - self.assertTrue(Materi.objects.get(title=title)) + materi = Materi.objects.get(title=title) + default_path = 'book-cover-placeholder.png' + + self.assertTrue(materi) + self.assertEquals(materi.cover.name, default_path) + self.assertTrue(os.path.exists(os.path.join(settings.MEDIA_ROOT, default_path))) def test_upload_excel_download_template(self): self.client.login(email="kontributor@gov.id", @@ -1314,6 +1319,8 @@ class UploadExcelPageTest(TestCase): self.assertEquals(response['Content-Type'],'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') self.assertEquals(response['Content-Disposition'],'attachment; filename=template.xlsx') + + class DashboardKontributorViewTest(TestCase):