# -*- coding: UTF-8 -*- from django.db import models from django.contrib.auth.models import User from django.db.models import Q from django import newforms as forms class Usergroup(models.Model): INVITE_ONLY = 1 ON_REQUEST = 2 EVERYBODY = 3 join_choices = ( (INVITE_ONLY, 'Nur auf Einladung'), #nur auf einladung (ON_REQUEST, 'Auf Anfrage'), #Anfrage ob man rein darf (EVERYBODY, 'Free4All') #Jeder kann einfach so joinen ) name = models.CharField(max_length=80) description = models.TextField() founder = models.ForeignKey(User, related_name="foundedgroups") founddate = models.DateTimeField() deleted = models.BooleanField(default=False) join_mode = models.SmallIntegerField(choices=join_choices, default=1, verbose_name="Beitrittsmodus") num_members = models.IntegerField(default=1) def __unicode__(self): return self.name class Admin: pass class User2Usergroup(models.Model): CANDIDATE = 1 INVITED = 2 MEMBER = 3 MODERATOR = 4 FOUNDER = 5 status_choices =( (CANDIDATE, 'Bewerber'), (INVITED, 'Eingeladen'), (MEMBER, 'Mitglied'), (MODERATOR, 'Moderator'), (FOUNDER, 'GrĂ¼nder') ) user = models.ForeignKey(User, related_name="usergroups") group = models.ForeignKey(Usergroup, related_name="users") joindate = models.DateTimeField() # Time of groupjoin status = models.SmallIntegerField(choices=status_choices) # Which level does the user have? def __unicode__(self): return self.group.name + " <-> " + self.user.username class Admin: pass