from django_xworkflows import models as xwf_models
+from xnet.utils.images.fields import ImageWithThumbsField as ImageField
+
class MembershipWorkflow(xwf_models.Workflow):
states = (
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('')
+ description = models.TextField()
+ logo = ImageField(upload_to='logos', null=True, blank=True)
+
class Meta:
- verbose_name = u"group"
- verbose_name_plural = u"groups"
+ 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"
+ verbose_name_plural = u"utilisateurs"
+
+ def __unicode__(self):
+ return self.username
+
class Membership(xwf_models.WorkflowEnabled, models.Model):
LEVEL_MEMBER = 0
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, dict(Membership.LEVEL_CHOICES)[self.level], self.xgroup, self.state)