From abb387134489257737e6dfa4aa53c527c3ff9501 Mon Sep 17 00:00:00 2001
From: Mikhael <mikhael@ui.ac.id>
Date: Sat, 31 Oct 2020 23:16:51 +0700
Subject: [PATCH] [#13] Bugfix: Homepage UI Fix

---
 .../app/includes/navbar_katalog_materi.html   | 31 ++++++++-------
 app/templates/app/katalog_materi.html         | 20 ++++++----
 app/tests.py                                  | 38 ++++++++++++-------
 authentication/templates/login.html           |  4 ++
 authentication/templates/login_admin.html     |  4 ++
 register/templates/register_base.html         | 10 ++++-
 6 files changed, 71 insertions(+), 36 deletions(-)

diff --git a/app/templates/app/includes/navbar_katalog_materi.html b/app/templates/app/includes/navbar_katalog_materi.html
index cceaec0..222b70c 100644
--- a/app/templates/app/includes/navbar_katalog_materi.html
+++ b/app/templates/app/includes/navbar_katalog_materi.html
@@ -1,15 +1,12 @@
   
-    <nav class="navbar navbar-expand-lg navbar-light  static-top shadow katalog-navbar"> <!-- Sidebar Toggle (Topbar) -->
-        <div class="sidebar-brand-text navbar-brand">Digipus</div>
+    <nav class="navbar navbar-expand-lg navbar-light sticky-top shadow katalog-navbar"> <!-- Sidebar Toggle (Topbar) -->
+        <a class="sidebar-brand-text navbar-brand" href="/">Digipus</a>
         <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
           <span class="navbar-toggler-icon"></span>
         </button>
       
         <div class="collapse navbar-collapse" id="navbarContent">
           <ul class="navbar-nav ml-auto">
-            <li class="nav-item active">
-              <a class="nav-link" href="/">Home<span class="sr-only">(current)</span></a>
-            </li>
             <li class="nav-item">
               <a class="nav-link" href="/forum">Forum</a>
             </li>
@@ -21,16 +18,24 @@
             </li>
             {% if not request.user.is_authenticated %}
               <li class="nav-item">
-                <a class="nav-link" href="/registrasi/umum">Registrasi Umum</a>
-              </li>
-              <li class="nav-item">
-                <a class="nav-link" href="/registrasi">Registrasi Kontributor</a>
-              </li>
-              <li class="nav-item">
-                <a class="nav-link" href="/login">Login</a>
+                <div class="dropdown">
+                  <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                  Registrasi</a>
+                  <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
+                    <a class="dropdown-item" href="/registrasi/umum">Umum</a>
+                    <a class="dropdown-item" href="/registrasi">Kontributor</a>
+                  </div>
+                </div>
               </li>
               <li class="nav-item">
-                <a class="nav-link" href="/login_admin">Login Admin</a>
+                <div class="dropdown">
+                  <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                  Login</a>
+                  <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
+                    <a class="dropdown-item" href="/login">Kontributor</a>
+                    <a class="dropdown-item" href="/login_admin">Admin</a>
+                  </div>
+                </div>
               </li>
             {% else %}
               {% if request.user.is_contributor %}
diff --git a/app/templates/app/katalog_materi.html b/app/templates/app/katalog_materi.html
index 6080766..703c9fe 100644
--- a/app/templates/app/katalog_materi.html
+++ b/app/templates/app/katalog_materi.html
@@ -99,16 +99,20 @@
                                 </h2>
                             </div>
 
-                            <div id="collapseOne" class="collapse" aria-labelledby="headingOne"
+                            <div id="collapseOne" class="collapse show" aria-labelledby="headingOne"
                                 data-parent="#accordionExample">
                                 <div class="card-body">
-                                    <ul>
-                                        {% for itemKategori in kategori_list %}
-                                        <li>
-                                            <a href="?kategori={{itemKategori.pk}}">{{itemKategori.name}}</a>
-                                        </li>
-                                        {% endfor %}
-                                    </ul>
+                                    {% if kategori_list.count != 0 %}
+                                        <ul>
+                                            {% for itemKategori in kategori_list %}
+                                            <li>
+                                                <a href="?kategori={{itemKategori.pk}}">{{itemKategori.name}}</a>
+                                            </li>
+                                            {% endfor %}
+                                        </ul>
+                                    {% else %}
+                                        <p class="text-center">Belum ada kategori</p>
+                                    {% endif %}
                                 </div>
                             </div>
                         </div>
diff --git a/app/tests.py b/app/tests.py
index c05ae60..97cfd38 100644
--- a/app/tests.py
+++ b/app/tests.py
@@ -3463,45 +3463,55 @@ class LandingPageNavbarTest(TestCase):
     def test_navbar_admin(self):
         self.client.login(**self.admin_credential)
         response = self.client.get('/')
-        self.assertContains(response, '<a class="nav-link" href="/">Home<span class="sr-only">(current)</span></a>')
+        self.assertContains(response, '<a class="sidebar-brand-text navbar-brand" href="/">Digipus</a>')
         self.assertContains(response, '<a class="nav-link" href="/forum">Forum</a>')
         self.assertContains(response, '<a class="nav-link" href="/news/all">Berita</a>')
-        self.assertContains(response, '<a class="nav-link" href="/administration">Administrasi</a>')
         self.assertContains(response, '<a class="nav-link" href="/profil">Profil</a>')
         self.assertContains(response, '<a class="nav-link" href="/logout">Logout</a>')
-        self.assertNotContains(response, '<a class="nav-link" href="/logout">LogoutX</a>')
+        self.assertContains(response, '<a class="nav-link" href="/administration">Administrasi</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/dashboard">Dasbor</a>')
 
     def test_navbar_contributor(self):
         self.client.login(**self.contributor_credential)
         response = self.client.get('/')
-        self.assertContains(response, '<a class="nav-link" href="/">Home<span class="sr-only">(current)</span></a>')
+        self.assertContains(response, '<a class="sidebar-brand-text navbar-brand" href="/">Digipus</a>')
         self.assertContains(response, '<a class="nav-link" href="/forum">Forum</a>')
         self.assertContains(response, '<a class="nav-link" href="/news/all">Berita</a>')
-        self.assertContains(response, '<a class="nav-link" href="/dashboard">Dasbor</a>')
         self.assertContains(response, '<a class="nav-link" href="/profil">Profil</a>')
         self.assertContains(response, '<a class="nav-link" href="/logout">Logout</a>')
-        self.assertNotContains(response, '<a class="nav-link" href="/logout">LogoutX</a>')
+        self.assertContains(response, '<a class="nav-link" href="/dashboard">Dasbor</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/administration">Administrasi</a>')
 
     def test_navbar_public(self):
         self.client.login(**self.public_credential)
         response = self.client.get('/')
-        self.assertContains(response, '<a class="nav-link" href="/">Home<span class="sr-only">(current)</span></a>')
+        self.assertContains(response, '<a class="sidebar-brand-text navbar-brand" href="/">Digipus</a>')
         self.assertContains(response, '<a class="nav-link" href="/forum">Forum</a>')
         self.assertContains(response, '<a class="nav-link" href="/news/all">Berita</a>')
         self.assertContains(response, '<a class="nav-link" href="/profil">Profil</a>')
         self.assertContains(response, '<a class="nav-link" href="/logout">Logout</a>')
-        self.assertNotContains(response, '<a class="nav-link" href="/logout">LogoutX</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/dashboard">Dasbor</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/administration">Administrasi</a>')
 
     def test_navbar_anonymous(self):
         response = self.client.get('/')
-        self.assertContains(response, '<a class="nav-link" href="/">Home<span class="sr-only">(current)</span></a>')
+        self.assertContains(response, '<a class="sidebar-brand-text navbar-brand" href="/">Digipus</a>')
         self.assertContains(response, '<a class="nav-link" href="/forum">Forum</a>')
         self.assertContains(response, '<a class="nav-link" href="/news/all">Berita</a>')
-        self.assertContains(response, '<a class="nav-link" href="/registrasi/umum">Registrasi Umum</a>')
-        self.assertContains(response, '<a class="nav-link" href="/registrasi">Registrasi Kontributor</a>')
-        self.assertContains(response, '<a class="nav-link" href="/login">Login</a>')
-        self.assertContains(response, '<a class="nav-link" href="/login_admin">Login Admin</a>')
-        self.assertNotContains(response, '<a class="nav-link" href="/logout">LogoutX</a>')
+        self.assertContains(
+            response,
+            '<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">'
+        )
+        self.assertContains(response, 'Registrasi</a>')
+        self.assertContains(response, '<a class="dropdown-item" href="/registrasi/umum">Umum</a>')
+        self.assertContains(response, '<a class="dropdown-item" href="/registrasi">Kontributor</a>')
+        self.assertContains(response, 'Login</a>')
+        self.assertContains(response, '<a class="dropdown-item" href="/login">Kontributor</a>')
+        self.assertContains(response, '<a class="dropdown-item" href="/login_admin">Admin</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/profil">Profil</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/logout">Logout</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/dashboard">Dasbor</a>')
+        self.assertNotContains(response, '<a class="nav-link" href="/administration">Administrasi</a>')
 
 
 class MateriRecommendationTest(TestCase):
diff --git a/authentication/templates/login.html b/authentication/templates/login.html
index e577a99..2012889 100644
--- a/authentication/templates/login.html
+++ b/authentication/templates/login.html
@@ -72,6 +72,10 @@
                             <a href="/registrasi" class="txt1">
                                 Ingin jadi kontributor? klik di sini
                             </a>
+                            <br>
+                            <a href="/" class="txt1">
+                                Kembali ke halaman beranda
+                            </a>
                         </div>
                     </div>
 
diff --git a/authentication/templates/login_admin.html b/authentication/templates/login_admin.html
index 15a8d0f..501f7be 100644
--- a/authentication/templates/login_admin.html
+++ b/authentication/templates/login_admin.html
@@ -81,6 +81,10 @@
                                     <a href="/registrasi/admin/" class="txt1">
                                         Belum mendaftar? klik di sini
                                     </a>
+                                    <br>
+                                    <a href="/" class="txt1">
+                                        Kembali ke halaman beranda
+                                    </a>
                                 </div>
         
                             </div>
diff --git a/register/templates/register_base.html b/register/templates/register_base.html
index 7befc8c..f1b5701 100644
--- a/register/templates/register_base.html
+++ b/register/templates/register_base.html
@@ -1,4 +1,8 @@
-{% load static %}
+
+                                <br>
+                                <a href="/" class="txt1">
+                                    Kembali ke halaman beranda
+                                </a>{% load static %}
 
 <!DOCTYPE html>
 <html lang="en">
@@ -103,6 +107,10 @@
                                 <a href="/login/" class="txt1">
                                     Kembali ke halaman login
                                 </a>
+                                <br>
+                                <a href="/" class="txt1">
+                                    Kembali ke halaman beranda
+                                </a>
                             </div>
                         </div>
 
-- 
GitLab