skripsi-jtik-pnj / views /lecturer.py
Bintang Fajar Julio
init
428a607
raw
history blame
No virus
2.2 kB
from models.lecturer import Lecturer
from flask import Blueprint, request, redirect, url_for, flash
from middleware import role_required
from firebase_config import storage_upload_file, storage_delete_file
lecturer = Blueprint('lecturer', __name__, template_folder='templates', url_prefix='/dashboard/lecturer')
@lecturer.route('/create', methods=['POST'])
@role_required('admin')
def create():
nama = request.form['nama']
kbk = request.form['kbk']
try:
foto = storage_upload_file(request.files['foto'], 'lecturers')
lecturer = Lecturer(nama=nama, kelompok_bidang_keahlian=kbk, foto=foto)
lecturer.save()
flash(('Tambah Data Sukses', 'Data dosen berhasil ditambahkan'), 'success')
except Exception as e:
flash(('Tambah Data Gagal', 'Terjadi kesalahan server saat menambahkan'), 'error')
return redirect(url_for('dashboard.lecturer'))
@lecturer.route('/update', methods=['POST'])
@role_required('admin')
def update():
id = request.form['id']
nama = request.form['nama']
kbk = request.form['kbk']
foto = request.form['prev_foto']
if request.files['foto'].filename != '':
storage_delete_file(foto)
foto = storage_upload_file(request.files['foto'], 'lecturers')
try:
lecturer = Lecturer(id=id, nama=nama, kelompok_bidang_keahlian=kbk, foto=foto)
lecturer.update()
flash(('Perbarui Data Sukses', 'Data dosen berhasil diperbarui'), 'success')
except Exception as e:
flash(('Perbarui Data Gagal', 'Terjadi kesalahan server saat memperbarui'), 'error')
return redirect(url_for('dashboard.lecturer'))
@lecturer.route('/delete', methods=['POST'])
@role_required('admin')
def delete():
id = request.form['id']
foto = request.form['foto']
try:
lecturer = Lecturer(id=id, foto=foto)
lecturer.delete()
storage_delete_file(lecturer.foto)
flash(('Hapus Data Sukses', 'Data dosen berhasil dihapus'), 'success')
except Exception as e:
flash(('Hapus Data Gagal', 'Terjadi kesalahan server saat menghapus'), 'error')
return redirect(url_for('dashboard.lecturer'))