diff --git a/courses/forms.py b/courses/forms.py
index 26e90b6..35d9d51 100644
--- a/courses/forms.py
+++ b/courses/forms.py
@@ -36,7 +36,7 @@ class CourseForm(forms.ModelForm):
help_texts = {
'name': _('Course name'),
'objectivies': _('Course objective'),
- 'content': _('COurse modules'),
+ 'content': _('Course modules'),
'max_students': _('Max number of students that a class can have'),
'init_register_date': _('Date that starts the registration period of the course (dd/mm/yyyy)'),
'end_register_date': _('Date that ends the registration period of the course (dd/mm/yyyy)'),
diff --git a/courses/templatetags/custom_filters.py b/courses/templatetags/custom_filters.py
deleted file mode 100644
index 27415c9..0000000
--- a/courses/templatetags/custom_filters.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from django import template
-import datetime
-from subscriptions.models import Subscribe
-
-register = template.Library()
-
-@register.filter(expects_localtime=True)
-def show_subscribe(course, user):
- actual = datetime.date.today()
-
- return course.init_register_date <= actual <= course.end_register_date and not Subscribe.objects.filter(user = user, course = course)
-
-@register.filter
-def subscribed(course, user):
- return Subscribe.objects.filter(user = user, course = course)
\ No newline at end of file
diff --git a/courses/views.py b/courses/views.py
index c53d76d..521bc74 100644
--- a/courses/views.py
+++ b/courses/views.py
@@ -9,7 +9,6 @@ from django.core.urlresolvers import reverse_lazy
from django.utils.translation import ugettext_lazy as _
from slugify import slugify
-from .serializers import CourseSerializer
from .forms import CourseForm, CategoryForm, ModuleForm
from .models import Course, Module, Category
diff --git a/users/forms.py b/users/forms.py
index 3d9a63e..3993417 100644
--- a/users/forms.py
+++ b/users/forms.py
@@ -23,16 +23,6 @@ class ProfileForm(forms.ModelForm):
class UserForm(forms.ModelForm):
- password = forms.CharField(label=_('Password'), widget=forms.PasswordInput)
-
- def save(self, commit=True):
- super(UserForm, self).save(commit=False)
-
- self.instance.set_password(self.cleaned_data['password'])
- self.instance.save()
-
- return self.instance
-
class Meta:
model = User
- fields = ['username', 'name', 'email', 'password', 'birth_date', 'city', 'state', 'gender', 'type_profile', 'cpf', 'phone', 'image', 'is_staff', 'is_active']
\ No newline at end of file
+ fields = ['username', 'name', 'email', 'birth_date', 'city', 'state', 'gender', 'type_profile', 'cpf', 'phone', 'image', 'is_staff', 'is_active']
\ No newline at end of file
diff --git a/users/templates/users/index.html b/users/templates/users/index.html
index dc82435..088a3de 100644
--- a/users/templates/users/index.html
+++ b/users/templates/users/index.html
@@ -11,10 +11,10 @@
{% block sidebar %}
{{ user }}
-
{% if user.type_profile %}{{ user.type_profile }}{% else %}
+ {% if user.type_profile %}{{ user.get_type_profile_display }}{% else %}
{% trans 'Administrator' %} {% endif %}
- {{ user.gender }}
+ {{ user.get_gender_display }}
{{ user.city }} / {{ user.state }}
{% trans 'Mail:' %} {{ user.email }}
diff --git a/users/templates/users/update.html b/users/templates/users/update.html
index 6d49b90..cd37ce1 100644
--- a/users/templates/users/update.html
+++ b/users/templates/users/update.html
@@ -12,10 +12,10 @@
{% block sidebar %}
-
+
{% trans 'System Users' %}
-
+
{% trans 'New Account' %}
diff --git a/users/templates/users/view.html b/users/templates/users/view.html
index d2e7ef4..59ab167 100644
--- a/users/templates/users/view.html
+++ b/users/templates/users/view.html
@@ -14,9 +14,15 @@
{% trans 'System Users' %}
-
+
{% trans 'New Account' %}
+
+ {% trans 'View User Account' %}
+
+
+ {% trans 'Edit User Account' %}
+
{% trans 'Send Mail' %}
diff --git a/users/urls.py b/users/urls.py
index 2fb8018..ca8114e 100644
--- a/users/urls.py
+++ b/users/urls.py
@@ -3,10 +3,10 @@ from django.conf.urls import url
from . import views
urlpatterns = [
- url(r'^$', views.index, name='manage'),
- url(r'^criar/$', views.create, name='create'),
- url(r'^editar/([\w_-]+)/$', views.update, name='update'),
- url(r'^dados/([\w_-]+)/$', views.view, name='view'),
- url(r'^perfil/$', views.profile, name='profile'),
- url(r'^perfil/editar/$', views.edit_profile, name='edit_profile'),
+ url(r'^$', views.Index.as_view(), name='manage'),
+ url(r'^criar/$', views.Create.as_view(), name='create'),
+ url(r'^editar/(?P
[\w_-]+)/$', views.Update.as_view(), name='update'),
+ url(r'^dados/(?P[\w_-]+)/$', views.View.as_view(), name='view'),
+ url(r'^perfil/$', views.Profile.as_view(), name='profile'),
+ url(r'^perfil/editar/$', views.EditProfile.as_view(), name='edit_profile'),
]
\ No newline at end of file
diff --git a/users/views.py b/users/views.py
index ebea4fa..e6addab 100644
--- a/users/views.py
+++ b/users/views.py
@@ -1,111 +1,127 @@
-from django.shortcuts import render, get_object_or_404, redirect
-from rolepermissions.shortcuts import assign_role
+from django.shortcuts import get_object_or_404
+from django.views import generic
from django.contrib import messages
-from django.contrib.auth.decorators import login_required
+from rolepermissions.mixins import HasRoleMixin
+from django.contrib.auth.mixins import LoginRequiredMixin
+from django.core.urlresolvers import reverse_lazy
from django.utils.translation import ugettext_lazy as _
+from rolepermissions.shortcuts import assign_role
from .models import User
from .forms import UserForm, ProfileForm
-@login_required
-def index(request):
- context = {
- 'users': User.objects.exclude(username = request.user.username)
- }
-
- return render(request, "users/index.html", context)
-
-@login_required
-def create(request):
- context = {}
-
- form = UserForm(request.POST or None, request.FILES or None)
-
- if form.is_valid():
- user = form.save(commit = False)
-
- if user.type_profile == 2:
- assign_role(user, 'student')
- elif user.type_profile == 1:
- assign_role(user, 'professor')
- elif user.is_staff:
- assign_role(user, 'system_admin')
-
- user.save()
-
- messages.success(request, _('User created successfully!'))
-
- return redirect('app:users:manage')
-
- context['form'] = form
-
- return render(request, "users/create.html", context)
-
-@login_required
-def update(request, login):
- context = {}
-
- user = get_object_or_404(User, username = login)
-
- form = UserForm(request.POST or None, request.FILES or None, instance = user)
+class Index(HasRoleMixin, LoginRequiredMixin, generic.ListView):
- if form.is_valid():
- new_user = form.save(commit = False)
-
- if user.type_profile == 2:
- assign_role(user, 'student')
- elif user.type_profile == 1:
- assign_role(user, 'professor')
- elif user.is_staff:
- assign_role(user, 'system_admin')
-
- new_user.save()
-
- messages.success(request, _('User edited successfully!'))
-
- return redirect('app:users:manage')
+ allowed_roles = ['system_admin']
+ login_url = '/'
+ redirect_field_name = 'next'
+ template_name = 'users/index.html'
+ context_object_name = 'users'
+ paginate_by = 10
+
+ def get_queryset(self):
+ users = User.objects.exclude(username = self.request.user.username)
+ return users
+
+class Create(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView):
+
+ allowed_roles = ['system_admin']
+ login_url = '/'
+ redirect_field_name = 'next'
+ template_name = 'users/create.html'
+ form_class = UserForm
+ context_object_name = 'acc'
+ success_url = reverse_lazy('app:user:manage')
+
+ def form_valid(self, form):
+ self.object = form.save(commit = False)
+
+ if self.object.type_profile == 2:
+ assign_role(self.object, 'student')
+ elif self.object.type_profile == 1:
+ assign_role(self.object, 'professor')
+ elif self.object.is_staff:
+ assign_role(self.object, 'system_admin')
+
+ self.object.save()
+
+ messages.success(self.request, _('User created successfully!'))
+
+ return super(Create, self).form_valid(form)
+
+class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView):
+
+ allowed_roles = ['system_admin']
+ login_url = '/'
+ redirect_field_name = 'next'
+ template_name = 'users/update.html'
+ slug_field = 'username'
+ slug_url_kwarg = 'username'
+ context_object_name = 'acc'
+ model = User
+ form_class = UserForm
+ success_url = reverse_lazy('app:users:manage')
+
+ def form_valid(self, form):
+ self.object = form.save(commit = False)
+
+ if self.object.type_profile == 2:
+ assign_role(self.object, 'student')
+ elif self.object.type_profile == 1:
+ assign_role(self.object, 'professor')
+ elif self.object.is_staff:
+ assign_role(self.object, 'system_admin')
+
+ self.object.save()
+
+ messages.success(self.request, _('User edited successfully!'))
+
+ return super(Update, self).form_valid(form)
- context['form'] = form
-
- return render(request, "users/update.html", context)
-
-@login_required
-def view(request, login):
- context = {}
-
- user = get_object_or_404(User, username = login)
-
- context['acc'] = user
-
- return render(request, "users/view.html", context)
-
-@login_required
-def profile(request):
- context = {
- 'user': request.user
- }
-
- return render(request, "users/profile.html", context)
-
-@login_required
-def edit_profile(request):
- form = ProfileForm(request.POST or None, request.FILES or None, instance=request.user)
-
- context = {}
-
- if form.is_valid():
- user = form.save(commit = False)
-
- if user.type_profile == 2:
- assign_role(user, 'student')
- elif user.type_profile == 1:
- assign_role(user, 'professor')
- elif user.is_staff:
- assign_role(user, 'system_admin')
-
- user.save()
-
- messages.success(request, _('Profile edited successfully!'))
-
- context['form'] = form
-
- return render(request, "users/edit_profile.html", context)
\ No newline at end of file
+class View(LoginRequiredMixin, generic.DetailView):
+
+ login_url = '/'
+ redirect_field_name = 'next'
+ model = User
+ context_object_name = 'acc'
+ template_name = 'users/view.html'
+ slug_field = 'username'
+ slug_url_kwarg = 'username'
+
+class Profile(LoginRequiredMixin, generic.DetailView):
+
+ login_url = '/'
+ redirect_field_name = 'next'
+ context_object_name = 'user'
+ template_name = 'users/profile.html'
+
+ def get_object(self):
+ user = get_object_or_404(User, username = self.request.user.username)
+ return user
+
+class EditProfile(LoginRequiredMixin, generic.UpdateView):
+
+ login_url = '/'
+ redirect_field_name = 'next'
+ template_name = 'users/edit_profile.html'
+ form_class = UserForm
+ success_url = reverse_lazy('app:users:edit_profile')
+
+ def get_object(self):
+ user = get_object_or_404(User, username = self.request.user.username)
+ return user
+
+ def form_valid(self, form):
+ self.object = form.save(commit = False)
+
+ if self.object.type_profile == 2:
+ assign_role(self.object, 'student')
+ elif self.object.type_profile == 1:
+ assign_role(self.object, 'professor')
+ elif self.object.is_staff:
+ assign_role(self.object, 'system_admin')
+
+ self.object.save()
+
+ messages.success(self.request, _('Profile edited successfully!'))
+
+ return super(EditProfile, self).form_valid(form)
\ No newline at end of file
--
libgit2 0.21.2