Sari
models.py
from django.db import models
from django.utils.text import slugify
# Create your models here.
class pekerjaan (models.Model):
nama_pekerjaan = models.CharField(max_length=100)
kode = models.IntegerField()
satuan = models.CharField(max_length=100)
harga = models.IntegerField()
def __str__(self):
return "{}".format(self.nama_pekerjaan)
class material (models.Model):
nama_material = models.CharField(max_length=100)
kode = models.IntegerField()
satuan = models.CharField(max_length=100)
harga = models.IntegerField()
def __str__(self):
return "{}".format(self.nama_material)
class laporan_umum (models.Model):
# Choices
ulp = (
('karebosi', 'Karebosi'),
('daya', 'Daya'),
('maros', 'Maros'),
('pangkep', 'Pangkep'),
)
jenis_temuan = (
('konstruksi', 'konstruksi'),
('ROW', 'ROW'),
('material', 'material'),
('proteksi', 'proteksi'),
)
urgensi = (
('parah', 'parah'),
('sedang', 'sedang'),
('ringan', 'ringan'),
)
padam = (
('padam', 'padam'),
('tidak padam', 'tidak padam'),
)
tim = (
('PDKB', 'PDKB'),
('KHS', 'KHS'),
('ROw', 'ROW'),
)
ulp = models.CharField(max_length=100, choices=ulp)
latitude = models.CharField(max_length=100)
longtitude = models.CharField(max_length=100)
nama_surveyor = models.CharField(max_length=25)
feder = models.CharField(max_length=100, null=True)
section = models.CharField(max_length=100, null=True)
jenis_temuan = models.CharField(max_length=20, choices=jenis_temuan)
pekerjaan = models.ForeignKey('pekerjaan', on_delete=models.CASCADE, blank=True)
satuan_kerja = models.CharField(max_length=100, null=True)
vol_kerja = models.IntegerField(null=True)
detail_kerja = models.CharField(max_length=250)
alamat = models.CharField(max_length=200)
material = models.ForeignKey('material', on_delete=models.CASCADE, blank=True)
satuan_material = models.CharField(max_length=100, null=True)
vol_material = models.IntegerField(null=True)
urgensi = models.CharField(max_length=20, choices=urgensi, null=True)
pemadaman = models.CharField(max_length=20, choices=padam, null=True)
tim_pemelihara = models.CharField(max_length=20, choices=tim, null=True)
tgl_masuk = models.DateField(auto_now_add=True)
tgl_kirim = models.DateField(auto_now=True)
foto_sebelum = models.ImageField(upload_to='media/foto_sebelum/')
foto_sesudah = models.ImageField(upload_to='media/foto_sesudah/', null=True, blank=True)
jumlah_pembayaran = models.IntegerField(null=True, blank=True)
slug = models.SlugField(blank=True, editable=False)
def __str__(self):
return "{}. {}".format(self.id,self.ulp)
form.py
from django import forms
from .models import laporan_umum
class LaporanForm(forms.ModelForm):
class Meta:
model = laporan_umum
fields = [
'ulp',
'latitude',
'longtitude',
'nama_surveyor',
'feder',
'section',
'jenis_temuan',
'pekerjaan',
'vol_kerja',
'satuan_kerja',
'detail_kerja',
'alamat',
'material',
'vol_material',
'satuan_material',
'urgensi',
'pemadaman',
'tim_pemelihara',
'foto_sebelum',
]
views.py
Sari
views.py
from django.shortcuts import render, redirect
from django.views.generic import TemplateView
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
from .forms import LaporanForm
from .models import laporan_umum
# Create your views here.
def index (request):
context = {
'page_title' : 'Selamat Datang | PLN',
'heading' : 'Silahkan Login',
}
if request.method == "POST":
username_login = request.POST['username']
password_login = request.POST['password']
user = authenticate(request, username=username_login, password=password_login)
if user is not None:
login(request, user)
return redirect('laporan:create')
else:
return redirect('index')
return render(request, 'sur_teknik/index.html', context)
def create(request):
laporan_form = LaporanForm()
if request.method == 'POST':
laporan_umum.objects.create(
ulp = request.POST.get('ulp'),
latitude = request.POST.get('latitude'),
longtitude = request.POST.get('longtitude'),
nama_surveyor = request.POST.get('nama_surveyor'),
feder = request.POST.get('feder'),
section = request.POST.get('section'),
jenis_temuan = request.POST.get('jenis_temuan'),
pekerjaan = request.POST.get('pekerjaan'),
vol_kerja = request.POST.get('vol_kerja'),
satuan_kerja = request.POST.get('satuan_kerja'),
detail_kerja = request.POST.get('detail_kerja'),
alamat = request.POST.get('alamat'),
material = request.POST.get('material'),
vol_material = request.POST.get('vol_material'),
satuan_material = request.POST.get('satuan_material'),
urgensi = request.POST.get('urgensi'),
pemadaman = request.POST.get('pemadaman'),
tim_pemelihara = request.POST.get('tim_pemelihara'),
foto_sebelum = request.POST.get('foto_sebelum'),
)
return redirect('laporan:lihat')
context = {
'page_title':'Selamat Datang | PLN',
'heading' : 'Masukkan Laporan Anda',
'post_form' : laporan_form,
}
return render(request,'sur_teknik/create.html',context)
def logoutView(request):
context = {
'page_title' : 'Selamat Datang | PLN',
'heading' : 'Terima Kasih Atas Laporan Anda',
}
if request.method == "POST":
if request.POST["logout"] == "Submit":
logout(request)
return redirect('index')
return render(request, 'sur_teknik/logout.html', context)