X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=xnet%2Faccounts%2Fmodels.py;h=588651e5ec8d1b0d24feeb97ad13a53d230a3411;hb=95fa5c138ee65686c6dd142b45f87183b0397f30;hp=2deb4ede7c606dc5a97f08c345663ccf35d1d701;hpb=25dd56d39edbd4164d1d7b12f09b9675534417ca;p=xnet diff --git a/xnet/accounts/models.py b/xnet/accounts/models.py index 2deb4ed..588651e 100644 --- a/xnet/accounts/models.py +++ b/xnet/accounts/models.py @@ -8,76 +8,7 @@ from django_xworkflows import models as xwf_models from xnet.utils.images.fields import ImageWithThumbsField as ImageField -class MembershipWorkflow(xwf_models.Workflow): - states = ( - ('pending', u"En attente"), - ('enabled', u"Actif"), - ('removed', u"Supprimé"), - ) - transitions = ( - ('accept', ['pending'], 'enabled'), - ('remove', ['pending', 'enabled'], 'removed'), - ) - initial_state = 'pending' - - log_model = '' # We don't want logs - - -class XGroup(models.Model): - """A model for an XGroup.""" - KIND_PROMO = 'promo' - KIND_GROUP = 'group' - KIND_BINET = 'binet' - KIND_INSTIT = 'instit' - - KIND_CHOICES = ( - (KIND_PROMO, u"Promo"), - (KIND_GROUP, u"Groupe"), - (KIND_BINET, u"Binet"), - (KIND_INSTIT, u"Institution"), - ) - - DOMAIN_HISTORY = 'history' - DOMAIN_INTERNATIONAL = 'international' - DOMAIN_EVENTS = 'events' - DOMAIN_LEISURE = 'leisure' - DOMAIN_SPORTS = 'sports' - DOMAIN_PRO = 'pro' - DOMAIN_REGION = 'region' - - DOMAIN_CHOICES = ( - (DOMAIN_HISTORY, u"Histoire"), - (DOMAIN_INTERNATIONAL, u"International"), - (DOMAIN_EVENTS, u"Événements"), - (DOMAIN_LEISURE, u"Loisirs"), - (DOMAIN_SPORTS, u"Sports"), - (DOMAIN_PRO, u"Pro"), - (DOMAIN_REGION, u"Région"), - ) - - name = models.CharField(max_length=100, verbose_name=u"nom", unique=True) - short = models.SlugField(max_length=10, verbose_name=u"nom court", unique=True) - kind = models.CharField(max_length=10, choices=KIND_CHOICES, verbose_name=u"type") - domain = models.CharField(max_length=20, choices=DOMAIN_CHOICES, blank=True, verbose_name=u"domaine") - - dns = models.CharField(max_length=128, verbose_name=u"dns domain", blank=True) - - web = models.CharField(max_length=255, verbose_name=u"website", blank=True) - #contact = models.ForeignKey('Account') - description = models.TextField(blank=True) - logo = ImageField(upload_to='logos', null=True, blank=True) - - class Meta: - verbose_name = u"groupe" - verbose_name_plural = u"groupes" - - def __unicode__(self): - return self.name - - class Account(auth_models.AbstractUser): - xgroups = models.ManyToManyField( - XGroup, related_name='users', through='Membership', verbose_name=u"groupes") class Meta: verbose_name = u"utilisateur" @@ -85,26 +16,3 @@ class Account(auth_models.AbstractUser): def __unicode__(self): return self.username - - -class Membership(xwf_models.WorkflowEnabled, models.Model): - LEVEL_MEMBER = 0 - LEVEL_ADMIN = 10 - LEVEL_CHOICES = ( - (LEVEL_MEMBER, u"membre"), - (LEVEL_ADMIN, u"administrateur"), - ) - - xgroup = models.ForeignKey(XGroup, related_name='memberships', verbose_name=u"groupe") - xuser = models.ForeignKey(Account, related_name='memberships', verbose_name=u"utilisateur") - - level = models.IntegerField(choices=LEVEL_CHOICES, default=LEVEL_MEMBER, verbose_name=u"droits") - state = xwf_models.StateField(MembershipWorkflow, verbose_name=u"état") - - class Meta: - verbose_name = u"adhérent" - verbose_name_plural = u"adhérents" - unique_together = ['xgroup', 'xuser'] - - def __unicode__(self): - return u"{} {} de {} [{}]".format(self.xuser, self.get_level_display(), self.xgroup, self.state)