diff --git a/apps/applications/api.py b/apps/applications/api.py index 968d32d2e..d30f9667c 100644 --- a/apps/applications/api.py +++ b/apps/applications/api.py @@ -4,6 +4,7 @@ from collections import OrderedDict from django.core.cache import cache from django.conf import settings +from django.utils import timezone import copy from rest_framework.generics import ListCreateAPIView, RetrieveUpdateDestroyAPIView from rest_framework import viewsets @@ -80,21 +81,29 @@ class TerminalHeatbeatViewSet(viewsets.ModelViewSet): task = tasks.get(terminal.name) tasks[terminal.name] = [] return Response({'msg': 'Success', - 'tasks': task,}, + 'tasks': task}, status=201) class TerminateConnectionView(APIView): def post(self, request, *args, **kwargs): - proxy_log_id = request.data.get('proxy_log_id') - proxy_log = get_object_or_404(ProxyLog, id=proxy_log_id) - terminal_id = proxy_log.terminal - if terminal_id in tasks: - tasks[terminal_id].append({'name': 'kill_proxy', - 'proxy_log_id': proxy_log_id}) + if isinstance(request.data, dict): + data = [request.data] else: - tasks[terminal_id] = [{'name': 'kill_proxy', - 'proxy_log_id': proxy_log_id}] + data = request.data + for d in data: + proxy_log_id = d.get('proxy_log_id') + proxy_log = get_object_or_404(ProxyLog, id=proxy_log_id) + terminal_id = proxy_log.terminal + proxy_log.is_finished = True + proxy_log.date_finished = timezone.now() + proxy_log.save() + if terminal_id in tasks: + tasks[terminal_id].append({'name': 'kill_proxy', + 'proxy_log_id': proxy_log_id}) + else: + tasks[terminal_id] = [{'name': 'kill_proxy', + 'proxy_log_id': proxy_log_id}] print(tasks) return Response({'msg': 'get it'}) diff --git a/apps/applications/templates/applications/terminal_detail.html b/apps/applications/templates/applications/terminal_detail.html new file mode 100644 index 000000000..dee320c08 --- /dev/null +++ b/apps/applications/templates/applications/terminal_detail.html @@ -0,0 +1,77 @@ +{% extends 'base.html' %} +{% load static %} +{% load i18n %} + +{% block content %} +
+
+
+
+ +
+
+
+
+ {{ terminal.name }} +
+ + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
{% trans 'Name' %}:{{ terminal.name }}
{% trans 'Remote addr' %}:{{ terminal.remote_addr }}
{% trans 'Terminal url' %}:{{ terminal.url }}
{% trans 'Terminal type' %}:{{ terminal.get_type_display }}
{% trans 'Date created' %}:{{ terminal.date_created }}
{% trans 'Comment' %}:{{ asset.comment }}
+
+
+
+
+
+
+
+
+{% endblock %} + diff --git a/apps/applications/templates/applications/terminal_list.html b/apps/applications/templates/applications/terminal_list.html index 8dc7907ad..33a04c009 100644 --- a/apps/applications/templates/applications/terminal_list.html +++ b/apps/applications/templates/applications/terminal_list.html @@ -50,7 +50,7 @@ $(document).ready(function(){ buttons: [], columnDefs: [ {targets: 1, createdCell: function (td, cellData, rowData) { - var detail_btn = '' + cellData + ''; + var detail_btn = '' + cellData + ''; $(td).html(detail_btn.replace('99991937', rowData.id)); }}, {targets: 5, createdCell: function (td, cellData) { diff --git a/apps/applications/urls/views_urls.py b/apps/applications/urls/views_urls.py index 96a044a61..717234aa3 100644 --- a/apps/applications/urls/views_urls.py +++ b/apps/applications/urls/views_urls.py @@ -10,6 +10,10 @@ app_name = 'applications' urlpatterns = [ url(r'^terminal$', views.TerminalListView.as_view(), name='terminal-list'), - url(r'^terminal/(?P\d+)/update$', views.TerminalUpdateView.as_view(), name='terminal-update'), - url(r'^terminal/(?P\d+)/modal/accept$', views.TerminalModelAccept.as_view(), name='terminal-modal-accept'), + url(r'^terminal/(?P\d+)/$', views.TerminalDetailView.as_view(), + name='terminal-detail'), + url(r'^terminal/(?P\d+)/update$', views.TerminalUpdateView.as_view(), + name='terminal-update'), + url(r'^terminal/(?P\d+)/modal/accept$', views.TerminalModelAccept.as_view(), + name='terminal-modal-accept'), ] diff --git a/apps/applications/views.py b/apps/applications/views.py index c07cfc2d4..dcf1f182c 100644 --- a/apps/applications/views.py +++ b/apps/applications/views.py @@ -1,7 +1,7 @@ # ~*~ coding: utf-8 ~*~ # -from django.views.generic import ListView, UpdateView, DeleteView, FormView +from django.views.generic import ListView, UpdateView, DeleteView, DetailView from django.views.generic.edit import BaseUpdateView from django.utils.translation import ugettext as _ from django.urls import reverse_lazy @@ -35,7 +35,21 @@ class TerminalUpdateView(UpdateView): def get_context_data(self, **kwargs): context = super(TerminalUpdateView, self).get_context_data(**kwargs) - context.update({'app': _('Terminal'), 'action': _('Update applications')}) + context.update({'app': _('Applications'), 'action': _('Update terminal')}) + return context + + +class TerminalDetailView(DetailView): + model = Terminal + template_name = 'applications/terminal_detail.html' + context_object_name = 'terminal' + + def get_context_data(self, **kwargs): + context = super(TerminalDetailView, self).get_context_data(**kwargs) + context.update({ + 'app': _('Applications'), + 'action': _('Terminal detail') + }) return context diff --git a/apps/audits/templates/audits/example.html b/apps/audits/templates/audits/example.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/audits/templates/audits/proxy_log_list.html b/apps/audits/templates/audits/proxy_log_list.html index e89e19a85..b60b54e31 100644 --- a/apps/audits/templates/audits/proxy_log_list.html +++ b/apps/audits/templates/audits/proxy_log_list.html @@ -60,6 +60,7 @@ {% endblock %} {% block table_head %} + {% trans 'ID' %} {% trans 'User' %} {% trans 'Asset' %} @@ -76,6 +77,7 @@ {% block table_body %} {% for proxy_log in proxy_log_list %} + {{ proxy_log.id }} @@ -100,7 +102,7 @@ {% else %} - + @@ -112,9 +114,33 @@ {% endfor %} {% endblock %} +{% block content_bottom_left %} +
+
+ +
+ +
+
+
+{% endblock %} + {% block custom_foot_js %} {% endblock %}