Can you reproduce the problem with some simpler code? 

On Tuesday, 21 June 2016 14:42:03 UTC-5, Richard wrote:
>
> Any clue?
>
> On Tue, Jun 21, 2016 at 10:51 AM, Richard <ml.richard.vez...@gmail.com> 
> wrote:
>
>> As you which!!
>>
>> # Controllers
>> Form 1
>> def phone_numbers_form():
>>     """
>>     phone_numbers_form() allow to create/update/display phone(s) 
>> number(s).
>>
>>     Args (vars):
>>         readonlyform: If set to "True" the function only display phones 
>> numbers in row, no create form and buttons
>>                       to modify add phone number is available.
>>         remove_phone_number_id: If phone number id is passed through url 
>> with this vars phone number specify id
>>                                 record is deleted.
>>         request_modify_phone_id: The passed phone number with this vars 
>> will make the phone_numbers_form() to return
>>                                  an update form for the specified phone 
>> number id record.
>>
>>     """
>>     user_id = None
>>
>>     # To display only the phone numbers
>>     readonlyform = False
>>     if request.vars.readonlyform:
>>         if request.vars.readonlyform in ['True']:
>>             readonlyform = True
>>
>>     if request.args(0) is not None:
>>         try:
>>             user_id = int(request.args(0))
>>         except:
>>             user_id = db(db.auth_user.username == request.args(0)).select(
>> db.auth_user.id).first().id
>>     if user_id is None:
>>         user_id = auth.user_id
>>     if request.vars.remove_phone_number_id is not None:
>>         db(db.phone_number.id == 
>> int(request.vars.remove_phone_number_id)).delete()
>>     record_to_modify = request.vars.request_modify_phone_id
>>     phone_numbers = db(db.phone_number.user_id == user_id).select()
>>     db.phone_number.user_id.default = user_id
>>     db.phone_number.user_id.update = user_id
>>     if record_to_modify is None:
>>         buttons = [
>>             TAG.button(I('', _class='icon-ban-circle icon-large 
>> icon-white'), _type='button',
>>                       
>>  _onClick='web2py_component("%s","phone_number_component");' % 
>> URL(c='directory',
>>                                                                           
>>                f='phone_numbers_form',
>>                                                                           
>>                extension='load',
>>                                                                           
>>                args=request.args(0)),
>>                        _class='btn btn-mini btn-inverse'),
>>             TAG.button((I('', _class='icon-ok icon-large icon-white'), 
>> CAT('  '), STRONG(T('Add'))), _type='submit',
>>                        _class='btn btn-mini btn-primary', 
>> _style='white-space: nowrap;')]
>>     else:
>>         buttons = [
>>             TAG.button(I('', _class='icon-ban-circle icon-large 
>> icon-white'), _type='button',
>>                       
>>  _onClick='web2py_component("%s","phone_number_component");' % 
>> URL(c='directory',
>>                                                                           
>>                f='phone_numbers_form',
>>                                                                           
>>                extension='load',
>>                                                                           
>>                args=request.args(0)),
>>                        _class='btn btn-mini btn-inverse'),
>>             TAG.button((I('', _class='icon-ok icon-large icon-white'), 
>> CAT('  '), STRONG(T('Ok'))), _type='submit',
>>                        _class='btn btn-mini btn-primary')]
>>         # form.element(_type='submit')['_value'] = T('ok')
>>         # form.element(_type='submit')['_class'] = 'btn btn-mini 
>> pull-right'
>>     form = SQLFORM(db.phone_number, record=None if record_to_modify is 
>> None else int(record_to_modify),
>>                    buttons=buttons if readonlyform is False else None,
>>                    readonly=True if readonlyform is True else False,
>>                    _id='phone_number_form_id')
>>     if form.process(formname='phone_number_form').accepted:
>>         if record_to_modify is not None:
>>             response.flash = T('Successfully inserted')
>>         else:
>>             response.flash = T('Successfully updated')
>>         response.js = 
>> 'web2py_component("%(URL)s","phone_number_component");' % {'URL': 
>> URL(c='directory',
>>                                                                           
>>                   f='phone_numbers_form',
>>                                                                           
>>                   extension='load',
>>                                                                           
>>                   args=request.args(0))}
>>     elif form.errors:
>>         response.flash = T('Errors...')
>>
>>     # 
>> -----------------------------------------------------------------------------
>>     # <script>
>>     #     $(document).ready(function() {
>>     #         var add_phone_number_translation = "{{=T('Add a phone 
>> number')}}"
>>     #         $("tr#input_new_phone_number").children().hide();
>>     #         $("tr#input_new_phone_number").append('<td colspan="3" 
>> id="new_phone_number"><button type="button" class="btn btn-small 
>> pull-right" onclick="$(\'tr#input_new_phone_number\').children().show(); 
>> $(\'td#new_phone_number\').hide();"><strong>' + 
>> add_phone_number_translation + '</strong></button></td>');
>>     #         });
>>     # </script>
>>     # What below is a replacement for the jQuery code above
>>     if readonlyform is False:
>>         controller_view_js = \
>>             
>> common_functions.flash_message_from_js(tr_id='new_phone_number',
>>                                                    colspan='3',
>>                                                    button_text='Add a 
>> phone number',
>>                                                    flash_text='Please add 
>> your phone number...',
>>                                                   
>>  form_id='phone_number_form_id')
>>     else:
>>         controller_view_js = ''
>>     # 
>> -----------------------------------------------------------------------------
>>
>>     return dict(phone_numbers=phone_numbers,
>>                 form=form,
>>                 controller_view_js=controller_view_js,
>>                 readonlyform=readonlyform)
>>
>>
>> Form 2
>>
>> def group_membership():
>>     if not auth.has_membership('admin'):
>>         redirect(URL(c='permission', f='not_authorized'))
>>     user_id = None
>>     if request.args(0) is not None:
>>         try:
>>             user_id = int(request.args(0))
>>         except ValueError:
>>             user_id = db(db.auth_user.username == request.args(0)).select(
>> db.auth_user.id).first().id
>>     # if user_id is None:
>>     #     user_id = auth.user_id  # Extrêmement douteux...
>>     if request.vars.remove_membership_id is not None:
>>         db(db.auth_membership.id == 
>> int(request.vars.remove_membership_id)).delete()
>>     record_to_modify = request.vars.request_modify_membership_id
>>     memberships = db(db.auth_membership.user_id == user_id
>>                      ).select(db.auth_membership.ALL,
>>                               db.auth_group.ALL,
>>                               join=db.auth_group.on(db.auth_group.id == 
>> db.auth_membership.group_id),
>>                               orderby=db.auth_group.role_gui)
>>     db.auth_membership.user_id.default = user_id
>>     db.auth_membership.user_id.update = user_id
>>     # 
>> ------------------------------------------------------------------------------------------------------------------
>>     # We don't need all the user id to be present in the drop down as 
>> group selected should apply to only a single user
>>     # 
>> ------------------------------------------------------------------------------------------------------------------
>>     user_id_set = db(db.auth_user.id == user_id)
>>     db.auth_membership.user_id.requires = IS_IN_DB(user_id_set, '
>> auth_user.id', '%(first_name)s %(last_name)s (%(id)s)')
>>     # 
>> ------------------------------------------------------------------------------------------------------------------
>>     # 
>> ------------------------------------------------------------------------------------------------------------------
>>     # We don't need other user_X groups as the user can't be assign to 
>> other user group
>>     # 
>> ------------------------------------------------------------------------------------------------------------------
>>     groups_set = db(~db.auth_group.role.startswith('user_'))
>>     db.auth_membership.group_id.requires = IS_IN_DB(groups_set, '
>> auth_group.id', '%(role)s-%(description)s (%(id)s)')
>>     # 
>> ------------------------------------------------------------------------------------------------------------------
>>     if record_to_modify is None:
>>         buttons = [
>>             TAG.button(I('', _class='icon-ban-circle icon-large 
>> icon-white'), _type='button',
>>                       
>>  _onClick='web2py_component("%s","membership_component");' % 
>> URL(c='directory',
>>                                                                           
>>                f='group_membership',
>>                                                                           
>>                extension='load',
>>                                                                           
>>                args=request.args(0)),
>>                        _class='btn btn-mini btn-inverse'),
>>             TAG.button((I('', _class='icon-ok icon-large icon-white'), 
>> CAT('  '), STRONG(T('Add'))), _type='submit',
>>                        _class='btn btn-mini btn-primary', 
>> _style='white-space: nowrap;')]
>>     else:
>>         buttons = [
>>             TAG.button(I('', _class='icon-ban-circle icon-large 
>> icon-white'), _type='button',
>>                       
>>  _onClick='web2py_component("%s","membership_component");' % 
>> URL(c='directory',
>>                                                                           
>>                f='group_membership',
>>                                                                           
>>                extension='load',
>>                                                                           
>>                args=request.args(0)),
>>                        _class='btn btn-mini btn-inverse'),
>>             TAG.button((I('', _class='icon-ok icon-large icon-white'), 
>> CAT('  '), STRONG(T('Ok'))), _type='submit',
>>                        _class='btn btn-mini btn-primary')]
>>         # form.element(_type='submit')['_value'] = T('ok')
>>         # form.element(_type='submit')['_class'] = 'btn btn-mini 
>> pull-right'
>>     form = SQLFORM(db.auth_membership, record=None if record_to_modify is 
>> None else int(record_to_modify),
>>                    buttons=buttons, _id='membership_form_id')
>>     if form.process(formname='membership_form').accepted:
>>         if record_to_modify is None:
>>             response.flash = T('Successfully inserted')
>>         else:
>>             response.flash = T('Successfully updated')
>>         response.js = 
>> 'web2py_component("%(URL)s","membership_component");' % {'URL': 
>> URL(c='directory',
>>                                                                           
>>                 f='group_membership',
>>                                                                           
>>                 extension='load',
>>                                                                           
>>                 args=request.args(0))}
>>     elif form.errors:
>>         response.flash = T('Errors...')
>>
>>     thead = THEAD(TR(TH(T('Role(s)'))))
>>     trs = []
>>     for r in memberships:
>>         if request.vars.request_modify_membership_id is not None and \
>>                 r.auth_membership.id == 
>> int(request.vars.request_modify_membership_id):
>>             trs.append(TR(TD(form.custom.widget.group_id,
>>                              DIV(A(I('', _class='icon-ban-circle 
>> icon-large icon-white'),
>>                                    _class='btn btn-mini btn-inverse',
>>                                    _href=URL('group_membership', 
>> extension='load',
>>                                              args=request.args(0)), 
>> cid=request.cid),
>>                                  BUTTON(I('', _class='icon-ok icon-large 
>> icon-white'),
>>                                         _class='btn btn-mini btn-primary',
>>                                         _type='submit'),
>>                                  _class='pull-right'))))
>>         else:
>>             trs.append(TR(TD(T(r.auth_group.role_gui),
>>                              DIV(A(I('', _class='icon-edit icon-large'), 
>> _class='btn btn-mini',
>>                                    _href=URL('group_membership', 
>> extension='load', args=request.args(0),
>>                                             
>>  vars=dict(request_modify_membership_id=r.auth_membership.id)),
>>                                    cid=request.cid),
>>                                  A(I('', _class='icon-remove icon-large 
>> icon-white'), _class='btn btn-mini btn-danger',
>>                                    _href=URL('group_membership', 
>> extension='load', args=request.args(0),
>>                                             
>>  vars=dict(remove_membership_id=r.auth_membership.id)), cid=request.cid),
>>                                  _class='pull-right'))))
>>     if request.vars.request_modify_membership_id == None:
>>         trs.append(TR(TD(form.custom.widget.group_id,
>>                          SPAN(form.custom.widget.user_id, 
>> _style='display: none;'),  # There is an issue with this...
>>                                                                           
>>            # NO form.vars.user_id available
>>                                                                           
>>            # for update form!!
>>                          SPAN(form.custom.submit, _class='pull-right')), 
>> _id='input_new_membership'))
>>     memberships_table = TABLE(thead, TBODY(*trs), _class='table 
>> table-condensed table-hover')
>>
>>     # 
>> -----------------------------------------------------------------------------
>>     # $(document).ready(function() {
>>     #     var add_membership_translation = '{{=T('Add membership')}}'
>>     #     $("tr#input_new_membership").children().hide();
>>     #     $("tr#input_new_membership").append('<td colspan="3" 
>> id="new_membership"><button type="button" class="btn btn-small pull-right" 
>> onclick="$(\'tr#input_new_membership\').children().show(); 
>> $(\'td#new_membership\').hide();"><strong>' + add_membership_translation + 
>> '</strong></button></td>');
>>     #     });
>>     # What below is a replacement for the jQuery code above
>>     controller_view_js = \
>>         common_functions.flash_message_from_js(tr_id='new_membership',
>>                                                colspan='3',
>>                                                button_text='Add 
>> membership',
>>                                                flash_text='Please select 
>> a role...',
>>                                               
>>  form_id='membership_form_id')
>>     # 
>> -----------------------------------------------------------------------------
>>
>>     return dict(memberships_table=memberships_table, form=form, 
>> controller_view_js=controller_view_js)
>>
>> Container page controller
>> @auth.requires_login()
>> def manage_users():
>>     if not auth.has_membership('manage_users'):
>>         redirect(URL(c='permission', f='not_authorized'))
>>     if request.args(0) is not None:
>>         try:
>>                 user_id = int(request.args(0))
>>         except ValueError:
>>             user_id = db(db.auth_user.username == request.args(0)).select(
>> db.auth_user.id).first().id
>>     else:
>>         user_id = None
>>         db.auth_user.address_id.requires = \
>>             IS_EMPTY_OR(IS_IN_DB(db, db.address.id, '%(address_code)s - 
>> %(door_number)s, %(street)s'))
>>         db.auth_user.initials.requires = \
>>             IS_EMPTY_OR(IS_NOT_IN_DB(db, 'auth_user.initials', 
>> error_message=T('Initials already exist!')))
>>         db.auth_user.password.requires = 
>> IS_EMPTY_OR(CRYPT(min_length=auth.settings.password_min_length,
>>                                                           
>>  error_message=T('too short')))
>>
>>     for field in db.auth_user.fields:
>>         db.auth_user[field].readable = False
>>         db.auth_user[field].writable = False
>>     fields = (db.auth_user.first_name,
>>               db.auth_user.last_name,
>>               db.auth_user.address_id,
>>               db.auth_user.email,
>>               db.auth_user.initials,
>>               db.auth_user.title_fr,
>>               db.auth_user.title_en,
>>               db.auth_user.manager_id,
>>               db.auth_user.gender,
>>               db.auth_user.registration_key,
>>               db.auth_user.picture)
>>     for field in fields:
>>         field.readable = True
>>         field.writable = True
>>     db.auth_user.registration_key.requires = 
>> IS_EMPTY_OR(IS_IN_SET(['pending', 'disabled']))
>>     db.auth_user.registration_key.default = 'pending'
>>     buttons = [TAG.button((I('', _class='icon-ban-circle icon-large 
>> icon-white'), CAT('  '), STRONG(T('Cancel'))),
>>                           _type='button',
>>                           _onClick="javascript:void(history.go(-1))",
>>                           _class='btn btn-small btn-inverse'),
>>                TAG.button((I('', _class='icon-ok icon-large icon-white'), 
>> CAT('  '), STRONG(T('Update'))),
>>                           _type='submit',
>>                           _class='btn btn-small btn-primary')]
>>     form = SQLFORM(db.auth_user, record=user_id, buttons=buttons, 
>> formstyle=formstyle, separator=separator)
>>     if form.process(dbio=False).accepted:
>>         if user_id is None:
>>             session.flash = T('User created')
>>             form.vars.ceo = False
>>             form.vars.note = ''
>>             if form.vars.email is not None:
>>                 form.vars.username = form.vars.email.split('@')[0]
>>             id = db.auth_user.insert(**{str(var): form.vars[var] for var 
>> in form.vars})
>>             user_id_role_exist = db(db.auth_group.role == 'user_%d' % 
>> id).count() == 1
>>             if user_id_role_exist is False:
>>                 db.auth_group.insert(role='user_%d' % id, 
>> description='Individual user group user_ + user id',
>>                                      role_gui=form.vars.username)
>>             member_of_basic_access_group = \
>>                 db((db.auth_membership.user_id == id) &
>>                    (db.auth_membership.group_id == db(db.auth_group.role 
>> == 'basic_access'
>>                                                       ).select(
>> db.auth_group.id).first().id)
>>                    ).count() == 1
>>             if member_of_basic_access_group is False:
>>                 db.auth_membership.insert(user_id=id,
>>                                           group_id=db(db.auth_group.role 
>> == 'basic_access'
>>                                                       ).select(
>> db.auth_group.id).first().id)
>>             # Push new user into Redmine
>>             redmine_utility.push_active_user_into_redmine(db=db)
>>         else:
>>             session.flash = T('User updated')
>>             db(db.auth_user.id == user_id).update(**{str(var): 
>> form.vars[var] for var in form.vars})
>>
>>         if form.vars.title_fr is not None and form.vars.title_fr != '' \
>>                 and form.vars.title_en is not None and form.vars.title_en 
>> != '':
>>             
>> common_functions.value_translation_update(en_field_name='title_en', 
>> fr_field_name='title_fr', form=form)
>>         if request.args(0) is not None:
>>             username = request.args(0)
>>         elif form.vars.username is not None:
>>             username = form.vars.username
>>         else:
>>             username = None
>>         redirect(URL(c='directory', f='employee', args=username))
>>     elif form.errors:
>>         response.flash = T('Form has error')
>>     else:
>>         response.flash = T('Please complete or update the form')
>>     return dict(form=form)
>>
>>
>>
>>
>>
>> # View ".load"
>> Form 1
>> <strong>{{=T('Phone numbers')}}</strong>
>> {{=form.custom.begin}}
>> <table class="table table-condensed table-hover">
>>     <tbody>
>>         {{for phone_number in phone_numbers:}}
>>             <tr>
>>                 {{if request.vars.request_modify_phone_id is not None and 
>> phone_number.id == int(request.vars.request_modify_phone_id):}}
>>                     <td>{{=form.custom.widget.phone_number_kind_id}}</td>
>>                     <td>{{=form.custom.widget.phone_number}}</td>
>>                     <td>
>>                         <span style="display: 
>> none;">{{=form.custom.widget.user_id}}</span>
>>                         {{=form.custom.widget.extension}}
>>                         <div class="pull-right">
>>                         {{=A(I('', _class='icon-ban-circle icon-white'), 
>> _class='btn btn-mini btn-inverse',
>>                              _href=URL('phone_numbers_form', 
>> extension='load', args=request.args(0)), cid=request.cid)}}
>>                         {{=BUTTON(I('', _class='icon-ok icon-white'), 
>> _class='btn btn-mini btn-primary', _type='submit')}}
>>                         </div>
>>                     </td>
>>                 {{else:}}
>>                     
>> <td>{{=db.phone_number_kind[phone_number.phone_number_kind_id].phone_number_kind}}</td>
>>                     <td>{{=phone_number.phone_number}}</td>
>>                     <td>
>>                         {{if phone_number.extension is not None and 
>> phone_number.extension != '':}}
>>                             ({{=phone_number.extension}})
>>                         {{pass}}
>>                         {{if readonlyform is False:}}
>>                             <div class="pull-right">
>>                             {{=A(I('',_class='icon-edit'), _class='btn 
>> btn-mini',
>>                                  _href=URL('phone_numbers_form', 
>> extension='load', args=request.args(0),
>>                                           
>>  vars=dict(request_modify_phone_id=phone_number.id)), cid=request.cid)}}
>>                             {{=A(I('',_class='icon-remove icon-white'), 
>> _class='btn btn-mini btn-danger',
>>                                  _href=URL('phone_numbers_form', 
>> extension='load', args=request.args(0),
>>                                           
>>  vars=dict(remove_phone_number_id=phone_number.id)), cid=request.cid)}}
>>                             </div>
>>                         {{pass}}
>>                     </td>
>>                 {{pass}}
>>             </tr>
>>         {{pass}}
>>         {{if readonlyform is False:}}
>>             {{if request.vars.request_modify_phone_id == None:}}
>>                 <tr id="input_new_phone_number">
>>                     <td>{{=form.custom.widget.phone_number_kind_id}}</td>
>>                     <td>{{=form.custom.widget.phone_number}}</td>
>>                     <td>{{=form.custom.widget.extension}}
>>                         <span style="display: 
>> none;">{{=form.custom.widget.user_id}}</span>
>>                         <span 
>> class='pull-right'>{{=form.custom.submit}}</span>
>>                     </td>
>>                 </tr>
>>             {{pass}}
>>         {{pass}}
>>     </tbody>
>> </table>
>> {{=form.custom.end}}
>>
>> <script>
>>     {{=XML(controller_view_js)}}
>> </script>
>>
>>
>>
>> Form 2
>> <strong>{{=T('User membership')}}</strong>
>> {{=form.custom.begin}}
>>     {{=memberships_table}}
>> {{=form.custom.end}}
>>
>> <script>
>>     {{=XML(controller_view_js)}}
>> </script>
>>
>>
>> Container page
>> {{extend 'layout_form.html'}}
>>
>>     <div class="span4">
>>         <div class="thumbnail">
>>             <div>
>>                 {{=form}}
>>             </div>
>>         </div>
>>     </div>
>>     {{if request.args(0) is not None:}}
>>         <div class="span6">
>>             <div class="thumbnail">
>>                 <div>
>>                     {{=LOAD(c='directory', f='phone_numbers_form', 
>> extension='load',
>>                             args=request.args(0), ajax=True, 
>> target='phone_number_component')}}
>>                 </div>
>>             </div>
>>         </div>
>>         {{if auth.has_membership('admin') and request.args(0) is not 
>> None:}}
>>             <div class="span6">
>>                 <div class="thumbnail">
>>                     <div>
>>                         {{=LOAD(c='directory', f='group_membership', 
>> extension='load',
>>                                 args=request.args(0), ajax=True, 
>> target='membership_component')}}
>>                     </div>
>>                 </div>
>>             </div>
>>         {{pass}}
>>     {{pass}}
>>
>>
>>
>>
>> # modules JS generation snippet
>> def flash_message_from_js(tr_id, colspan, button_text, flash_text, 
>> form_id=None):
>>     """
>>     Set flash message with $.web2py.flash() so the flash message get fire 
>> in the right context
>>     Need this in view :
>>
>>     <script>
>>         {{=XML(controller_view_js)}}
>>     </script>
>>
>>     NOTE: We now generate this piece of JS from python to solve issue 
>> with quoting escape cause by to many single
>>           and double quotes. The code breaks when whe translate "Please 
>> fill out the form..." with
>>           "S'il vous plaît remplir le formulaire..." the single quote 
>> were not escape properly with the Javascript
>>           implementation.
>>     NOTE: The issue has multiple facet... Mainly the issue is related to 
>> the fact that we want to translate flash
>>           message and for this reason we need to generate JS at some 
>> level from python even if it only the content of
>>           a string variable. Then since we need to generating also HTML 
>> from Javascript it makes multiple level of
>>           abstraction and a lot of quoting... When you add over all that 
>> there is single quote using in the translated
>>           text and that we deal with byte (python str) and not unicode... 
>> That were you end up...
>>
>>           :param colspan:
>>           :param tr_id:
>>           :param flash_text:
>>           :param button_text:
>>     """
>>     elements_to_be_added = \
>>         TD(TAG.button(STRONG(current.T(button_text).decode('utf8')),
>>                       _type='button',
>>                       _class='btn btn-small pull-right',
>>                       _onclick='$("tr#input_%s").children().show(); '
>>                                '$("td#%s").hide(); '
>>                                '$.web2py.flash("%s");' % (tr_id, tr_id, 
>> current.T(flash_text).decode('utf8'))),
>>            _colspan=colspan,
>>            _id=tr_id)
>>
>>     controller_view_js = \
>>         '''$(document).ready(function() {
>>             if(!$('#%s .error').length) {
>>                 $("tr#input_%s").children().hide();
>>                 $("tr#input_%s").append('%s');
>>                 }
>>             });''' % (form_id, tr_id, tr_id, elements_to_be_added)
>>     # 
>> -----------------------------------------------------------------------------
>>     return controller_view_js
>>
>>
>>
>>
>> You have everything...
>>
>> -- 
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to