From bbab3467c432e68c8203fd90831aaf9d7423f788 Mon Sep 17 00:00:00 2001
From: Kevin <vnctkevin@gmail.com>
Date: Mon, 6 Mar 2023 20:09:54 +0700
Subject: [PATCH] Update README.md

---
 authentication/__init__.py                    |   0
 authentication/admin.py                       |   6 -
 authentication/apps.py                        |   6 -
 authentication/forms.py                       |  37 ---
 authentication/migrations/0001_initial.py     |  34 ---
 authentication/migrations/__init__.py         |   0
 authentication/models.py                      |  14 -
 authentication/templates/home.html            |   0
 authentication/templates/login.html           |  48 ----
 authentication/templates/registerDosen.html   |  37 ---
 .../templates/registerMahasiswa.html          |  38 ---
 authentication/tests.py                       | 242 ------------------
 authentication/urls.py                        |  15 --
 authentication/views.py                       |  80 ------
 ppi/settings.py                               |   1 -
 ppi/urls.py                                   |   3 +-
 16 files changed, 1 insertion(+), 560 deletions(-)
 delete mode 100644 authentication/__init__.py
 delete mode 100644 authentication/admin.py
 delete mode 100644 authentication/apps.py
 delete mode 100644 authentication/forms.py
 delete mode 100644 authentication/migrations/0001_initial.py
 delete mode 100644 authentication/migrations/__init__.py
 delete mode 100644 authentication/models.py
 delete mode 100644 authentication/templates/home.html
 delete mode 100644 authentication/templates/login.html
 delete mode 100644 authentication/templates/registerDosen.html
 delete mode 100644 authentication/templates/registerMahasiswa.html
 delete mode 100644 authentication/tests.py
 delete mode 100644 authentication/urls.py
 delete mode 100644 authentication/views.py

diff --git a/authentication/__init__.py b/authentication/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/authentication/admin.py b/authentication/admin.py
deleted file mode 100644
index 1d04663..0000000
--- a/authentication/admin.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from django.contrib import admin
-from .models import mahasiswa, dosen
-
-admin.site.register(mahasiswa)
-admin.site.register(dosen)
-# Register your models here.
diff --git a/authentication/apps.py b/authentication/apps.py
deleted file mode 100644
index 8bab8df..0000000
--- a/authentication/apps.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from django.apps import AppConfig
-
-
-class AuthenticationConfig(AppConfig):
-    default_auto_field = 'django.db.models.BigAutoField'
-    name = 'authentication'
diff --git a/authentication/forms.py b/authentication/forms.py
deleted file mode 100644
index cccfe8b..0000000
--- a/authentication/forms.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from django.contrib.auth.forms import UserCreationForm
-from django.forms import ModelForm
-from .models import mahasiswa, dosen
-from django.contrib.auth.models import User
-
-class mahasiswaRegForm(ModelForm):
-    class Meta:
-        model = mahasiswa
-        fields = ['npm', 'prodi']
-        error_messages = {
-            'npm': {
-                'unique': ("NPM sudah terdaftar. Silahkan coba lagi."),
-            },
-        }
-
-class dosenRegForm(ModelForm):
-    class Meta:
-        model = dosen
-        fields = ['nip']
-        error_messages = {
-            'nip': {
-                'unique': ("NIP sudah terdaftar. Silahkan coba lagi."),
-            },
-        }
-
-class userRegForm(UserCreationForm):
-    error_messages = {
-            'password_mismatch': 'Password dan konfirmasi password tidak sesuai. Silahkan coba lagi.'
-        }
-    class Meta:
-        model = User
-        fields = ['first_name', 'last_name', 'email', 'username', 'password1', 'password2']
-        error_messages = {
-            'username': {
-                'unique': ("Username sudah terdaftar. Silahkan coba lagi."),
-            },
-        }
diff --git a/authentication/migrations/0001_initial.py b/authentication/migrations/0001_initial.py
deleted file mode 100644
index 19a17c8..0000000
--- a/authentication/migrations/0001_initial.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# Generated by Django 3.2.8 on 2023-03-03 11:51
-
-from django.conf import settings
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    initial = True
-
-    dependencies = [
-        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='mahasiswa',
-            fields=[
-                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('npm', models.CharField(max_length=100, unique=True)),
-                ('prodi', models.CharField(max_length=100)),
-                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
-            ],
-        ),
-        migrations.CreateModel(
-            name='dosen',
-            fields=[
-                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('nip', models.CharField(max_length=100, unique=True)),
-                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
-            ],
-        ),
-    ]
diff --git a/authentication/migrations/__init__.py b/authentication/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/authentication/models.py b/authentication/models.py
deleted file mode 100644
index 1119a5f..0000000
--- a/authentication/models.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from django.db import models
-from django.contrib.auth.models import User
-
-class mahasiswa(models.Model):
-    user = models.OneToOneField(User, on_delete=models.CASCADE)
-    npm = models.CharField(max_length=100, unique=True)
-    prodi = models.CharField(max_length=100)
-
-class dosen(models.Model):
-    user = models.OneToOneField(User, on_delete=models.CASCADE)
-    nip = models.CharField(max_length=100, unique=True)
-
-
-
diff --git a/authentication/templates/home.html b/authentication/templates/home.html
deleted file mode 100644
index e69de29..0000000
diff --git a/authentication/templates/login.html b/authentication/templates/login.html
deleted file mode 100644
index ac9487e..0000000
--- a/authentication/templates/login.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Login</title>
-</head>
-
-<body>
-
-<div class = "login">
-
-    <h1>Login</h1>
-
-    <form method="POST">
-        {% csrf_token %}
-        <table>
-            <tr>
-                <td>Username: </td>
-                <td><input type="text" name="username" placeholder="Username" class="form-control"></td>
-            </tr>
-                    
-            <tr>
-                <td>Password: </td>
-                <td><input type="password" name="password" placeholder="Password" class="form-control"></td>
-            </tr>
-
-            <tr>
-                <td></td>
-                <td><input class="btn login_btn" type="submit" value="Login"></td>
-            </tr>
-        </table>
-    </form>
-
-    {% if messages %}
-        <ul>
-            {% for message in messages %}
-                <li>{{ message }}</li>
-            {% endfor %}
-        </ul>
-    {% endif %}     
-        
-    Belum mempunyai akun? <a href="{% url 'main:registerMahasiswa' %}">Buat Akun</a>
-
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/authentication/templates/registerDosen.html b/authentication/templates/registerDosen.html
deleted file mode 100644
index 5b9a050..0000000
--- a/authentication/templates/registerDosen.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-    
-    <head>
-        <meta charset="UTF-8">
-        <meta name="viewport" content="width=device-width, initial-scale=1.0">
-        <title>Registrasi Akun</title>
-</head>
-
-<body>
-<div class = "login">
-    
-    <h1>Formulir Registrasi</h1>  
-
-        <form method="POST" action="/register/dosen/submit">  
-            {% csrf_token %}  
-            <table>  
-                {{ form.as_table }}  
-                {{ form2.as_table }}  
-                <tr>  
-                    <td></td>
-                    <td><input type="submit" name="submit" value="Daftar"/></td>  
-                </tr>  
-            </table>  
-        </form>
-
-    {% if messages %}  
-        <ul>   
-            {% for message in messages %}  
-                <li>{{ message }}</li>  
-                {% endfor %}  
-        </ul>   
-    {% endif %}
-
-</div>  
-</body>
-</html>
\ No newline at end of file
diff --git a/authentication/templates/registerMahasiswa.html b/authentication/templates/registerMahasiswa.html
deleted file mode 100644
index 3dc0a85..0000000
--- a/authentication/templates/registerMahasiswa.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-    
-    <head>
-        <meta charset="UTF-8">
-        <meta name="viewport" content="width=device-width, initial-scale=1.0">
-        <title>Registrasi Akun</title>
-</head>
-<body>
-
-<div class = "login">
-    
-    <h1>Formulir Registrasi</h1>  
-
-        <form method="POST" action="/register/mahasiswa/submit">  
-            {% csrf_token %}  
-            <table>  
-                {{ form.as_table }}  
-                {{ form2.as_table }}  
-                <tr>  
-                    <td></td>
-                    <td><input type="submit" name="submit" value="Daftar"/></td>  
-                </tr>  
-            </table>  
-        </form>
-
-    {% if messages %}  
-        <ul>   
-            {% for message in messages %}  
-                <li>{{ message }}</li>  
-                {% endfor %}  
-        </ul>   
-    {% endif %}
-
-</div>  
-
-</body>
-</html>
\ No newline at end of file
diff --git a/authentication/tests.py b/authentication/tests.py
deleted file mode 100644
index b1dcae2..0000000
--- a/authentication/tests.py
+++ /dev/null
@@ -1,242 +0,0 @@
-from django.test import TestCase, Client
-from django.test import TestCase
-from django.contrib.messages import get_messages
-from .models import User, mahasiswa, dosen
-
-class testView(TestCase):
-    def setUp(self):
-        user_mahasiswa = User.objects.create_user(
-            username="mahasiswasatu",
-            email="mahasiswa@email.com",
-            password="password99",
-            first_name="maha",
-            last_name="siswa"
-        )
-
-        mahasiswa.objects.create(user=user_mahasiswa, npm="2006462840",prodi="Ilmu Komputer")
-
-        user_dosen = User.objects.create_user(
-            username="dosensatu",
-            email="dosen@email.com",
-            password="password99",
-            first_name="dosen",
-            last_name="dosen"
-        )
-
-        dosen.objects.create(user=user_dosen, nip="200648232")
-
-        self.c = Client()
-
-    def test_register_mahasiswa_view_load(self):
-        response = self.c.get('/register/mahasiswa')
-        self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, 'registerMahasiswa.html')
-
-    def test_register_dosen_view_load(self):
-        response = self.c.get('/register/dosen')
-        self.assertEqual(response.status_code, 200)
-        self.assertTemplateUsed(response, 'registerDosen.html')
-
-    def test_register_user_mahasiswa(self):
-        response = self.c.post('/register/mahasiswa/submit', data={
-            "username": "mahasiswadua",
-            "first_name": "mahasiswa",
-            "last_name": "dua",
-            "email": "mahasiswadua@test.com",
-            "password1": "password9909",
-            "password2": "password9909",
-            "npm": "2006462841",
-            "prodi": "Ilmu Komputer"
-        })
-
-        self.assertEqual(response.status_code, 302)
-        self.assertRedirects(response, '/login')
-
-    def test_register_user_dosen(self):
-        response = self.c.post('/register/dosen/submit', data={
-            "username": "dosendua",
-            "first_name": "dosen",
-            "last_name": "dua",
-            "email": "dosendua@test.com",
-            "password1": "password9909",
-            "password2": "password9909",
-            "nip": "20063623622",
-        })
-
-        self.assertEqual(response.status_code, 302)
-        self.assertRedirects(response, '/login')
-
-    def test_register_user_password_didnt_match(self):
-        response = self.c.post('/register/mahasiswa/submit', data={
-            "username": "mahasiswapass",
-            "first_name": "mahasiswa",
-            "last_name": "mahasiswa",
-            "email": "mahasiswa@test.com",
-            "password1": "password990",
-            "password2": "password990909",
-            "npm": "2006462842",
-            "prodi": "Ilmu Komputer",
-        }) 
-
-        messages = [m.message for m in get_messages(response.wsgi_request)]
-        self.assertEqual(messages[0], "Password dan konfirmasi password tidak sesuai. Silahkan coba lagi.")
-        
-    def test_register_mahasiswa_username_already_exists(self):
-        response = self.c.post('/register/mahasiswa/submit', data={
-            "username": "mahasiswasatu",
-            "first_name": "mahasiswa",
-            "last_name": "tiga",
-            "email": "mahasiswatiga@test.com",
-            "password1": "password9909",
-            "password2": "password9909",
-            "npm": "2006462843",
-            "prodi": "Ilmu Komputer",
-        })
-
-        messages = [m.message for m in get_messages(response.wsgi_request)]
-        self.assertEqual(messages[0], "Username sudah terdaftar. Silahkan coba lagi.")
-        
-    def test_register_mahasiswa_npm_already_exists(self):
-        response = self.c.post('/register/mahasiswa/submit', data={
-            "username": "mahasiswaempat",
-            "first_name": "mahasiswa",
-            "last_name": "tiga",
-            "email": "mahasiswatiga@test.com",
-            "password1": "password9909",
-            "password2": "password9909",
-            "npm": "2006462840",
-            "prodi": "Ilmu Komputer",
-        })
-
-        messages = [m.message for m in get_messages(response.wsgi_request)]
-        self.assertEqual(messages[0], "NPM sudah terdaftar. Silahkan coba lagi.")
-
-
-    def test_register_dosen_nip_already_exists(self):
-        response = self.c.post('/register/dosen/submit', data={
-            "username": "dosenempat",
-            "first_name": "dosen",
-            "last_name": "tiga",
-            "email": "dosentiga@test.com",
-            "password1": "password9909",
-            "password2": "password9909",
-            "nip": "200648232",
-        })
-
-        messages = [m.message for m in get_messages(response.wsgi_request)]
-        self.assertEqual(messages[0], "NIP sudah terdaftar. Silahkan coba lagi.")
-
-    def test_login_mahasiswa_view_success(self):
-        response = self.c.post('/login', data={"username":"mahasiswasatu", "password":"password99"})
-        
-        self.assertEqual(response.status_code, 302)
-        self.assertRedirects(response, '/home')
-
-    def test_login_dosen_view_success(self):
-        response = self.c.post('/login', data={"username":"dosensatu", "password":"password99"})
-        
-        self.assertEqual(response.status_code, 302)
-        self.assertRedirects(response, '/home')
-
-    def test_login_view_failed(self):
-        response = self.c.post('/login', data={"username":"dosensatu", "password":"password9922"})
-
-        messages = [m.message for m in get_messages(response.wsgi_request)]
-        self.assertEqual(messages[0], "Username atau password tidak sesuai. Silahkan coba lagi.")
-
-    def test_logout_view_success(self):
-        self.c.post('/login', data={"username":"mahasiswasatu", "password":"password99"})
-        response = self.c.get('/logout')
-        
-        self.assertEqual(response.status_code, 302)
-        self.assertRedirects(response, '/login')
-
-
-class ModelsTest(TestCase):
-    def setUp(self):
-        user_mahasiswa = User.objects.create_user(
-            username="mahasiswa",
-            email="mahasiswa@email.com",
-            password="password99",
-            first_name="maha",
-            last_name="siswa"
-        )
-
-        mahasiswa.objects.create(user=user_mahasiswa, npm="2006462844",prodi="Ilmu Komputer")
-
-        user_dosen = User.objects.create_user(
-            username="dosen",
-            email="dosen@email.com",
-            password="password91",
-            first_name="dosen",
-            last_name="dosen"
-        )
-
-        dosen.objects.create(user=user_dosen, nip="200648232")
-
-    def test_model_user(self):
-
-        user_mahasiswa_data = User.objects.get(username="mahasiswa")
-        self.assertEqual(user_mahasiswa_data.username, "mahasiswa")
-        self.assertEqual(user_mahasiswa_data.email, "mahasiswa@email.com")
-        self.assertEqual(user_mahasiswa_data.get_full_name(), "maha siswa")
-    
-
-        user_dosen_data = User.objects.get(username="dosen")
-        self.assertEqual(user_dosen_data.username, "dosen")
-        self.assertEqual(user_dosen_data.email, "dosen@email.com")
-        self.assertEqual(user_dosen_data.get_full_name(), "dosen dosen")
-
-    def test_model_mahasiswa(self):
-        user_mahasiswa_data = User.objects.get(username="mahasiswa")
-
-        mahasiswa_data = mahasiswa.objects.get(user=user_mahasiswa_data)
-        self.assertEqual(mahasiswa_data.npm, "2006462844")
-        self.assertEqual(mahasiswa_data.prodi, "Ilmu Komputer")
-
-    def test_model_dosen(self):
-        user_dosen_data = User.objects.get(username="dosen")
-
-        dosen_data = dosen.objects.get(user=user_dosen_data)
-        self.assertEqual(dosen_data.nip, "200648232")
-
-class LoginLogoutTest(TestCase):
-    def setUp(self):
-        user_mahasiswa = User.objects.create_user(
-            username="mahasiswalog",
-            email="mahasiswa@email.com",
-            password="password99",
-            first_name="maha",
-            last_name="siswa"
-        )
-
-        mahasiswa.objects.create(user=user_mahasiswa, npm="2006462845",prodi="Ilmu Komputer")
-
-        user_dosen = User.objects.create_user(
-            username="dosenlog",
-            email="dosen@email.com",
-            password="password99",
-            first_name="dosen",
-            last_name="dosen"
-        )
-
-        dosen.objects.create(user=user_dosen, nip="200648232")
-
-        self.c = Client()
-
-    def test_login_mahasiswa(self):
-        logged_in = self.c.login(username='mahasiswalog', password='password99')  
-        self.assertEqual(logged_in, True)
-
-    def test_login_dosen(self):
-        logged_in = self.c.login(username='dosenlog', password='password99')  
-        self.assertEqual(logged_in, True)
-
-    def test_login_username_password_didnt_match(self):
-        logged_in = self.c.login(username='mahasiswalog', password='password99999')  
-        self.assertEqual(logged_in, False)
-
-    def test_logout(self):
-        logged_in = self.c.login(username='mahasiswalog', password='password99999')  
-        self.c.logout()
-        self.assertEqual(logged_in, False)
\ No newline at end of file
diff --git a/authentication/urls.py b/authentication/urls.py
deleted file mode 100644
index 4da243e..0000000
--- a/authentication/urls.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from django.urls import path
-
-from .views import login_user, registerMahasiswa, registerDosen, home, submitRegMahasiswa, submitRegDosen, logout_user
-
-app_name = 'main'
-
-urlpatterns = [
-    path('register/mahasiswa', registerMahasiswa, name='registerMahasiswa'),
-    path('register/mahasiswa/submit', submitRegMahasiswa, name='subRegisterMahasiswa'),
-    path('register/dosen', registerDosen, name='registerDosen'),
-    path('register/dosen/submit', submitRegDosen, name='submitRegisterDosen'),
-    path('home', home, name='home'),
-    path('login', login_user, name='login'),
-    path('logout', logout_user, name='logout'),
-]
\ No newline at end of file
diff --git a/authentication/views.py b/authentication/views.py
deleted file mode 100644
index 36ca6bb..0000000
--- a/authentication/views.py
+++ /dev/null
@@ -1,80 +0,0 @@
-from django.shortcuts import render
-from django.shortcuts import redirect
-from .forms import mahasiswaRegForm, userRegForm, dosenRegForm
-from django.contrib import messages
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.decorators import login_required
-
-def registerMahasiswa(request):
-    form = userRegForm()
-    form2 = mahasiswaRegForm()
-    context = {'form':form, 'form2':form2}
-    return render(request, 'registerMahasiswa.html', context)
-
-def submitRegMahasiswa(request):
-    if request.method == "POST":
-        form = userRegForm(request.POST)
-        form2 = mahasiswaRegForm(request.POST)
-        if form.is_valid() and form2.is_valid():
-            user = form.save()
-            form2.instance.user = user
-            form2.save()
-            messages.success(request, 'Akun telah berhasil dibuat.')
-            return redirect('main:login')
-        else:
-            for field, errors in form2.errors.items():
-                for error in errors:
-                    messages.error(request, error)
-            for field, errors in form.errors.items():
-                for error in errors:
-                    messages.error(request, error)
-    return redirect('main:registerMahasiswa')
-
-def registerDosen(request):
-    form = userRegForm()
-    form2 = dosenRegForm()
-    context = {'form':form, 'form2':form2}
-    return render(request, 'registerDosen.html', context)
-
-def submitRegDosen(request):
-    if request.method == "POST":
-        form = userRegForm(request.POST)
-        form2 = dosenRegForm(request.POST)
-        for error in form.errors:
-            messages.error(request, form.errors[error])
-        if form.is_valid() and form2.is_valid():
-            user = form.save()
-            form2.instance.user = user
-            form2.save()
-            messages.success(request, 'Akun telah berhasil dibuat!')
-            return redirect('main:login')
-        else:
-            for field, errors in form2.errors.items():
-                for error in errors:
-                    messages.error(request, error)
-            for field, errors in form.errors.items():
-                for error in errors:
-                    messages.error(request, error)
-    return redirect('main:registerDosen')
-
-def login_user(request):
-    if request.method == 'POST':
-        username = request.POST.get('username')
-        password = request.POST.get('password')
-        user = authenticate(request, username=username, password=password)
-        if user is not None:
-            login(request, user)
-            return redirect('main:home')
-        else:
-            messages.error(request, 'Username atau password tidak sesuai. Silahkan coba lagi.')
-    context = {}
-    return render(request, 'login.html', context)
-
-def logout_user(request):
-    logout(request)
-    return redirect('main:login')
-
-@login_required(login_url='/login/')
-def home(request):
-    return render(request, "home.html")
-
diff --git a/ppi/settings.py b/ppi/settings.py
index b92dd01..398041a 100644
--- a/ppi/settings.py
+++ b/ppi/settings.py
@@ -40,7 +40,6 @@ INSTALLED_APPS = [
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
-    'authentication',
 ]
 
 MIDDLEWARE = [
diff --git a/ppi/urls.py b/ppi/urls.py
index 72ed00d..0def879 100644
--- a/ppi/urls.py
+++ b/ppi/urls.py
@@ -14,9 +14,8 @@ Including another URLconf
     2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 """
 from django.contrib import admin
-from django.urls import path, include
+from django.urls import path
 
 urlpatterns = [
     path('admin/', admin.site.urls),
-    path("", include('authentication.urls')),
 ]
-- 
GitLab