فهرست منبع

add staff delete view

Mohidul Islam 4 سال پیش
والد
کامیت
2c8e2d25fe
3فایلهای تغییر یافته به همراه39 افزوده شده و 2 حذف شده
  1. 28 2
      user/templates/staff_list.html
  2. 2 0
      user/urls.py
  3. 9 0
      user/views.py

+ 28 - 2
user/templates/staff_list.html

@@ -44,16 +44,42 @@
       <div class="card mt-2 mb-2">
         <div class="card-header">
           <span style="font-size: larger; font-family: sans-serif; font-weight: bold;">{{staff.name}}</span>
-          <span style="float: right;">{{ staff.department }}</span>
+          <span style="float: right;">
+            {{ staff.department }}
+              <span data-toggle="modal" data-target="#delete-staff"><i class="fa fa-trash" aria-hidden="true" style="color: blue; margin-left: 2rem;"></i></span>
+          </span>
         </div>
         <div class="card-body">
-          <span >Name Mentioned: <i class="fa fa-google" aria-hidden="true" style="color: #ff7700; margin-left: 1rem;"></i> {{ staff.name_mentioned_google }}</span>
+          Name Mentioned:<span > <i class="fa fa-google" aria-hidden="true" style="color: #ff7700; margin-left: 1rem;"></i> {{ staff.name_mentioned_google }}</span>
           <span > <i class="fa fa-facebook" aria-hidden="true" style="color: blue; margin-left: 2rem;"></i> {{ staff.name_mentioned_facebook }} </span>
           <span ><i class="fa fa-yelp" aria-hidden="true" style="color: red; margin-left: 2rem;"></i> {{ staff.name_mentioned_yelp }}</span>
           <span style="float: right;">Bonus: ${{ staff.total_units }}</span>
         </div>
       </div>
     </div>
+
+      <!-- Modal -->
+      <div class="modal fade" id="delete-staff" 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">Are you sure?</h5>
+              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                <span aria-hidden="true">&times;</span>
+              </button>
+            </div>
+            <div class="modal-body">
+              If you delete this staff then you will lose all information about this staff.
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
+
+              <a type="button" href="{% url 'staff-delete' staff.id %}" class="btn btn-danger">Yes, Delete!</a>
+            </div>
+          </div>
+        </div>
+      </div>
+
     {% endfor %}
   </div>
 {% endblock %}

+ 2 - 0
user/urls.py

@@ -10,6 +10,7 @@ from .views import (
     StaffLeaderBoard,
     SyncStaffLeaderBoard,
     LoginRedirectURL,
+    StaffDelete,
 )
 
 urlpatterns = [
@@ -23,5 +24,6 @@ urlpatterns = [
     path('api/analytics/all-platform', ChartDataAllPlatform.as_view(), name='location-api-analytics-all-platform'),
     path('graph', ReviewAnalyticsGraph.as_view(), name='location-analytics-graph'),
     path('staff', StaffLeaderBoard.as_view(), name='staff-leaderboard'),
+    path('staff/delete/<staff_id>', StaffDelete.as_view(), name='staff-delete'),
     path('sync-staff-list', SyncStaffLeaderBoard.as_view(), name='sync-staff-list'),
 ]

+ 9 - 0
user/views.py

@@ -12,6 +12,7 @@ from facebook_app.models import FacebookReview
 from yelp.models import YelpReview
 from name_extractor.models import Staff
 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
+from django.shortcuts import get_object_or_404
 
 from name_extractor.utils import extract_names_from_reviews, make_all_staffs_point_zero
 
@@ -189,3 +190,11 @@ class SyncStaffLeaderBoard(View):
             location_id=location_id
         )
         return redirect('staff-leaderboard')
+
+
+class StaffDelete(View):
+
+    def get(self, request, staff_id, *args, **kwargs):
+        staff = get_object_or_404(Staff, id=staff_id)
+        staff.delete()
+        return redirect('staff-leaderboard')