Merge branch 'future' into 0.6.4
[astakos] / snf-astakos-app / astakos / im / models.py
index 112954d..5e4b1f4 100644 (file)
@@ -153,19 +153,41 @@ class AstakosGroup(Group):
     homepage = models.URLField(
         'Homepage Url', max_length=255, null=True, blank=True)
     desc = models.TextField('Description', null=True)
-    policy = models.ManyToManyField(Resource, null=True, blank=True,
-                                    through='AstakosGroupQuota')
-    creation_date = models.DateTimeField('Creation date',
-                                         default=datetime.now())
+    policy = models.ManyToManyField(
+        Resource,
+        null=True,
+        blank=True,
+        through='AstakosGroupQuota'
+    )
+    creation_date = models.DateTimeField(
+        'Creation date',
+        default=datetime.now()
+    )
     issue_date = models.DateTimeField('Issue date', null=True)
-    expiration_date = models.DateTimeField('Expiration date', null=True)
-    moderation_enabled = models.BooleanField('Moderated membership?',
-                                             default=True)
-    approval_date = models.DateTimeField('Activation date', null=True,
-                                         blank=True)
-    estimated_participants = models.PositiveIntegerField('Estimated #members',
-                                                         null=True)
-
+    expiration_date = models.DateTimeField(
+        'Expiration date',
+         null=True
+    )
+    moderation_enabled = models.BooleanField(
+        'Moderated membership?',
+        default=True
+    )
+    approval_date = models.DateTimeField(
+        'Activation date',
+        null=True,
+        blank=True
+    )
+    estimated_participants = models.PositiveIntegerField(
+        'Estimated #members',
+        null=True,
+        blank=True,
+    )
+    max_participants = models.PositiveIntegerField(
+        'Maximum numder of participants',
+        null=True,
+        blank=True
+    )
+    
     @property
     def is_disabled(self):
         if not self.approval_date:
@@ -252,10 +274,10 @@ class AstakosGroup(Group):
     @policies.setter
     def policies(self, policies):
         for p in policies:
-            service = policies.get('service', None)
-            resource = policies.get('resource', None)
-            uplimit = policies.get('uplimit', 0)
-            update = policies.get('update', True)
+            service = p.get('service', None)
+            resource = p.get('resource', None)
+            uplimit = p.get('uplimit', 0)
+            update = p.get('update', True)
             self.add_policy(service, resource, uplimit, update)
     
     @property
@@ -323,7 +345,7 @@ class AstakosUser(User):
         through='Membership')
 
     __has_signed_terms = False
-    dirsturbed_quota = models.BooleanField('Needs quotaholder syncing',
+    disturbed_quota = models.BooleanField('Needs quotaholder syncing',
                                            default=False, db_index=True)
 
     owner = models.ManyToManyField(
@@ -516,7 +538,7 @@ class AstakosUser(User):
         return True
 
     def store_disturbed_quota(self, set=True):
-        self.disturbed_quota = set
+        self.disturbed_qutoa = set
         self.save()
 
 
@@ -806,13 +828,14 @@ def send_quota_disturbed(sender, instance, **kwargs):
     elif sender == AstakosGroup:
         if not instance.is_enabled:
             return
-    map(lambda u: u.store_disturbed_quota, users)
+    quota_disturbed.send(sender=sender, users=users)
 
-# def on_quota_disturbed(sender, users, **kwargs):
-#     print '>>>', locals()
-#     if not users:
-#         return
-#     send_quota(users)
+
+def on_quota_disturbed(sender, users, **kwargs):
+    print '>>>', locals()
+    if not users:
+        return
+    send_quota(users)
 
 post_syncdb.connect(fix_superusers)
 post_save.connect(user_post_save, sender=User)
@@ -821,7 +844,7 @@ post_save.connect(astakosuser_post_save, sender=AstakosUser)
 post_save.connect(resource_post_save, sender=Resource)
 
 quota_disturbed = Signal(providing_args=["users"])
-# quota_disturbed.connect(on_quota_disturbed)
+quota_disturbed.connect(on_quota_disturbed)
 
 post_delete.connect(send_quota_disturbed, sender=AstakosGroup)
 post_delete.connect(send_quota_disturbed, sender=Membership)