app/soc/views/site/user/profile.py
changeset 229 a46c238be8db
parent 215 d020c95b17b1
child 245 b14c2c4d3484
equal deleted inserted replaced
228:2204287da374 229:a46c238be8db
    30 
    30 
    31 from soc.logic import out_of_band
    31 from soc.logic import out_of_band
    32 from soc.logic.site import id_user
    32 from soc.logic.site import id_user
    33 from soc.views import simple
    33 from soc.views import simple
    34 from soc.views.helpers import forms_helpers
    34 from soc.views.helpers import forms_helpers
       
    35 from soc.views.helpers import list_helpers
    35 from soc.views.helpers import request_helpers
    36 from soc.views.helpers import request_helpers
    36 from soc.views.helpers import response_helpers
    37 from soc.views.helpers import response_helpers
    37 from soc.views.user import profile
    38 from soc.views.user import profile
    38 
    39 
    39 import soc.models.user
    40 import soc.models.user
   125 
   126 
   126         if user:
   127         if user:
   127           lookup_message = ugettext_lazy('User found by email.')
   128           lookup_message = ugettext_lazy('User found by email.')
   128         else:
   129         else:
   129           email_error = ugettext_lazy('User with that email not found.')
   130           email_error = ugettext_lazy('User with that email not found.')
   130 
   131           range_width = list_helpers.getPreferredListPagination()
       
   132           nearest_user_range_start = id_user.findNearestUsersOffset(
       
   133               range_width, id=form_id)
       
   134             
       
   135           if nearest_user_range_start is not None:            
       
   136             context['lookup_link'] = './list?offset=%s&limit=%s' % (
       
   137                 nearest_user_range_start, range_width)
   131       if not user:
   138       if not user:
   132         # user not found yet, so see if link name was provided
   139         # user not found yet, so see if link name was provided
   133         linkname = form.cleaned_data.get('link_name')
   140         linkname = form.cleaned_data.get('link_name')
   134         
   141         
   135         if linkname:
   142         if linkname:
   139           if user:
   146           if user:
   140             lookup_message = ugettext_lazy('User found by link name.')
   147             lookup_message = ugettext_lazy('User found by link name.')
   141             email_error = None  # clear previous error, since User was found
   148             email_error = None  # clear previous error, since User was found
   142           else:
   149           else:
   143             context['linkname_error'] = ugettext_lazy(
   150             context['linkname_error'] = ugettext_lazy(
   144                 'User with that link name not found.')            
   151                 'User with that link name not found.')
       
   152             range_width = list_helpers.getPreferredListPagination()
       
   153             nearest_user_range_start = id_user.findNearestUsersOffset(
       
   154                 range_width, link_name=linkname)
       
   155             
       
   156             if nearest_user_range_start is not None:            
       
   157               context['lookup_link'] = './list?offset=%s&limit=%s' % (
       
   158                   nearest_user_range_start, range_width)
   145     # else: form was not valid
   159     # else: form was not valid
   146   # else:  # method == 'GET'
   160   # else:  # method == 'GET'
   147 
   161 
   148   if user:
   162   if user:
   149     # User entity found, so populate form with existing User information
   163     # User entity found, so populate form with existing User information
   294             request_helpers.getSingleIndexedParamValue(
   308             request_helpers.getSingleIndexedParamValue(
   295                 request, profile.SUBMIT_MSG_PARAM_NAME,
   309                 request, profile.SUBMIT_MSG_PARAM_NAME,
   296                 values=profile.SUBMIT_MESSAGES))
   310                 values=profile.SUBMIT_MESSAGES))
   297 
   311 
   298         # populate form with the existing User entity
   312         # populate form with the existing User entity
   299         form = EditForm(initial={ 'key_name': user.key().name(),
   313         form = EditForm(initial={'key_name': user.key().name(),
   300             'id': user.id.email, 'link_name': user.link_name,
   314             'id': user.id.email, 'link_name': user.link_name,
   301             'nick_name': user.nick_name, 'is_developer': user.is_developer})
   315             'nick_name': user.nick_name, 'is_developer': user.is_developer})
   302       else:
   316       else:
   303         if request.GET.get(profile.SUBMIT_MSG_PARAM_NAME):
   317         if request.GET.get(profile.SUBMIT_MSG_PARAM_NAME):
   304           # redirect to aggressively remove 'Profile saved' query parameter
   318           # redirect to aggressively remove 'Profile saved' query parameter
   366 
   380 
   367 
   381 
   368 DEF_SITE_CREATE_USER_PROFILE_TMPL = 'soc/site/user/profile/edit.html'
   382 DEF_SITE_CREATE_USER_PROFILE_TMPL = 'soc/site/user/profile/edit.html'
   369 
   383 
   370 def create(request, template=DEF_SITE_CREATE_USER_PROFILE_TMPL):
   384 def create(request, template=DEF_SITE_CREATE_USER_PROFILE_TMPL):
   371   """View for a Developer to modify the properties of a User Model entity.
   385   """View for a Developer to create a new User Model entity.
   372 
   386 
   373   Args:
   387   Args:
   374     request: the standard django request object
   388     request: the standard django request object
   375     template: the "sibling" template (or a search list of such templates)
   389     template: the "sibling" template (or a search list of such templates)
   376       from which to construct the public.html template name (or names)
   390       from which to construct the public.html template name (or names)