I'm building a workflow manager for our organisation and decided to
give Django a try. In about 1 hour, I was able to start creating a very
basic model for 'projects' app.

-------------------------------------------------------------------------------------------------

from django.db import models
from django.contrib.auth.models import User

# Create your models here.

PROJECT_STATUS = (
          ('1', 'added'),
          ('2', 'planned'),
          ('3', 'started'),
          ('4', 'on hold'),
          ('5', 'reopened'),
          ('6', 'completed'),
          ('7', 'archived'),
          ('0', 'trashed')
          )

ISSUE_KINDS = (
          ('1', 'task'),
          ('2', 'enhancement'),
          ('3', 'defect'),
          ('4', 'other')
          )

PRIORITIES = (
          ('1', 'lowest'),
          ('2', 'low'),
          ('3', 'normal'),
          ('4', 'high'),
          ('5', 'highest')
          )

class Category(models.Model):
    name  = models.CharField('category name', maxlength=255, core=True,
blank=False)
    description = models.TextField('category description', blank=True)
    creator = models.ForeignKey(User, related_name='creator')
    date_added = models.DateTimeField('date added', auto_now_add=True)
    date_modified = models.DateTimeField('last modified',
auto_now=True)

    class Meta:
        db_table = 'project_categories'
        verbose_name = 'Category'
        verbose_name_plural = 'Categories'

    class Admin:
        search_fields    = ('name', 'description')
        list_display     = ('name',
                            'description',
                            'creator',
                            'date_added',
                            'date_modified')

    def __repr__(self):
        return self.name



class Project(models.Model):
    category = models.ForeignKey(Category, related_name='category')
    name = models.CharField('project name', maxlength=255, core=True,
blank=False)
    description = models.TextField('project description', blank=False)
    leader = models.ForeignKey(User, related_name='leader')
    date_start = models.DateTimeField('start date', blank=False)
    date_end = models.DateTimeField('end_date', blank=False)
    date_added = models.DateTimeField('date added', auto_now_add=True)
    date_modified = models.DateTimeField('last modified',
auto_now=True)
    current_status = models.PositiveSmallIntegerField('current status',
choices=PROJECT_STATUS)


    class Meta:
        db_table = 'projects'

    class Admin:
        pass

    def __repr__(self):
        return self.name



class Team(models.Model):
    name = models.CharField('team name', maxlength=100)
    project = models.ForeignKey(Project, related_name='project')
    member = models.ForeignKey(User, related_name='member')
    role = models.CharField('member role', maxlength=100)

    class Meta:
        db_table = 'project_teams'

    class Admin:
        pass

    def __repr__(self):
        return self.name


class Message(models.Model):
    sender = models.ForeignKey(User) # should be a team member
    recepient = models.ManyToManyField(User) #should be a team member
    subject = models.CharField('subject', maxlength=255, core=True,
blank=False)
    priority = models.SmallIntegerField('issue priority',
choices=PRIORITIES)
    body = models.TextField('message body', blank=False)
    date_written = models.DateTimeField('date_written',
auto_now_add=True)
    date_modified = models.DateTimeField('last modified',
auto_now=True)

    class Meta:
        db_table = 'project_messages'

    def __repr__(self):
        return self.subject

---------------------------------------------------------------------------------------------------------------

I want to create a project team from Users and related to a Project.
What would be a conventional way to represent that realtionship in the
model, so for example messages can be related to project team members
and not all users? Hope I make sense here.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to