Fakultas Ilmu Komputer UI

Commit b0d2ff7d authored by Nandhika Prayoga's avatar Nandhika Prayoga
Browse files

Merge branch 'master' into '1706039912-41'

# Conflicts:
#   app/tests.py
#   app/views.py
parents 3c733918 fc2849fa
Pipeline #58759 passed with stages
in 15 minutes and 43 seconds
...@@ -15,6 +15,7 @@ media ...@@ -15,6 +15,7 @@ media
/static/ /static/
media/ media/
.coverage .coverage
virtualenv
# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/ # If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/
# in your Git repository. Update and uncomment the following line accordingly. # in your Git repository. Update and uncomment the following line accordingly.
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<!-- Scroll to Top Button--> <!-- Scroll to Top Button-->
<a class="scroll-to-top rounded" href="#page-top"> <a class="scroll-to-top rounded" href="#page-top">
<i class="fas fa-angle-up"></i> <em class="fas fa-angle-up"></em>
</a> </a>
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<html lang="en"> <html lang="en">
<!-- Static assets --> <!-- Static assets -->
<head> <head>
<title>Digipus</title>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <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="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
...@@ -67,7 +68,7 @@ ...@@ -67,7 +68,7 @@
<!-- Scroll to Top Button--> <!-- Scroll to Top Button-->
<a class="scroll-to-top rounded" href="#page-top"> <a class="scroll-to-top rounded" href="#page-top">
<i class="fas fa-angle-up"></i> <em class="fas fa-angle-up"></em>
</a> </a>
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.0}}</div> <div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.0}}</div>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<i class="fas fa-eye" aria-hidden="true"></i> <em class="fas fa-eye" aria-hidden="true"></em>
</div> </div>
</div> </div>
</div> </div>
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.1}}</div> <div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.1}}</div>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<i class="fas fa-download" aria-hidden="true"></i> <em class="fas fa-download" aria-hidden="true"></em>
</div> </div>
</div> </div>
</div> </div>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.2}}</div> <div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.2}}</div>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<i class="fas fa-thumbs-up" aria-hidden="true"></i> <em class="fas fa-thumbs-up" aria-hidden="true"></em>
</div> </div>
</div> </div>
</div> </div>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
<div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.3}}</div> <div class="h5 mb-0 font-weight-bold text-gray-800">{{chart_data.total.3}}</div>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<i class="fas fa-comments fa-2x text-gray-300"></i> <em class="fas fa-comments fa-2x text-gray-300"></em>
</div> </div>
</div> </div>
</div> </div>
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
<!-- <div class="dropdown no-arrow"> <!-- <div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"> aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i> <em class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></em>
</a> </a>
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in"
aria-labelledby="dropdownMenuLink"> aria-labelledby="dropdownMenuLink">
......
...@@ -19,31 +19,46 @@ ...@@ -19,31 +19,46 @@
<h4>{{ user.email }}</h4> <h4>{{ user.email }}</h4>
<h4>{{ user.biography }}</h4> <h4>{{ user.biography }}</h4>
<div class="profile-margin"></div> <div class="profile-margin"></div>
<table> <div class="row">
<tr> <div class="col-md-6 my-auto" style="font-size: 2rem;">
<td class="profile-data">Instansi</td> instansi
<td>{{ user.instansi }}</td> </div>
</tr> <div class="col-md-6 my-auto" style="font-size: 1.2rem;">
{{user.instansi}}
<td class="profile-data">LinkedIn</td> </div>
<td><a href="https://linkedin.com">{{ user.linkedin }}</a></td> </div>
</tr> <div class="row">
<div class="col-md-6 my-auto" style="font-size: 2rem;">
<tr> LinkedIn
<td class="profile-data">Facebook</td> </div>
<td><a href="https://facebook.com">{{ user.facebook }}</a></td> <div class="col-md-6 my-auto" style="font-size: 1.2rem;">
</tr> <a href="https://linkedin.com">{{ user.linkedin }}</a>
</div>
<tr> </div>
<td class="profile-data">Twitter</td> <div class="row">
<td><a href="https://twitter.com">{{ user.twitter }}</a></td> <div class="col-md-6 my-auto" style="font-size: 2rem;">
</tr> Facebook
</div>
<tr> <div class="col-md-6 my-auto" style="font-size: 1.2rem;">
<td class="profile-data">Instagram</td> <a href="https://facebook.com">{{ user.facebook }}</a>
<td><a href="https://instagram.com">{{ user.instagram }}</a></td> </div>
</tr> </div>
</table> <div class="row">
<div class="col-md-6 my-auto" style="font-size: 2rem;">
Twitter
</div>
<div class="col-md-6 my-auto" style="font-size: 1.2rem;">
<a href="https://twitter.com">{{ user.twitter }}</a>
</div>
</div>
<div class="row">
<div class="col-md-6 my-auto" style="font-size: 2rem;">
Instagram
</div>
<div class="col-md-6 my-auto" style="font-size: 1.2rem;">
<a href="https://instagram.com">{{ user.instagram }}</a>
</div>
</div>
<a class="btn btn-primary btn-admin" href="/administration/kelola-admin/">Kembali ke Kelola Admin</a> <a class="btn btn-primary btn-admin" href="/administration/kelola-admin/">Kembali ke Kelola Admin</a>
</div> </div>
</div> </div>
......
...@@ -18,31 +18,46 @@ ...@@ -18,31 +18,46 @@
<h4>{{ user.email }}</h4> <h4>{{ user.email }}</h4>
<h4>{{ user.biography }}</h4> <h4>{{ user.biography }}</h4>
<div class="profile-margin"></div> <div class="profile-margin"></div>
<table> <div class="row">
<tr> <div class="col-md-6 my-auto" style="font-size: 2rem;">
<td class="profile-data">Instansi</td> instansi
<td>{{ user.instansi }}</td> </div>
</tr> <div class="col-md-6 my-auto" style="font-size: 1.2rem;">
{{user.instansi}}
<td class="profile-data">LinkedIn</td> </div>
<td><a href="https://linkedin.com">{{ user.linkedin }}</a></td> </div>
</tr> <div class="row">
<div class="col-md-6 my-auto" style="font-size: 2rem;">
<tr> LinkedIn
<td class="profile-data">Facebook</td> </div>
<td><a href="https://facebook.com">{{ user.facebook }}</a></td> <div class="col-md-6 my-auto" style="font-size: 1.2rem;">
</tr> <a href="https://linkedin.com">{{ user.linkedin }}</a>
</div>
<tr> </div>
<td class="profile-data">Twitter</td> <div class="row">
<td><a href="https://twitter.com">{{ user.twitter }}</a></td> <div class="col-md-6 my-auto" style="font-size: 2rem;">
</tr> Facebook
</div>
<tr> <div class="col-md-6 my-auto" style="font-size: 1.2rem;">
<td class="profile-data">Instagram</td> <a href="https://facebook.com">{{ user.facebook }}</a>
<td><a href="https://instagram.com">{{ user.instagram }}</a></td> </div>
</tr> </div>
</table> <div class="row">
<div class="col-md-6 my-auto" style="font-size: 2rem;">
Twitter
</div>
<div class="col-md-6 my-auto" style="font-size: 1.2rem;">
<a href="https://twitter.com">{{ user.twitter }}</a>
</div>
</div>
<div class="row">
<div class="col-md-6 my-auto" style="font-size: 2rem;">
Instagram
</div>
<div class="col-md-6 my-auto" style="font-size: 1.2rem;">
<a href="https://instagram.com">{{ user.instagram }}</a>
</div>
</div>
<a class="btn btn-primary btn-admin" href="/administration/kelola-kontributor/">Kembali ke Kelola Kontributor</a> <a class="btn btn-primary btn-admin" href="/administration/kelola-kontributor/">Kembali ke Kelola Kontributor</a>
</div> </div>
</div> </div>
......
...@@ -8,7 +8,7 @@ Pratinjau Materi ...@@ -8,7 +8,7 @@ Pratinjau Materi
<!-- Sidebar Toggle (Topbar) --> <!-- Sidebar Toggle (Topbar) -->
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
<i class="fa fa-bars"></i> <em class="fa fa-bars"></em>
</button> </button>
<div class="sidebar-brand-text mx-3">Pratinjau Materi</div> <div class="sidebar-brand-text mx-3">Pratinjau Materi</div>
...@@ -53,7 +53,7 @@ Pratinjau Materi ...@@ -53,7 +53,7 @@ Pratinjau Materi
<div class="info-wrapper"> <div class="info-wrapper">
<div class="info" id="1"> <div class="info" id="1">
<dt class="col col-4"> <dt class="col col-4">
<p class="info-name">Verifikatur</p> <p class="info-name"><strong>Verifikatur</strong></p>
</dt> </dt>
<dd> <dd>
<p class="info-content">{{verification_report.user.name}}</p> <p class="info-content">{{verification_report.user.name}}</p>
...@@ -61,7 +61,7 @@ Pratinjau Materi ...@@ -61,7 +61,7 @@ Pratinjau Materi
</div> </div>
<div class="info" id="1"> <div class="info" id="1">
<dt class="col col-4"> <dt class="col col-4">
<p class="info-name">Waktu Verifikasi</p> <p class="info-name"><strong>Waktu Verifikasi</strong></p>
</dt> </dt>
<dd> <dd>
<p class="info-content">{{verification_report.timestamp}}</p> <p class="info-content">{{verification_report.timestamp}}</p>
...@@ -69,7 +69,7 @@ Pratinjau Materi ...@@ -69,7 +69,7 @@ Pratinjau Materi
</div> </div>
<div class="info" id="1"> <div class="info" id="1">
<dt class="col col-4"> <dt class="col col-4">
<p class="info-name">Status Materi</p> <p class="info-name"><strong>Status Materi</strong></p>
</dt> </dt>
<dd> <dd>
<p class="info-content">{{verification_report.status}}</p> <p class="info-content">{{verification_report.status}}</p>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<div class="card-header py-3"> <div class="card-header py-3">
<div class="d-flex"> <div class="d-flex">
<div class="mr-auto p-2"> <div class="mr-auto p-2">
<h6 class="m-0 font-weight-bold text-primary">Tabel Daftar Admin</h6> <h6 id="table-description" class="m-0 font-weight-bold text-primary">Tabel Daftar Admin</h6>
</div> </div>
<div class="p-2"> <div class="p-2">
<a href="/administration/kelola-admin/tambah/" class="accept-button button-decoration button-header">Buat Akun Baru</a> <a href="/administration/kelola-admin/tambah/" class="accept-button button-decoration button-header">Buat Akun Baru</a>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0"> <table aria-describedby="table-description" class="table table-bordered" id="dataTable">
<thead> <thead>
<tr> <tr>
<th scope="col">Nama</th> <th scope="col">Nama</th>
......
...@@ -13,25 +13,25 @@ ...@@ -13,25 +13,25 @@
<!-- DataTales Example --> <!-- DataTales Example -->
<div class="card shadow mb-4"> <div class="card shadow mb-4">
<div class="card-header py-3"> <div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Tabel Daftar Kontributor</h6> <h6 id="table-description" class="m-0 font-weight-bold text-primary">Tabel Daftar Kontributor</h6>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0"> <table aria-describedby="table-description" class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead> <thead>
<tr> <tr>
<th>Nama</th> <th scope="col">Nama</th>
<th>NIK</th> <th scope="col">NIK</th>
<th>Instansi</th> <th scope="col">Instansi</th>
<th>Detail</th> <th scope="col">Detail</th>
</tr> </tr>
</thead> </thead>
<tfoot> <tfoot>
<tr> <tr>
<th>Nama</th> <th scope="col">Nama</th>
<th>NIK</th> <th scope="col">NIK</th>
<th>Instansi</th> <th scope="col">Instansi</th>
<th>Detail</th> <th scope="col">Detail</th>
</tr> </tr>
</tr> </tr>
</tfoot> </tfoot>
......
...@@ -76,11 +76,11 @@ ...@@ -76,11 +76,11 @@
</div> </div>
<div class="card shadow mb-4"> <div class="card shadow mb-4">
<div class="card-header py-3"> <div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary" id="titleTabelPending">Materi yang Diblokir</h6> <h6 id="table-description" class="m-0 font-weight-bold text-primary" id="titleTabelPending">Materi yang Diblokir</h6>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered" id="dataTablePending" aria-describedby="titleTabelPending"> <table aria-describedby="table-description" class="table table-bordered" id="dataTablePending" aria-describedby="titleTabelPending">
{% if not materi_diblokir %} {% if not materi_diblokir %}
Tidak ada materi yang diblokir Tidak ada materi yang diblokir
{% else %} {% else %}
......
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
<!-- Sidebar Toggle (Topbar) --> <!-- Sidebar Toggle (Topbar) -->
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
<i class="fa fa-bars"></i> <em class="fa fa-bars"></em>
</button> </button>
<div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div> <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div>
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
<!-- Scroll to Top Button--> <!-- Scroll to Top Button-->
<a class="scroll-to-top rounded" href="#page-top"> <a class="scroll-to-top rounded" href="#page-top">
<i class="fas fa-angle-up"></i> <em class="fas fa-angle-up"></em>
</a> </a>
<!-- Bootstrap core JavaScript--> <!-- Bootstrap core JavaScript-->
......
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
<!-- Sidebar Toggle (Topbar) --> <!-- Sidebar Toggle (Topbar) -->
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
<i class="fa fa-bars"></i> <em class="fa fa-bars"></em>
</button> </button>
<div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div> <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div>
...@@ -172,7 +172,7 @@ ...@@ -172,7 +172,7 @@
<label>Deskripsi &nbsp;:</label>{{ form.description }}<br> <label>Deskripsi &nbsp;:</label>{{ form.description }}<br>
<br> <br>
<div class="row"> <div class="row">
<button class="primary_btn save" style="border-radius:20px;" type="submit"><i class="far fa-save"></i> <button class="primary_btn save" style="border-radius:20px;" type="submit"><em class="far fa-save"></em>
Simpan</button> Simpan</button>
</div> </div>
</form> </form>
...@@ -182,24 +182,24 @@ ...@@ -182,24 +182,24 @@
<!-- DataTales Example --> <!-- DataTales Example -->
<div class="card shadow mb-4"> <div class="card shadow mb-4">
<div class="card-header py-3"> <div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Point Verifikasi Materi</h6> <h6 id="table-description" class="m-0 font-weight-bold text-primary">Point Verifikasi Materi</h6>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0"> <table aria-describedby="table-description" class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead> <thead>
<tr> <tr>
<th>Judul Verifikasi</th> <th scope="col">Judul Verifikasi</th>
<th>Deskripsi</th> <th scope="col">Deskripsi</th>
<th></th> <th scope="col"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for item in verification_settings %} {% for item in verification_settings %}
<tr> <tr>
<th>{{item.title}}</th> <th scope="col">{{item.title}}</th>
<th>{{item.description}}</th> <th scope="col">{{item.description}}</th>
<th> </th> <th scope="col"> </th>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
...@@ -232,7 +232,7 @@ ...@@ -232,7 +232,7 @@
<!-- Scroll to Top Button--> <!-- Scroll to Top Button-->
<a class="scroll-to-top rounded" href="#page-top"> <a class="scroll-to-top rounded" href="#page-top">
<i class="fas fa-angle-up"></i> <em class="fas fa-angle-up"></em>
</a> </a>
<!-- <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" <!-- <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
......
...@@ -281,9 +281,9 @@ ...@@ -281,9 +281,9 @@
<tbody> <tbody>
{% for item in items %} {% for item in items %}
<tr> <tr>
<th>{{item.title}} {{item.name}}</th> <th scope="col">{{item.title}} {{item.name}}</th>
<th>{{item.description}}</th> <th scope="col">{{item.description}}</th>
<th class="verif-buttons"> <th scope="col" class="verif-buttons">
{% if item.name is None %} {% if item.name is None %}
<a <a
href="/administration/setting/verification/{{ item.id }}/edit" href="/administration/setting/verification/{{ item.id }}/edit"
...@@ -377,9 +377,9 @@ ...@@ -377,9 +377,9 @@
<tbody> <tbody>
{% for item in items_archived %} {% for item in items_archived %}
<tr> <tr>
<th>{{item.title}} {{item.name}}</th> <th scope="col">{{item.title}} {{item.name}}</th>
<th>{{item.description}}</th> <th scope="col">{{item.description}}</th>
<th>{{item.archived_by.name}}</th> <th scope="col">{{item.archived_by.name}}</th>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
......
...@@ -2,16 +2,20 @@ from django import forms ...@@ -2,16 +2,20 @@ from django import forms
from app.models import Materi, Category, RatingContributor from app.models import Materi, Category, RatingContributor
from authentication.models import User from authentication.models import User
import datetime
def year_choices():
return[(r,r) for r in range(2000, datetime.date.today().year+1)]
class UploadMateriForm(forms.ModelForm): class UploadMateriForm(forms.ModelForm):
categories = forms.ModelMultipleChoiceField(queryset=Category.objects.all(),widget=forms.CheckboxSelectMultiple(attrs={'style' : 'column-count:2'}),required=True) categories = forms.ModelMultipleChoiceField(queryset=Category.objects.all(),widget=forms.CheckboxSelectMultiple(attrs={'style' : 'column-count:2'}),required=True)
#categories.widget.attrs["style"] = "column-count:2" #categories.widget.attrs["style"] = "column-count:2"
release_year = forms.TypedChoiceField(coerce=int, choices=year_choices, initial=datetime.date.today().year)
class Meta: class Meta:
model = Materi model = Materi