Changeset - 69d3df83c15e
[Not reviewed]
0 0 3
James Tauber - 12 years ago 2012-07-28 21:05:01
jtauber@jtauber.com
initial team models and admin
3 files changed with 65 insertions and 0 deletions:
0 comments (0 inline, 0 general)
symposion/teams/__init__.py
Show inline comments
 
new file 100644
symposion/teams/admin.py
Show inline comments
 
new file 100644
 
from django.contrib import admin
 

	
 
import reversion
 

	
 
from symposion.teams.models import Team, Membership
 

	
 
admin.site.register(Team,
 
    prepopulated_fields={"slug": ("name",)},
 
)
 

	
 

	
 
class MembershipAdmin(reversion.VersionAdmin):
 
    list_display = ["team", "user", "state"]
 
    list_filter = ["team"]
 
    search_fields = ["user__username"]
 

	
 
admin.site.register(Membership, MembershipAdmin)
symposion/teams/models.py
Show inline comments
 
new file 100644
 
import datetime
 

	
 
from django.db import models
 

	
 
import reversion
 

	
 
from django.contrib.auth.models import Permission, User
 

	
 

	
 
TEAM_ACCESS_CHOICES = [
 
    (1, "open"),
 
    (2, "by application"),
 
    (3, "by invitation")
 
]
 

	
 

	
 
class Team(models.Model):
 

	
 
    slug = models.SlugField(unique=True)
 
    name = models.CharField(max_length=100)
 
    description = models.TextField(blank=True)
 
    access = models.IntegerField(choices=TEAM_ACCESS_CHOICES)
 
    permissions = models.ManyToManyField(Permission, blank=True)
 
    created = models.DateTimeField(default=datetime.datetime.now, editable=False)
 
    
 
    def __unicode__(self):
 
        return self.name
 

	
 

	
 
MEMBERSHIP_STATE_CHOICES = [
 
    (1, "applied"),
 
    (2, "invited"),
 
    (3, "declined"),
 
    (4, "rejected"),
 
    (5, "member"),
 
    (6, "manager"),
 
]
 

	
 

	
 
class Membership(models.Model):
 

	
 
    user = models.ForeignKey(User)
 
    team = models.ForeignKey(Team)
 
    state = models.IntegerField(choices=MEMBERSHIP_STATE_CHOICES)
 
    message = models.TextField(blank=True)
 

	
 

	
 
reversion.register(Membership)
0 comments (0 inline, 0 general)