app/soc/logic/models/user.py
changeset 481 94834a1e6c01
parent 459 2cfcedaf7c16
child 494 5e9c656a1b68
--- a/app/soc/logic/models/user.py	Fri Nov 14 06:36:42 2008 +0000
+++ b/app/soc/logic/models/user.py	Sat Nov 15 03:12:33 2008 +0000
@@ -34,18 +34,18 @@
   def __init__(self):
     """Defines the name, key_name and model for this entity.
     """
-
-    self._name = "User"
-    self._model = soc.models.user.User
-    self._skip_properties = ['former_ids']
+    base.Logic.__init__(self, soc.models.user.User,
+                        skip_properties=['former_accounts'])
 
-  def isFormerId(self, id):
-    """Returns true if id is in former ids"""
+  def isFormerAccount(self, account):
+    """Returns true if account is a former account of some User.
+    """
     # TODO(pawel.solyga): replace 1000 with solution that works for any number of queries
-    users_with_former_ids = soc.models.user.User.gql('WHERE former_ids != :1', None).fetch(1000)
+    users_with_former_accounts = soc.models.user.User.gql(
+        'WHERE former_accounts != :1', None).fetch(1000)
     
-    for former_id_user in users_with_former_ids: 
-      if id in former_id_user.former_ids:
+    for former_account_user in users_with_former_accounts: 
+      if account in former_account_user.former_accounts:
         return True
     
     return False
@@ -54,7 +54,7 @@
     """See base.Logic.getKeyValues.
     """
 
-    return [entity.id.email()]
+    return [entity.account.email()]
 
   def getSuffixValues(self, entity):
     """See base.Logic.getSuffixValues
@@ -74,7 +74,7 @@
         }
 
     entity = self.getForFields(properties, unique=True)
-    return [entity.id.email()]
+    return [entity.account.email()]
 
   def getKeyFieldNames(self):
     """See base.Logic.getKeyFieldNames
@@ -82,28 +82,28 @@
 
     return ['email']
 
-  def updateOrCreateFromId(self, properties, id):
-    """Like updateOrCreateFromKeyName, but resolves id to a key_name first.
+  def updateOrCreateFromAccount(self, properties, account):
+    """Like updateOrCreateFromKeyName, but resolves account to key_name first.
     """
 
     # attempt to retrieve the existing entity
-    user = soc.models.user.User.gql('WHERE id = :1', id).get()
+    user = soc.models.user.User.gql('WHERE account = :1', account).get()
     
     if user:
       key_name = user.key().name()
     else:
-      key_name  = self.getKeyNameForFields({'email': id.email()})
+      key_name  = self.getKeyNameForFields({'email': account.email()})
 
     return self.updateOrCreateFromKeyName(properties, key_name)
 
   def _updateField(self, model, name, value):
-    """Special case logic for id.
+    """Special case logic for account.
 
-    When the id is changed, the former_ids field should be appended
-    with the old id.
+    When the account is changed, the former_accounts field should be appended
+    with the old account.
     """
-    if name == 'id' and model.id != value:
-      model.former_ids.append(model.id)
+    if name == 'account' and model.account != value:
+      model.former_accounts.append(model.account)
 
     return True