Commit 552c0ced authored by Serge S. Koval's avatar Serge S. Koval

rename_columns now affect form generation. fixed form rendering for newest Flask-WTF.

parent 86c88559
...@@ -23,6 +23,6 @@ ...@@ -23,6 +23,6 @@
- File admin - File admin
- Header title - Header title
- Mass-delete functionality - Mass-delete functionality
- File size restriction
- Unit tests - Unit tests
- Documentation - Documentation
- Screenshots for quickstart
...@@ -22,7 +22,19 @@ class AdminModelConverter(ModelConverter): ...@@ -22,7 +22,19 @@ class AdminModelConverter(ModelConverter):
self.view = view self.view = view
def _get_label(self, name, field_args):
if 'label' in field_args:
return field_args['label']
if self.view.rename_columns:
return self.view.rename_columns.get(name)
return None
def convert(self, model, mapper, prop, field_args): def convert(self, model, mapper, prop, field_args):
if not field_args:
field_args = dict()
if isinstance(prop, RelationshipProperty): if isinstance(prop, RelationshipProperty):
local_column = prop.local_remote_pairs[0][0] local_column = prop.local_remote_pairs[0][0]
remote_model = prop.mapper.class_ remote_model = prop.mapper.class_
...@@ -31,6 +43,7 @@ class AdminModelConverter(ModelConverter): ...@@ -31,6 +43,7 @@ class AdminModelConverter(ModelConverter):
'validators': [], 'validators': [],
'filters': [], 'filters': [],
'allow_blank': local_column.nullable, 'allow_blank': local_column.nullable,
'label': self._get_label(prop.key, field_args),
'default': None 'default': None
} }
...@@ -60,21 +73,25 @@ class AdminModelConverter(ModelConverter): ...@@ -60,21 +73,25 @@ class AdminModelConverter(ModelConverter):
if column.foreign_keys or column.primary_key: if column.foreign_keys or column.primary_key:
return None return None
return super(AdminModelConverter, self).convert(model, mapper, field_args['label'] = self._get_label(prop.key, field_args)
prop, field_args)
return super(AdminModelConverter, self).convert(model,
mapper,
prop,
field_args)
@converts('Date') @converts('Date')
def conv_date(self, field_args, **kwargs): def conv_date(self, field_args, **extra):
field_args['widget'] = form.DatePickerWidget() field_args['widget'] = form.DatePickerWidget()
return fields.DateField(**field_args) return fields.DateField(**field_args)
@converts('DateTime') @converts('DateTime')
def conv_datetime(self, field_args, **kwargs): def conv_datetime(self, field_args, **extra):
field_args['widget'] = form.DateTimePickerWidget() field_args['widget'] = form.DateTimePickerWidget()
return fields.DateTimeField(**field_args) return fields.DateTimeField(**field_args)
@converts('Time') @converts('Time')
def conv_time(self, field_args, **kwargs): def conv_time(self, field_args, **extra):
return form.TimeField(**field_args) return form.TimeField(**field_args)
......
...@@ -76,9 +76,9 @@ ...@@ -76,9 +76,9 @@
{% macro render_form(form, cancel_url) -%} {% macro render_form(form, cancel_url) -%}
<form action="" method="POST" class="form-horizontal"{% if form.has_file_field %} enctype="multipart/form-data"{% endif %}> <form action="" method="POST" class="form-horizontal"{% if form.has_file_field %} enctype="multipart/form-data"{% endif %}>
<fieldset> <fieldset>
{{ form.csrf }} {{ form.hidden_tag() }}
{% for f in form if f.label.text != 'Csrf' %} {% for f in form if f.name != 'csrf_token' and f.name != 'csrf' %}
<div class="control-group{% if f.errors %} error{% endif %}"> <div class="control-group{% if f.errors %} error{% endif %}">
{{ f.label(class='control-label') }} {{ f.label(class='control-label') }}
<div class="controls"> <div class="controls">
...@@ -111,3 +111,4 @@ ...@@ -111,3 +111,4 @@
</fieldset> </fieldset>
</form> </form>
{% endmacro %} {% endmacro %}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment