Akhir Sprint 1

Pada kesempatan kali ini saya akan mencoba menceritakan hal-hal yang saya lakukan pada akhir Sprint 1 ini.

  • Pembuatan fungsi ajukan kembali

Hal pertama yang saya lakukan adalah membuat fungsi dan test fakultas_ajukan_kembali. Fungsi tersebut digunakan ketika pihak fakultas mengajukan kembali berkas untuk CYD (Calon Yang Diajukan) yang sudah terdaftar. Saya bekerjasama dengan Ryorda pada branch ini. Kode ini juga disesuaikan dengan lipsydb.json sebagai referensi atribut objek.

Berikut potongan kode pada fakultas_ajukan_berkas.py

def fakultas_ajukan_kembali(nip, file) :
CYD = models.CalonYangDiusulkan.objects.get(nip = nip)
newstatus = models.Status.objects.get(name = 'Diajukan Fakultas')
aplikasi = models.Application.objects.get(cyd = CYD)
models.Application.objects.filter(cyd = CYD).update(status = newstatus)
try :
models.DocumentBundle.objects.filter(application = aplikasi).delete()
except Exception :
pass
models.DocumentBundle.objects.create( document = file, application = aplikasi)

potongan kode test pada test_ajukan_berkas.py

def test_fakultas_ajukan_kembali(self):
status = Status.objects.create(name="Dikembalikan SDM")
status2 = Status.objects.create(name="Dikembalikan DGB")
newstatus = Status.objects.create(name="Diajukan Fakultas")
role = Role.objects.create(name="Fakultas")
admin = Admin.objects.create(nip=123456789123456789, role=role)
level1 = Level.objects.create(name="Staff Ahli")
level2 = Level.objects.create(name="Lektor")
level3 = Level.objects.create(name="Lektor Kepala")
level4 = Level.objects.create(name="Guru Besar")
faculty = Faculty.objects.create(name="Fakultas Ilmu Komputer")
regulation = Regulation.objects.create(name="Aturan 001")
a = Admin.objects.get(nip=123456789123456789)
regulationQuestion = RegulationQuestion.objects.create(creator=a, regulation=regulation,
question="apakah ijazah asli?")
cyd1 = CalonYangDiusulkan.objects.create(nip=123456789123456789, faculty=faculty, current_level=level1,
name="Sutopo1")
cyd2 = CalonYangDiusulkan.objects.create(nip=123456789123456780, faculty=faculty, current_level=level2,
name="Sutopo2")
Application.objects.create(cyd=cyd1, status=status, regulation=regulation, destination_level=level2)
Application.objects.create(cyd=cyd2, status=status2, regulation=regulation, destination_level=level2)
fab.fakultas_ajukan_kembali(nip=123456789123456789, file=None)
fab.fakultas_ajukan_kembali(nip=123456789123456780, file=None)
self.assertEquals(str(Application.objects.get(cyd=cyd1).status), str(newstatus.id) + " " + newstatus.name)
self.assertEquals(str(Application.objects.get(cyd=cyd2).status), str(newstatus.id) + " " + newstatus.name)

Kode test dibuat lebih dahulu sebelum kode fungsi

  • Menambahkan view untuk pengajuan revisi

Saya menambahkan view untuk pengajuan kembali (revisi) CYD. Tampilan tidak terlalu berbeda dengan pengajuan baru, hanya saja revisi hanya bisa dilakukan pada CYD yang sudah terdaftar.

  • Kendala

Saya menemui beberapa kendala. Kendala pertama yang saya hadapi adalah kesalahan dalam melakukan commit. Karena terburu-buru, terdapat typo dalam kode yang diketik. Beruntungnya kesalahan dapat ditemukan