From 871345f458ca14abe483cd85d47222826f743db7 Mon Sep 17 00:00:00 2001 From: I Gusti Putu Agastya Indrayana <i.gusti78@ui.ac.id> Date: Mon, 4 May 2020 20:08:19 +0700 Subject: [PATCH] Pbi 5 verifikasi materi new riwayat verif --- .gitlab-ci.yml | 7 + .../migrations/0002_verificationreport.py | 29 ++ administration/models.py | 13 + administration/templates/detail_verif.html | 116 ++++- administration/templates/settings.html | 240 +++++++++ administration/templates/verif.html | 79 ++- administration/tests.py | 474 ++++++++++++++++-- administration/utils.py | 5 + administration/views.py | 112 +++-- app/forms.py | 12 +- app/migrations/0005_auto_20200502_0145.py | 27 + app/migrations/0006_auto_20200502_0147.py | 29 ++ app/migrations/0007_auto_20200502_0210.py | 28 ++ app/migrations/0008_auto_20200502_1956.py | 23 + app/migrations/0009_auto_20200502_2236.py | 23 + app/migrations/0010_auto_20200503_1251.py | 23 + app/migrations/0011_auto_20200503_1317.py | 23 + app/migrations/0012_auto_20200503_1317.py | 23 + app/migrations/0013_auto_20200503_1318.py | 23 + app/migrations/0014_auto_20200503_1319.py | 23 + app/migrations/0015_auto_20200503_1320.py | 23 + app/migrations/0016_auto_20200503_1320.py | 23 + app/migrations/0017_auto_20200503_1326.py | 23 + app/migrations/0018_auto_20200504_0735.py | 23 + app/migrations/0019_auto_20200504_0812.py | 23 + app/models.py | 26 +- app/templates/dashboard.html | 66 ++- app/templates/detail_materi_kontributor.html | 110 ++++ app/templates/profil.html | 198 ++++++++ app/templates/sunting.html | 167 ++++++ app/templates/unggah.html | 22 +- app/tests.py | 131 ++++- app/urls.py | 5 +- app/views.py | 95 +++- authentication/fixtures/initial.json | 12 + authentication/migrations/0001_initial.py | 107 ++-- .../migrations/0002_user_profile_picture.py | 18 + .../migrations/0003_auto_20200504_0735.py | 18 + authentication/models.py | 6 + digipus/settings.py | 5 + requirements.txt | 8 + staticfiles/css/button.css | 26 + staticfiles/img/hotman.jpg | Bin 0 -> 131701 bytes 43 files changed, 2226 insertions(+), 241 deletions(-) create mode 100644 administration/migrations/0002_verificationreport.py create mode 100644 administration/templates/settings.html create mode 100644 administration/utils.py create mode 100644 app/migrations/0005_auto_20200502_0145.py create mode 100644 app/migrations/0006_auto_20200502_0147.py create mode 100644 app/migrations/0007_auto_20200502_0210.py create mode 100644 app/migrations/0008_auto_20200502_1956.py create mode 100644 app/migrations/0009_auto_20200502_2236.py create mode 100644 app/migrations/0010_auto_20200503_1251.py create mode 100644 app/migrations/0011_auto_20200503_1317.py create mode 100644 app/migrations/0012_auto_20200503_1317.py create mode 100644 app/migrations/0013_auto_20200503_1318.py create mode 100644 app/migrations/0014_auto_20200503_1319.py create mode 100644 app/migrations/0015_auto_20200503_1320.py create mode 100644 app/migrations/0016_auto_20200503_1320.py create mode 100644 app/migrations/0017_auto_20200503_1326.py create mode 100644 app/migrations/0018_auto_20200504_0735.py create mode 100644 app/migrations/0019_auto_20200504_0812.py create mode 100644 app/templates/detail_materi_kontributor.html create mode 100644 app/templates/profil.html create mode 100644 app/templates/sunting.html create mode 100644 authentication/migrations/0002_user_profile_picture.py create mode 100644 authentication/migrations/0003_auto_20200504_0735.py create mode 100644 staticfiles/img/hotman.jpg diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7f51bab..2282adb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,10 +4,17 @@ stages: - deploy UnitTest: + services: + - postgres:alpine + variables: + POSTGRES_DB: gitlab_test + POSTGRES_USER: gitlab_test + POSTGRES_PASSWORD: SebuahPassword image: python:3.7 stage: test coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+)%/' before_script: + - export DATABASE_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres:5432/$POSTGRES_DB - pip install -r requirements.txt - python manage.py makemigrations - python manage.py migrate diff --git a/administration/migrations/0002_verificationreport.py b/administration/migrations/0002_verificationreport.py new file mode 100644 index 0000000..80544a1 --- /dev/null +++ b/administration/migrations/0002_verificationreport.py @@ -0,0 +1,29 @@ +# Generated by Django 3.0.3 on 2020-05-04 01:12 + +from django.conf import settings +import django.contrib.postgres.fields.jsonb +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0019_auto_20200504_0812'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('administration', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='VerificationReport', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('report', django.contrib.postgres.fields.jsonb.JSONField()), + ('timestamp', models.DateTimeField(auto_now_add=True)), + ('status', models.CharField(choices=[('PENDING', 'Diproses'), ('APPROVE', 'Diterima'), ('DISAPPROVE', 'Ditolak'), ('REVISION', 'Perbaikan')], default='PENDING', max_length=30)), + ('materi', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='app.Materi')), + ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/administration/models.py b/administration/models.py index 1c1d26b..f328192 100644 --- a/administration/models.py +++ b/administration/models.py @@ -1,7 +1,20 @@ from django.db import models +from django.contrib.postgres.fields import JSONField + +from app.models import Materi, VERIFICATION_STATUS +from authentication.models import User class VerificationSetting(models.Model): title = models.CharField(max_length=250, blank=False) description = models.TextField(blank=False, default="") archived = models.BooleanField(default=False, blank=False) + + +class VerificationReport(models.Model): + report = JSONField() + materi = models.ForeignKey(Materi, models.SET_NULL, null=True) + user = models.ForeignKey(User, models.SET_NULL, null=True) + timestamp = models.DateTimeField(auto_now_add=True) + status = models.CharField( + max_length=30, choices=VERIFICATION_STATUS, default=VERIFICATION_STATUS[0][0]) diff --git a/administration/templates/detail_verif.html b/administration/templates/detail_verif.html index f9de9b2..18b1751 100644 --- a/administration/templates/detail_verif.html +++ b/administration/templates/detail_verif.html @@ -19,7 +19,11 @@ Pratinjau Materi <li class="nav-item"> <button data-toggle="modal" data-target="#myModal" id="checklistButton" class="btn" style="background-color:#4e73df;color: azure;"> + {% if riwayat %} + Tampilkan Laporan Verifikasi + {% else %} Tampilkan Kriteria + {% endif %} </button> </li> @@ -34,52 +38,124 @@ Pratinjau Materi <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> + {% if riwayat %} + <h4 class="modal-title">Laporan Verifikasi</h4> + {% else %} <h4 class="modal-title">Kriteria Verifikasi</h4> + {% endif %} <button type="button" class="close" data-dismiss="modal">×</button> </div> <div class="modal-body"> {% if error %} <h4>Terjadi Kesalahan, coba lagi.</h4> {% endif %} - {% for kriteria in kriteria_list %} - <div class="row m-2"> - <div class="col-8"> - {{kriteria.title}} + {% if riwayat %} + <div class="info-wrapper"> + <div class="info" id="1"> + <dt class="col col-4"> + <p class="info-name">Verifikatur</p> + </dt> + <dd> + <p class="info-content">{{verification_report.user.name}}</p> + </dd> </div> - <div class="col-2"> - <div class="custom-control custom-radio custom-control-inline"> - <input id="kriteria{{ forloop.counter }}Ya" type="radio" - name="kriteria{{ forloop.counter }}" class="custom-control-input kriteria-ok" value=1> - <label class="custom-control-label" for="kriteria{{ forloop.counter }}Ya">Ya</label> - </div> + <div class="info" id="1"> + <dt class="col col-4"> + <p class="info-name">Waktu Verifikasi</p> + </dt> + <dd> + <p class="info-content">{{verification_report.timestamp}}</p> + </dd> </div> - <div class="col-2"> - <div class="custom-control custom-radio custom-control-inline"> - <input checked id="kriteria{{ forloop.counter }}Tidak" type="radio" - name="kriteria{{ forloop.counter }}" class="custom-control-input" value=0> - <label class="custom-control-label" for="kriteria{{ forloop.counter }}Tidak">Tidak</label> - </div> + <div class="info" id="1"> + <dt class="col col-4"> + <p class="info-name">Status Materi</p> + </dt> + <dd> + <p class="info-content">{{verification_report.status}}</p> + </dd> </div> </div> - {% endfor %} - <span><small>Kontributor tidak dapat melihat point-point verifikasi, jika materi ditolak tuliskan alasan - penolakan tersebut di kolom tanggapan.</small></span> - <hr> + {% for kriteria in verification_report.report.kriteria %} <form method="POST" id="submitForm"> {% csrf_token %} + <div class="row m-2"> + <div class="col-8"> + {{kriteria.title}} + </div> + <div class="col-2"> + <div class="custom-control custom-radio custom-control-inline"> + <input id="kriteria{{ forloop.counter }}Ya" type="radio" + name="kriteria{{ forloop.counter }}" class="custom-control-input" value=1 + {% if kriteria.status %} checked {% endif %} disabled> + <label class="custom-control-label" for="kriteria{{ forloop.counter }}Ya">Ya</label> + </div> + </div> + <div class="col-2"> + <div class="custom-control custom-radio custom-control-inline"> + <input id="kriteria{{ forloop.counter }}Tidak" type="radio" + name="kriteria{{ forloop.counter }}" class="custom-control-input" value=0 + {% if not kriteria.status %} checked {% endif %} disabled> + <label class="custom-control-label" + for="kriteria{{ forloop.counter }}Tidak">Tidak</label> + </div> + </div> + </div> + {% endfor %} + <span><small>Kontributor tidak dapat melihat point-point verifikasi, jika materi ditolak tuliskan + alasan + penolakan tersebut di kolom tanggapan.</small></span> + <hr> + + <label for="feedbackMateri">Tanggapan terhadap materi untuk Kontributor :</label> + <textarea name="feedback" id="feedbackMateri" class="form-control" rows="6" + disabled>{{ verification_report.report.feedback }}</textarea> + </form> + {% else %} + {% for kriteria in kriteria_list %} + <form method="POST" id="submitForm"> + {% csrf_token %} + <div class="row m-2"> + <div class="col-8"> + {{kriteria.title}} + </div> + <div class="col-2"> + <div class="custom-control custom-radio custom-control-inline"> + <input id="kriteria{{ forloop.counter }}Ya" type="radio" name="kriteria-{{kriteria.id}}" + class="custom-control-input kriteria-ok" value=1> + <label class="custom-control-label" for="kriteria{{ forloop.counter }}Ya">Ya</label> + </div> + </div> + <div class="col-2"> + <div class="custom-control custom-radio custom-control-inline"> + <input checked id="kriteria{{ forloop.counter }}Tidak" type="radio" + name="kriteria-{{kriteria.id}}" class="custom-control-input" value=0> + <label class="custom-control-label" + for="kriteria{{ forloop.counter }}Tidak">Tidak</label> + </div> + </div> + </div> + {% endfor %} + <span><small>Kontributor tidak dapat melihat point-point verifikasi, jika materi ditolak tuliskan + alasan + penolakan tersebut di kolom tanggapan.</small></span> + <hr> <label for="feedbackMateri">Tanggapan terhadap materi untuk Kontributor :</label> <textarea name="feedback" id="feedbackMateri" class="form-control" rows="6"></textarea> </form> + {% endif %} </div> <div class="modal-footer"> + {% if not riwayat %} <button disabled class="accept-button btn" type="submit" name="action" value="approve" form="submitForm" style="background-color: #28a745;border-radius: .25rem;color: azure;" id="approveButton">Terima</button> <button disabled class="reject-button btn" type="submit" name="action" value="disapprove" form="submitForm" style="background-color: #dc3545;border-radius: .25rem;color: azure;" id="disapproveButton">Tolak</button> + {% endif %} <button type="button" class="btn" data-dismiss="modal">Tutup</button> </div> </div> diff --git a/administration/templates/settings.html b/administration/templates/settings.html new file mode 100644 index 0000000..afdc55f --- /dev/null +++ b/administration/templates/settings.html @@ -0,0 +1,240 @@ +{% load static %} + +<!DOCTYPE html> +<html lang="en"> + +<head> + + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content=""> + <meta name="author" content=""> + + <title>Dasbor - {{ page_title }}</title> + + <!-- Custom fonts for this template --> + <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet"> + + <!-- Custom styles for this template --> + <link href="{% static 'css/sb-admin-2.min.css' %}" rel="stylesheet"> + <link rel="stylesheet" href="{% static 'css/button.css' %}"> + + <!-- Custom styles for this page --> + <link href="{% static 'vendor/datatables/dataTables.bootstrap4.min.css' %}" rel="stylesheet"> + +</head> + +<body id="page-top" style="font-family: 'Poppins', sans-serif;"> + + <!-- Page Wrapper --> + <div id="wrapper"> + + <!-- Sidebar --> + <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar"> + + <!-- Sidebar - Brand --> + <a class="sidebar-brand d-flex align-items-center justify-content-center" href="verif.html"> + <div class="sidebar-brand-icon rotate-n-15"> + </div> + <div class="sidebar-brand-text mx-3">Digipus</div> + </a> + + <!-- Divider --> + <hr class="sidebar-divider my-0"> + + <!-- Nav Item - Dashboard --> + <li class="nav-item"> + <a class="nav-link" href="/administration/"> + <span>Verifikasi Materi</span></a> + </li> + + <li class="nav-item"> + <a class="nav-link" href="index.html"> + <span>Daftar Kontributor</span></a> + </li> + + <li class="nav-item"> + <a class="nav-link" href="index.html"> + <span>Statistik Materi</span></a> + </li> + + <!-- Divider --> + <hr class="sidebar-divider"> + + <li class="nav-item"> + <a class="nav-link" href="/administration/setting/verification/"> + <span>Pengaturan Verifikasi</span></a> + </li> + + <li class="nav-item"> + <a class="nav-link" href="/administration/setting/category/"> + <span>Pengaturan Kategori</span></a> + </li> + + </ul> + <!-- End of Sidebar --> + + <!-- Content Wrapper --> + <div id="content-wrapper" class="d-flex flex-column"> + + <!-- Main Content --> + <div id="content"> + + <!-- Topbar --> + <nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow"> + + <!-- Sidebar Toggle (Topbar) --> + <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> + <i class="fa fa-bars" aria-hidden="true"></i> + </button> + + <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div> + + <!-- Topbar Navbar --> + <ul class="navbar-nav ml-auto"> + + <!-- Nav Item - Search Dropdown (Visible Only XS) --> + <li class="nav-item dropdown no-arrow d-sm-none"> + <a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button" data-toggle="dropdown" + aria-haspopup="true" aria-expanded="false"> + <i class="fas fa-search fa-fw" aria-hidden="true"></i> + </a> + <!-- Dropdown - Messages --> + <div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in" + aria-labelledby="searchDropdown"> + <form class="form-inline mr-auto w-100 navbar-search"> + <div class="input-group"> + <input type="text" class="form-control bg-light border-0 small" placeholder="Search for..." + aria-label="Search" aria-describedby="basic-addon2"> + <div class="input-group-append"> + <button class="btn btn-primary" type="button"> + <i class="fas fa-search fa-sm" aria-hidden="true"></i> + </button> + </div> + </div> + </form> + </div> + </li> + + <div class="topbar-divider d-none d-sm-block"></div> + + <!-- Nav Item - User Information --> + <li class="nav-item dropdown no-arrow"> + <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" + aria-haspopup="true" aria-expanded="false"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">Admin</span> + <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60" alt="User profile picture"> + </a> + </li> + + </ul> + + </nav> + <!-- End of Topbar --> + + <!-- Begin Page Content --> + <div class="container-fluid"> + + <div class="card shadow mb-4"> + <div class="card-header py-3"> + <h6 class="m-0 font-weight-bold text-primary">{{ page_title }} Baru</h6> + </div> + <div class="card-body"> + <form method="POST"> + {% csrf_token %} + <label>Judul :</label>{{ form.title }}<br> + <label>Deskripsi :</label>{{ form.description }}<br> + <br> + <div class="row"> + <button class="primary_btn save" style="border-radius:20px;" type="submit"><i class="far fa-save" aria-hidden="true"></i> + Simpan</button> + </div> + </form> + </div> + </div> + + <!-- DataTales Example --> + <div class="card shadow mb-4"> + <div class="card-header py-3"> + <h6 class="m-0 font-weight-bold text-primary" id="titleTabel">{{ page_title }}</h6> + </div> + <div class="card-body"> + <div class="table-responsive"> + <table class="table table-bordered" id="dataTable" aria-describedby="titleTabel"> + <thead> + <tr> + <th scope="col">Item</th> + <th scope="col">Deskripsi</th> + <th scope="col"></th> + </tr> + </thead> + <tbody> + {% for item in items %} + <tr> + <th>{{item.title}}</th> + <th>{{item.description}}</th> + <th> </th> + </tr> + {% endfor %} + </tbody> + </table> + </div> + </div> + </div> + + </div> + <!-- /.container-fluid --> + + </div> + <!-- End of Main Content --> + + <!-- Footer --> + <footer class="sticky-footer bg-white"> + <div class="container my-auto"> + <div class="copyright text-center my-auto"> + <span>Copyright © Diskominfo Kota Depok 2020</span> + </div> + </div> + </footer> + <!-- End of Footer --> + + </div> + <!-- End of Content Wrapper --> + + </div> + <!-- End of Page Wrapper --> + + <!-- Scroll to Top Button--> + <a class="scroll-to-top rounded" href="#page-top"> + <i class="fas fa-angle-up" aria-hidden="true"></i> + </a> + + <!-- Bootstrap core JavaScript--> + <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" + integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" + crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" + integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" + crossorigin="anonymous"></script> + <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" + integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" + crossorigin="anonymous"></script> + + <!-- Core plugin JavaScript--> + <script src="https://code.jquery.com/jquery-3.5.0.min.js" + integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script> + + <!-- Custom scripts for all pages--> + <script src="{% static 'js/sb-admin-2.min.js' %}"></script> + + <!-- Page level plugins --> + <script src="{% static 'vendor/datatables/jquery.dataTables.min.js' %}"></script> + <script src="{% static 'vendor/datatables/dataTables.bootstrap4.min.js' %}"></script> + + <!-- Page level custom scripts --> + <script src="{% static 'js/demo/datatables-demo.js' %}"></script> + +</body> + +</html> \ No newline at end of file diff --git a/administration/templates/verif.html b/administration/templates/verif.html index 87f9f23..3168195 100644 --- a/administration/templates/verif.html +++ b/administration/templates/verif.html @@ -86,7 +86,7 @@ <!-- Sidebar Toggle (Topbar) --> <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> - <i class="fa fa-bars"></i> + <i class="fa fa-bars" aria-hidden="true"></i> </button> <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div> @@ -98,7 +98,7 @@ <li class="nav-item dropdown no-arrow d-sm-none"> <a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> - <i class="fas fa-search fa-fw"></i> + <i class="fas fa-search fa-fw" aria-hidden="true"></i> </a> <!-- Dropdown - Messages --> <div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in" @@ -109,7 +109,7 @@ aria-label="Search" aria-describedby="basic-addon2"> <div class="input-group-append"> <button class="btn btn-primary" type="button"> - <i class="fas fa-search fa-sm"></i> + <i class="fas fa-search fa-sm" aria-hidden="true"></i> </button> </div> </div> @@ -124,7 +124,7 @@ <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="mr-2 d-none d-lg-inline text-gray-600 small">Admin</span> - <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60"> + <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60" alt="User profile picture"> </a> </li> @@ -139,48 +139,81 @@ <!-- DataTales Example --> <div class="card shadow mb-4"> <div class="card-header py-3"> - <h6 class="m-0 font-weight-bold text-primary">Verifikasi Materi</h6> + <h6 class="m-0 font-weight-bold text-primary" id="titleTabelPending">Verifikasi Materi</h6> </div> <div class="card-body"> <div class="table-responsive"> - <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0"> + <table class="table table-bordered" id="dataTablePending" aria-describedby="titleTabelPending"> <thead> <tr> - <th>Judul Materi</th> - <th>Nama Kontributor</th> - <th>Status</th> + <th scope="col">Judul Materi</th> + <th scope="col">Nama Kontributor</th> + <th scope="col">Status</th> + <th scope="col">Tombol</th> </tr> </thead> + <tfoot> + <tr> + <th scope="col">Judul Materi</th> + <th scope="col">Nama Kontributor</th> + <th scope="col">Status</th> + <th scope="col">Tombol</th> + </tr> + </tfoot> <tbody> - {% for materi in materi_list %} + {% for materi in materi_list_pending %} <tr> - <td><a href="?kategori={{itemKategori.pk}}">{{ materi.title }}</a></td> + <td>{{ materi.title }}</td> <td>{{ materi.uploader.name }}</td> - <td> - {{ materi.status.13 }}{{ materi.status.14 }}{{ materi.status.15 }}{{ materi.status.16 }}{{ materi.status.17 }}{{ materi.status.18 }}{{ materi.status.19 }}{{ materi.status.20 }}</td> + <td>{{ materi.get_status_display }}</td> + {% if materi.status == "PENDING" %} + <td class="verif-buttons"> + <a href="/administration/detail-verif/{{materi.id}}/" class="accept-button" + style="background-color:#4e73df">Detail</a> + {% endif %} + </tr> {% endfor %} </tbody> + </table> + </div> + </div> + </div> + + <!-- DataTales Example --> + <div class="card shadow mb-4"> + <div class="card-header py-3"> + <h6 class="m-0 font-weight-bold text-primary" id="titleTabelRiwayat">Riwayat Verifikasi Materi</h6> + </div> + <div class="card-body"> + <div class="table-responsive"> + <table class="table table-bordered" id="dataTableRiwayat" width="100%" cellspacing="0" aria-describedby="titleTabelRiwayat"> + <thead> + <tr> + <th scope="col">Judul Materi</th> + <th scope="col">Nama Kontributor</th> + <th scope="col">Status</th> + <th scope="col">Tombol</th> + </tr> + </thead> <tfoot> <tr> - <th>Judul Materi</th> - <th>Nama Kontributor</th> - <th>Status</th> + <th scope="col">Judul Materi</th> + <th scope="col">Nama Kontributor</th> + <th scope="col">Status</th> + <th scope="col">Tombol</th> </tr> </tfoot> <tbody> - {% for materi in materi_list %} + {% for materi in materi_list_history %} <tr> <td>{{ materi.title }}</td> <td>{{ materi.uploader.name }}</td> - <td>{{ materi.status.label }}</td> - {% if materi.status == "PENDING" %} + <td>{{ materi.get_status_display }}</td> <td class="verif-buttons"> <a href="/administration/detail-verif/{{materi.id}}/" class="accept-button" style="background-color:#4e73df">Detail</a> - <a href="/administration/api/approve/{{materi.id}}/" class="accept-button">Terima</a> - <a href="/administration/api/disapprove/{{materi.id}}/" class="reject-button">Tolak</a></td> - {% endif %} + </tr> {% endfor %} </tbody> @@ -213,7 +246,7 @@ <!-- Scroll to Top Button--> <a class="scroll-to-top rounded" href="#page-top"> - <i class="fas fa-angle-up"></i> + <i class="fas fa-angle-up" aria-hidden="true"></i> </a> <!-- Bootstrap core JavaScript--> diff --git a/administration/tests.py b/administration/tests.py index 07f77ff..50b8a48 100644 --- a/administration/tests.py +++ b/administration/tests.py @@ -1,43 +1,81 @@ +from random import randint + from django.contrib.auth import get_user_model -from django.test import Client, TestCase +from django.core.files.uploadedfile import SimpleUploadedFile +from django.test import Client, TestCase, tag from django.urls import resolve + from administration import models, views from app.models import Materi, Category +from administration.utils import id_generator + +from bs4 import BeautifulSoup class VerifikasiMateriTest(TestCase): def setUp(self): self.client = Client() - self.url = "/administration/setting/verification/" - self.model = models.VerificationSetting + self.url = '/administration/' + self.admin_credential = { + "email": "admin@gov.id", + "password": id_generator() + } + self.contributor_credential = { + "email": "kontributor@gov.id", + "password": id_generator() + } self.admin = get_user_model().objects.create_user( - password="admin123", email="admin@admin.com", is_admin=True) + **self.admin_credential, name="Admin", is_admin=True) self.contributor = get_user_model().objects.create_user( - password="kontributor123", email="kontributor@kontributor.com", is_contributor=True + **self.contributor_credential, name="Kontributor", is_contributor=True ) - self.materi = Materi(title="LK 3", author="Agas", uploader=self.contributor, - publisher="Kelas SC", descriptions="COntoh pengerjaan LK 3", status="PENDING").save() + self.cover = SimpleUploadedFile( + "cover.jpg", + b"Test file" + ) + self.content = SimpleUploadedFile( + "content.txt", + b"Test file" + ) + Materi(title="Materi 1", author="Agas", uploader=self.contributor, + publisher="Kelas SC", descriptions="Deskripsi Materi 1", + status="PENDING", cover=self.cover, content=self.content, feedback="").save() + self.materi1 = Materi.objects.first() - def test_verifikasi_materi_url_exist(self): + def test_verification_detail_admin_access(self): # Login - self.client.login(email="admin@admin.com", - password="admin123") - response = self.client.get('/administration/') + self.client.login(**self.admin_credential) + # Test + response = self.client.get(self.url) self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + def test_verification_detail_contributor_access(self): + # Login + self.client.login(**self.contributor_credential) + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + # Logout + self.client.logout() + + def test_verification_detail_anonymous_access(self): + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) def test_verifikasi_materi_using_correct_template(self): # Login - self.client.login(email="admin@admin.com", - password="admin123") - found = resolve('/administration/') + self.client.login(**self.admin_credential) + found = resolve(self.url) self.assertEqual(found.func.__name__, views.VerificationView.__name__) def test_verifikasi_materi_title(self): # Login - self.client.login(email="admin@admin.com", - password="admin123") - response = self.client.get('/administration/') + self.client.login(**self.admin_credential) + response = self.client.get(self.url) self.assertContains(response, 'Dasbor - Verifikasi Materi') @@ -45,12 +83,16 @@ class VerifikasiMateriTest(TestCase): def test_verifikasi_materi_content(self): # Login - self.client.login(email="admin@admin.com", - password="admin123") - response = self.client.get('/administration/') + self.client.login(**self.admin_credential) + response = self.client.get(self.url) - self.assertContains(response, 'LK 3') - self.assertContains(response, self.contributor.name) + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTablePending"}).find( + "td", string="Materi 1").find_parent().get_text() + + self.assertIn('Materi 1', el) + self.assertIn(self.contributor.name, el) + self.assertIn("Diproses", el) self.assertNotContains(response, 'Halaman Katalog') @@ -59,61 +101,403 @@ class DetailVerifikasiMateriTest(TestCase): def setUp(self): self.client = Client() self.view = views.DetailVerificationView - self.template_name = "detai_verif.html" - self.model = models.VerificationSetting + self.template_name = "detail_verif.html" + self.admin_credential = { + "email": "admin@gov.id", + "password": id_generator() + } + self.contributor_credential = { + "email": "kontributor@gov.id", + "password": id_generator() + } + self.kriteria = { + "email": "kontributor@gov.id", + "password": id_generator() + } self.admin = get_user_model().objects.create_user( - password="admin123", email="admin@admin.com", is_admin=True) + **self.admin_credential, name="Admin", is_admin=True) self.contributor = get_user_model().objects.create_user( - password="kontributor123", email="kontributor@kontributor.com", is_contributor=True + **self.contributor_credential, name="Kontributor", is_contributor=True ) - self.materi = Materi(id = 1, title="LK 3", author="Agas", uploader=self.contributor, - publisher="Kelas SC", descriptions="COntoh pengerjaan LK 3", status="PENDING").save() - self.url = f"/administration/detail-verif/1/" + self.cover = SimpleUploadedFile( + "cover.jpg", + b"Test file" # no b + ) + self.content = SimpleUploadedFile( + "content.txt", + b"Test file" # no b + ) + Materi(title="Materi 1", author="Agas", uploader=self.contributor, + publisher="Kelas SC", descriptions="Deskripsi Materi 1", + status="PENDING", cover=self.cover, content=self.content, feedback="").save() + models.VerificationSetting( + title="Kriteria 1", description="Deskripsi Kriteria 1").save() + self.materi1 = Materi.objects.first() + self.kriteria1 = models.VerificationSetting.objects.first() + self.url_materi_1 = f'/administration/detail-verif/{self.materi1.id}/' + self.url_dashboard = "/administration/" - def test_dashboard_kontributor_view(self): - found = resolve(self.url) + def test_verification_detail_view(self): + found = resolve(self.url_materi_1) self.assertEqual(found.func.__name__, self.view.as_view().__name__) - def test_dashboard_kontributor_template(self): + def test_verification_detail_template(self): # Login - self.client.login(email="admin@admin.com", - password="admin123") + self.client.login(**self.admin_credential) # Test - response = self.client.get("/administration/setting/verification/") - self.assertTemplateUsed(response, "setting_verifikasi.html") + response = self.client.get(self.url_materi_1) + self.assertTemplateUsed(response, self.template_name) # Logout self.client.logout() - def test_dashboard_kontributor_url(self): + def test_verification_detail_admin_access(self): # Login - self.client.login(email="admin@admin.com", - password="admin123") + self.client.login(**self.admin_credential) # Test - response = self.client.get("/administration/setting/verification/") + response = self.client.get(self.url_materi_1) self.assertEqual(response.status_code, 200) # Logout self.client.logout() + def test_verification_detail_contributor_access(self): + # Login + self.client.login(**self.contributor_credential) + # Test + response = self.client.get(self.url_materi_1) + self.assertEqual(response.status_code, 403) + # Logout + self.client.logout() + + def test_verification_detail_anonymous_access(self): + # Test + response = self.client.get(self.url_materi_1) + self.assertEqual(response.status_code, 403) + + @tag("non-gitlab") + def test_verification_detail_approve(self): + # Login + self.client.login(**self.admin_credential) + + # Book exists in dashboard + response = self.client.get(self.url_dashboard) + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTablePending"}).find( + "td", string="Materi 1").find_parent().get_text() + + self.assertIn('Materi 1', el) + self.assertIn(self.contributor.name, el) + self.assertIn("Diproses", el) + + # acces detail verif + # Test + response = self.client.get(self.url_materi_1) + self.assertContains(response, 'Tampilkan Kriteria') + # aprove + response = self.client.post(self.url_materi_1, { + "action": "approve", "feedback": "materi bagus", f"kriteria-{self.kriteria1.id}": "1"}, follow=True) + + self.assertRedirects(response, self.url_dashboard) + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTableRiwayat"}).find( + "td", string="Materi 1").find_parent().get_text() + + self.assertIn('Materi 1', el) + self.assertIn(self.contributor.name, el) + self.assertIn("Diterima", el) + + # Logout + self.client.logout() + + @tag("non-gitlab") + def test_verification_detail_disapprove(self): + # Login + self.client.login(**self.admin_credential) + + # Book exists in dashboard + response = self.client.get(self.url_dashboard) + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTablePending"}).find( + "td", string="Materi 1").find_parent().get_text() + + self.assertIn('Materi 1', el) + self.assertIn(self.contributor.name, el) + self.assertIn("Diproses", el) + + # acces detail verif + # Test + response = self.client.get(self.url_materi_1) + self.assertContains(response, 'Tampilkan Kriteria') + # aprove + response = self.client.post(self.url_materi_1, { + "action": "disapprove", "feedback": "materi kurang bagus", f"kriteria-{self.kriteria1.id}": "0"}, follow=True) + + self.assertRedirects(response, self.url_dashboard) + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTableRiwayat"}).find( + "td", string="Materi 1").find_parent().get_text() + + self.assertIn('Materi 1', el) + self.assertIn(self.contributor.name, el) + self.assertIn("Ditolak", el) + + # Logout + self.client.logout() + + def test_verification_detail_missing_feedback(self): + # Login + self.client.login(**self.admin_credential) + + # Book exists in dashboard + response = self.client.get(self.url_dashboard) + + self.assertContains(response, 'Materi 1') + self.assertContains(response, "Diproses") + + # acces detail verif + # Test + response = self.client.get(self.url_materi_1) + self.assertContains(response, 'Tampilkan Kriteria') + # missing feedback + response = self.client.post( + self.url_materi_1, {"action": "disapprove"}, follow=True) + self.assertTemplateUsed(response, self.template_name) + self.assertContains(response, 'Terjadi Kesalahan, coba lagi.') + + # Logout + self.client.logout() + + def test_verification_detail_missing_action(self): + # Login + self.client.login(**self.admin_credential) + + # Book exists in dashboard + response = self.client.get(self.url_dashboard) + + self.assertContains(response, 'Materi 1') + self.assertContains(response, "Diproses") + + # acces detail verif + # Test + response = self.client.get(self.url_materi_1) + self.assertContains(response, 'Tampilkan Kriteria') + # missing feedback + response = self.client.post( + self.url_materi_1, {"feedback": "materi kurang bagus"}, follow=True) + self.assertTemplateUsed(response, self.template_name) + self.assertContains(response, 'Terjadi Kesalahan, coba lagi.') + + # Logout + self.client.logout() + class SettingVerifikasiTest(TestCase): def setUp(self): self.client = Client() + self.view = views.VerificationSettingView self.url = "/administration/setting/verification/" + self.template_name = "settings.html" self.model = models.VerificationSetting + self.admin_credential = { + "email": "admin@gov.id", + "password": id_generator() + } + self.contributor_credential = { + "email": "kontributor@gov.id", + "password": id_generator() + } self.admin = get_user_model().objects.create_user( - password="admin123", email="admin@admin.com", is_admin=True) + **self.admin_credential, name="Admin", is_admin=True) self.contributor = get_user_model().objects.create_user( - password="kontributor123", email="kontributor@kontributor.com", is_contributor=True + **self.contributor_credential, name="Kontributor", is_contributor=True ) + def test_setting_verification_view(self): + found = resolve(self.url) + self.assertEqual(found.func.__name__, self.view.as_view().__name__) -class SettingKategoriTest(TestCase): + def test_setting_verification_template(self): + # Login + self.client.login(**self.admin_credential) + # Test + response = self.client.get(self.url) + self.assertTemplateUsed(response, self.template_name) + # Logout + self.client.logout() + + def test_setting_verification_admin_access(self): + # Login + self.client.login(**self.admin_credential) + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + def test_setting_verification_contributor_access(self): + # Login + self.client.login(**self.contributor_credential) + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + # Logout + self.client.logout() + + def test_setting_verification_anonymous_access(self): + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + + def test_setting_verification_add(self): + # Login + self.client.login(**self.admin_credential) + + # Test + response = self.client.get(self.url) + self.assertContains(response, 'Pengaturan Point Verifikasi Materi') + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTable"}).get_text() + + self.assertNotIn('Kriteria 1', el) + self.assertNotIn('Deskripsi Kriteria 1', el) + + # added new item + response = self.client.post(self.url, { + "title": "Kriteria 1", "description": "Deskripsi Kriteria 1"}, follow=True) + + self.assertRedirects(response, self.url) + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTable"}).get_text() + + self.assertIn('Kriteria 1', el) + self.assertIn('Deskripsi Kriteria 1', el) + + # Logout + self.client.logout() + + def test_setting_verification_add_missing_attribute(self): + # Login + self.client.login(**self.admin_credential) + + # added new item + response = self.client.post( + self.url, {"description": "Deskripsi Kriteria 1"}, follow=True) + + self.assertTemplateUsed(response, self.template_name) + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTable"}).get_text() + + self.assertNotIn('Kriteria 1', el) + self.assertNotIn('Deskripsi Kriteria 1', el) + # Logout + self.client.logout() + + +class SettingCategoriTest(TestCase): def setUp(self): self.client = Client() + self.view = views.CategorySettingView self.url = "/administration/setting/category/" + self.template_name = "settings.html" self.model = Category + self.admin_credential = { + "email": "admin@gov.id", + "password": id_generator() + } + self.contributor_credential = { + "email": "kontributor@gov.id", + "password": id_generator() + } self.admin = get_user_model().objects.create_user( - password="admin123", email="admin@admin.com", is_admin=True) + **self.admin_credential, name="Admin", is_admin=True) self.contributor = get_user_model().objects.create_user( - password="kontributor123", email="kontributor@kontributor.com", is_contributor=True + **self.contributor_credential, name="Kontributor", is_contributor=True ) + + def test_setting_category_view(self): + found = resolve(self.url) + self.assertEqual(found.func.__name__, self.view.as_view().__name__) + + def test_setting_category_template(self): + # Login + self.client.login(**self.admin_credential) + # Test + response = self.client.get(self.url) + self.assertTemplateUsed(response, self.template_name) + # Logout + self.client.logout() + + def test_setting_category_admin_access(self): + # Login + self.client.login(**self.admin_credential) + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + def test_setting_category_contributor_access(self): + # Login + self.client.login(**self.contributor_credential) + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + # Logout + self.client.logout() + + def test_setting_category_anonymous_access(self): + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + + def test_setting_category_add(self): + # Login + self.client.login(**self.admin_credential) + + # Test + response = self.client.get(self.url) + self.assertContains(response, 'Pengaturan Kategori Materi') + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTable"}).get_text() + + self.assertNotIn('Kategori 1', el) + self.assertNotIn('Deskripsi Kategori 1', el) + + # added new item + response = self.client.post(self.url, { + "name": "Kategori 1", "description": "Deskripsi Kategori 1"}, follow=True) + + self.assertRedirects(response, self.url) + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTable"}).get_text() + + self.assertIn('Kategori 1', el) + self.assertIn('Deskripsi Kategori 1', el) + + # Logout + self.client.logout() + + def test_setting_category_add_missing_attribute(self): + # Login + self.client.login(**self.admin_credential) + + # added new item + response = self.client.post( + self.url, {"description": "Deskripsi Kategori 1"}, follow=True) + + self.assertTemplateUsed(response, self.template_name) + + bs = BeautifulSoup(response.rendered_content, features="html.parser") + el = bs.find("table", {"id": "dataTable"}).get_text() + + self.assertNotIn('Kategori 1', el) + self.assertNotIn('Deskripsi Kategori 1', el) + # Logout + self.client.logout() diff --git a/administration/utils.py b/administration/utils.py new file mode 100644 index 0000000..1882fd7 --- /dev/null +++ b/administration/utils.py @@ -0,0 +1,5 @@ +import string +import random + +def id_generator(size=6, chars=string.ascii_uppercase + string.digits): + return ''.join(random.choice(chars) for _ in range(size)) \ No newline at end of file diff --git a/administration/views.py b/administration/views.py index cf4b189..6a11b59 100644 --- a/administration/views.py +++ b/administration/views.py @@ -6,7 +6,7 @@ from django.views.generic import TemplateView from app.models import Category, Materi from .forms import CategoryForm, VerificationSettingForm -from .models import VerificationSetting +from .models import VerificationSetting, VerificationReport # Create your views here. @@ -20,7 +20,10 @@ class VerificationView(TemplateView): def get_context_data(self, **kwargs): context = super(VerificationView, self).get_context_data(**kwargs) - context["materi_list"] = Materi.objects.filter(status='PENDING') + context["materi_list_pending"] = Materi.objects.filter( + status='PENDING') + context["materi_list_history"] = Materi.objects.exclude( + status='PENDING') return context def get(self, request, *args, **kwargs): @@ -39,19 +42,41 @@ class DetailVerificationView(TemplateView): def get_context_data(self, **kwargs): context = super(DetailVerificationView, self).get_context_data(**kwargs) - context["materi_data"] = get_object_or_404(Materi, pk=kwargs["pk"]) + materi = get_object_or_404(Materi, pk=kwargs["pk"]) + context["materi_data"] = materi context["kriteria_list"] = VerificationSetting.objects.filter( archived=False) + riwayat = True if materi.status != "PENDING" else False + context["riwayat"] = riwayat + context["verification_report"] = materi.verificationreport_set.first() return context def post(self, request, *args, **kwargs): materi = get_object_or_404(Materi, pk=kwargs["pk"]) - feedback = request.POST.get("feedback") - if request.POST.get("action") == "approve": + feedback = request.POST.get("feedback", "") + action = request.POST.get("action", None) + + report = {} + kriteria = [] + for item in request.POST.items(): + if "kriteria" in item[0]: + verification_item_id = item[0].split("-")[1] + verif_obj = VerificationSetting.objects.get( + id=int(verification_item_id)) + kriteria_value = { + "title": verif_obj.title, + "status": True if item[1] == "1" else False + } + kriteria.append(kriteria_value) + + report["kriteria"] = kriteria + report["feedback"] = feedback + + if action == "approve" and feedback != "": materi.status = "APPROVE" materi.feedback = feedback materi.save() - elif request.POST.get("action") == "disapprove": + elif action == "disapprove" and feedback != "": materi.status = "DISAPPROVE" materi.feedback = feedback materi.save() @@ -59,6 +84,9 @@ class DetailVerificationView(TemplateView): context = self.get_context_data(**kwargs) context["error"] = True return self.render_to_response(context=context) + verif_report = VerificationReport( + report=report, materi=materi, user=self.request.user, status=materi.get_status_display()) + verif_report.save() return HttpResponseRedirect("/administration/") def get(self, request, *args, **kwargs): @@ -67,62 +95,62 @@ class DetailVerificationView(TemplateView): class VerificationSettingView(TemplateView): - template_name = "setting_verifikasi.html" + template_name = "settings.html" + + def dispatch(self, request, *args, **kwargs): + if not request.user.is_authenticated or not request.user.is_admin: + raise PermissionDenied(request) + return super(VerificationSettingView, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(VerificationSettingView, self).get_context_data(**kwargs) - context["verification_settings"] = VerificationSetting.objects.filter( + context["items"] = VerificationSetting.objects.filter( archived=False) + context["page_title"] = "Pengaturan Point Verifikasi Materi" return context def get(self, request, *args, **kwargs): - if request.user.is_authenticated == False or request.user.is_admin != True: - raise PermissionDenied(request) - else: - context = self.get_context_data(**kwargs) - context["form"] = VerificationSettingForm() - return self.render_to_response(context=context) + context = self.get_context_data(**kwargs) + context["form"] = VerificationSettingForm() + return self.render_to_response(context=context) def post(self, request, *args, **kwargs): - if request.user.is_authenticated == False or request.user.is_admin != True: - raise PermissionDenied(request) + form = VerificationSettingForm(request.POST) + if form.is_valid(): + form.save() + return HttpResponseRedirect("/administration/setting/verification/") else: - form = VerificationSettingForm(request.POST) - if form.is_valid(): - form.save() - return HttpResponseRedirect("/administration/setting/verification/") - else: - context = self.get_context_data(**kwargs) - context["form"] = form - return self.render_to_response(context) + context = self.get_context_data(**kwargs) + context["form"] = form + return self.render_to_response(context) class CategorySettingView(TemplateView): - template_name = "setting_category.html" + template_name = "settings.html" + + def dispatch(self, request, *args, **kwargs): + if not request.user.is_authenticated or not request.user.is_admin: + raise PermissionDenied(request) + return super(CategorySettingView, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(CategorySettingView, self).get_context_data(**kwargs) - context["category_settings"] = Category.objects.all() + context["items"] = Category.objects.all() + context["page_title"] = "Pengaturan Kategori Materi" return context def get(self, request, *args, **kwargs): - if request.user.is_authenticated == False or request.user.is_admin != True: - raise PermissionDenied(request) - else: - context = self.get_context_data(**kwargs) - context["form"] = CategoryForm() - return self.render_to_response(context=context) + context = self.get_context_data(**kwargs) + context["form"] = CategoryForm() + return self.render_to_response(context=context) def post(self, request, *args, **kwargs): - if request.user.is_authenticated == False or request.user.is_admin != True: - raise PermissionDenied(request) + form = CategoryForm(request.POST) + if form.is_valid(): + form.save() + return HttpResponseRedirect("/administration/setting/category/") else: - form = CategoryForm(request.POST) - if form.is_valid(): - form.save() - return HttpResponseRedirect("/administration/setting/category/") - else: - context = self.get_context_data(**kwargs) - context["form"] = form - return self.render_to_response(context) + context = self.get_context_data(**kwargs) + context["form"] = form + return self.render_to_response(context) diff --git a/app/forms.py b/app/forms.py index a146c35..28fa493 100644 --- a/app/forms.py +++ b/app/forms.py @@ -1,7 +1,7 @@ from django import forms from app.models import Materi - +from authentication.models import User class UploadMateriForm(forms.ModelForm): class Meta: @@ -12,3 +12,13 @@ class UploadMateriForm(forms.ModelForm): super(UploadMateriForm, self).__init__(*args, **kwargs) for field_name, field in self.fields.items(): field.widget.attrs["class"] = "form-control" + +class SuntingProfilForm(forms.ModelForm): + class Meta: + model = User + fields = ["profile_picture", "linkedin", "facebook", "twitter", "instagram", "biography"] + + def __init__(self, *args, **kwargs): + super(SuntingProfilForm, self).__init__(*args, **kwargs) + for field_name, field in self.fields.items(): + field.widget.attrs["class"] = "form-control" \ No newline at end of file diff --git a/app/migrations/0005_auto_20200502_0145.py b/app/migrations/0005_auto_20200502_0145.py new file mode 100644 index 0000000..3357a70 --- /dev/null +++ b/app/migrations/0005_auto_20200502_0145.py @@ -0,0 +1,27 @@ +# Generated by Django 3.0.3 on 2020-05-01 18:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0004_merge_20200430_1316'), + ] + + operations = [ + migrations.RemoveField( + model_name='materi', + name='comments', + ), + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='d28422', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='54fdda012cd44f01b74545eff01a8225', max_length=100), + ), + ] diff --git a/app/migrations/0006_auto_20200502_0147.py b/app/migrations/0006_auto_20200502_0147.py new file mode 100644 index 0000000..8d2a649 --- /dev/null +++ b/app/migrations/0006_auto_20200502_0147.py @@ -0,0 +1,29 @@ +# Generated by Django 3.0.3 on 2020-05-01 18:47 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0005_auto_20200502_0145'), + ] + + operations = [ + migrations.AddField( + model_name='comment', + name='materi', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='app.Materi'), + ), + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='01560e', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='bde24911bda74be5b98a63a2b4df87e0', max_length=100), + ), + ] diff --git a/app/migrations/0007_auto_20200502_0210.py b/app/migrations/0007_auto_20200502_0210.py new file mode 100644 index 0000000..083e3b1 --- /dev/null +++ b/app/migrations/0007_auto_20200502_0210.py @@ -0,0 +1,28 @@ +# Generated by Django 3.0.3 on 2020-05-01 19:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0006_auto_20200502_0147'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='2d9cff', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='5e6227fb2d464b31b7faef8d92369b55', max_length=100), + ), + migrations.AlterField( + model_name='materi', + name='status', + field=models.CharField(choices=[('PENDING', 'Diproses'), ('APPROVE', 'Diterima'), ('DISAPPROVE', 'Ditolak'), ('REVISION', 'Perbaikan')], default='PENDING', max_length=30), + ), + ] diff --git a/app/migrations/0008_auto_20200502_1956.py b/app/migrations/0008_auto_20200502_1956.py new file mode 100644 index 0000000..0a2bc12 --- /dev/null +++ b/app/migrations/0008_auto_20200502_1956.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-02 12:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0007_auto_20200502_0210'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='847bc2', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='8acb83713b834a8485f94aa9645eb942', max_length=100), + ), + ] diff --git a/app/migrations/0009_auto_20200502_2236.py b/app/migrations/0009_auto_20200502_2236.py new file mode 100644 index 0000000..74a0a5f --- /dev/null +++ b/app/migrations/0009_auto_20200502_2236.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-02 15:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0008_auto_20200502_1956'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='9db0a2', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='979ac2bb22204d85bc2ddd150b7e8721', max_length=100), + ), + ] diff --git a/app/migrations/0010_auto_20200503_1251.py b/app/migrations/0010_auto_20200503_1251.py new file mode 100644 index 0000000..b441aab --- /dev/null +++ b/app/migrations/0010_auto_20200503_1251.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 05:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0009_auto_20200502_2236'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='bd5543', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='a61d7a2001914b70a7fc2f8cf07f6891', max_length=100), + ), + ] diff --git a/app/migrations/0011_auto_20200503_1317.py b/app/migrations/0011_auto_20200503_1317.py new file mode 100644 index 0000000..569af97 --- /dev/null +++ b/app/migrations/0011_auto_20200503_1317.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0010_auto_20200503_1251'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='21d0f6', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='8ee4036bbd2b41cbba93ef2b846056e8', max_length=100), + ), + ] diff --git a/app/migrations/0012_auto_20200503_1317.py b/app/migrations/0012_auto_20200503_1317.py new file mode 100644 index 0000000..ac54ed0 --- /dev/null +++ b/app/migrations/0012_auto_20200503_1317.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0011_auto_20200503_1317'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='5d3261', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='95b841fed18f4d48ad9474576f63370d', max_length=100), + ), + ] diff --git a/app/migrations/0013_auto_20200503_1318.py b/app/migrations/0013_auto_20200503_1318.py new file mode 100644 index 0000000..8374608 --- /dev/null +++ b/app/migrations/0013_auto_20200503_1318.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0012_auto_20200503_1317'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='262479', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='3f84f16209e54bceb120a018d4467e62', max_length=100), + ), + ] diff --git a/app/migrations/0014_auto_20200503_1319.py b/app/migrations/0014_auto_20200503_1319.py new file mode 100644 index 0000000..2b801e1 --- /dev/null +++ b/app/migrations/0014_auto_20200503_1319.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0013_auto_20200503_1318'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='9dcd37', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='ca93d58ee8df4920b210b987baf429c7', max_length=100), + ), + ] diff --git a/app/migrations/0015_auto_20200503_1320.py b/app/migrations/0015_auto_20200503_1320.py new file mode 100644 index 0000000..a1ec0c8 --- /dev/null +++ b/app/migrations/0015_auto_20200503_1320.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0014_auto_20200503_1319'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='187c5a', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='bc26132c63084d698ea56541e4d0eb48', max_length=100), + ), + ] diff --git a/app/migrations/0016_auto_20200503_1320.py b/app/migrations/0016_auto_20200503_1320.py new file mode 100644 index 0000000..7cbe3a2 --- /dev/null +++ b/app/migrations/0016_auto_20200503_1320.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0015_auto_20200503_1320'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='0347fe', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='c40086744745440eac5e3c817965c06a', max_length=100), + ), + ] diff --git a/app/migrations/0017_auto_20200503_1326.py b/app/migrations/0017_auto_20200503_1326.py new file mode 100644 index 0000000..5923b34 --- /dev/null +++ b/app/migrations/0017_auto_20200503_1326.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0016_auto_20200503_1320'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='cca895', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='944bed9a78ee4868a7f87a0c22bda323', max_length=100), + ), + ] diff --git a/app/migrations/0018_auto_20200504_0735.py b/app/migrations/0018_auto_20200504_0735.py new file mode 100644 index 0000000..a52f37e --- /dev/null +++ b/app/migrations/0018_auto_20200504_0735.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-04 00:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0017_auto_20200503_1326'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='8e151a', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='083b97d1d2cc410d88d2b5ea9b2bb24b', max_length=100), + ), + ] diff --git a/app/migrations/0019_auto_20200504_0812.py b/app/migrations/0019_auto_20200504_0812.py new file mode 100644 index 0000000..db599e7 --- /dev/null +++ b/app/migrations/0019_auto_20200504_0812.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.3 on 2020-05-04 01:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0018_auto_20200504_0735'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='profile', + field=models.CharField(default='11395a', max_length=100), + ), + migrations.AlterField( + model_name='comment', + name='user', + field=models.CharField(default='313ee3eda64d4470bc571298c89f4012', max_length=100), + ), + ] diff --git a/app/models.py b/app/models.py index 59be2b4..e04c618 100644 --- a/app/models.py +++ b/app/models.py @@ -8,7 +8,7 @@ from authentication.models import User VERIFICATION_STATUS = [ ("PENDING", "Diproses"), ("APPROVE", "Diterima"), - ("DISAPROVE", "Ditolak"), + ("DISAPPROVE", "Ditolak"), ("REVISION", "Perbaikan"), ] @@ -33,15 +33,6 @@ class Category(models.Model): return self.name -class Comment(models.Model): - user = models.CharField(max_length=100, default=getRandomUserId()) - profile = models.CharField(max_length=100, default=getRandomColor()) - comment = models.CharField(max_length=150, default="comments") - - def __str__(self): - return self.user - - class Materi(models.Model): # TODO: file fields, cover ubah jadi image fields, uploader jadi one to one kontributor cover = models.ImageField() @@ -52,8 +43,17 @@ class Materi(models.Model): uploader = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) publisher = models.CharField(max_length=30, default="publiser") descriptions = models.TextField(default="descriptions") - status = models.CharField(max_length=30, choices=VERIFICATION_STATUS, default=VERIFICATION_STATUS[0][0]) + status = models.CharField( + max_length=30, choices=VERIFICATION_STATUS, default=VERIFICATION_STATUS[0][0]) categories = models.ManyToManyField(Category) - comments = models.ManyToManyField(Comment) feedback = models.TextField(blank=True, default="") - \ No newline at end of file + + +class Comment(models.Model): + user = models.CharField(max_length=100, default=getRandomUserId()) + profile = models.CharField(max_length=100, default=getRandomColor()) + comment = models.CharField(max_length=150, default="comments") + materi = models.ForeignKey(Materi, models.SET_NULL, null=True) + + def __str__(self): + return self.user diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index fbfe574..2e99f5e 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -44,14 +44,19 @@ <hr class="sidebar-divider my-0"> <!-- Nav Item - Dashboard --> + <li class="nav-item"> + <a class="nav-link" href="{% url 'unggah' %}"> + <span>Unggah Materi</span></a> + </li> + <li class="nav-item"> <a class="nav-link" href="{% url 'dashboard' %}"> - <span>Beranda</span></a> + <span>Riwayat Unggah</span></a> </li> <li class="nav-item"> - <a class="nav-link" href="{% url 'unggah' %}"> - <span>Unggah Materi</span></a> + <a class="nav-link" href="#"> + <span>Statisik Materi</span></a> </li> </ul> @@ -77,8 +82,8 @@ <ul class="navbar-nav ml-auto"> <li class="nav-item"> - <a class="nav-link" href="/unggah/"> - <span class="mr-2 d-none d-lg-inline text-gray-600 small">Unggah</span> + <a class="nav-link" href="/dashboard/"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">Dasbor</span> </a> </li> @@ -94,8 +99,8 @@ <li class="nav-item dropdown no-arrow"> <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> - <span class="mr-2 d-none d-lg-inline text-gray-600 small">Admin</span> - <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">{{ user.name }}</span> + <img class="img-profile rounded-circle" src="{{ user.profile_picture.url}}"> </a> </li> @@ -107,6 +112,53 @@ <!-- Begin Page Content --> <div class="container-fluid"> + <!-- Page Heading --> + <h1 class="h3 mb-2 text-gray-800">Riwayat Unggah</h1> + <p class="mb-4">Tekan tombol detail untuk informasi lebih lanjut tentang materi</p> + + <!-- DataTales Example --> + <div class="card shadow mb-4"> + <div class="card-header py-3"> + <h6 class="m-0 font-weight-bold text-primary">Tabel Riwayat Unggah</h6> + </div> + <div class="card-body"> + <div class="table-responsive"> + <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0"> + <thead> + <tr> + <th>Judul Materi</th> + <th>Pembuat Materi</th> + <th>Status</th> + <th>Detail</th> + </tr> + </thead> + <tfoot> + <tr> + <th>Judul Materi</th> + <th>Pembuat Materi</th> + <th>Status</th> + <th>Detail</th> + </tr> + </tfoot> + <tbody> + {% for materi in materi_list %} + <tr> + <td>{{materi.title}}</td> + <td>{{materi.author}}</td> + <td>{{materi.status}}</td> + <td class="verif-buttons"> + <a href="/dashboard/detail-materi/{{materi.id}}/" class="accept-button" + style="background-color:#4e73df">Detail + </a> + </td> + </tr> + {% endfor %} + </tbody> + </table> + </div> + </div> + </div> + </div> <!-- /.container-fluid --> diff --git a/app/templates/detail_materi_kontributor.html b/app/templates/detail_materi_kontributor.html new file mode 100644 index 0000000..3944a9e --- /dev/null +++ b/app/templates/detail_materi_kontributor.html @@ -0,0 +1,110 @@ +{% extends 'base.html' %} +{% load static %} + +{% block header %} +<link rel="stylesheet" type="text/css" href="{% static 'app/css/detail_materi.css' %}"> +<link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;1,100&display=swap" rel="stylesheet"> +{% endblock header %} + +{% block title %} +Materi +{% endblock title %} + +{% block content %} + {% block verification %} {% endblock verification %} + <div class="container"> + <div class="row materi-data"> + <div class="col col-3 cover"> + <img src={{materi_data.cover.url}} alt="cover"> + </div> + <div class="col col-6 ml-3 book"> + <h2>{{materi_data.title}}</h2> + <div class="category-wrapper"> + {% for category in materi_data.categories.all %} + <span class="mr-1">#{{category.name}}</span> + {% endfor %} + </div> + <div class="info-wrapper"> + <div class="info" id="1"> + <dt class="col col-4"> + <p class="info-name">Penulis</p> + </dt> + <dd> + <p class="info-content">{{materi_data.author}}</p> + </dd> + </div> + <div class="info" id="1"> + <dt class="col col-4"> + <p class="info-name">Penerbit</p> + </dt> + <dd> + <p class="info-content">{{materi_data.publisher}}</p> + </dd> + </div> + <div class="info" id="1"> + <dt class="col col-4"> + <p class="info-name">Jumlah Halaman</p> + </dt> + <dd> + <p class="info-content">{{materi_data.author}}</p> + </dd> + </div> + <div class="info" id="1"> + <dt class="col col-4"> + <p class="info-name">Ukuran File</p> + </dt> + <dd> + <p class="info-content">{{materi_data.content.size|filesizeformat}}</p> + </dd> + </div> + </div> + <a href="{% url 'view-materi' materi_data.id %}" class="btn btn-link btn-book shadow-sm p-2 mb-1 bg-white rounded">Baca</a> + <a href="{% url 'download-materi' materi_data.id %}" class="btn btn-link btn-book shadow-sm p-2 mb-1 bg-white rounded">Unduh</a> + <button class="btn btn-link btn-book shadow-sm p-2 mb-1 bg-white rounded">Bagikan</button> + </div> + </div> + <div class="row menu-wrapper"> + <nav class="navbar navbar-expand-sm"> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" href="#section1">Deskripsi</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="#section2">Komentar</a> + </li> + </ul> + </nav> + <div id="section1" class="container-fluid description-wrapper"> + <h1>Deskripsi</h1> + <div class="col col-8 description"> + <p>{{materi_data.descriptions}}</p> + </div> + </div> + <div id="section2" class="container-fluid comments-wrapper"> + <h1>Komentar</h1> + <div class="add-comments col col-8 "> + <form> + <div class="form-group"> + <textarea placeholder="komentar..." + class="form-control mb-2" + id="exampleFormControlTextarea1" + rows="3"> + </textarea> + <button type="submit" class="btn btn-book shadow-sm p-2 mb-1 bg-white rounded">Confirm identity</button> + </div> + </form> + + </div> + {% for comment in materi_data.comments.all %} + <div class="col col-8 comment shadow-sm p-3 mb-1 bg-white rounded"> + <div class="user"> + <span class="profile"></span> + <p><b>{{comment.user}}</b></p> + </div> + <p class="text">{{comment.comment}}</p> + </div> + {% endfor %} + </div> + </div> + </div> +{% endblock content %} diff --git a/app/templates/profil.html b/app/templates/profil.html new file mode 100644 index 0000000..15ee39d --- /dev/null +++ b/app/templates/profil.html @@ -0,0 +1,198 @@ +{% load static %} + +<!DOCTYPE html> +<html lang="en"> + +<head> + + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content=""> + <meta name="author" content=""> + + <title>Profil Kontributor</title> + + <!-- Custom fonts for this template --> + <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet"> + + <!-- Custom styles for this template --> + <link href="{% static 'css/sb-admin-2.min.css' %}" rel="stylesheet"> + <link rel="stylesheet" href="{% static 'css/button.css' %}"> + + <!-- Custom styles for this page --> + <link href="{% static 'vendor/datatables/dataTables.bootstrap4.min.css' %}" rel="stylesheet"> + +</head> + +<body id="page-top" style="font-family: 'Poppins', sans-serif;"> + + <!-- Page Wrapper --> + <div id="wrapper"> + + <!-- Sidebar --> + <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar"> + + <!-- Sidebar - Brand --> + <a class="sidebar-brand d-flex align-items-center justify-content-center" href="{% url 'daftar_katalog' %}"> + <div class="sidebar-brand-icon rotate-n-15"> + </div> + <div class="sidebar-brand-text mx-3">Digipus</div> + </a> + + <!-- Divider --> + <hr class="sidebar-divider my-0"> + + <!-- Nav Item - Dashboard --> + <li class="nav-item"> + <a class="nav-link" href="/profil/"> + <span>Halaman Profil</span></a> + </li> + + <li class="nav-item"> + <a class="nav-link" href="/sunting/"> + <span>Sunting Profil</span></a> + </li> + + </ul> + <!-- End of Sidebar --> + + <!-- Content Wrapper --> + <div id="content-wrapper" class="d-flex flex-column"> + + <!-- Main Content --> + <div id="content"> + + <!-- Topbar --> + <nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow"> + + <!-- Sidebar Toggle (Topbar) --> + <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> + <i class="fa fa-bars"></i> + </button> + + <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div> + + <!-- Topbar Navbar --> + <ul class="navbar-nav ml-auto"> + + <li class="nav-item"> + <a class="nav-link" href="/dashboard/"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">Dasbor</span> + </a> + </li> + + <li class="nav-item"> + <a class="nav-link" href="/profil/"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">Profil</span> + </a> + </li> + + <div class="topbar-divider d-none d-sm-block"></div> + + <!-- Nav Item - User Information --> + <li class="nav-item dropdown no-arrow"> + <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" + aria-haspopup="true" aria-expanded="false"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">{{ user.name }}</span> + <img class="img-profile rounded-circle" src="{{ user.profile_picture.url }}"> + </a> + </li> + + </ul> + + </nav> + <!-- End of Topbar --> + + <!-- Begin Page Content --> + <div class="container-fluid"> + <div class="profile-content white-text"> + <div> + <img src="{{ user.profile_picture.url }}" alt="Photo" class="img-thumbnail"></img> + <div class="profile-margin"></div> + <h2>{{ user.name }}</h2> + <h4>{{ user.email }}</h4> + <h4>{{ user.biography }}</h4> + <div class="profile-margin"></div> + <table> + <tr> + <td class="profile-data">Instansi</td> + <td>{{ user.instansi }}</td> + </tr> + + <td class="profile-data">LinkedIn</td> + <td><a href="https://linkedin.com">{{ user.linkedin }}</a></td> + </tr> + + <tr> + <td class="profile-data">Facebook</td> + <td><a href="https://facebook.com">{{ user.facebook }}</a></td> + </tr> + + <tr> + <td class="profile-data">Twitter</td> + <td><a href="https://twitter.com">{{ user.twitter }}</a></td> + </tr> + + <tr> + <td class="profile-data">Instagram</td> + <td><a href="https://instagram.com">{{ user.instagram }}</a></td> + </tr> + </table> + </div> + </div> + </div> + <!-- /.container-fluid --> + + </div> + <!-- End of Main Content --> + + <!-- Footer --> + <footer class="sticky-footer bg-white"> + <div class="container my-auto"> + <div class="copyright text-center my-auto"> + <span>Copyright © Diskominfo Kota Depok 2020</span> + </div> + </div> + </footer> + <!-- End of Footer --> + + </div> + <!-- End of Content Wrapper --> + + </div> + <!-- End of Page Wrapper --> + + <!-- Scroll to Top Button--> + <a class="scroll-to-top rounded" href="#page-top"> + <i class="fas fa-angle-up"></i> + </a> + + <!-- Bootstrap core JavaScript--> + <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" + integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" + crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" + integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" + crossorigin="anonymous"></script> + <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" + integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" + crossorigin="anonymous"></script> + + <!-- Core plugin JavaScript--> + <script src="https://code.jquery.com/jquery-3.5.0.min.js" + integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script> + + <!-- Custom scripts for all pages--> + <script src="{% static 'js/sb-admin-2.min.js' %}"></script> + + <!-- Page level plugins --> + <script src="{% static 'vendor/datatables/jquery.dataTables.min.js' %}"></script> + <script src="{% static 'vendor/datatables/dataTables.bootstrap4.min.js' %}"></script> + + <!-- Page level custom scripts --> + <script src="{% static 'js/demo/datatables-demo.js' %}"></script> + +</body> + +</html> \ No newline at end of file diff --git a/app/templates/sunting.html b/app/templates/sunting.html new file mode 100644 index 0000000..e0e6b93 --- /dev/null +++ b/app/templates/sunting.html @@ -0,0 +1,167 @@ +{% load static %} + +<!DOCTYPE html> +<html lang="en"> + +<head> + + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content=""> + <meta name="author" content=""> + + <title>Profil Kontributor</title> + + <!-- Custom fonts for this template --> + <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet"> + + <!-- Custom styles for this template --> + <link href="{% static 'css/sb-admin-2.min.css' %}" rel="stylesheet"> + <link rel="stylesheet" href="{% static 'css/button.css' %}"> + + <!-- Custom styles for this page --> + <link href="{% static 'vendor/datatables/dataTables.bootstrap4.min.css' %}" rel="stylesheet"> + +</head> + +<body id="page-top" style="font-family: 'Poppins', sans-serif;"> + + <!-- Page Wrapper --> + <div id="wrapper"> + + <!-- Sidebar --> + <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar"> + + <!-- Sidebar - Brand --> + <a class="sidebar-brand d-flex align-items-center justify-content-center" href="{% url 'daftar_katalog' %}"> + <div class="sidebar-brand-icon rotate-n-15"> + </div> + <div class="sidebar-brand-text mx-3">Digipus</div> + </a> + + <!-- Divider --> + <hr class="sidebar-divider my-0"> + + <!-- Nav Item - Dashboard --> + <li class="nav-item"> + <a class="nav-link" href="{% url 'profil' %}"> + <span>Halaman Profil</span></a> + </li> + + <li class="nav-item"> + <a class="nav-link" href="{% url 'sunting' %}"> + <span>Sunting Profil</span></a> + </li> + + </ul> + <!-- End of Sidebar --> + + <!-- Content Wrapper --> + <div id="content-wrapper" class="d-flex flex-column"> + + <!-- Main Content --> + <div id="content"> + + <!-- Topbar --> + <nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow"> + + <!-- Sidebar Toggle (Topbar) --> + <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> + <i class="fa fa-bars"></i> + </button> + + <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div> + + <!-- Topbar Navbar --> + <ul class="navbar-nav ml-auto"> + + <li class="nav-item"> + <a class="nav-link" href="/profil/"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">Profil</span> + </a> + </li> + + <li class="nav-item"> + <a class="nav-link" href="/dashboard/"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">Dasbor</span> + </a> + </li> + + <div class="topbar-divider d-none d-sm-block"></div> + + <!-- Nav Item - User Information --> + <li class="nav-item dropdown no-arrow"> + <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" + data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">{{ user.name }}</span> + <img class="img-profile rounded-circle" + src="{{ user.profile_picture.url }}"> + </a> + </li> + + </ul> + + </nav> + <!-- End of Topbar --> + + <!-- Begin Page Content --> + <div class="container-fluid"> + <div class="container"> + <div class="col-20"> + <h1 class="mt-2">Sunting Profil</h1> + <hr class="mt-0 mb-4"> + <form id="add_form" method="POST" action="{% url 'sunting' %}" novalidate enctype="multipart/form-data"> + {% csrf_token %} + {% for field in form %} + <div class="col-md-6"> + <div class="fieldWrapper"> + {{ field.label_tag }} {{ field }} + {{ field.errors }} + {% if field.help_text %} + <p class="help">{{ field.help_text|safe }}</p> + {% endif %} + </div> + </div> + {% endfor %} + <div class="form-margin"></div> + <div class="col-md-6"> + <div class="fieldWrapper"> + <button type="submit" class="btn btn-success" style="background-color: #615CFD; border-color: #615CFD;">Simpan</button> + </div> + </div> + </form> + </div> + </div> + </div> + <!-- /.container-fluid --> + + </div> + <!-- End of Main Content --> + + <!-- Footer --> + <footer class="sticky-footer bg-white"> + <div class="container my-auto"> + <div class="copyright text-center my-auto"> + <span>Copyright © Diskominfo Kota Depok 2020</span> + </div> + </div> + </footer> + <!-- End of Footer --> + + </div> + <!-- End of Content Wrapper --> + + </div> + <!-- End of Page Wrapper --> + + <!-- Scroll to Top Button--> + <a class="scroll-to-top rounded" href="#page-top"> + <i class="fas fa-angle-up"></i> + </a> + + + +</body> + +</html> \ No newline at end of file diff --git a/app/templates/unggah.html b/app/templates/unggah.html index 97d0083..058b6f0 100644 --- a/app/templates/unggah.html +++ b/app/templates/unggah.html @@ -44,14 +44,22 @@ <hr class="sidebar-divider my-0"> <!-- Nav Item - Dashboard --> + <li class="nav-item"> + <a class="nav-link" href="{% url 'unggah' %}"> + <span>Unggah Materi</span> + </a> + </li> + <li class="nav-item"> <a class="nav-link" href="{% url 'dashboard' %}"> - <span>Beranda</span></a> + <span>Riwayat Unggah</span> + </a> </li> - + <li class="nav-item"> - <a class="nav-link" href="{% url 'unggah' %}"> - <span>Unggah Materi</span></a> + <a class="nav-link" href="#"> + <span>Statisik Materi</span> + </a> </li> </ul> @@ -77,8 +85,8 @@ <ul class="navbar-nav ml-auto"> <li class="nav-item"> - <a class="nav-link" href="/unggah/"> - <span class="mr-2 d-none d-lg-inline text-gray-600 small">Unggah</span> + <a class="nav-link" href="/dashboard/"> + <span class="mr-2 d-none d-lg-inline text-gray-600 small">Dasbor</span> </a> </li> @@ -115,7 +123,7 @@ <form form id="add_form" method="POST" action="" novalidate enctype="multipart/form-data"> {% csrf_token %} - {% for field in form%} + {% for field in form %} <div class="col-md-6"> <div class="fieldWrapper"> {{ field.label_tag }} {{ field }} diff --git a/app/tests.py b/app/tests.py index 845c09d..45ddd3d 100644 --- a/app/tests.py +++ b/app/tests.py @@ -4,7 +4,7 @@ from django.core import serializers from django.test import Client, TestCase, RequestFactory from django.urls import resolve -from .views import DaftarKatalog, DetailMateri, DashboardKontributorView +from .views import DaftarKatalog, DetailMateri, DashboardKontributorView, ProfilKontributorView, SuntingProfilView, DetailMateriKontributorView from .models import Materi, Category, Comment from django.core import serializers import json @@ -204,4 +204,133 @@ class DashboardKontributorViewTest(TestCase): # Test response = self.client.get(self.url) self.assertEqual(response.status_code, 403) + +class ProfilKontributorTest(TestCase): + def setUp(self): + self.client = Client() + self.kontributor = User.objects.create_contributor(email="kontributor@gov.id", + password="kontributor") + self.admin = User.objects.create_admin(email="admin@gov.id", + password="admin") + self.url = "/profil/" + self.view = ProfilKontributorView + self.template_name = "profil.html" + + def test_profil_kontributor_view(self): + found = resolve(self.url) + self.assertEqual(found.func.__name__, self.view.as_view().__name__) + + def test_profil_kontributor_template(self): + # Login + self.client.login(email="kontributor@gov.id", + password="kontributor") + # Test + response = self.client.get(self.url) + self.assertTemplateUsed(response, self.template_name) + # Logout + self.client.logout() + + def test_profil_kontributor_url(self): + # Login + self.client.login(email="kontributor@gov.id", + password="kontributor") + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + def test_profil_kontributor_access(self): + # Kontributor + # Login + self.client.login(email="kontributor@gov.id", + password="kontributor") + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + # Admin + # Login + self.client.login(email="admin@gov.id", + password="admin") + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + # Logout + self.client.logout() + + # Anonim + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 403) + +class SuntingProfilTest(TestCase): + def setUp(self): + self.client = Client() + self.kontributor = User.objects.create_contributor(email="kontributor@gov.id", + password="kontributor") + self.admin = User.objects.create_admin(email="admin@gov.id", + password="admin") + self.url = "/sunting/" + self.view = SuntingProfilView + self.template_name = "sunting.html" + + def test_sunting_profile_view(self): + found = resolve(self.url) + self.assertEqual(found.func.__name__, self.view.as_view().__name__) + + def test_sunting_profile_template(self): + # Login + self.client.login(email="kontributor@gov.id", + password="kontributor") + # Test + response = self.client.get(self.url) + self.assertTemplateUsed(response, self.template_name) + # Logout + self.client.logout() + + def test_sunting_profile_url(self): + # Login + self.client.login(email="kontributor@gov.id", + password="kontributor") + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() + + def test_sunting_profile_access(self): + # Kontributor + # Login + self.client.login(email="kontributor@gov.id", + password="kontributor") + # Test + response = self.client.get(self.url) + self.assertEqual(response.status_code, 200) + # Logout + self.client.logout() +class DetailMateriKontributorTest(TestCase): + def test_detail_materi_using_detail_materi_func(self): + found = resolve("/dashboard/detail-materi/3/") + self.assertEqual(found.func.__name__, DetailMateriKontributorView.as_view().__name__) + + def test_category_models_can_create_new_object(self): + test = Category.objects.create( + id="1", name="medis", description="kategori medis") + countData = Category.objects.all().count() + self.assertEqual(1, countData) + self.assertNotEqual(0, countData) + self.assertEqual(test.__str__(), "medis") + self.assertNotEqual(test.__str__(), "saul") + + def test_comment_models_can_create_new_object(self): + test = Comment.objects.create( + user="saul", profile="121212", comment="232323") + countData = Comment.objects.all().count() + self.assertEqual(1, countData) + self.assertNotEqual(0, countData) + self.assertEqual(test.__str__(), "saul") + self.assertNotEqual(test.__str__(), "userlain") diff --git a/app/urls.py b/app/urls.py index 70ede5b..4889a73 100644 --- a/app/urls.py +++ b/app/urls.py @@ -1,7 +1,7 @@ from django.urls import path, re_path from app import views -from app.views import UploadMateriHTML, DashboardKontributorView, UploadMateriView +from app.views import UploadMateriHTML, DashboardKontributorView, UploadMateriView, ProfilKontributorView, SuntingProfilView, DetailMateriKontributorView urlpatterns = [ path("", views.DaftarKatalog.as_view(), name="daftar_katalog"), @@ -9,7 +9,10 @@ urlpatterns = [ path("materi/<int:pk>/unduh", views.download_materi, name="download-materi"), path("materi/<int:pk>/view", views.view_materi, name="view-materi"), path("dashboard/", DashboardKontributorView.as_view(), name="dashboard"), + path("dashboard/detail-materi/<int:pk>/", views.DetailMateriKontributorView.as_view()), path("unggah/", UploadMateriView.as_view(), name="unggah"), + path("profil/", ProfilKontributorView.as_view(), name="profil"), + path("sunting/", SuntingProfilView.as_view(), name="sunting"), # Matches any html file re_path(r"^.*\.html", views.pages, name="pages"), ] diff --git a/app/views.py b/app/views.py index 2361caf..425f1cb 100644 --- a/app/views.py +++ b/app/views.py @@ -1,6 +1,7 @@ import mimetypes import os +from authentication.models import User from django.conf import settings from django.core import serializers from django.core.exceptions import PermissionDenied @@ -13,7 +14,7 @@ from django.views.generic import TemplateView from django.core import serializers from .models import Materi,Category from django.db.models import Q -from .forms import UploadMateriForm +from .forms import UploadMateriForm, SuntingProfilForm from .models import Category, Materi @@ -27,7 +28,7 @@ class DaftarKatalog(TemplateView): context = self.get_context_data(**kwargs) context["kategori_list"] = Category.objects.all() try: - context["materi_list"] = Materi.objects.all().filter(status = "(\"APPROVE\", \"Diterima\")") + context["materi_list"] = Materi.objects.all().filter(status = "APPROVE") except: context["materi_list"] = None @@ -40,25 +41,18 @@ class DaftarKatalog(TemplateView): Q(descriptions__icontains=getSearch) | Q(publisher__icontains=getSearch) ).distinct() - # list = Materi.objects.filter( - # Q(title__icontains=getSearch) | - # Q(descriptions__icontains=getSearch) | - # Q(author__icontains=getSearch) | - # Q(uploader__icontains=getSearch) | - # Q(publisher__icontains=getSearch) - # ) - context["materi_list"] = list.filter(status = "(\"APPROVE\", \"Diterima\")") + context["materi_list"] = list.filter(status = "APPROVE") getKategori = request.GET.get("kategori") if getKategori: pkGet = request.GET.get("kategori") kategori = Category.objects.get(pk = pkGet) list = Materi.objects.filter(categories = kategori.pk) - context["materi_list"] = list.filter(status = "(\"APPROVE\", \"Diterima\")") + context["materi_list"] = list.filter(status = "APPROVE") getSort = request.GET.get("sort") if getSort: - list = Materi.objects.all().filter(status = "(\"APPROVE\", \"Diterima\")") + list = Materi.objects.all().filter(status = "APPROVE") if(getSort == "judul"): context["materi_list"] = list.order_by('title') elif(getSort == "penulis"): @@ -164,8 +158,85 @@ class DashboardKontributorView(TemplateView): def get(self, request, *args, **kwargs): context = self.get_context_data(**kwargs) + current_user = self.request.user + materi_list = current_user.materi_set.all() + context["materi_list"] = materi_list return self.render_to_response(context) +class DetailMateriKontributorView(TemplateView): + template_name = "detail_materi_kontributor.html" + + def dispatch(self, request, *args, **kwargs): + if not request.user.is_contributor: + raise PermissionDenied(request) + return super(DetailMateriKontributorView, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + return super().get_context_data(**kwargs) + + def get(self, request, *args, **kwargs): + context = self.get_context_data(**kwargs) + context["materi_data"] = get_object_or_404(Materi, pk=kwargs["pk"]) + return self.render_to_response(context) + +class ProfilKontributorView(TemplateView): + template_name = "profil.html" + + def dispatch(self, request, *args, **kwargs): + if not request.user.is_authenticated or not request.user.is_contributor: + raise PermissionDenied(request) + return super(ProfilKontributorView, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(ProfilKontributorView, self).get_context_data(**kwargs) + return context + + def get(self, request, *args, **kwargs): + context = self.get_context_data(**kwargs) + current_user = self.request.user + context["user"] = current_user + return self.render_to_response(context) + +class SuntingProfilView(TemplateView): + template_name = "sunting.html" + + def dispatch(self, request, *args, **kwargs): + if not request.user.is_contributor: + raise PermissionDenied(request) + return super(SuntingProfilView, self).dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super(SuntingProfilView, self).get_context_data(**kwargs) + return context + + def get(self, request, *args, **kwargs): + context = self.get_context_data(**kwargs) + + current_user = self.request.user + context["user"] = current_user + + context["form"] = SuntingProfilForm() + return self.render_to_response(context) + + def post(self, request, *args, **kwargs): + if request.user.is_authenticated == False: + raise PermissionDenied(request) + + form = SuntingProfilForm(request.POST, request.FILES) + if form.is_valid(): + current_user = request.user + current_user.profile_picture = request.FILES["profile_picture"] + current_user.linkedin = request.POST["linkedin"] + current_user.facebook = request.POST["facebook"] + current_user.twitter = request.POST["twitter"] + current_user.instagram = request.POST["instagram"] + current_user.biography = request.POST["biography"] + current_user.save() + return HttpResponseRedirect("/profil/") + else: + context = self.get_context_data(**kwargs) + context["form"] = form + return self.render_to_response(context) def pages(request): context = {} diff --git a/authentication/fixtures/initial.json b/authentication/fixtures/initial.json index 2fba261..4dc60e8 100644 --- a/authentication/fixtures/initial.json +++ b/authentication/fixtures/initial.json @@ -20,6 +20,12 @@ "nik": "", "alamat": "", "nomor_telpon": "", + "linkedin": "", + "facebook": "", + "twitter": "", + "instagram": "", + "biography": "Loren ipsum", + "profile_picture": "default-image.png", "groups": [], "user_permissions": [] } @@ -45,6 +51,12 @@ "nik": "", "alamat": "", "nomor_telpon": "", + "linkedin": "", + "facebook": "", + "twitter": "", + "instagram": "", + "biography": "Loren ipsum", + "profile_picture": "default-image.png", "groups": [], "user_permissions": [] } diff --git a/authentication/migrations/0001_initial.py b/authentication/migrations/0001_initial.py index 3e8e01d..7d2ec0c 100644 --- a/authentication/migrations/0001_initial.py +++ b/authentication/migrations/0001_initial.py @@ -1,9 +1,8 @@ -# Generated by Django 3.0.3 on 2020-04-24 17:06 - -import django.utils.timezone -from django.db import migrations, models +# Generated by Django 3.0.3 on 2020-05-03 06:20 import authentication.models +from django.db import migrations, models +import django.utils.timezone class Migration(migrations.Migration): @@ -11,76 +10,46 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("auth", "0011_update_proxy_permissions"), + ('auth', '0011_update_proxy_permissions'), ] operations = [ migrations.CreateModel( - name="User", + name='User', fields=[ - ("id", models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), - ("password", models.CharField(max_length=128, verbose_name="password")), - ("last_login", models.DateTimeField(blank=True, null=True, verbose_name="last login")), - ( - "is_superuser", - models.BooleanField( - default=False, - help_text="Designates that this user has all permissions without explicitly assigning them.", - verbose_name="superuser status", - ), - ), - ("first_name", models.CharField(blank=True, max_length=30, verbose_name="first name")), - ("last_name", models.CharField(blank=True, max_length=150, verbose_name="last name")), - ( - "is_staff", - models.BooleanField( - default=False, - help_text="Designates whether the user can log into this admin site.", - verbose_name="staff status", - ), - ), - ( - "is_active", - models.BooleanField( - default=True, - help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", - verbose_name="active", - ), - ), - ("date_joined", models.DateTimeField(default=django.utils.timezone.now, verbose_name="date joined")), - ("email", models.EmailField(max_length=254, unique=True)), - ("username", models.CharField(blank=True, default="", max_length=150)), - ("name", models.CharField(max_length=150)), - ("is_admin", models.BooleanField(default=False)), - ("is_contributor", models.BooleanField(default=False)), - ("instansi", models.CharField(max_length=240)), - ("nik", models.CharField(max_length=240)), - ("alamat", models.CharField(max_length=240)), - ("nomor_telpon", models.CharField(max_length=240)), - ( - "groups", - models.ManyToManyField( - blank=True, - help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", - related_name="user_set", - related_query_name="user", - to="auth.Group", - verbose_name="groups", - ), - ), - ( - "user_permissions", - models.ManyToManyField( - blank=True, - help_text="Specific permissions for this user.", - related_name="user_set", - related_query_name="user", - to="auth.Permission", - verbose_name="user permissions", - ), - ), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('email', models.EmailField(max_length=254, unique=True)), + ('username', models.CharField(blank=True, default='', max_length=150)), + ('name', models.CharField(max_length=150)), + ('is_admin', models.BooleanField(default=False)), + ('is_contributor', models.BooleanField(default=False)), + ('instansi', models.CharField(max_length=240)), + ('nik', models.CharField(max_length=240)), + ('alamat', models.CharField(max_length=240)), + ('nomor_telpon', models.CharField(max_length=240)), + ('linkedin', models.URLField(blank=True, default='')), + ('facebook', models.URLField(blank=True, default='')), + ('twitter', models.URLField(blank=True, default='')), + ('instagram', models.URLField(blank=True, default='')), + ('biography', models.TextField(blank=True, default='', max_length=200)), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', authentication.models.CustomUserManager()), ], - options={"verbose_name": "user", "verbose_name_plural": "users", "abstract": False,}, - managers=[("objects", authentication.models.CustomUserManager()),], ), ] diff --git a/authentication/migrations/0002_user_profile_picture.py b/authentication/migrations/0002_user_profile_picture.py new file mode 100644 index 0000000..85a69ed --- /dev/null +++ b/authentication/migrations/0002_user_profile_picture.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.3 on 2020-05-03 06:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('authentication', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='profile_picture', + field=models.ImageField(default='default-image.png', upload_to=''), + ), + ] diff --git a/authentication/migrations/0003_auto_20200504_0735.py b/authentication/migrations/0003_auto_20200504_0735.py new file mode 100644 index 0000000..3414adc --- /dev/null +++ b/authentication/migrations/0003_auto_20200504_0735.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.3 on 2020-05-04 00:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('authentication', '0002_user_profile_picture'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='profile_picture', + field=models.ImageField(default='default-image.png', upload_to='profile_picture/'), + ), + ] diff --git a/authentication/models.py b/authentication/models.py index 16c77e7..14a16e1 100644 --- a/authentication/models.py +++ b/authentication/models.py @@ -72,6 +72,12 @@ class User(AbstractUser): nik = models.CharField(max_length=240) alamat = models.CharField(max_length=240) nomor_telpon = models.CharField(max_length=240) + linkedin = models.URLField(max_length=200, blank=True, default="") + facebook = models.URLField(max_length=200, blank=True, default="") + twitter = models.URLField(max_length=200, blank=True, default="") + instagram = models.URLField(max_length=200, blank=True, default="") + biography = models.TextField(max_length=200, blank=True, default="") + profile_picture = models.ImageField(upload_to='profile_picture/', default='default-image.png') objects = CustomUserManager() diff --git a/digipus/settings.py b/digipus/settings.py index 77d8737..91e0d1b 100644 --- a/digipus/settings.py +++ b/digipus/settings.py @@ -84,6 +84,7 @@ WSGI_APPLICATION = "digipus.wsgi.application" # https://docs.djangoproject.com/en/3.0/ref/settings/#databases is_local = config("IS_LOCAL", cast=bool, default=False) is_heroku = config("IS_HEROKU", cast=bool, default=False) +is_gitlab = config("IS_GITLAB", cast=bool, default=False) if is_local: DATABASES = { @@ -100,6 +101,10 @@ elif is_heroku: DATABASES = {} database_url = os.getenv("DATABASE_URL") DATABASES["default"] = dj_database_url.parse(database_url, conn_max_age=600) +elif is_gitlab: + DATABASES = {} + database_url = config("DATABASE_URL", cast=str, default=False) + DATABASES["default"] = dj_database_url.parse(database_url, conn_max_age=600) else: DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": os.path.join(BASE_DIR, "db.sqlite3"),}} diff --git a/requirements.txt b/requirements.txt index ed8c580..b433b27 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,9 @@ astroid==2.3.3 atomicwrites==1.3.0 attrs==19.3.0 autopep8==1.5 +beautifulsoup4==4.9.0 black==19.10b0 +bs4==0.0.1 cfgv==3.1.0 click==7.1.1 colorama==0.4.3 @@ -13,7 +15,10 @@ distlib==0.3.0 dj-database-url==0.5.0 Django==3.0.3 django-heroku==0.3.1 +entrypoints==0.3 filelock==3.0.12 +flake8==3.7.9 +flake8-isort==3.0.0 gunicorn==20.0.4 identify==1.4.15 importlib-metadata==1.5.2 @@ -31,6 +36,7 @@ pre-commit==2.3.0 psycopg2==2.8.4 py==1.8.1 pycodestyle==2.5.0 +pyflakes==2.1.1 pylint==2.4.4 pylint-django==2.0.15 pylint-plugin-utils==0.6 @@ -42,7 +48,9 @@ pytz==2019.3 PyYAML==5.3.1 regex==2020.4.4 six==1.14.0 +soupsieve==2.0 sqlparse==0.3.1 +testfixtures==6.14.1 toml==0.10.0 typed-ast==1.4.1 virtualenv==20.0.18 diff --git a/staticfiles/css/button.css b/staticfiles/css/button.css index 4b95655..daef6c6 100644 --- a/staticfiles/css/button.css +++ b/staticfiles/css/button.css @@ -47,4 +47,30 @@ border-bottom: 1px solid #d4d4d4; display: flex; flex-direction: row; +} + +.profile-content { + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} + +.img-thumbnail { + border-radius: 50%; + max-width: 200px; + max-height: 200px; +} + +.profile-margin { + margin: 50px; +} + +.form-margin { + margin: 20px; +} + +.profile-data { + font-size: 25px; + padding-right: 50px; } \ No newline at end of file diff --git a/staticfiles/img/hotman.jpg b/staticfiles/img/hotman.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab05be37e54fb0b5bc75b47ff3357db1852c8e29 GIT binary patch literal 131701 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	iKBJu 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 literal 0 HcmV?d00001 -- GitLab