Various forms2 changes
This commit is contained in:
		
							parent
							
								
									587871e87c
								
							
						
					
					
						commit
						1e8a4534d5
					
				
					 5 changed files with 35 additions and 25 deletions
				
			
		|  | @ -360,12 +360,12 @@ class Form(object): | |||
|         self.remove(*args) | ||||
| 
 | ||||
|     def make_schema(self): | ||||
|         if not self.schema: | ||||
| 
 | ||||
|             if not self.model_class: | ||||
|                 # TODO | ||||
|                 raise NotImplementedError | ||||
| 
 | ||||
|         if not self.schema: | ||||
| 
 | ||||
|             mapper = orm.class_mapper(self.model_class) | ||||
| 
 | ||||
|             # first filter our "full" field list so we ignore certain ones.  in | ||||
|  | @ -438,6 +438,10 @@ class Form(object): | |||
|     def set_label(self, key, label): | ||||
|         self.labels[key] = label | ||||
| 
 | ||||
|         # update schema if necessary | ||||
|         if self.schema and key in self.schema: | ||||
|             self.schema[key].title = label | ||||
| 
 | ||||
|     def get_label(self, key): | ||||
|         return self.labels.get(key, prettify(key)) | ||||
| 
 | ||||
|  | @ -498,6 +502,10 @@ class Form(object): | |||
|     def set_widget(self, key, widget): | ||||
|         self.widgets[key] = widget | ||||
| 
 | ||||
|         # update schema if necessary | ||||
|         if self.schema and key in self.schema: | ||||
|             self.schema[key].widget = widget | ||||
| 
 | ||||
|     def set_validator(self, key, validator): | ||||
|         self.validators[key] = validator | ||||
| 
 | ||||
|  | @ -659,8 +667,13 @@ class Form(object): | |||
|                 return getattr(record, field_name) | ||||
| 
 | ||||
|     def validate(self, *args, **kwargs): | ||||
|         raise_error = kwargs.pop('raise_error', True) | ||||
|         form = self.make_deform_form() | ||||
|         try: | ||||
|             return form.validate(*args, **kwargs) | ||||
|         except deform.ValidationFailure: | ||||
|             if raise_error: | ||||
|                 raise | ||||
| 
 | ||||
| 
 | ||||
| class FieldList(list): | ||||
|  |  | |||
|  | @ -127,6 +127,17 @@ | |||
|   ${self.extra_javascript()} | ||||
|   ${self.core_styles()} | ||||
|   ${self.extra_styles()} | ||||
| 
 | ||||
|   ## TODO: should this be elsewhere / more customizable? | ||||
|   % if dform is not Undefined: | ||||
|       <% resources = dform.get_widget_resources() %> | ||||
|       % for path in resources['js']: | ||||
|           ${h.javascript_link(request.static_url(path))} | ||||
|       % endfor | ||||
|       % for path in resources['css']: | ||||
|           ${h.stylesheet_link(request.static_url(path))} | ||||
|       % endfor | ||||
|   % endif | ||||
| </%def> | ||||
| 
 | ||||
| <%def name="core_javascript()"> | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 
 | ||||
| % if not readonly: | ||||
| <% _focus_rendered = False %> | ||||
| ${h.form(form.action_url, id=dform.formid, method='post', enctype='multipart/form-data')} | ||||
| ${h.form(form.action_url, id=dform.formid, method='post', enctype='multipart/form-data', class_='autodisable')} | ||||
| ${h.csrf_token(request)} | ||||
| % endif | ||||
| 
 | ||||
|  | @ -26,7 +26,11 @@ ${h.csrf_token(request)} | |||
|     ##                 <div class="field-error">${error}</div> | ||||
|     ##             % endfor | ||||
|               % if field.error: | ||||
|                   <div class="field-error"><span class="error-msg">${field.error.msg}</span></div> | ||||
|                   <div class="field-error"> | ||||
|                     % for msg in field.error.messages(): | ||||
|                         <span class="error-msg">${msg}</span> | ||||
|                     % endfor | ||||
|                   </div> | ||||
|               % endif | ||||
|               <div class="field-row"> | ||||
|                 <label for="${field.oid}">${field.title}</label> | ||||
|  |  | |||
|  | @ -6,15 +6,6 @@ | |||
| <%def name="extra_javascript()"> | ||||
|   ${parent.extra_javascript()} | ||||
|   ${self.disable_button_js()} | ||||
|   % if dform is not Undefined: | ||||
|       <% resources = dform.get_widget_resources() %> | ||||
|       % for path in resources['js']: | ||||
|           ${h.javascript_link(request.static_url(path))} | ||||
|       % endfor | ||||
|       % for path in resources['css']: | ||||
|           ${h.stylesheet_link(request.static_url(path))} | ||||
|       % endfor | ||||
|   % endif | ||||
| </%def> | ||||
| 
 | ||||
| <%def name="disable_button_js()"> | ||||
|  |  | |||
|  | @ -18,15 +18,6 @@ | |||
| 
 | ||||
|     }); | ||||
|   </script> | ||||
|   % if dform is not Undefined: | ||||
|       <% resources = dform.get_widget_resources() %> | ||||
|       % for path in resources['js']: | ||||
|           ${h.javascript_link(request.static_url(path))} | ||||
|       % endfor | ||||
|       % for path in resources['css']: | ||||
|           ${h.stylesheet_link(request.static_url(path))} | ||||
|       % endfor | ||||
|   % endif | ||||
| </%def> | ||||
| 
 | ||||
| <%def name="context_menu_items()"> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar