save point
This commit is contained in:
parent
17f2dfe1d1
commit
ce08699104
5 changed files with 47 additions and 30 deletions
|
@ -44,9 +44,9 @@ from edbob.util import prettify
|
|||
from edbob.pyramid import Session
|
||||
|
||||
|
||||
__all__ = ['AlchemyGrid', 'ChildGridField', 'EnumFieldRenderer',
|
||||
'PrettyDateTimeFieldRenderer', 'make_fieldset', 'required',
|
||||
'pretty_datetime']
|
||||
__all__ = ['AlchemyGrid', 'ChildGridField', 'PropertyField',
|
||||
'EnumFieldRenderer', 'PrettyDateTimeFieldRenderer',
|
||||
'make_fieldset', 'required', 'pretty_datetime']
|
||||
|
||||
|
||||
class TemplateEngine(formalchemy.templates.TemplateEngine):
|
||||
|
@ -110,8 +110,8 @@ class AlchemyGrid(formalchemy.Grid):
|
|||
# self.url_kwargs = url_kwargs
|
||||
# self.sortable = config.get('sortable', False)
|
||||
|
||||
def __init__(self, cls, instances, config, url_grid, url_object=None,
|
||||
url_delete=None, **kwargs):
|
||||
def __init__(self, cls, instances, config, gridurl=None, objurl=None,
|
||||
delurl=None, **kwargs):
|
||||
"""
|
||||
Grid constructor.
|
||||
|
||||
|
@ -123,9 +123,10 @@ class AlchemyGrid(formalchemy.Grid):
|
|||
|
||||
formalchemy.Grid.__init__(self, cls, instances, **kwargs)
|
||||
self.config = config
|
||||
self.url_grid = url_grid
|
||||
self.url_object = url_object
|
||||
self.url_delete = url_delete
|
||||
self.request = config['request']
|
||||
self.gridurl = gridurl
|
||||
self.objurl = objurl
|
||||
self.delurl = delurl
|
||||
self.sortable = config.get('sortable', False)
|
||||
self.deletable = config.get('deletable', False)
|
||||
self.pager = instances if isinstance(instances, paginate.Page) else None
|
||||
|
@ -149,9 +150,15 @@ class AlchemyGrid(formalchemy.Grid):
|
|||
return format_attrs(**attrs)
|
||||
|
||||
def url_attrs(self):
|
||||
return format_attrs(url=self.url_grid,
|
||||
objurl=self.url_object,
|
||||
delurl=self.url_delete)
|
||||
attrs = {}
|
||||
url = self.request.route_url
|
||||
if self.gridurl:
|
||||
attrs['url'] = self.gridurl
|
||||
if self.objurl:
|
||||
attrs['objurl'] = url(self.objurl, uuid='{uuid}')
|
||||
if self.delurl:
|
||||
attrs['delurl'] = url(self.delurl, uuid='{uuid}')
|
||||
return format_attrs(**attrs)
|
||||
|
||||
# def render(self, class_=None, **kwargs):
|
||||
# """
|
||||
|
@ -278,6 +285,20 @@ class ChildGridField(formalchemy.Field):
|
|||
self.set(readonly=True)
|
||||
|
||||
|
||||
class PropertyField(formalchemy.Field):
|
||||
"""
|
||||
Convenience class for fields which simply involve a read-only property
|
||||
value.
|
||||
"""
|
||||
|
||||
def __init__(self, name, attr=None, *args, **kwargs):
|
||||
super(PropertyField, self).__init__(name, *args, **kwargs)
|
||||
if not attr:
|
||||
attr = name
|
||||
self.set(value=lambda x: getattr(x, attr))
|
||||
self.set(readonly=True)
|
||||
|
||||
|
||||
def make_fieldset(model, **kwargs):
|
||||
kwargs.setdefault('session', Session())
|
||||
return FieldSet(model, **kwargs)
|
||||
|
|
|
@ -137,6 +137,7 @@ def get_grid_config(name, request, search=None, url=None, **kwargs):
|
|||
elif request.session.get(full_key):
|
||||
value = request.session[full_key]
|
||||
config[key] = value
|
||||
config['request'] = request
|
||||
config['search'] = search
|
||||
config['url'] = url
|
||||
return config
|
||||
|
|
|
@ -149,7 +149,7 @@ $(function() {
|
|||
});
|
||||
|
||||
$('#add-filter').live('change', function() {
|
||||
var div = $(this).parents('div.filters:first');
|
||||
var div = $(this).parents('div.filterset:first');
|
||||
var filter = div.find('#filter-'+$(this).val());
|
||||
filter.find(':first-child').attr('checked', true);
|
||||
filter.show();
|
||||
|
@ -238,7 +238,7 @@ $(function() {
|
|||
});
|
||||
});
|
||||
} else {
|
||||
location.href = div.attr('objurl') + '?uuid=' + get_uuid(this);
|
||||
location.href = div.attr('objurl').replace(/%7Buuid%7D/, get_uuid(this));
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -273,8 +273,7 @@ $(function() {
|
|||
if (confirm("Do you really wish to delete this object?")) {
|
||||
var grid = $(this).parents('div.grid:first');
|
||||
var url = grid.attr('delurl');
|
||||
// alert(url + '?uuid=' + get_uuid(this) + '&delete=true');
|
||||
location.href = url + '?uuid=' + get_uuid(this) + '&delete=true';
|
||||
location.href = url.replace(/%7Buuid%7D/, get_uuid(this));
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<% visible = [] %>
|
||||
% for f in search.sorted_filters():
|
||||
<% f = search.filters[f] %>
|
||||
<div class="filter" id="filter-${f.name}"${' style="display: none;"' if not search.config.get('include_filter_'+f.name) else ''}>
|
||||
<div class="filter" id="filter-${f.name}"${' style="display: none;"' if not search.config.get('include_filter_'+f.name) else ''|n}>
|
||||
${search.checkbox('include_filter_'+f.name)}
|
||||
<label for="${f.name}">${f.label}</label>
|
||||
${f.types_select()}
|
||||
|
|
|
@ -114,21 +114,17 @@ def crud(request, cls, fieldset_factory, home=None, delete=None, post_sync=None,
|
|||
if res:
|
||||
return res
|
||||
|
||||
if request.params.get('partial'):
|
||||
# Session.flush()
|
||||
# return self.json_success(uuid=fs.model.uuid)
|
||||
assert False, "need to fix this"
|
||||
if request.params.get('partial'):
|
||||
# Session.flush()
|
||||
# return self.json_success(uuid=fs.model.uuid)
|
||||
assert False, "need to fix this"
|
||||
|
||||
# Session.commit()
|
||||
if not home:
|
||||
# FIXME
|
||||
# home = request.route_url.current() + '?uuid=' + fs.model.uuid
|
||||
# home = request.route_url('home')
|
||||
fs.model = Session.merge(fs.model)
|
||||
home = request.current_route_url() + '?uuid=' + fs.model.uuid
|
||||
request.session.flash("%s \"%s\" has been %s." % (
|
||||
fs.crud_title, fs.get_display_text(),
|
||||
'updated' if fs.edit else 'created'))
|
||||
if not home:
|
||||
fs.model = Session.merge(fs.model)
|
||||
home = request.current_route_url(uuid=fs.model.uuid)
|
||||
request.session.flash("%s \"%s\" has been %s." % (
|
||||
fs.crud_title, fs.get_display_text(),
|
||||
'updated' if fs.edit else 'created'))
|
||||
return HTTPFound(location=home)
|
||||
|
||||
data = {'fieldset': fs, 'crud': True}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue