diff --git a/amadeus/settings.py b/amadeus/settings.py index 4e3f84c..9f41262 100644 --- a/amadeus/settings.py +++ b/amadeus/settings.py @@ -51,8 +51,10 @@ INSTALLED_APPS = [ 's3direct', 'django_summernote', + 'amadeus', 'users', 'localization', + 'notifications', 'log', ] diff --git a/localization/migrations/0001_initial.py b/localization/migrations/0001_initial.py index b9d63a8..a79aff4 100644 --- a/localization/migrations/0001_initial.py +++ b/localization/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-12-19 17:20 +# Generated by Django 1.10 on 2016-12-20 18:17 from __future__ import unicode_literals from django.db import migrations, models diff --git a/users/admin.py b/users/admin.py index 453c8be..e69de29 100644 --- a/users/admin.py +++ b/users/admin.py @@ -1,10 +0,0 @@ -from django.contrib import admin -from .models import User -from .forms import UserForm - -class UserAdmin(admin.ModelAdmin): - list_display = ['username', 'name', 'email', 'is_staff', 'is_active'] - search_fields = ['username', 'name', 'email'] - form = UserForm - -admin.site.register(User, UserAdmin) diff --git a/users/forms.py b/users/forms.py index 1d7d4de..196d5fd 100644 --- a/users/forms.py +++ b/users/forms.py @@ -1,52 +1,10 @@ # coding=utf-8 -import os, re -from datetime import date -from pycpfcnpj import cpfcnpj -from django.conf import settings from django import forms from django.utils.translation import ugettext_lazy as _ from rolepermissions.shortcuts import assign_role -from django.contrib.auth.forms import UserCreationForm from .models import User class Validation(forms.ModelForm): - def clean_email(self): - email = self.cleaned_data['email'] - - if User.objects.filter(email = email).exists(): - raise forms.ValidationError(_('There is already a registered User with this e-mail')) - - return email - - def validate_cpf(self, cpf): - cpf = ''.join(re.findall('\d', str(cpf))) - - if not cpf == '': - if cpfcnpj.validate(cpf): - return True - - return False - - return True - - def clean_cpf(self): - cpf = self.cleaned_data['cpf'] - - if not self.validate_cpf(cpf): - raise forms.ValidationError(_('Please enter a valid CPF')) - - return cpf - - def clean_birth_date(self): - birth_date = self.cleaned_data['birth_date'] - - if not birth_date is None: - if birth_date >= date.today(): - raise forms.ValidationError(_('Please enter a valid date')) - - return birth_date - -class ValidationRegister(Validation): def clean_password(self): password = self.cleaned_data.get('password') @@ -70,35 +28,6 @@ class ValidationRegister(Validation): return password2 -class UserForm(Validation): - def save(self, commit=True): - super(AdminUserForm, self).save(commit=False) - - self.instance.set_password(self.cleaned_data['password']) - self.instance.save() - - if self.instance.is_staff: - assign_role(self.instance, 'system_admin') - elif self.instance.type_profile == 2: - assign_role(self.instance, 'student') - elif self.instance.type_profile == 1: - assign_role(self.instance, 'professor') - elif self.instance.type_profile == 3: - assign_role(self.instance, 'coordinator') - - 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', 'titration', 'year_titration', 'institution', 'curriculum', 'is_staff', 'is_active'] - widgets = { - 'password':forms.PasswordInput - } - class RegisterUserForm(ValidationRegister): password = forms.CharField(label=_('Password'), widget=forms.PasswordInput) password2 = forms.CharField(label = _('Confirm Password'), widget = forms.PasswordInput) @@ -111,17 +40,12 @@ class RegisterUserForm(ValidationRegister): self.instance.set_password(self.cleaned_data['password']) self.instance.save() + + if self.instance.type_profile == 2: + assign_role(self.instance, 'student') return self.instance class Meta: model = User - fields = ['username', 'name', 'email',] - -class UpdateProfileForm(Validation): - - class Meta: - model = User - fields = ['username', 'name', 'email', 'birth_date', 'city', - 'state', 'gender', 'cpf', 'phone', 'image', 'titration', - 'year_titration', 'institution', 'curriculum'] + fields = ['username', 'name', 'last_name', 'social_name',] diff --git a/users/migrations/0001_initial.py b/users/migrations/0001_initial.py index d051fbe..47bc171 100644 --- a/users/migrations/0001_initial.py +++ b/users/migrations/0001_initial.py @@ -1,11 +1,10 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-12-19 17:21 +# Generated by Django 1.10 on 2016-12-20 18:17 from __future__ import unicode_literals import django.contrib.auth.models import django.core.validators from django.db import migrations, models -import django.db.models.deletion import re @@ -15,7 +14,6 @@ class Migration(migrations.Migration): dependencies = [ ('auth', '0008_alter_user_username_max_length'), - ('localization', '0001_initial'), ] operations = [ @@ -26,25 +24,18 @@ class Migration(migrations.Migration): ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), - ('username', models.CharField(help_text='A short name that will be used to identify you in the platform and to access it', max_length=35, unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[\\w.@+-]+$', 32), 'Type a valid username. This fields should only contain letters, numbers and the characteres: @/./+/-/_ .', 'invalid')], verbose_name='Login')), - ('email', models.EmailField(max_length=254, unique=True, verbose_name='Mail')), - ('name', models.CharField(max_length=100, verbose_name='Name')), - ('gender', models.CharField(blank=True, choices=[('M', 'Male'), ('F', 'Female')], max_length=1, null=True, verbose_name='Gender')), + ('email', models.EmailField(help_text='Your email address that will be used to access the platform', max_length=254, unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[\\w.@+-]+$', 32), 'Type a valid username. This fields should only contain letters, numbers and the characteres: @/./+/-/_ .', 'invalid')], verbose_name='Mail')), + ('username', models.CharField(max_length=100, verbose_name='Name')), + ('last_name', models.CharField(max_length=100, verbose_name='Last Name')), + ('social_name', models.CharField(blank=True, max_length=100, null=True, verbose_name='Social Name')), + ('description', models.TextField(blank=True, verbose_name='Description')), ('image', models.ImageField(blank=True, null=True, upload_to='users/', verbose_name='Photo')), - ('birth_date', models.DateField(blank=True, null=True, verbose_name='Birth Date')), - ('phone', models.CharField(blank=True, max_length=30, verbose_name='Phone')), - ('cpf', models.CharField(blank=True, max_length=15, null=True, verbose_name='CPF')), - ('type_profile', models.IntegerField(blank=True, choices=[(1, 'Professor'), (2, 'Student')], null=True, verbose_name='Type')), - ('titration', models.CharField(blank=True, max_length=50, null=True, verbose_name='Titration')), - ('year_titration', models.CharField(blank=True, max_length=4, null=True, verbose_name='Year of titration')), - ('institution', models.CharField(blank=True, max_length=50, null=True, verbose_name='Institution')), - ('curriculum', models.FileField(blank=True, null=True, upload_to='users/curriculum/', verbose_name='Curriculum')), + ('type_profile', models.IntegerField(blank=True, choices=[(1, 'Professor'), (2, 'Student'), (3, 'Coordinator')], null=True, verbose_name='Type')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Create Date')), + ('show_email', models.IntegerField(choices=[(1, 'Allow everyone to see my address'), (2, 'Only classmates can see my address'), (3, 'Nobody can see my address')], null=True, verbose_name='Show email?')), ('is_staff', models.BooleanField(default=False, verbose_name='Administrator')), ('is_active', models.BooleanField(default=True, verbose_name='Active')), - ('city', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='localization.City', verbose_name='City')), ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), - ('state', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='localization.State', verbose_name='State')), ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), ], options={ diff --git a/users/migrations/0002_auto_20161219_2218.py b/users/migrations/0002_auto_20161219_2218.py deleted file mode 100644 index 709542e..0000000 --- a/users/migrations/0002_auto_20161219_2218.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-12-20 01:18 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('users', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='user', - name='type_profile', - field=models.IntegerField(blank=True, choices=[(1, 'Professor'), (2, 'Student'), (3, 'Coordinator')], null=True, verbose_name='Type'), - ), - ] diff --git a/users/models.py b/users/models.py index 9371b24..21ec2ea 100644 --- a/users/models.py +++ b/users/models.py @@ -6,37 +6,28 @@ from django.utils.translation import ugettext_lazy as _ from django.contrib.auth.models import AbstractBaseUser, UserManager, PermissionsMixin from django.contrib.staticfiles.templatetags.staticfiles import static -from localization.models import City, State - class User(AbstractBaseUser, PermissionsMixin): - username = models.CharField(_('Login'), max_length = 35, unique = True, validators = [ + email = models.EmailField(_('Mail'), unique = True, validators = [ validators.RegexValidator( re.compile('^[\w.@+-]+$'), _('Type a valid username. This fields should only contain letters, numbers and the characteres: @/./+/-/_ .') , 'invalid' ) - ], help_text = _('A short name that will be used to identify you in the platform and to access it')) - email = models.EmailField(_('Mail'), unique = True) - name = models.CharField(_('Name'), max_length = 100) - city = models.ForeignKey(City, verbose_name = _('City'), blank = True, null = True) - state = models.ForeignKey(State, verbose_name = _('State'), blank = True, null = True) - gender = models.CharField(_('Gender'), max_length = 1, choices = (('M', _('Male')), ('F', _('Female'))), blank=True, null=True) + ], help_text = _('Your email address that will be used to access the platform')) + username = models.CharField(_('Name'), max_length = 100) + last_name = models.CharField(_('Last Name'), max_length = 100) + social_name = models.CharField(_('Social Name'), max_length = 100, blank = True, null = True) + description = models.TextField(_('Description'), blank = True) image = models.ImageField(verbose_name = _('Photo'), null=True, blank = True, upload_to = 'users/') - birth_date = models.DateField(_('Birth Date'), null=True, blank=True) - phone = models.CharField(_('Phone'), max_length = 30, blank = True) - cpf = models.CharField(_('CPF'), max_length = 15, blank=True, null=True) type_profile = models.IntegerField(_('Type'), null = True, blank = True, choices = ((1, _('Professor')), (2, _('Student')), (3, _('Coordinator')))) - titration = models.CharField(_('Titration'), max_length = 50, blank = True, null = True) - year_titration = models.CharField(_('Year of titration'), max_length = 4, blank = True, null = True) - institution = models.CharField(_('Institution'), max_length = 50, blank=True, null=True) - curriculum = models.FileField(verbose_name = _('Curriculum'), upload_to='users/curriculum/', null=True, blank=True) date_created = models.DateTimeField(_('Create Date'), auto_now_add = True) + show_email = models.IntegerField(_('Show email?'), null = True, choices = ((1, _('Allow everyone to see my address')), (2, _('Only classmates can see my address')), (3, _('Nobody can see my address')))) is_staff = models.BooleanField(_('Administrator'), default = False) is_active = models.BooleanField(_('Active'), default = True) - USERNAME_FIELD = 'username' - REQUIRED_FIELDS = ['email'] + USERNAME_FIELD = 'email' + REQUIRED_FIELDS = ['username', 'last_name'] objects = UserManager() @@ -45,7 +36,7 @@ class User(AbstractBaseUser, PermissionsMixin): verbose_name_plural = _('Users') def __str__(self): - return self.name or self.username + return self.social_name or self.username def save(self, *args, **kwargs): if not self.is_staff and self.type_profile is None: @@ -53,9 +44,6 @@ class User(AbstractBaseUser, PermissionsMixin): super(User, self).save(*args, **kwargs) - def get_short_name(self): - return self.name - @property def image_url(self): if self.image and hasattr(self.image, 'url'): diff --git a/users/templates/users/login.html b/users/templates/users/login.html index 04a18ce..eded37e 100644 --- a/users/templates/users/login.html +++ b/users/templates/users/login.html @@ -41,8 +41,8 @@ {% csrf_token %}
- - + +
@@ -51,20 +51,13 @@
-
-
- -
-
- {% trans 'Guest' %} + {% trans 'Sign Up' %}
@@ -74,7 +67,6 @@
- {% trans 'Sign Up' %} diff --git a/users/urls.py b/users/urls.py index 86755d4..5581027 100644 --- a/users/urls.py +++ b/users/urls.py @@ -2,21 +2,7 @@ from django.conf.urls import url from . import views - urlpatterns = [ url(r'^login/$', views.login, name='login'), - #url(r'^$', views.UsersListView.as_view(), name='manage'), - url(r'^create/$', views.Create.as_view(), name='create'), - url(r'^edit/(?P[\w_-]+)/$', views.Update.as_view(), name='update'), - url(r'^view/(?P[\w_-]+)/$', views.View.as_view(), name='view'), - url(r'^delete/(?P[\w_-]+)/$', views.delete_user, name='delete'), - url(r'^remove/(?P[\w_-]+)/$', views.remove_account, name='remove'), - url(r'^profile/$', views.Profile.as_view(), name='profile'), - url(r'^search/$', views.SearchView.as_view(), name='search'), - # - url(r'^profile/update/$', views.UpdateProfile.as_view(), name='update_profile'), - url(r'^profile/change_password/$', views.Change_password.as_view(), name='change_password'), - url(r'^profile/remove_account/$', views.Remove_account.as_view(), name='remove_account'), - url(r'^profile/delete/$', views.DeleteUser.as_view(), name='delete_profile'), - + ] diff --git a/users/views.py b/users/views.py index ed25f0f..80e845c 100644 --- a/users/views.py +++ b/users/views.py @@ -3,8 +3,9 @@ from django.db.models import Q from django.views import generic from django.contrib import messages from rolepermissions.mixins import HasRoleMixin +from django.contrib.auth import authenticate, login as login_user from django.contrib.auth.mixins import LoginRequiredMixin -from django.core.urlresolvers import reverse_lazy +from django.core.urlresolvers import reverse, reverse_lazy from django.utils.translation import ugettext_lazy as _ from rolepermissions.shortcuts import assign_role from rolepermissions.verifications import has_role @@ -12,7 +13,6 @@ from itertools import chain from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from .models import User -from .forms import UserForm, UpdateProfileForm #API IMPORTS @@ -21,204 +21,204 @@ from .serializers import UserSerializer from rest_framework.permissions import IsAuthenticated, IsAuthenticatedOrReadOnly # ================ ADMIN ======================= -class UsersListView(HasRoleMixin, LoginRequiredMixin, generic.ListView): - - allowed_roles = ['system_admin'] - #login_url = reverse_lazy("core:home") - redirect_field_name = 'next' - template_name = 'list_users.html' - context_object_name = 'users' - paginate_by = 10 - - def get_queryset(self): - search = self.request.GET.get('search', None) - - if search is None: - users = User.objects.all().order_by('name').exclude( username = self.request.user.username) - else: - users = User.objects.filter(Q(username = search) | Q(name = search) | Q(name__icontains = search) | Q(username__icontains = search)).exclude( username = self.request.user.username) - - return users - - def get_context_data (self, **kwargs): - context = super(UsersListView, self).get_context_data(**kwargs) - context['title'] = 'Manage Users' - return context - -class Create(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): - - allowed_roles = ['system_admin'] - #login_url = reverse_lazy("core:home") - redirect_field_name = 'next' - template_name = 'users/create.html' - form_class = UserForm - context_object_name = 'acc' - success_url = reverse_lazy('users:manage') - - def form_valid(self, form): - self.object = form.save() - - 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 ')+self.object.name+(' created successfully!')) - - return super(Create, self).form_valid(form) - def get_context_data (self, **kwargs): - context = super(Create, self).get_context_data(**kwargs) - context['title'] = "Add User" - return context - -class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView): - - allowed_roles = ['system_admin'] - #login_url = reverse_lazy("core:home") - 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('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 ')+self.object.name+_(' updated successfully!')) - - return super(Update, self).form_valid(form) - - def get_context_data (self, **kwargs): - context = super(Update, self).get_context_data(**kwargs) - context['title'] = "Update User" - return context - -class View(LoginRequiredMixin, generic.DetailView): - - #login_url = reverse_lazy("core:home") - redirect_field_name = 'next' - model = User - context_object_name = 'acc' - template_name = 'users/view.html' - slug_field = 'username' - slug_url_kwarg = 'username' - - def get_context_data (self, **kwargs): - context = super(View, self).get_context_data(**kwargs) - context['title'] = "User" - return context - -def delete_user(request,username): - user = get_object_or_404(User,username = username) - user.delete() - messages.success(request,_("User deleted Successfully!")) - return redirect('users:manage') - -def remove_account(request,username): - user = get_object_or_404(User,username = username) - user.delete() - messages.success(request,_("User deleted Successfully!")) - #return redirect('core:logout') - -class Change_password(generic.TemplateView): - template_name = 'users/change_password.html' - - def get_context_data (self, **kwargs): - context = super(Change_password, self).get_context_data(**kwargs) - context['title'] = "Change Password" - return context - -class Remove_account(generic.TemplateView): - template_name = 'users/remove_account.html' - - def get_context_data (self, **kwargs): - context = super(Remove_account, self).get_context_data(**kwargs) - context['title'] = "Remove Account" - return context - -class UpdateProfile(LoginRequiredMixin, generic.edit.UpdateView): - #login_url = reverse_lazy("core:home") - template_name = 'users/edit_profile.html' - form_class = UpdateProfileForm - success_url = reverse_lazy('users:profile') - - def get_object(self): - user = get_object_or_404(User, username = self.request.user.username) - return user - - def get_context_data(self, **kwargs): - context = super(UpdateProfile, self).get_context_data(**kwargs) - context['title'] = 'Update Profile' +# class UsersListView(HasRoleMixin, LoginRequiredMixin, generic.ListView): + +# allowed_roles = ['system_admin'] +# #login_url = reverse_lazy("core:home") +# redirect_field_name = 'next' +# template_name = 'list_users.html' +# context_object_name = 'users' +# paginate_by = 10 + +# def get_queryset(self): +# search = self.request.GET.get('search', None) + +# if search is None: +# users = User.objects.all().order_by('name').exclude( username = self.request.user.username) +# else: +# users = User.objects.filter(Q(username = search) | Q(name = search) | Q(name__icontains = search) | Q(username__icontains = search)).exclude( username = self.request.user.username) + +# return users + +# def get_context_data (self, **kwargs): +# context = super(UsersListView, self).get_context_data(**kwargs) +# context['title'] = 'Manage Users' +# return context + +# class Create(HasRoleMixin, LoginRequiredMixin, generic.edit.CreateView): + +# allowed_roles = ['system_admin'] +# #login_url = reverse_lazy("core:home") +# redirect_field_name = 'next' +# template_name = 'users/create.html' +# form_class = UserForm +# context_object_name = 'acc' +# success_url = reverse_lazy('users:manage') + +# def form_valid(self, form): +# self.object = form.save() + +# 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 ')+self.object.name+(' created successfully!')) + +# return super(Create, self).form_valid(form) +# def get_context_data (self, **kwargs): +# context = super(Create, self).get_context_data(**kwargs) +# context['title'] = "Add User" +# return context + +# class Update(HasRoleMixin, LoginRequiredMixin, generic.UpdateView): + +# allowed_roles = ['system_admin'] +# #login_url = reverse_lazy("core:home") +# 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('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 ')+self.object.name+_(' updated successfully!')) + +# return super(Update, self).form_valid(form) + +# def get_context_data (self, **kwargs): +# context = super(Update, self).get_context_data(**kwargs) +# context['title'] = "Update User" +# return context + +# class View(LoginRequiredMixin, generic.DetailView): + +# #login_url = reverse_lazy("core:home") +# redirect_field_name = 'next' +# model = User +# context_object_name = 'acc' +# template_name = 'users/view.html' +# slug_field = 'username' +# slug_url_kwarg = 'username' + +# def get_context_data (self, **kwargs): +# context = super(View, self).get_context_data(**kwargs) +# context['title'] = "User" +# return context + +# def delete_user(request,username): +# user = get_object_or_404(User,username = username) +# user.delete() +# messages.success(request,_("User deleted Successfully!")) +# return redirect('users:manage') + +# def remove_account(request,username): +# user = get_object_or_404(User,username = username) +# user.delete() +# messages.success(request,_("User deleted Successfully!")) +# #return redirect('core:logout') + +# class Change_password(generic.TemplateView): +# template_name = 'users/change_password.html' + +# def get_context_data (self, **kwargs): +# context = super(Change_password, self).get_context_data(**kwargs) +# context['title'] = "Change Password" +# return context + +# class Remove_account(generic.TemplateView): +# template_name = 'users/remove_account.html' + +# def get_context_data (self, **kwargs): +# context = super(Remove_account, self).get_context_data(**kwargs) +# context['title'] = "Remove Account" +# return context + +# class UpdateProfile(LoginRequiredMixin, generic.edit.UpdateView): +# #login_url = reverse_lazy("core:home") +# template_name = 'users/edit_profile.html' +# form_class = UpdateProfileForm +# success_url = reverse_lazy('users:profile') + +# def get_object(self): +# user = get_object_or_404(User, username = self.request.user.username) +# return user + +# def get_context_data(self, **kwargs): +# context = super(UpdateProfile, self).get_context_data(**kwargs) +# context['title'] = 'Update Profile' - context['form'] = UpdateProfileForm(instance = self.object) +# context['form'] = UpdateProfileForm(instance = self.object) - return context +# return context - def form_valid(self, form): - form.save() - messages.success(self.request, _('Profile edited successfully!')) +# def form_valid(self, form): +# form.save() +# messages.success(self.request, _('Profile edited successfully!')) - return super(UpdateProfile, self).form_valid(form) +# return super(UpdateProfile, self).form_valid(form) -class DeleteUser(LoginRequiredMixin, generic.edit.DeleteView): - allowed_roles = ['student'] - #login_url = reverse_lazy("core:home") - model = User +# class DeleteUser(LoginRequiredMixin, generic.edit.DeleteView): +# allowed_roles = ['student'] +# #login_url = reverse_lazy("core:home") +# model = User - #success_url = reverse_lazy('core:index') - success_message = "Deleted Successfully" +# #success_url = reverse_lazy('core:index') +# success_message = "Deleted Successfully" - def get_queryset(self): - user = get_object_or_404(User, username = self.request.user.username) - return user +# def get_queryset(self): +# user = get_object_or_404(User, username = self.request.user.username) +# return user -class Profile(LoginRequiredMixin, generic.DetailView): +# class Profile(LoginRequiredMixin, generic.DetailView): - #login_url = reverse_lazy("core:home") - redirect_field_name = 'next' - context_object_name = 'user' - template_name = 'users/profile.html' +# #login_url = reverse_lazy("core:home") +# 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 +# def get_object(self): +# user = get_object_or_404(User, username = self.request.user.username) +# return user - def get_context_data (self, **kwargs): - context = super(Profile, self).get_context_data(**kwargs) - context['title'] = "Profile" - return context +# def get_context_data (self, **kwargs): +# context = super(Profile, self).get_context_data(**kwargs) +# context['title'] = "Profile" +# return context -class SearchView(LoginRequiredMixin, generic.ListView): +# class SearchView(LoginRequiredMixin, generic.ListView): - #login_url = reverse_lazy("core:home") - redirect_field_name = 'next' - queryset = None - template_name = 'users/search.html' - paginate_by = 10 +# #login_url = reverse_lazy("core:home") +# redirect_field_name = 'next' +# queryset = None +# template_name = 'users/search.html' +# paginate_by = 10 - def get_context_data(self, **kwargs): - context = super(SearchView, self).get_context_data(**kwargs) - search = self.request.GET.get('search', None) +# def get_context_data(self, **kwargs): +# context = super(SearchView, self).get_context_data(**kwargs) +# search = self.request.GET.get('search', None) - return context +# return context def login(request): @@ -226,7 +226,7 @@ def login(request): context['title'] = 'Log In' if request.POST: - username = request.POST['username'] + username = request.POST['email'] password = request.POST['password'] user = authenticate(username=username, password=password) if user is not None: -- libgit2 0.21.2