summaryrefslogtreecommitdiff
path: root/usuarios/models.py
blob: f63de7a5c4cc989afeef4128160d85c930609d07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# vim: set fileencoding=utf-8 ts=4 shiftwidth=4 softtabstop=4 expandtab:
from tablon.models import PermisoForo
from django.db import models
from django.contrib.auth.models import User
from django import forms


class UserProfile(models.Model):
    user = models.OneToOneField(User)
    show_email = models.BooleanField("Mostrar e-mail", blank=True)
    url = models.URLField("Página web", blank=True)
    msn_id = models.EmailField("MSN (Messenger)", blank=True)
    jabber_id = models.EmailField("Jabber / Google Talk", blank=True)
    imagen = models.ImageField(upload_to='/home/kinote/proyectos/elgarito/avatar', blank=True)

    def es_socio(self):
        return True

    def foro_can(self, permission, foro_id):
        for g in self.user.groups.all():
            try:
                pf = PermisoForo.objects.get(foro=foro_id, grupo=g)
                if (permission == 'read'):
                    if (pf.can_read):
                        return True
                elif (permission == 'write'):
                    if (pf.can_write):
                        return True
            except PermisoForo.DoesNotExist:
                pass
        return False


class UserProfileForm(forms.ModelForm):

    class Meta:
        model = UserProfile
        exclude = ('user',)


class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('first_name', 'last_name', 'email')


class UserProfileCreateForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = ('show_email', 'url', 'msn_id', 'jabber_id', 'imagen')


class UserCreateForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('username', 'password', 'first_name', 'last_name', 'email')