models.py attached.
On Sun, 2007-02-18 at 16:51 +0100, Honza Král wrote:
>
> that's odd can you post your Model definition?
> >
> >
> > >
> >
>
>
--
Tomá Pokorný
=============
email: [EMAIL PROTECTED]
mobil: +420 776 379 631
icq# 22996508
==============================
1.Robotická s.r.o.
http://www.roboticka.cz
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---
# -*- encoding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import User
from django.conf import settings
from django.core import validators
import datetime
# Create your models here.
class UserProfile(models.Model):
""" User/Member information """
user = models.ForeignKey(User, unique=True)
icq = models.IntegerField(null=True, blank=True)
is_member = models.BooleanField(default=False)
description = models.TextField(null=True, blank=True)
icon_width = models.SmallIntegerField(null=True, blank=True)
icon_height = models.SmallIntegerField(null=True, blank=True)
icon_mimetype = models.CharField(maxlength=64, null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True, null=True)
changed_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
ordering = ('id',)
class Admin:
fields = (
(None, {'fields': ('user', 'icq', 'is_member', 'description')}),
(_('User icon'), {'fields': ('icon_width', 'icon_height', 'icon_mimetype')}),
)
list_display = ('user', 'name', 'email', 'icq', 'icon_size', 'is_member')
list_filter = ('is_member',)
search_fields = ('user__first_name', 'user__last_name', 'user__email', 'user__username', 'description',)
list_select_related = True
def __str__(self):
return self.name()
def icon_url(self):
return settings.DATA_DIR + 'usericon/' + self.id + '/'
def has_icon(self):
return self.icon_width and self.icon_height
def icon_img_tag(self):
if self.has_icon():
return '<img class="usericon" src="/usericon/%s/" width="%d" height="%d" alt="" />' % (self.id, self.icon_width, self.icon_height)
return '<img class="usericon" src="%simg/unknown.png" width="40" height="50" alt="" />' % settings.MEDIA_URL
def name(self):
return self.user.get_full_name()
def email(self):
return self.user.email
def icon_size(self):
if self.has_icon():
return "%dx%d" % (self.icon_width, self.icon_height)
class Action(models.Model):
name = models.CharField(maxlength=64, unique=True)
from_date = models.DateField(null=True, blank=True, validator_list=[validators.IsLessThanOtherField('to_date', _('From_date must be before to_date!'))])
to_date = models.DateField(null=True, blank=True)
description = models.TextField(null=True, blank=True)
photo = models.ForeignKey('Photo', null=True, blank=True)
rank = models.IntegerField(null=True, blank=True)
enabled = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True, null=True)
changed_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
ordering = ('rank', 'from_date', 'to_date', 'id')
class Admin:
list_display = ('name', 'from_date', 'to_date', 'rank', 'enabled')
list_filter = ('enabled',)
search_fields = ('name', 'description',)
list_select_related = True
def rank_is_null(self):
return rank is None
def __str__(self):
if not self.enabled:
return "%s (disabled)" % self.name
return self.name
def group_name(self):
return {0: 'Starší', 9999: 'Plánované'}.get(self.group_rank, "Rok %d" % self.from_date.year)
def group_rank(self):
if not self.from_date:
return 0
if self.from_date > datetime.datetime.now():
return 9999
return self.from_date.year
class Album(models.Model):
action = models.ForeignKey(Action, null=True, blank=True)
name = models.CharField(maxlength=64)
description = models.TextField(null=True, blank=True)
directory = models.CharField(maxlength=64, unique=True)
rank = models.IntegerField(null=True, blank=True)
enabled = models.BooleanField(default=True)
# access permissions
public_read = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True, null=True)
changed_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
unique_together = (('action', 'name'),)
#order_with_respect_to = 'action'
ordering = ('rank', 'name')
class Admin:
list_display = ('action', 'name', 'directory', 'rank', 'public_read', 'enabled')
list_display_links = ('name', 'directory')
list_filter = ('enabled', 'public_read', 'action')
search_fields = ('name', 'directory', 'description',)
list_select_related = True
def __str__(self):
if self.action:
text = "%s - %s" % (self.action, self.name)
else:
text = self.name
if not self.enabled:
text += " (disabled)"
return text
class Forum(models.Model):
action = models.ForeignKey(Action, null=True, blank=True)
name = models.CharField(maxlength=64)
description = models.TextField(null=True, blank=True)
rank = models.IntegerField(null=True, blank=True)
enabled = models.BooleanField(default=True)
# forum options
with_subject = models.BooleanField(default=True)
with_usericon = models.BooleanField(default=True)
with_photo = models.BooleanField(default=False)
# access permissions
public_read = models.BooleanField(default=True)
public_write = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True, null=True)
changed_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
unique_together = (('action', 'name'),)
#order_with_respect_to = 'action'
ordering = ('rank', 'name')
class Admin:
list_display = ('action', 'name', 'rank', 'with_subject', 'with_usericon', 'with_photo', 'public_read', 'public_write', 'enabled')
list_display_links = ('name',)
list_filter = ('enabled', 'public_read', 'public_write', 'action')
search_fields = ('name', 'description',)
list_select_related = True
def __str__(self):
if self.action:
text = "%s - %s" % (self.action, self.name)
else:
text = self.name
if not self.enabled:
text += " (disabled)"
return text
class Photo(models.Model):
album = models.ForeignKey(Album)
file_name = models.CharField(maxlength=64)
file_mtime = models.DateTimeField()
file_size = models.IntegerField()
file_md5sum = models.CharField(maxlength=40)
width = models.SmallIntegerField()
height = models.SmallIntegerField()
mimetype = models.CharField(maxlength=64)
rotate = models.SmallIntegerField(choices=((0, 0), (90, 90), (180, 180), (270, 270)), default=0)
description = models.TextField(null=True, blank=True)
rank = models.IntegerField(null=True, blank=True)
enabled = models.BooleanField(default=True)
# TODO: doplnit
created_at = models.DateTimeField(auto_now_add=True, null=True)
changed_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
unique_together = (('album', 'file_name'),)
#order_with_respect_to = 'album'
ordering = ('rank', 'file_name')
class Admin:
list_display = ('album', 'file_name', 'size', 'rotate', 'rank', 'enabled')
list_display_links = ('file_name',)
list_filter = ('enabled', 'album')
search_fields = ('file_name', 'description',)
list_select_related = True
def __str__(self):
return "%s/%s" % (self.album.directory, self.file_name)
def size(self):
return "%dx%d" % (self.width, self.height)
class Message(models.Model):
forum = models.ForeignKey(Forum, null=True, blank=True)
subject = models.CharField(maxlength=64, null=True, blank=True)
body = models.TextField()
name = models.CharField(maxlength=64)
email = models.EmailField(null=True, blank=True)
user = models.ForeignKey(User, related_name='messages')
photo = models.ForeignKey(Photo, null=True, blank=True)
enabled = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True, null=True)
changed_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
ordering = ('created_at', 'id')
class Admin:
list_display = ('forum', 'id', 'subject', 'name', 'email', 'user', 'enabled', 'created_at')
list_display_links = ('id', 'subject')
list_filter = ('enabled', 'forum', 'user')
search_fields = ('subject', 'body')
list_select_related = True
def __str__(self):
if self.subject:
return "%s - %s" % (self.forum, self.subject)
return "%s - (%d)" % (self.forum, self.id)