add deactivate user and delete user
This commit is contained in:
parent
39b8ab53bc
commit
e0cceda122
|
@ -3,7 +3,7 @@ import logging
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.views.generic.base import TemplateView
|
from django.views.generic.base import TemplateView
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404, redirect
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from idhub.mixins import AdminView
|
from idhub.mixins import AdminView
|
||||||
|
@ -73,6 +73,32 @@ class AdminPeopleView(People):
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
class AdminPeopleActivateView(AdminPeopleView):
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
self.pk = kwargs['pk']
|
||||||
|
self.object = get_object_or_404(self.model, pk=self.pk)
|
||||||
|
|
||||||
|
if self.object.is_active:
|
||||||
|
self.object.is_active = False
|
||||||
|
else:
|
||||||
|
self.object.is_active = True
|
||||||
|
self.object.save()
|
||||||
|
|
||||||
|
return redirect('idhub:admin_people', self.object.id)
|
||||||
|
|
||||||
|
|
||||||
|
class AdminPeopleDeleteView(AdminPeopleView):
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
self.pk = kwargs['pk']
|
||||||
|
self.object = get_object_or_404(self.model, pk=self.pk)
|
||||||
|
|
||||||
|
self.object.delete()
|
||||||
|
|
||||||
|
return redirect('idhub:admin_people_list')
|
||||||
|
|
||||||
|
|
||||||
class AdminPeopleRegisterView(People):
|
class AdminPeopleRegisterView(People):
|
||||||
template_name = "idhub/admin_people_register.html"
|
template_name = "idhub/admin_people_register.html"
|
||||||
subtitle = _('People Register')
|
subtitle = _('People Register')
|
||||||
|
|
|
@ -165,3 +165,7 @@ h3 {
|
||||||
.btn-yellow {
|
.btn-yellow {
|
||||||
background-color: #efe3b4;
|
background-color: #efe3b4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-orange {
|
||||||
|
background-color: #f5b587;
|
||||||
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,53 +0,0 @@
|
||||||
/* globals Chart:false, feather:false */
|
|
||||||
|
|
||||||
(function () {
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
feather.replace({ 'aria-hidden': 'true' })
|
|
||||||
|
|
||||||
// Graphs
|
|
||||||
var ctx = document.getElementById('myChart')
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
var myChart = new Chart(ctx, {
|
|
||||||
type: 'line',
|
|
||||||
data: {
|
|
||||||
labels: [
|
|
||||||
'Sunday',
|
|
||||||
'Monday',
|
|
||||||
'Tuesday',
|
|
||||||
'Wednesday',
|
|
||||||
'Thursday',
|
|
||||||
'Friday',
|
|
||||||
'Saturday'
|
|
||||||
],
|
|
||||||
datasets: [{
|
|
||||||
data: [
|
|
||||||
15339,
|
|
||||||
21345,
|
|
||||||
18483,
|
|
||||||
24003,
|
|
||||||
23489,
|
|
||||||
24092,
|
|
||||||
12034
|
|
||||||
],
|
|
||||||
lineTension: 0,
|
|
||||||
backgroundColor: 'transparent',
|
|
||||||
borderColor: '#007bff',
|
|
||||||
borderWidth: 4,
|
|
||||||
pointBackgroundColor: '#007bff'
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
scales: {
|
|
||||||
yAxes: [{
|
|
||||||
ticks: {
|
|
||||||
beginAtZero: false
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
display: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})()
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,68 @@
|
||||||
|
{% extends "idhub/base_admin.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h3 class="{% if not object.is_active %}bg-danger text-white{% endif %}">
|
||||||
|
<i class="{{ icon }}"></i>
|
||||||
|
{{ subtitle }}
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<a href="{% url 'idhub:admin_people_edit' object.id %}" type="button" class="btn btn-green-admin">{% trans 'Modify' %}</a>
|
||||||
|
<a href="{% url 'idhub:admin_people_activate' object.id %}" type="button" class="btn btn-yellow ms-3 me-3">{% if object.is_active %}{% trans 'Deactivate' %}{% else %}{% trans 'Activate' %}{% endif %}</a>
|
||||||
|
<a href="#" type="button" class="btn btn-orange" data-bs-toggle="modal" data-bs-target="#confirm-delete">{% trans 'Delete' %}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row border-bottom">
|
||||||
|
<div class="col-3">
|
||||||
|
First Name:
|
||||||
|
</div>
|
||||||
|
<div class="col-9 text-secondary">
|
||||||
|
{{ object.first_name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row border-bottom mt-3">
|
||||||
|
<div class="col-3">
|
||||||
|
Last Name:
|
||||||
|
</div>
|
||||||
|
<div class="col-9 text-secondary">
|
||||||
|
{{ object.last_name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mt-3">
|
||||||
|
<div class="col-3">
|
||||||
|
Email:
|
||||||
|
</div>
|
||||||
|
<div class="col-9 text-secondary">
|
||||||
|
{{ object.email }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal" id="confirm-delete" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">{% trans 'Delete user' %} {{ object.username }}</h5>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
{% trans 'Are you sure that you want delete this user?' %}
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Clancel</button>
|
||||||
|
<a href="{% url 'idhub:admin_people_delete' object.id %}" type="button" class="btn btn-danger">{% trans 'Delete' %}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
|
@ -227,9 +227,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/static/js/bootstrap.bundle.min.js"></script>
|
{% block script %}
|
||||||
<script src="https://cdn.jsdelivr.net/npm/feather-icons@4.28.0/dist/feather.min.js" integrity="sha384-uO3SXW5IuS1ZpFPKugNNWqTZRRglnUJK6UAZ/gxOX80nxEkN9NcGZTftn6RzhGWE" crossorigin="anonymous"></script>
|
<script src="{% static "js/jquery-3.3.1.slim.min.js" %}"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.4/dist/Chart.min.js" integrity="sha384-zNy6FEbO50N+Cg5wap8IKA4M/ZnLJgzc6w2NqACZaK0u0FXfOWRRJOnQtpZun8ha" crossorigin="anonymous"></script>
|
<script src="{% static "js/popper.min.js" %}"></script>
|
||||||
<script src="/static/js/dashboard.js"></script>
|
<script src="{% static "js/bootstrap.min.js" %}"></script>
|
||||||
|
{% block extrascript %}{% endblock %}
|
||||||
|
{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -56,6 +56,12 @@ urlpatterns = [
|
||||||
name='admin_people_list'),
|
name='admin_people_list'),
|
||||||
path('admin/people/<int:pk>', views_admin.AdminPeopleView.as_view(),
|
path('admin/people/<int:pk>', views_admin.AdminPeopleView.as_view(),
|
||||||
name='admin_people'),
|
name='admin_people'),
|
||||||
|
path('admin/people/<int:pk>/edit', views_admin.AdminPeopleView.as_view(),
|
||||||
|
name='admin_people_edit'),
|
||||||
|
path('admin/people/<int:pk>/del', views_admin.AdminPeopleDeleteView.as_view(),
|
||||||
|
name='admin_people_delete'),
|
||||||
|
path('admin/people/<int:pk>/activate', views_admin.AdminPeopleActivateView.as_view(),
|
||||||
|
name='admin_people_activate'),
|
||||||
path('admin/people/new/', views_admin.AdminPeopleRegisterView.as_view(),
|
path('admin/people/new/', views_admin.AdminPeopleRegisterView.as_view(),
|
||||||
name='admin_people_new'),
|
name='admin_people_new'),
|
||||||
path('admin/roles/', views_admin.AdminRolesView.as_view(),
|
path('admin/roles/', views_admin.AdminRolesView.as_view(),
|
||||||
|
|
Loading…
Reference in New Issue