Commit 25286b08c518bf5a3c554a152f777c253a119d97

Authored by Zambom
1 parent f116c316

Implementando log

amadeus/settings.py
@@ -149,5 +149,5 @@ AUTHENTICATION_BACKENDS = [ @@ -149,5 +149,5 @@ AUTHENTICATION_BACKENDS = [
149 ] 149 ]
150 ROLEPERMISSIONS_MODULE = 'amadeus.roles' 150 ROLEPERMISSIONS_MODULE = 'amadeus.roles'
151 151
152 - 152 +LOGS_URL = 'logs/'
153 #https://github.com/squ1b3r/Djaneiro 153 #https://github.com/squ1b3r/Djaneiro
app/templates/home_app.html
@@ -1,74 +0,0 @@ @@ -1,74 +0,0 @@
1 -{% extends 'base.html' %}  
2 -  
3 -{% load i18n %}  
4 -  
5 -{% block breadcrumbs %}  
6 - <div class="row">  
7 - <div class="col-md-12">  
8 - <h4>{{ user }}</h4>  
9 - </div>  
10 - </div>  
11 - <div class="row">  
12 - <div class="col-md-12">  
13 - <ul class="breadcrumb" style="margin-bottom: 5px;">  
14 - <li><a href="{% url 'core:index' %}">{% trans 'Home' %}</a></li>  
15 - <li><a href="{% url 'core:logout' %}">{% trans 'Logout' %}</a></li>  
16 - </ul>  
17 - </div>  
18 - </div>  
19 -{% endblock %}  
20 -  
21 -{% block sidebar %}  
22 - <div class="btn-group-vertical">  
23 - <a href="javascript:void(0)" class="btn btn-raised">{% trans 'Pending tasks' %}</a>  
24 - <a href="javascript:void(0)" class="btn btn-raised" type="button" data-container="body" data-toggle="popover" data-placement="right" data-content="Gerson Rodriguez" >{% trans 'Users Online (1)' %}</a>  
25 - <a href="javascript:void(0)" class="btn btn-raised" button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{% trans 'Course' %} <span class="caret"></span></a>  
26 - <ul class="dropdown-menu" aria-labelledby="dLabel">  
27 - <a href="{% url 'course:create' %}" class="btn btn">{% trans 'Create Course' %}</a>  
28 - <a href="{% url 'course:manage' %}" class="btn btn">{% trans 'Manage Course' %}</a>  
29 - </ul>  
30 - </div>  
31 -{% endblock %}  
32 -  
33 -{% block content %}  
34 - <h4>  
35 - <strong>  
36 - <center>{% trans 'Courses' %}</center>  
37 - </strong>  
38 - </h4>  
39 -  
40 - {% if courses|length > 0 %}  
41 - {% for course in courses %}  
42 - <button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-{{ course.slug }}-modal-sm">{{ course }}</button>  
43 - <div class="modal fade bs-{{ course.slug }}-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">  
44 - <div class="modal-dialog modal-sm" role="document">  
45 - <div class="modal-content">  
46 - <p> {{ course }}</p>  
47 - </div>  
48 - </div>  
49 - </div>  
50 - {% endfor %}  
51 - {% else %}  
52 - <p>{% trans "You didn't create any course yet." %}</p>  
53 - {% endif %}  
54 -{% endblock %}  
55 -  
56 -{% block rightbar %}  
57 - <div class="bs-callout bs-callout-info" id="callout-helper-context-color-specificity">  
58 - <h4>  
59 - <strong>  
60 - <center>{% trans 'Goals' %}</center>  
61 - </strong>  
62 - </h4>  
63 - <table class="table">  
64 - <tr>  
65 - <th scope="row"><input type="checkbox"/></th>  
66 - <td>70% de Presenca nas aulas</td>  
67 - </tr>  
68 - <tr>  
69 - <th scope="row"><input type="checkbox"/></th>  
70 - <td>30/11 - Entrega das notas finais</td>  
71 - </tr>  
72 - </table>  
73 - </div>  
74 -{% endblock rightbar %}  
app/templates/home_student.html
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <div class="row"> 6 <div class="row">
7 <div class="col-md-12"> 7 <div class="col-md-12">
8 <ul class="breadcrumb"> 8 <ul class="breadcrumb">
9 - <li><a href="{% url 'core:index' %}">{% trans 'Home' %}</a></li> 9 + <li><a href="{% url 'core:index' %}">{% trans 'Home' %} {{ logged }}</a></li>
10 </ul> 10 </ul>
11 </div> 11 </div>
12 </div> 12 </div>
1 from django.shortcuts import render 1 from django.shortcuts import render
2 from django.views.generic import TemplateView 2 from django.views.generic import TemplateView
3 from django.contrib.auth.mixins import LoginRequiredMixin 3 from django.contrib.auth.mixins import LoginRequiredMixin
  4 +from django.utils.decorators import decorator_from_middleware_with_args
  5 +from django.utils.decorators import decorator_from_middleware
  6 +from django.utils.decorators import method_decorator
  7 +from core.mixins import LogMixin
4 8
5 from courses.models import Course 9 from courses.models import Course
6 10
7 -class AppIndex(LoginRequiredMixin, TemplateView): 11 +class AppIndex(LoginRequiredMixin, LogMixin, TemplateView):
  12 + log_action = "Acessou home"
8 template_name = "home_professor.html" 13 template_name = "home_professor.html"
9 14
10 def render_to_response(self, context, **response_kwargs): 15 def render_to_response(self, context, **response_kwargs):
core/decorators.py 0 → 100644
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
  1 +import os
  2 +import datetime
  3 +from django.conf import settings
  4 +from functools import wraps
  5 +
  6 +def log_decorator(log_action = ''):
  7 +
  8 + def _log_decorator(view_function):
  9 +
  10 + def _decorator(request, *args, **kwargs):
  11 +
  12 + response = view_function(request, *args, **kwargs)
  13 +
  14 + if request.user.is_authenticated and request.POST:
  15 + date = datetime.datetime.now()
  16 +
  17 + message = date.strftime("%d/%m/%Y %H:%M:%S") + ' - ' + request.user.username + ' - ' + log_action + '\n'
  18 +
  19 + file_name = 'log_file_' + date.strftime("%d-%m-%Y") + '.txt'
  20 +
  21 + log_path = os.path.join(settings.LOGS_URL, file_name)
  22 +
  23 + log_file = open(log_path,'a+')
  24 + log_file.write(message)
  25 + log_file.close()
  26 +
  27 + return response
  28 +
  29 + return wraps(view_function)(_decorator)
  30 +
  31 + return _log_decorator
0 \ No newline at end of file 32 \ No newline at end of file
core/mixins.py 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +import os
  2 +import datetime
  3 +from django.conf import settings
  4 +
  5 +class LogMixin(object):
  6 + log_action = ""
  7 +
  8 + def dispatch(self, request, *args, **kwargs):
  9 + date = datetime.datetime.now()
  10 +
  11 + message = date.strftime("%d/%m/%Y %H:%M:%S") + ' - ' + request.user.username + ' - ' + self.log_action + '\n'
  12 +
  13 + file_name = 'log_file_' + date.strftime("%d-%m-%Y") + '.txt'
  14 +
  15 + log_path = os.path.join(settings.LOGS_URL, file_name)
  16 +
  17 + log_file = open(log_path,'a+')
  18 + log_file.write(message)
  19 + log_file.close()
  20 +
  21 + return super(LogMixin, self).dispatch(request, *args, **kwargs)
0 \ No newline at end of file 22 \ No newline at end of file
1 -  
2 from django.shortcuts import render 1 from django.shortcuts import render
3 from django.http import HttpResponse 2 from django.http import HttpResponse
  3 +
  4 +from django.contrib.auth import authenticate, login as login_user
  5 +from django.shortcuts import redirect
  6 +from django.core.urlresolvers import reverse
  7 +
  8 +from .decorators import log_decorator
4 # from django.contrib.auth.views import LoginView 9 # from django.contrib.auth.views import LoginView
5 10
6 def index(request): 11 def index(request):
@@ -15,12 +20,7 @@ def create_account(request): @@ -15,12 +20,7 @@ def create_account(request):
15 def remember_password(request): 20 def remember_password(request):
16 return render(request, "remember_password.html") 21 return render(request, "remember_password.html")
17 22
18 -  
19 -  
20 -from django.contrib.auth import authenticate, login as login_user  
21 -from django.shortcuts import redirect  
22 -from django.urls import reverse  
23 - 23 +@log_decorator('Entrou no sistema')
24 def login(request): 24 def login(request):
25 if request.POST: 25 if request.POST:
26 username = request.POST['username'] 26 username = request.POST['username']
db.sqlite3
No preview for this file type
logs/log_file_02-09-2016.txt 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 +02/09/2016 23:34:45 - zambom - Entrou no sistema
  2 +02/09/2016 23:34:45 - zambom - Acessou home