Commit 1e1cb4a418486a846d4c5aa1306fa71ab3081796

Authored by Jailson Dias
2 parents b4c93639 956ab406

Merge branch 'master' of https://github.com/amadeusproject/amadeuslms

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
core/templates/index.html
@@ -3,37 +3,17 @@ @@ -3,37 +3,17 @@
3 {% load static i18n %} 3 {% load static i18n %}
4 {% load widget_tweaks %} 4 {% load widget_tweaks %}
5 5
6 -{% block style %}  
7 - <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700" type="text/css">  
8 - <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">  
9 -  
10 - <link rel="stylesheet" type="text/css" href="{% static 'bootstrap-3.3.7/css/bootstrap.min.css' %}">  
11 - <link rel="stylesheet" type="text/css" href="{% static 'material/css/bootstrap-material-design.min.css' %}">  
12 - <link rel="stylesheet" type="text/css" href="{% static 'material/css/ripples.min.css' %}">  
13 -  
14 -{% endblock %}  
15 -  
16 -  
17 -{% block javascript %}  
18 -<!-- Jquery -->  
19 - <script src="{% static 'js/jquery-3.1.0.min.js' %}"></script>  
20 - <script src="{% static 'bootstrap-3.3.7/js/bootstrap.min.js' %}"></script>  
21 - <script src="{% static 'material/js/material.min.js' %}"></script>  
22 - <script src="{% static 'material/js/ripples.min.js' %}"></script>  
23 - <script>  
24 - $.material.init();  
25 - </script> 6 +{% block nav %}
26 {% endblock %} 7 {% endblock %}
27 8
28 -  
29 {% block content %} 9 {% block content %}
30 - <div class="row logo-row"> 10 + <div class="row logo-row">
31 <div class="col-lg-offset-2 col-lg-9"> 11 <div class="col-lg-offset-2 col-lg-9">
32 <img src="..." class="img-responsive center-block " alt="logo amadeus"> 12 <img src="..." class="img-responsive center-block " alt="logo amadeus">
33 </div> 13 </div>
34 </div> 14 </div>
35 15
36 - <div class="row "> 16 + <div class="row ">
37 <div class="col-lg-9 col-lg-offset-2"> 17 <div class="col-lg-9 col-lg-offset-2">
38 <div class="card"> 18 <div class="card">
39 {% if message %} 19 {% if message %}
@@ -43,19 +23,17 @@ @@ -43,19 +23,17 @@
43 23
44 {% endif %} 24 {% endif %}
45 <div class="card-content"> 25 <div class="card-content">
46 -  
47 <div class="card-body"> 26 <div class="card-body">
48 - <form id="form-login" class="form-group" method="post" action="">  
49 - {% csrf_token %}  
50 - <div class="form-group is-empty">  
51 - <label for="inputEmail" class="col-md-4 control-label"> Username</label>  
52 - <div class="col-md-8">  
53 - <input form="form-login" type="text" name="username" class="form-control" id="inputEmail" placeholder="Username">  
54 - </div>  
55 - </div> 27 + <form id="form-login" class="form-group" method="post" action="">
  28 + {% csrf_token %}
  29 + <div class="form-group is-empty">
  30 + <label for="inputEmail" class="col-md-4 control-label"> {% trans 'Username' %}</label>
  31 + <div class="col-md-8">
  32 + <input form="form-login" type="text" name="username" class="form-control" id="inputEmail" placeholder="Username">
  33 + </div>
  34 + </div>
56 <div class="form-group is-empty"> 35 <div class="form-group is-empty">
57 - <label for="inputPassword" class="col-md-4 control-label"> Password</label>  
58 - 36 + <label for="inputPassword" class="col-md-4 control-label"> {% trans 'Password' %}</label>
59 <div class="col-md-8"> 37 <div class="col-md-8">
60 <input form="form-login" type="password" name="password" class="form-control" id="inputPassword" placeholder="Password"> 38 <input form="form-login" type="password" name="password" class="form-control" id="inputPassword" placeholder="Password">
61 </div> 39 </div>
@@ -63,31 +41,28 @@ @@ -63,31 +41,28 @@
63 <div class="col-md-offset-2 col-md-10"> 41 <div class="col-md-offset-2 col-md-10">
64 <div class="checkbox"> 42 <div class="checkbox">
65 <label> 43 <label>
66 - <input form="form-login" type="checkbox" name="checkbox"><span class="checkbox-material"><span class="check"></span></span> Remember Email 44 + <input form="form-login" type="checkbox" name="checkbox"><span class="checkbox-material"><span class="check"></span></span> {% trans 'Remember Email' %}
67 </label> 45 </label>
68 </div> 46 </div>
69 </div> 47 </div>
70 - </form> 48 + </form>
71 </div> 49 </div>
72 50
73 <footer class="card-footer" style="display: -webkit-box;"> 51 <footer class="card-footer" style="display: -webkit-box;">
74 <div class="col-md-6"> 52 <div class="col-md-6">
75 - <button type="button" class="btn btn-flat" formaction="#" style="position: initial;">Guest</button> 53 + <button type="button" class="btn btn-flat" formaction="#" style="position: initial;">{% trans 'Guest' %}</button>
76 </div> 54 </div>
77 <div class="col-md-6"> 55 <div class="col-md-6">
78 - <button type="submite" class="btn btn-flat btn-success" form="form-login" style="position: initial;">Login</button> 56 + <button type="submite" class="btn btn-flat btn-success" form="form-login" style="position: initial;">{% trans 'Login' %}</button>
79 </div> 57 </div>
80 </footer> 58 </footer>
81 -  
82 </div> 59 </div>
83 </div> 60 </div>
84 </div> 61 </div>
85 </div> 62 </div>
86 <div class="row"> 63 <div class="row">
87 <div class="col-lg-offset-2 col-lg-9"> 64 <div class="col-lg-offset-2 col-lg-9">
88 - <button class="btn btn-raised btn-primary btn-lg btn-block" formaction="{% url 'users:create' %}">Sign Up </button>  
89 - 65 + <button class="btn btn-raised btn-primary btn-lg btn-block" formaction="{% url 'users:create' %}">{% trans 'Sign Up' %} </button>
90 </div> 66 </div>
91 -  
92 </div> 67 </div>
93 {% endblock%} 68 {% endblock%}
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 context = {} 25 context = {}
26 if request.POST: 26 if request.POST:
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