app/soc/views/models/user_self.py
changeset 1076 063194eaf87b
parent 1047 26fade94886b
child 1079 be1aacb33b0f
--- a/app/soc/views/models/user_self.py	Thu Jan 29 23:07:04 2009 +0000
+++ b/app/soc/views/models/user_self.py	Fri Jan 30 09:31:56 2009 +0000
@@ -24,6 +24,8 @@
   ]
 
 
+import datetime
+
 from google.appengine.api import users
 
 from django import http
@@ -82,8 +84,9 @@
     # set the specific fields for the users profile page
     new_params['extra_dynaexclude'] = ['former_accounts', 
         'account', 'is_developer']
+
     new_params['create_extra_dynafields'] = {
-        'clean_agrees_to_tos' : cleaning.clean_agrees_to_tos('agrees_to_tos'),
+        'clean_agreed_to_tos' : cleaning.clean_agrees_to_tos('agreed_to_tos'),
         'clean_link_id': cleaning.clean_user_not_exist('link_id'),}
 
     new_params['edit_extra_dynafields'] = {
@@ -140,15 +143,30 @@
            page_name=page_name, params=params, seed=seed, link_id=link_id, **kwargs)
 
 
-  def _editGet(self, request, entity, form):
-    """See base.View._editGet().
+  def editGet(self, request, entity, context, seed, params=None):
+    """Overwrite so we can add the contents of the ToS.
+    For params see base.View.editGet().
     """
 
-    # set the ToS example text
-    form.fields['agrees_to_tos'].example_text = user_view.view.getToSExampleText()
-    form.fields['link_id'].initial = entity.link_id
+    s_logic = model_logic.site.logic
+    site_tos = s_logic.getToS(s_logic.getSingleton())
+    if site_tos:
+      context['tos_contents'] = site_tos.content
+
+    return super(View, self).editGet(request, entity, context, seed, params=params)
 
-    super(View, self)._editGet(request, entity, form)
+  def editPost(self, request, entity, context, params=None):
+    """Overwrite so we can add the contents of the ToS.
+    For params see base.View.editPost().
+    """
+
+    s_logic = model_logic.site.logic
+    site_tos = s_logic.getToS(s_logic.getSingleton())
+    if site_tos:
+      context['tos_contents'] = site_tos.content
+
+    return super(View, self).editPost(request, entity, context, params=params)
+
 
   def _editPost(self, request, entity, fields):
     """See base.View._editPost().
@@ -164,10 +182,14 @@
       # 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
+        fields['agreed_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
+        # editing an existing user so no value changes allowed
+        fields['agreed_to_tos'] = entity.agreed_to_tos
+    else:
+      if not entity or not entity.agreed_to_tos:
+        # set the time of agreement
+        fields['agreed_to_tos_on'] = datetime.datetime.now()
 
     super(View, self)._editPost(request, entity, fields)