Changed the Terms Of Service boolean so that it is None as long as the user owning the account has not Agreed to it.
authorLennard de Rijk <ljvderijk@gmail.com>
Wed, 28 Jan 2009 17:31:02 +0000
changeset 1047 26fade94886b
parent 1046 7e10c0654dfb
child 1048 0fe0cb8f7253
Changed the Terms Of Service boolean so that it is None as long as the user owning the account has not Agreed to it. Patch by: Lennard de Rijk Reviewed by: to-be-reviewed
app/soc/views/models/user.py
app/soc/views/models/user_self.py
--- a/app/soc/views/models/user.py	Wed Jan 28 16:50:54 2009 +0000
+++ b/app/soc/views/models/user.py	Wed Jan 28 17:31:02 2009 +0000
@@ -99,6 +99,19 @@
 
     super(View, self)._editGet(request, entity, form)
 
+  def _editPost(self, request, entity, fields):
+    """See base.View._editPost().
+    """
+
+    if not entity:
+      # developer is creating a new entity set agrees_to_tos to None
+      fields['agrees_to_tos'] = None
+    else:
+      # editing an existing user so don't change the agrees_to_tos field
+      fields['agrees_to_tos'] = entity.agrees_to_tos
+
+    super(View, self)._editPost(request, entity, fields)
+
   def getToSExampleText(self):
     """Returns example_text linking to site-wide ToS, or a warning message.
     """
--- a/app/soc/views/models/user_self.py	Wed Jan 28 16:50:54 2009 +0000
+++ b/app/soc/views/models/user_self.py	Wed Jan 28 17:31:02 2009 +0000
@@ -155,7 +155,19 @@
     """
 
     # fill in the account field with the current User
-    fields['account'] = users.User() 
+    fields['account'] = users.User()
+
+    # special actions if there is no ToS present
+    s_logic = model_logic.site.logic
+    site_tos = s_logic.getToS(s_logic.getSingleton())
+    if not site_tos:
+      # there is no Terms of Service set
+      if not entity:
+        # we are a new user so set the agrees_to_tos field to None
+        fields['agrees_to_tos'] = None
+      else:
+        # editing an existing user so don't change the agrees_to_tos field
+        fields['agrees_to_tos'] = entity.agrees_to_tos
 
     super(View, self)._editPost(request, entity, fields)