diff --git a/core/static/img/no_image.jpg b/core/static/img/no_image.jpg
new file mode 100644
index 0000000..050c385
Binary files /dev/null and b/core/static/img/no_image.jpg differ
diff --git a/users/admin.py b/users/admin.py
index dc3b255..d1f55a1 100644
--- a/users/admin.py
+++ b/users/admin.py
@@ -1,10 +1,10 @@
from django.contrib import admin
from .models import User
-from .forms import ProfileForm
+from .forms import UserForm
class UserAdmin(admin.ModelAdmin):
list_display = ['username', 'name', 'email', 'is_staff', 'is_active']
search_fields = ['username', 'name', 'email']
- form = ProfileForm
+ form = UserForm
admin.site.register(User, UserAdmin)
\ No newline at end of file
diff --git a/users/forms.py b/users/forms.py
index 4c8e3e8..d8e28a5 100644
--- a/users/forms.py
+++ b/users/forms.py
@@ -1,7 +1,9 @@
# coding=utf-8
-
+import os
+from django.conf import settings
from django import forms
from django.utils.translation import ugettext_lazy as _
+from rolepermissions.shortcuts import assign_role
from .models import User
@@ -25,10 +27,32 @@ class ProfileForm(forms.ModelForm):
}
class UserForm(forms.ModelForm):
+ def save(self, commit=True):
+ super(UserForm, self).save(commit=False)
+
+ #if not self.instance.image:
+ # self.instance.image = os.path.join(os.path.dirname(settings.BASE_DIR), 'uploads', 'no_image.jpg')
+
+ 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')
+
+ self.instance.save()
+
+ return self.instance
class Meta:
model = User
- fields = ['username', 'name', 'email', 'birth_date', 'city', 'state', 'gender', 'type_profile', 'cpf', 'phone', 'image', 'is_staff', 'is_active']
+ fields = ['username', 'name', 'email', 'password', 'birth_date', 'city', 'state', 'gender', 'type_profile', 'cpf', 'phone', 'image', 'is_staff', 'is_active']
+ widgets = {
+ 'password':forms.PasswordInput
+ }
class EditUserForm(forms.ModelForm):
diff --git a/users/migrations/0013_auto_20160915_2334.py b/users/migrations/0013_auto_20160915_2334.py
new file mode 100644
index 0000000..9bc9ea5
--- /dev/null
+++ b/users/migrations/0013_auto_20160915_2334.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10 on 2016-09-16 02:34
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0012_auto_20160908_1625'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='user',
+ name='image',
+ field=models.ImageField(blank=True, upload_to='users/', verbose_name='Image'),
+ ),
+ ]
diff --git a/users/models.py b/users/models.py
index b3b597a..6ee6e4a 100644
--- a/users/models.py
+++ b/users/models.py
@@ -4,6 +4,7 @@ from django.db import models
from django.core import validators
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
class User(AbstractBaseUser, PermissionsMixin):
@@ -19,7 +20,7 @@ class User(AbstractBaseUser, PermissionsMixin):
city = models.CharField(_('City'), max_length = 90, blank = True)
state = models.CharField(_('State'), max_length = 30, blank = True)
gender = models.CharField(_('Gender'), max_length = 1, choices = (('M', _('Male')), ('F', _('Female'))))
- image = models.ImageField(verbose_name = _('Image'), blank = True, upload_to = 'users/', default = 'no_image.jpg')
+ image = models.ImageField(verbose_name = _('Image'), 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)
@@ -40,8 +41,15 @@ class User(AbstractBaseUser, PermissionsMixin):
def __str__(self):
return self.name or self.username
- def det_full_name(self):
+ def get_full_name(self):
return str(self)
def get_short_name(self):
- return str(self).split(" ")[0]
\ No newline at end of file
+ return str(self).split(" ")[0]
+
+ @property
+ def image_url(self):
+ if self.image and hasattr(self.image, 'url'):
+ return self.image.url
+ else:
+ return static('img/no_image.jpg')
\ No newline at end of file
--
libgit2 0.21.2