src/pyams_form/form.py
changeset 149 d26223a00c51
parent 142 5a6990958cb3
child 150 f78d1b46e03c
equal deleted inserted replaced
148:3ab9784d19f0 149:d26223a00c51
   726             base = settings.pop('base')
   726             base = settings.pop('base')
   727             new_class = type('AJAX' + ob.__name__, (base, ob), cdict)
   727             new_class = type('AJAX' + ob.__name__, (base, ob), cdict)
   728             try:
   728             try:
   729                 # check if current form is overriding "get_ajax_output" method
   729                 # check if current form is overriding "get_ajax_output" method
   730                 if base not in (AJAXAddForm, AJAXEditForm):  # custom base
   730                 if base not in (AJAXAddForm, AJAXEditForm):  # custom base
   731                     basename = base.__qualname__
   731                     ob_ajax_parent, _ = ob.get_ajax_output.__qualname__.split('.')
   732                     baseklassname, _ = base.get_ajax_output.__qualname__.split('.')
   732                     base_ajax_parent, _ = base.get_ajax_output.__qualname__.split('.')
   733                     if baseklassname != basename:  # overriden method
   733                     if (ob_ajax_parent != base_ajax_parent) and \
   734                         new_class.get_ajax_output = ob.get_ajax_output
   734                        (ob_ajax_parent in ('AJAXForm', 'AJAXAddForm', 'AJAXEditForm')):
       
   735                             new_class.get_ajax_output = base.get_ajax_output
   735                 else:
   736                 else:
   736                     baseklassname, _ = ob.get_ajax_output.__qualname__.split('.')
   737                     base_ajax_parent, _ = ob.get_ajax_output.__qualname__.split('.')
   737                     if baseklassname not in ('AJAXForm', 'AJAXEditForm'):  # overriden method
   738                     if base_ajax_parent not in ('AJAXForm', 'AJAXAddForm', 'AJAXEditForm'):  # overriden method
   738                         new_class.get_ajax_output = ob.get_ajax_output
   739                         new_class.get_ajax_output = ob.get_ajax_output
   739             except AttributeError:
   740             except AttributeError:
   740                 pass
   741                 pass
   741 
   742 
   742             if 'implementer' in settings:
   743             if 'implementer' in settings: