18
18
(11.5, '+11.5'), (12, '+12'), (13, '+13'), (14, '+14'),
21
22
class Profile(models.Model):
22
user = AutoOneToOneField(User, related_name='wlprofile', verbose_name=_('User'))
23
user = AutoOneToOneField(
24
User, related_name='wlprofile', verbose_name=_('User'))
24
26
# Web related fields.
25
27
site = models.URLField(_('Website'), blank=True, default='')
26
jabber = models.CharField(_('Jabber'), max_length=80, blank=True, default='')
28
jabber = models.CharField(
29
_('Jabber'), max_length=80, blank=True, default='')
27
30
icq = models.CharField(_('ICQ'), max_length=12, blank=True, default='')
28
31
msn = models.CharField(_('MSN'), max_length=80, blank=True, default='')
29
32
aim = models.CharField(_('AIM'), max_length=80, blank=True, default='')
30
33
yahoo = models.CharField(_('Yahoo'), max_length=80, blank=True, default='')
32
35
# Personal Informations
33
location = models.CharField(_('Location'), max_length=30, blank=True, default='')
36
location = models.CharField(
37
_('Location'), max_length=30, blank=True, default='')
35
39
# Configuration for Forum/Site
36
time_zone = models.FloatField(_('Time zone'), choices=TZ_CHOICES, default=float(settings.DEFAULT_TIME_ZONE))
37
time_display = models.CharField(_('Time display'), max_length=80, default=settings.DEFAULT_TIME_DISPLAY)
38
signature = models.TextField(_('Signature'), blank=True, default='', max_length=settings.SIGNATURE_MAX_LENGTH)
40
time_zone = models.FloatField(
41
_('Time zone'), choices=TZ_CHOICES, default=float(settings.DEFAULT_TIME_ZONE))
42
time_display = models.CharField(
43
_('Time display'), max_length=80, default=settings.DEFAULT_TIME_DISPLAY)
44
signature = models.TextField(
45
_('Signature'), blank=True, default='', max_length=settings.SIGNATURE_MAX_LENGTH)
40
avatar = ExtendedImageField(_('Avatar'), blank=True, default="wlprofile/anonymous.png", upload_to="wlprofile/avatars/", width=settings.AVATAR_WIDTH, height=settings.AVATAR_HEIGHT)
41
show_signatures = models.BooleanField(_('Show signatures'), blank=True, default=True)
47
avatar = ExtendedImageField(_('Avatar'), blank=True, default='wlprofile/anonymous.png',
48
upload_to='wlprofile/avatars/', width=settings.AVATAR_WIDTH, height=settings.AVATAR_HEIGHT)
49
show_signatures = models.BooleanField(
50
_('Show signatures'), blank=True, default=True)
44
53
verbose_name = _('Profile')
45
54
verbose_name_plural = _('Profiles')
48
56
def unread_pm_count(self):
49
57
return PrivateMessage.objects.filter(dst_user=self, read=False).count()
51
59
def post_count(self):
53
Return the nr of posts the user has. This uses djangos filter feature
54
will therefore hit the database. This should maybe be reworked when the
55
database grows to not be always calculated.
60
"""Return the nr of posts the user has.
62
This uses djangos filter feature will therefore hit the
63
database. This should maybe be reworked when the database grows
64
to not be always calculated.
57
67
return Post.objects.filter(user=self.user).count()
60
70
nump = self.post_count()
63
return { "text":"Just found this site", "image":"rang_1.png" }
73
return {'text': 'Just found this site', 'image': 'rang_1.png'}
65
return { "text":"Pry about Widelands", "image":"rang_2.png" }
75
return {'text': 'Pry about Widelands', 'image': 'rang_2.png'}
67
return { "text":"Likes to be here", "image":"rang_3.png" }
77
return {'text': 'Likes to be here', 'image': 'rang_3.png'}
69
return { "text":"At home in WL-forums", "image":"rang_4.png" }
79
return {'text': 'At home in WL-forums', 'image': 'rang_4.png'}
71
return { "text":"Widelands-Forum-Junkie", "image":"rang_5.png" }
81
return {'text': 'Widelands-Forum-Junkie', 'image': 'rang_5.png'}
73
return { "text":"Tribe Member", "image":"rang_6.png" }
83
return {'text': 'Tribe Member', 'image': 'rang_6.png'}
75
return { "text":"One Elder of Players", "image":"rang_7.png" }
85
return {'text': 'One Elder of Players', 'image': 'rang_7.png'}